diff options
author | Hans Goudey <h.goudey@me.com> | 2020-09-11 20:14:51 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2020-09-11 20:14:51 +0300 |
commit | 3c52c75af2fe21e9c9c96e0914a4ac72388ddb78 (patch) | |
tree | 97284436721455b17bdcc99945054b8ac76f04c5 | |
parent | 537daa5dd47052abbc1fb8fabf218a0f43eabe16 (diff) | |
parent | 28f13a5697c7197616a3d1f9fb4ad02e2a78ad94 (diff) |
Merge branch 'property-search-button-label-pointer' into property-search-move-context-to-panel
5 files changed, 118 insertions, 150 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 86275ce4d39..d5d489b1742 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -2362,10 +2362,7 @@ uiPropertySplitWrapper uiItemPropertySplitWrapperCreate(uiLayout *parent_layout) void uiItemL(uiLayout *layout, const char *name, int icon); /* label */ void uiItemL_ex( uiLayout *layout, const char *name, int icon, const bool highlight, const bool redalert); -uiBut *uiItemL_respect_property_split(uiLayout *layout, - const char *text, - int icon, - uiLayout **r_layout); +uiLayout *uiItemL_respect_property_split(uiLayout *layout, const char *text, int icon); /* label icon for dragging */ void uiItemLDrag(uiLayout *layout, struct PointerRNA *ptr, const char *name, int icon); /* menu */ diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index fe0d9fda44b..4661d0816ae 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -270,14 +270,6 @@ struct uiBut { uiButPushedStateFunc pushed_state_func; void *pushed_state_arg; - /** - * Used for property search, so that a button's label and decorator can be filtered and - * unfiltered along with it. Due to the sometimes arbitrary nature of which button to choose - * for these values, they aren't always filled. - */ - uiBut *label_but; - uiBut *decorator_but; - /* pointer back */ uiBlock *block; }; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 4bfd058eb07..4cf2953153e 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -80,12 +80,25 @@ /* uiLayoutRoot */ +/** + * A group of button references, used by property search to keep track of sets of buttons that + * should be searched together. For example, in property split layouts number buttons and their + * labels (and even their decorators) are separate buttons, but they must be searched and + * highlighted together. + */ +typedef struct uiButtonGroup { + uiButtonGroup *next, *prev; + ListBase *buttons; +} uiButtonGroup; + typedef struct uiLayoutRoot { struct uiLayoutRoot *next, *prev; int type; int opcontext; + ListBase button_groups; /* #uiButtonGroup. */ + int emw, emh; int padding; @@ -220,8 +233,6 @@ typedef struct uiLayoutItemRoot { /** \} */ -static uiBut *uiItemL_(uiLayout *layout, const char *name, int icon); - /* -------------------------------------------------------------------- */ /** \name Item * \{ */ @@ -497,8 +508,7 @@ static void ui_item_array(uiLayout *layout, int toggle, bool icon_only, bool compact, - bool show_text, - uiBut *label_but) + bool show_text) { const uiStyle *style = layout->root->style; uiBut *but; @@ -663,10 +673,7 @@ static void ui_item_array(uiLayout *layout, /* special case, boolean array in a menu, this could be used in a more generic way too */ if (ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand && ELEM(len, 3, 4)) { - but = uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, 0, 0, w, UI_UNIT_Y); - if (label_but != NULL) { - but->label_but = label_but; - } + uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, 0, 0, w, UI_UNIT_Y); } else { bool *boolarr = NULL; @@ -717,13 +724,6 @@ static void ui_item_array(uiLayout *layout, if ((a == 0) && (subtype == PROP_AXISANGLE)) { UI_but_unit_type_set(but, PROP_UNIT_ROTATION); } - - /* Set the label button for the array item. */ - if (label_but != NULL) { - but->label_but = label_but; - label_but = label_but->next; - BLI_assert(label_but != NULL); - } } if (boolarr) { @@ -766,8 +766,7 @@ 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, - uiBut *label_but) + const bool is_first) { const char *name = (!uiname || uiname[0]) ? item->name : ""; const int icon = item->icon; @@ -806,10 +805,6 @@ 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, @@ -819,8 +814,7 @@ static void ui_item_enum_expand_exec(uiLayout *layout, const char *uiname, const int h, const eButType but_type, - const bool icon_only, - uiBut *label_but) + const bool icon_only) { /* XXX: The way this function currently handles uiname parameter * is insane and inconsistent with general UI API: @@ -896,7 +890,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, label_but); + layout, block, ptr, prop, uiname, h, but_type, icon_only, item, is_first); } UI_block_layout_set_current(block, layout); @@ -911,11 +905,9 @@ static void ui_item_enum_expand(uiLayout *layout, PropertyRNA *prop, const char *uiname, const int h, - const bool icon_only, - uiBut *label_but) + const bool icon_only) { - ui_item_enum_expand_exec( - layout, block, ptr, prop, uiname, h, UI_BTYPE_ROW, icon_only, label_but); + ui_item_enum_expand_exec(layout, block, ptr, prop, uiname, h, UI_BTYPE_ROW, icon_only); } static void ui_item_enum_expand_tabs(uiLayout *layout, bContext *C, @@ -928,7 +920,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, NULL); + ui_item_enum_expand_exec(layout, block, ptr, prop, uiname, h, UI_BTYPE_TAB, icon_only); 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))); @@ -967,12 +959,10 @@ static uiBut *ui_item_with_label(uiLayout *layout, { uiLayout *sub = layout; uiBut *but = NULL; - uiBut *label_but = NULL; PropertyType type; PropertySubType subtype; int prop_but_width = w_hint; #ifdef UI_PROP_DECORATE - uiBut *decorator_but = NULL; uiLayout *layout_prop_decorate = NULL; const bool use_prop_sep = ((layout->item.flag & UI_ITEM_PROP_SEP) != 0); const bool use_prop_decorate = use_prop_sep && (layout->item.flag & UI_ITEM_PROP_DECORATE) && @@ -993,7 +983,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, #ifdef UI_PROP_DECORATE if (name[0]) { if (use_prop_sep) { - label_but = uiItemL_respect_property_split(layout, name, 0, &layout_prop_decorate); + layout_prop_decorate = uiItemL_respect_property_split(layout, name, 0); } else #endif @@ -1009,8 +999,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, else { w_label = w_hint / 3; } - label_but = uiDefBut( - block, UI_BTYPE_LABEL, 0, name, x, y, w_label, h, NULL, 0.0, 0.0, 0, 0, ""); + uiDefBut(block, UI_BTYPE_LABEL, 0, name, x, y, w_label, h, NULL, 0.0, 0.0, 0, 0, ""); } } @@ -1088,15 +1077,10 @@ static uiBut *ui_item_with_label(uiLayout *layout, #ifdef UI_PROP_DECORATE /* Only for alignment. */ if (use_prop_decorate) { /* Note that sep flag may have been unset meanwhile. */ - decorator_but = uiItemL_(layout_prop_decorate ? layout_prop_decorate : sub, NULL, ICON_BLANK1); + uiItemL(layout_prop_decorate ? layout_prop_decorate : sub, NULL, ICON_BLANK1); } #endif /* UI_PROP_DECORATE */ - /* Set the button's label and decorator even if they are NULL. They can be changed - * further with the return value of this function anyway. */ - but->label_but = label_but; - but->decorator_but = decorator_but; - UI_block_layout_set_current(block, layout); return but; } @@ -1935,34 +1919,28 @@ static uiLayout *ui_layout_heading_find(uiLayout *cur_layout) return NULL; } -/** - * \return The label button added. - */ -static uiBut *ui_layout_heading_label_add(uiLayout *layout, - uiLayout *heading_layout, - bool right_align, - bool respect_prop_split) +static void ui_layout_heading_label_add(uiLayout *layout, + uiLayout *heading_layout, + bool right_align, + bool respect_prop_split) { const int prev_alignment = layout->alignment; - uiBut *label_but = NULL; if (right_align) { uiLayoutSetAlignment(layout, UI_LAYOUT_ALIGN_RIGHT); } if (respect_prop_split) { - label_but = uiItemL_respect_property_split(layout, heading_layout->heading, ICON_NONE, NULL); + uiItemL_respect_property_split(layout, heading_layout->heading, ICON_NONE); } else { - label_but = uiItemL_(layout, heading_layout->heading, ICON_NONE); + uiItemL(layout, heading_layout->heading, ICON_NONE); } /* After adding the heading label, we have to mark it somehow as added, so it's not added again * for other items in this layout. For now just clear it. */ heading_layout->heading[0] = '\0'; layout->alignment = prev_alignment; - - return label_but; } /** @@ -2023,6 +2001,7 @@ void uiItemFullR(uiLayout *layout, #endif /* UI_PROP_DECORATE */ UI_block_layout_set_current(block, layout); + layout_root_new_button_group(layout->root); /* retrieve info */ const PropertyType type = RNA_property_type(prop); @@ -2144,10 +2123,6 @@ void uiItemFullR(uiLayout *layout, } uiBut *but = NULL; - /* Store the label to assign it to the button afterwards. This is the first - * label button if the item is an array and there are a series of buttons. - * Decorators are assigned as they are built later on. */ - uiBut *label_but = NULL; /* Split the label / property. */ uiLayout *layout_parent = layout; @@ -2167,7 +2142,7 @@ void uiItemFullR(uiLayout *layout, layout = uiLayoutColumn(layout_row ? layout_row : layout, true); layout->space = 0; if (heading_layout) { - label_but = ui_layout_heading_label_add(layout, heading_layout, false, false); + ui_layout_heading_label_add(layout, heading_layout, false, false); } } else { @@ -2194,43 +2169,39 @@ void uiItemFullR(uiLayout *layout, *s++ = str[0]; *s++ = '\0'; } - uiBut *new_label = uiDefBut(block, - UI_BTYPE_LABEL, - 0, - use_prefix ? name_with_suffix : str, - 0, - 0, - w, - UI_UNIT_Y, - NULL, - 0.0, - 0.0, - 0, - 0, - ""); - new_label->drawflag |= UI_BUT_TEXT_RIGHT; - new_label->drawflag &= ~UI_BUT_TEXT_LEFT; - - if (a == 0) { - label_but = new_label; - } + but = uiDefBut(block, + UI_BTYPE_LABEL, + 0, + use_prefix ? name_with_suffix : str, + 0, + 0, + w, + UI_UNIT_Y, + NULL, + 0.0, + 0.0, + 0, + 0, + ""); + but->drawflag |= UI_BUT_TEXT_RIGHT; + but->drawflag &= ~UI_BUT_TEXT_LEFT; + label_added = true; } } else { if (name) { - label_but = uiDefBut( + but = uiDefBut( block, UI_BTYPE_LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); - label_but->drawflag |= UI_BUT_TEXT_RIGHT; - label_but->drawflag &= ~UI_BUT_TEXT_LEFT; + but->drawflag |= UI_BUT_TEXT_RIGHT; + but->drawflag &= ~UI_BUT_TEXT_LEFT; label_added = true; } } if (!label_added && heading_layout) { - label_but = ui_layout_heading_label_add(layout_sub, heading_layout, true, false); - label_added = true; + ui_layout_heading_label_add(layout_sub, heading_layout, true, false); } layout_split = ui_item_prop_split_layout_hack(layout_parent, layout_split); @@ -2273,7 +2244,7 @@ void uiItemFullR(uiLayout *layout, else if (heading_layout) { /* Could not add heading to split layout, fallback to inserting it to the layout with the * heading itself. */ - label_but = ui_layout_heading_label_add(heading_layout, heading_layout, false, false); + ui_layout_heading_label_add(heading_layout, heading_layout, false, false); } /* array property */ @@ -2300,29 +2271,26 @@ void uiItemFullR(uiLayout *layout, toggle, icon_only, compact, - !use_prop_sep_split_label, - label_but); + !use_prop_sep_split_label); } /* enum item */ else if (type == PROP_ENUM && index == RNA_ENUM_VALUE) { if (icon && name[0] && !icon_only) { - but = uiDefIconTextButR_prop( + uiDefIconTextButR_prop( block, UI_BTYPE_ROW, 0, icon, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); } else if (icon) { - but = uiDefIconButR_prop( + uiDefIconButR_prop( block, UI_BTYPE_ROW, 0, icon, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); } else { - but = uiDefButR_prop( + uiDefButR_prop( block, UI_BTYPE_ROW, 0, name, 0, 0, w, h, ptr, prop, -1, 0, value, -1, -1, NULL); } - BLI_assert(but != NULL); - but->label_but = label_but; } /* expanded enum */ else if (type == PROP_ENUM && expand) { - ui_item_enum_expand(layout, block, ptr, prop, name, h, icon_only, label_but); + ui_item_enum_expand(layout, block, ptr, prop, name, h, icon_only); } /* property with separate label */ else if (type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) { @@ -2336,8 +2304,6 @@ void uiItemFullR(uiLayout *layout, if (layout->activate_init) { UI_but_flag_enable(but, UI_BUT_ACTIVATE_ON_INIT); } - BLI_assert(but != NULL); - but->label_but = label_but; } /* single button */ else { @@ -2371,8 +2337,6 @@ void uiItemFullR(uiLayout *layout, if (layout->activate_init) { UI_but_flag_enable(but, UI_BUT_ACTIVATE_ON_INIT); } - - but->label_but = label_but; } /* The resulting button may have the icon set since boolean button drawing @@ -2408,16 +2372,13 @@ void uiItemFullR(uiLayout *layout, /* The icons are set in 'ui_but_anim_flag' */ uiItemDecoratorR_prop(layout_col, ptr_dec, prop_dec, but_decorate->rnaindex); - uiBut *decorator = block->buttons.last; - but_decorate->decorator_but = decorator; + but = block->buttons.last; /* Order the decorator after the button we decorate, this is used so we can always * do a quick lookup. */ - BLI_remlink(&block->buttons, decorator); - BLI_insertlinkafter(&block->buttons, but_decorate, decorator); - - /* Assign decorator to the property's button so that they can be filtered together. */ - but_decorate = decorator->next; + BLI_remlink(&block->buttons, but); + BLI_insertlinkafter(&block->buttons, but_decorate, but); + but_decorate = but->next; } BLI_assert(ELEM(i, 1, ui_decorate.len)); @@ -2791,6 +2752,8 @@ void uiItemPointerR_prop(uiLayout *layout, char namestr[UI_MAX_NAME_STR]; const bool use_prop_sep = ((layout->item.flag & UI_ITEM_PROP_SEP) != 0); + layout_root_new_button_group(layout->root); + type = RNA_property_type(prop); if (!ELEM(type, PROP_POINTER, PROP_STRING, PROP_ENUM)) { RNA_warning("Property %s.%s must be a pointer, string or enum", @@ -3246,42 +3209,29 @@ uiPropertySplitWrapper uiItemPropertySplitWrapperCreate(uiLayout *parent_layout) return split_wrapper; } -/** +/* * Helper to add a label and creates a property split layout if needed. - * - * \param r_layout: Returns a column to put decorators in if property separate is on, otherwise - * returns the original layout. */ -uiBut *uiItemL_respect_property_split(uiLayout *layout, - const char *text, - int icon, - uiLayout **r_layout) +uiLayout *uiItemL_respect_property_split(uiLayout *layout, const char *text, int icon) { - uiBut *label_but; if (layout->item.flag & UI_ITEM_PROP_SEP) { uiBlock *block = uiLayoutGetBlock(layout); const uiPropertySplitWrapper split_wrapper = uiItemPropertySplitWrapperCreate(layout); /* Further items added to 'layout' will automatically be added to split_wrapper.property_row */ - label_but = uiItemL_(split_wrapper.label_column, text, icon); + uiItemL_(split_wrapper.label_column, text, icon); UI_block_layout_set_current(block, split_wrapper.property_row); - if (r_layout != NULL) { - *r_layout = split_wrapper.decorate_column; - } + return split_wrapper.decorate_column; } - else { - char namestr[UI_MAX_NAME_STR]; - if (text) { - text = ui_item_name_add_colon(text, namestr); - } - label_but = uiItemL_(layout, text, icon); - if (r_layout != NULL) { - *r_layout = layout; - } + char namestr[UI_MAX_NAME_STR]; + if (text) { + text = ui_item_name_add_colon(text, namestr); } - return label_but; + uiItemL_(layout, text, icon); + + return layout; } void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, const char *name, int icon) @@ -5341,6 +5291,33 @@ static void ui_layout_free(uiLayout *layout) MEM_freeN(layout); } +static void layout_root_free(uiLayoutRoot *root) +{ + BLI_freelistN(&root->button_groups); + ui_layout_free(root->layout); + MEM_freeN(root); +} + +/** + * Every function that adds a set of buttons must create another group, + * then #ui_def_but adds buttons to the current group (the last). + */ +static void layout_root_new_button_group(uiLayoutRoot *root) +{ + uiButtonGroup *new_group = MEM_mallocN(sizeof(uiButtonGroup), __func__); + BLI_listbase_clear(&new_group->buttons); + BLI_addtail(&root->button_groups, new_group); +} + +static void button_group_add_but(uiLayoutRoot *root, const uiBut *but) +{ + uiButtonGroup *current_button_group = root->button_groups.last; + + BLI_assert(current_button_group != NULL); + + BLI_addtail(¤t_button_group->buttons, but); +} + static void ui_layout_add_padding_button(uiLayoutRoot *root) { if (root->padding) { @@ -5375,6 +5352,8 @@ uiLayout *UI_block_layout(uiBlock *block, root->padding = padding; root->opcontext = WM_OP_INVOKE_REGION_WIN; + BLI_listbase_clear(&root->button_groups); + layout = MEM_callocN(sizeof(uiLayout), "uiLayout"); layout->item.type = (type == UI_LAYOUT_VERT_BAR) ? ITEM_LAYOUT_COLUMN : ITEM_LAYOUT_ROOT; @@ -5459,6 +5438,8 @@ void ui_layout_add_but(uiLayout *layout, uiBut *but) if (layout->emboss != UI_EMBOSS_UNDEFINED) { but->emboss = layout->emboss; } + + button_group_add_but(layout->root, but); } bool ui_layout_replace_but_ptr(uiLayout *layout, const void *old_but_ptr, uiBut *new_but) @@ -5524,16 +5505,14 @@ void UI_block_layout_resolve(uiBlock *block, int *r_x, int *r_y) block->curlayout = NULL; - LISTBASE_FOREACH (uiLayoutRoot *, root, &block->layouts) { + LISTBASE_FOREACH_MUTABLE (uiLayoutRoot *, root, &block->layouts) { ui_layout_add_padding_button(root); /* NULL in advance so we don't interfere when adding button */ ui_layout_end(block, root->layout, r_x, r_y); - ui_layout_free(root->layout); + layout_root_free(root); } - BLI_freelistN(&block->layouts); - /* XXX silly trick, interface_templates.c doesn't get linked * because it's not used by other files in this module? */ { diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 9141a46499e..77a9d9f549a 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -897,7 +897,7 @@ static void template_ID(const bContext *C, if (text) { /* Add label resepecting the separated layout property split state. */ - uiItemL_respect_property_split(layout, text, ICON_NONE, NULL); + uiItemL_respect_property_split(layout, text, ICON_NONE); } if (flag & UI_ID_BROWSE) { diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index ba3ed620ff1..47f910402fe 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -423,7 +423,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) col = uiLayoutColumn(layout, true); /* keyframe itself */ { - uiItemL_respect_property_split(col, IFACE_("Key Frame"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Key Frame"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, @@ -441,7 +441,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) 0, NULL); - uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, @@ -468,7 +468,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ)) { col = uiLayoutColumn(layout, true); - uiItemL_respect_property_split(col, IFACE_("Left Handle Type"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Left Handle Type"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_MENU, B_REDR, @@ -487,7 +487,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) "Type of left handle"); UI_but_func_set(but, graphedit_activekey_handles_cb, fcu, bezt); - uiItemL_respect_property_split(col, IFACE_("Frame"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Frame"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, @@ -506,7 +506,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) NULL); UI_but_func_set(but, graphedit_activekey_left_handle_coord_cb, fcu, bezt); - uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, @@ -532,7 +532,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) /* NOTE: special update callbacks are needed on the coords here due to T39911 */ col = uiLayoutColumn(layout, true); - uiItemL_respect_property_split(col, IFACE_("Right Handle Type"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Right Handle Type"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_MENU, B_REDR, @@ -551,7 +551,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) "Type of right handle"); UI_but_func_set(but, graphedit_activekey_handles_cb, fcu, bezt); - uiItemL_respect_property_split(col, IFACE_("Frame"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Frame"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, @@ -570,7 +570,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *panel) NULL); UI_but_func_set(but, graphedit_activekey_right_handle_coord_cb, fcu, bezt); - uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE, NULL); + uiItemL_respect_property_split(col, IFACE_("Value"), ICON_NONE); but = uiDefButR(block, UI_BTYPE_NUM, B_REDR, |