diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-06-27 00:00:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-06-27 00:00:45 +0400 |
commit | f6eed88a7883e07f00949f3952f9214fa70cb996 (patch) | |
tree | d3c2dfd9a007eaabb3e553274e36a9e807ff0d1c | |
parent | ebde8a7ccc2b897b8f788fe8fb7266b638d4b22f (diff) |
- changed recent commit from William to have enum in user preferences as an expanded enum (like it was before)
- rename 'no_bg' argument to 'emboss' (and negated)
- added 'emboss' option for operator buttons.
- Addon UI Layout slight modifications, changed enable/disable buttons for checkbox, grey out text of disabled addons to make it obvious at a glance whats enabled.
- column expanded enums now align text to the left.
- renamed ui_item_enum_row to ui_item_enum_expand since its used for columns and rows.
-rw-r--r-- | release/scripts/ui/space_userpref.py | 38 | ||||
-rw-r--r-- | release/scripts/ui/space_userpref_keymap.py | 8 | ||||
-rw-r--r-- | release/scripts/ui/space_view3d.py | 2 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_layout.c | 22 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_ui_api.c | 15 |
5 files changed, 45 insertions, 40 deletions
diff --git a/release/scripts/ui/space_userpref.py b/release/scripts/ui/space_userpref.py index 807779c8556..96b422a3e0d 100644 --- a/release/scripts/ui/space_userpref.py +++ b/release/scripts/ui/space_userpref.py @@ -533,13 +533,16 @@ class USERPREF_PT_theme(bpy.types.Panel): theme = context.user_preferences.themes[0] + split_themes = layout.split(percentage=0.2) + split_themes.prop(theme, "theme_area", expand=True) + split = layout.split(percentage=0.4) - split.prop(theme, "theme_area", text="") + layout.separator() layout.separator() - split = layout.split() + split = split_themes.split() if theme.theme_area == 'USER_INTERFACE': col = split.column() @@ -737,7 +740,7 @@ class USERPREF_PT_input(InputKeyMapPanel): sub.label(text="Presets:") subrow = sub.row(align=True) subrow.menu("USERPREF_MT_interaction_presets", text=bpy.types.USERPREF_MT_interaction_presets.bl_label) - subrow.operator("wm.interaction_preset_add", text="", icon="ZOOMIN") + subrow.operator("wm.interaction_preset_add", text="", icon='ZOOMIN') sub.separator() sub.label(text="Mouse:") @@ -883,27 +886,16 @@ class USERPREF_PT_addons(bpy.types.Panel): column = box.column() row = column.row() - # Arrow # - # If there are Infos or UI is expanded - if info["expanded"]: - row.operator("wm.addon_expand", icon="TRIA_DOWN").module = module_name - elif info["author"] or info["version"] or info["wiki_url"] or info["location"]: - row.operator("wm.addon_expand", icon="TRIA_RIGHT").module = module_name - else: - # Else, block UI - arrow = row.column() - arrow.enabled = False - arrow.operator("wm.addon_expand", icon="TRIA_RIGHT").module = module_name - - row.label(text=info["name"]) - - if is_enabled: operator = "wm.addon_disable" - else: operator = "wm.addon_enable" + row.operator("wm.addon_expand", icon='TRIA_DOWN' if info["expanded"] else 'TRIA_RIGHT', emboss=False).module = module_name - if info["warning"]: button_icon='ERROR' - else: button_icon='BLENDER' + rowsub = row.row() + rowsub.active = is_enabled + rowsub.label(text=info["name"], icon='ERROR' if info["warning"] else 'BLENDER') - row.operator(operator, icon=button_icon).module = module_name + if is_enabled: + row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="", emboss=False).module = module_name + else: + row.operator("wm.addon_enable", icon='CHECKBOX_DEHLT', text="", emboss=False).module = module_name # Expanded UI (only if additional infos are available) if info["expanded"]: @@ -957,7 +949,7 @@ class USERPREF_PT_addons(bpy.types.Panel): column = box.column() row = column.row() - row.label(text=ext, icon="ERROR") + row.label(text=ext, icon='ERROR') row.operator("wm.addon_disable").module = ext from bpy.props import * diff --git a/release/scripts/ui/space_userpref_keymap.py b/release/scripts/ui/space_userpref_keymap.py index 37007c65f7a..55df622e277 100644 --- a/release/scripts/ui/space_userpref_keymap.py +++ b/release/scripts/ui/space_userpref_keymap.py @@ -167,7 +167,7 @@ class InputKeyMapPanel(bpy.types.Panel): col = self.indented_layout(layout, level) row = col.row() - row.prop(km, "children_expanded", text="", no_bg=True) + row.prop(km, "children_expanded", text="", emboss=False) row.label(text=km.name) row.label() @@ -186,7 +186,7 @@ class InputKeyMapPanel(bpy.types.Panel): # equal in hierarchy to the other children categories subcol = self.indented_layout(col, level + 1) subrow = subcol.row() - subrow.prop(km, "items_expanded", text="", no_bg=True) + subrow.prop(km, "items_expanded", text="", emboss=False) subrow.label(text="%s (Global)" % km.name) else: km.items_expanded = True @@ -227,11 +227,11 @@ class InputKeyMapPanel(bpy.types.Panel): # header bar row = split.row() - row.prop(kmi, "expanded", text="", no_bg=True) + row.prop(kmi, "expanded", text="", emboss=False) row = split.row() row.enabled = km.user_defined - row.prop(kmi, "active", text="", no_bg=True) + row.prop(kmi, "active", text="", emboss=False) if km.modal: row.prop(kmi, "propvalue", text="") diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py index 19140a9e79d..750ffabe89a 100644 --- a/release/scripts/ui/space_view3d.py +++ b/release/scripts/ui/space_view3d.py @@ -2125,7 +2125,7 @@ class VIEW3D_PT_background_image(bpy.types.Panel): layout.active = view.display_background_images box = layout.box() row = box.row(align=True) - row.prop(bg, "show_expanded", text="", no_bg=True) + row.prop(bg, "show_expanded", text="", emboss=False) row.label(text=getattr(bg.image, "name", "Not Set")) row.operator("view3d.remove_background_image", text="", icon='X').index = i diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 35e813b1efc..eb96ca45ff8 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -436,8 +436,9 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon uiBlockSetCurLayout(block, layout); } -static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h, int icon_only) +static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h, int icon_only) { + uiBut *but; EnumPropertyItem *item; const char *identifier; char *name; @@ -457,11 +458,14 @@ static void ui_item_enum_row(uiLayout *layout, uiBlock *block, PointerRNA *ptr, itemw= ui_text_icon_width(block->curlayout, name, icon, 0); if(icon && strcmp(name, "") != 0 && !icon_only) - uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); else if(icon) - uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); else - uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + but= uiDefButR(block, ROW, 0, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL); + + if(ui_layout_local_dir(layout) != UI_LAYOUT_HORIZONTAL) + but->flag |= UI_TEXT_LEFT; } uiBlockSetCurLayout(block, layout); @@ -609,6 +613,9 @@ PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDP w= ui_text_icon_width(layout, name, icon, 0); + if (flag & UI_ITEM_R_NO_BG) + uiBlockSetEmboss(block, UI_EMBOSSN); + if(icon && strcmp(name, "") != 0) but= uiDefIconTextButO(block, BUT, ot->idname, context, icon, (char*)name, 0, 0, w, UI_UNIT_Y, NULL); else if(icon) @@ -619,7 +626,10 @@ PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDP /* text alignment for toolbar buttons */ if((layout->root->type == UI_LAYOUT_TOOLBAR) && !icon) but->flag |= UI_TEXT_LEFT; - + + if (flag & UI_ITEM_R_NO_BG) + uiBlockSetEmboss(block, UI_EMBOSS); + /* assign properties */ if(properties || (flag & UI_ITEM_O_RETURN_PROPS)) { PointerRNA *opptr= uiButGetOperatorPtrRNA(but); @@ -941,7 +951,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index } /* expanded enum */ else if(type == PROP_ENUM && expand) - ui_item_enum_row(layout, block, ptr, prop, name, 0, 0, w, h, icon_only); + ui_item_enum_expand(layout, block, ptr, prop, name, 0, 0, w, h, icon_only); /* property with separate label */ else if(type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) { but= ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h, flag); diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index ccea5fbdf93..29d871dd66e 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -35,7 +35,7 @@ #ifdef RNA_RUNTIME -static void rna_uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, char *name, int icon, int expand, int slider, int toggle, int icon_only, int event, int full_event, int no_bg, int index) +static void rna_uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, char *name, int icon, int expand, int slider, int toggle, int icon_only, int event, int full_event, int emboss, int index) { PropertyRNA *prop= RNA_struct_find_property(ptr, propname); int flag= 0; @@ -51,14 +51,16 @@ static void rna_uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, char flag |= (icon_only)? UI_ITEM_R_ICON_ONLY: 0; flag |= (event)? UI_ITEM_R_EVENT: 0; flag |= (full_event)? UI_ITEM_R_FULL_EVENT: 0; - flag |= (no_bg)? UI_ITEM_R_NO_BG: 0; + flag |= (emboss)? 0: UI_ITEM_R_NO_BG; uiItemFullR(layout, ptr, prop, index, 0, flag, name, icon); } -static PointerRNA rna_uiItemO(uiLayout *layout, char *opname, char *name, int icon) +static PointerRNA rna_uiItemO(uiLayout *layout, char *opname, char *name, int icon, int emboss) { - return uiItemFullO(layout, opname, name, icon, NULL, uiLayoutGetOperatorContext(layout), UI_ITEM_O_RETURN_PROPS); + int flag= UI_ITEM_O_RETURN_PROPS; + flag |= (emboss)? 0: UI_ITEM_R_NO_BG; + return uiItemFullO(layout, opname, name, icon, NULL, uiLayoutGetOperatorContext(layout), flag); } #else @@ -85,7 +87,7 @@ static void api_ui_item_op(FunctionRNA *func) { PropertyRNA *parm; parm= RNA_def_string(func, "operator", "", 0, "", "Identifier of the operator."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED); } static void api_ui_item_op_common(FunctionRNA *func) @@ -160,7 +162,7 @@ void RNA_api_ui_layout(StructRNA *srna) RNA_def_boolean(func, "icon_only", 0, "", "Draw only icons in buttons, no text."); RNA_def_boolean(func, "event", 0, "", "Use button to input key events."); RNA_def_boolean(func, "full_event", 0, "", "Use button to input full events including modifiers."); - RNA_def_boolean(func, "no_bg", 0, "", "Don't draw the button itself, just the icon/text."); + RNA_def_boolean(func, "emboss", 1, "", "Draw the button itself, just the icon/text."); RNA_def_int(func, "index", -1, -2, INT_MAX, "", "The index of this button, when set a single member of an array can be accessed, when set to -1 all array members are used.", -2, INT_MAX); /* RNA_NO_INDEX == -1 */ func= RNA_def_function(srna, "props_enum", "uiItemsEnumR"); @@ -186,6 +188,7 @@ void RNA_api_ui_layout(StructRNA *srna) func= RNA_def_function(srna, "operator", "rna_uiItemO"); api_ui_item_op_common(func); + RNA_def_boolean(func, "emboss", 1, "", "Draw the button itself, just the icon/text."); parm= RNA_def_pointer(func, "properties", "OperatorProperties", "", "Operator properties to fill in, return when 'properties' is set to true."); RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR); RNA_def_function_return(func, parm); |