[Bf-blender-cvs] [4c1095d33cb] property-search-ui: Property Search: Support labels and expanded enums
Hans Goudey
noreply at git.blender.org
Tue Jul 7 16:58:15 CEST 2020
Commit: 4c1095d33cbe7b02c7f071683901fdff88248b78
Author: Hans Goudey
Date: Tue Jul 7 10:58:06 2020 -0400
Branches: property-search-ui
https://developer.blender.org/rB4c1095d33cbe7b02c7f071683901fdff88248b78
Property Search: Support labels and expanded enums
===================================================================
M source/blender/editors/interface/interface_layout.c
===================================================================
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 27be99d5f20..bf9273a1b04 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -761,7 +761,8 @@ static void ui_item_enum_expand_elem_exec(uiLayout *layout,
const eButType but_type,
const bool icon_only,
const EnumPropertyItem *item,
- const bool is_first)
+ const bool is_first,
+ uiBut *label_but)
{
const char *name = (!uiname || uiname[0]) ? item->name : "";
const int icon = item->icon;
@@ -800,6 +801,10 @@ static void ui_item_enum_expand_elem_exec(uiLayout *layout,
if (but_type == UI_BTYPE_TAB) {
but->flag |= UI_BUT_DRAG_LOCK;
}
+
+ if (label_but != NULL) {
+ but->label_but = label_but;
+ }
}
static void ui_item_enum_expand_exec(uiLayout *layout,
@@ -809,7 +814,8 @@ static void ui_item_enum_expand_exec(uiLayout *layout,
const char *uiname,
const int h,
const eButType but_type,
- const bool icon_only)
+ const bool icon_only,
+ uiBut *label_but)
{
/* XXX: The way this function currently handles uiname parameter
* is insane and inconsistent with general UI API:
@@ -885,7 +891,7 @@ static void ui_item_enum_expand_exec(uiLayout *layout,
}
ui_item_enum_expand_elem_exec(
- layout, block, ptr, prop, uiname, h, but_type, icon_only, item, is_first);
+ layout, block, ptr, prop, uiname, h, but_type, icon_only, item, is_first, label_but);
}
UI_block_layout_set_current(block, layout);
@@ -900,9 +906,11 @@ static void ui_item_enum_expand(uiLayout *layout,
PropertyRNA *prop,
const char *uiname,
const int h,
- const bool icon_only)
+ const bool icon_only,
+ uiBut *label_but)
{
- ui_item_enum_expand_exec(layout, block, ptr, prop, uiname, h, UI_BTYPE_ROW, icon_only);
+ ui_item_enum_expand_exec(
+ layout, block, ptr, prop, uiname, h, UI_BTYPE_ROW, icon_only, label_but);
}
static void ui_item_enum_expand_tabs(uiLayout *layout,
bContext *C,
@@ -915,7 +923,7 @@ static void ui_item_enum_expand_tabs(uiLayout *layout,
{
uiBut *last = block->buttons.last;
- ui_item_enum_expand_exec(layout, block, ptr, prop, uiname, h, UI_BTYPE_TAB, icon_only);
+ ui_item_enum_expand_exec(layout, block, ptr, prop, uiname, h, UI_BTYPE_TAB, icon_only, NULL);
BLI_assert(last != block->buttons.last);
for (uiBut *tab = last ? last->next : block->buttons.first; tab; tab = tab->next) {
UI_but_drawflag_enable(tab, ui_but_align_opposite_to_area_align_get(CTX_wm_region(C)));
@@ -2314,7 +2322,7 @@ void uiItemFullR(uiLayout *layout,
/* expanded enum */
else if (type == PROP_ENUM && expand) {
/* HANS-TODO: Pass label here too. */
- ui_item_enum_expand(layout, block, ptr, prop, name, h, icon_only);
+ ui_item_enum_expand(layout, block, ptr, prop, name, h, icon_only, label_but);
}
/* property with separate label */
else if (type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) {
More information about the Bf-blender-cvs
mailing list