diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py index 1b7a8f4a66e..6bec652045e 100644 --- a/release/scripts/startup/bl_ui/properties_data_armature.py +++ b/release/scripts/startup/bl_ui/properties_data_armature.py @@ -130,7 +130,7 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel): col.active = (ob.proxy is None) col.operator("pose.group_add", icon='ZOOMIN', text="") col.operator("pose.group_remove", icon='ZOOMOUT', text="") - col.menu("DATA_PT_bone_group_specials", icon='BLANK1', text="") + col.menu("DATA_PT_bone_group_specials", icon='DOWNARROW_HLT', text="") if group: col.separator() col.operator("pose.group_move", icon='TRIA_UP', text="").direction = 'UP' diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py index e23db7c59a1..7ca464ce055 100644 --- a/release/scripts/startup/bl_ui/properties_data_mesh.py +++ b/release/scripts/startup/bl_ui/properties_data_mesh.py @@ -149,7 +149,7 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel): col = row.column(align=True) col.operator("object.vertex_group_add", icon='ZOOMIN', text="") col.operator("object.vertex_group_remove", icon='ZOOMOUT', text="") - col.menu("MESH_MT_vertex_group_specials", icon='BLANK1', text="") + col.menu("MESH_MT_vertex_group_specials", icon='DOWNARROW_HLT', text="") if group: col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP' col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN' @@ -208,7 +208,7 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel): sub = col.column(align=True) sub.operator("object.shape_key_add", icon='ZOOMIN', text="").from_mix = False sub.operator("object.shape_key_remove", icon='ZOOMOUT', text="") - sub.menu("MESH_MT_shape_key_specials", icon='BLANK1', text="") + sub.menu("MESH_MT_shape_key_specials", icon='DOWNARROW_HLT', text="") if kb: col.separator() diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index d2fe40fe9dc..6e66bd0d98b 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -110,7 +110,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): col.operator("object.material_slot_add", icon='ZOOMIN', text="") col.operator("object.material_slot_remove", icon='ZOOMOUT', text="") - col.menu("MATERIAL_MT_specials", icon='BLANK1', text="") + col.menu("MATERIAL_MT_specials", icon='DOWNARROW_HLT', text="") if ob.mode == 'EDIT': row = layout.row(align=True) diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index 976684ea742..1d5e96cf701 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -130,7 +130,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel): col = row.column(align=True) col.operator("texture.slot_move", text="", icon='TRIA_UP').type = 'UP' col.operator("texture.slot_move", text="", icon='TRIA_DOWN').type = 'DOWN' - col.menu("TEXTURE_MT_specials", icon='BLANK1', text="") + col.menu("TEXTURE_MT_specials", icon='DOWNARROW_HLT', text="") split = layout.split(percentage=0.65) col = split.column() @@ -511,7 +511,7 @@ class TEXTURE_PT_envmap(TextureTypePanel, Panel): row = layout.row() row.prop(env, "source", expand=True) - row.menu("TEXTURE_MT_envmap_specials", icon='BLANK1', text="") + row.menu("TEXTURE_MT_envmap_specials", icon='DOWNARROW_HLT', text="") if env.source == 'IMAGE_FILE': layout.template_ID(tex, "image", open="image.open") diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index c0f9d6dd5cd..b82a0c5e480 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -171,6 +171,9 @@ typedef struct uiLayout uiLayout; #define UI_PANEL_WIDTH 340 #define UI_COMPACT_PANEL_WIDTH 160 +/* uiBut->drawflag */ +#define UI_BUT_DRAW_ENUM_ARROWS (1 << 0) /* draw enum-like up/down arrows for button */ + /* scale fixed button widths by this to account for DPI * 8.4852 == sqrtf(72.0f)) */ #define UI_DPI_FAC (sqrtf((float)U.dpi) / 8.48528137423857f) @@ -427,6 +430,9 @@ int UI_but_active_drop_name(struct bContext *C); void uiButSetFlag(uiBut *but, int flag); void uiButClearFlag(uiBut *but, int flag); +void uiButSetDrawFlag(uiBut *but, int flag); +void uiButClearDrawFlag(uiBut *but, int flag); + /* special button case, only draw it when used actively, for outliner etc */ int uiButActiveOnly(const struct bContext *C, uiBlock *block, uiBut *but); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 0c13b5de02e..c0cd17d16d2 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -3356,6 +3356,16 @@ void uiButClearFlag(uiBut *but, int flag) but->flag &= ~flag; } +void uiButSetDrawFlag(uiBut *but, int flag) +{ + but->drawflag |= flag; +} + +void uiButClearDrawFlag(uiBut *but, int flag) +{ + but->drawflag &= ~flag; +} + int uiButGetRetVal(uiBut *but) { return but->retval; diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 2c4ec9ac482..5d12bdf71da 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -150,7 +150,7 @@ typedef struct { struct uiBut { struct uiBut *next, *prev; - int flag; + int flag, drawflag; short type, pointype, bit, bitnr, retval, strwidth, ofs, pos, selsta, selend, alignnr; short pad1; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 6b0ffb1b54e..6d1766c8bf1 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -376,6 +376,9 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str else if (flag & UI_ID_BROWSE) { but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 1.6, UI_UNIT_Y, TIP_(template_id_browse_tip(type))); + + uiButSetDrawFlag(but, UI_BUT_DRAW_ENUM_ARROWS); + if (type) { but->icon = RNA_struct_ui_icon(type); /* default dragging of icon for id browse buttons */ diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 2edc2b22e7e..4d483b69ca2 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -3136,10 +3136,10 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct /* no text, with icon */ else if (!but->str[0] && but->icon) { - if (but->flag & UI_ICON_PREVIEW) - wt = widget_type(UI_WTYPE_MENU_ICON_RADIO); /* no arrows */ - else + if (but->drawflag & UI_BUT_DRAW_ENUM_ARROWS) wt = widget_type(UI_WTYPE_MENU_RADIO); /* with arrows */ + else + wt = widget_type(UI_WTYPE_MENU_ICON_RADIO); /* no arrows */ } /* with menu arrows */ else