[Bf-blender-cvs] [a71f072] master: UI: Replace +/- menus with collapsible ones
Campbell Barton
noreply at git.blender.org
Mon Jan 27 08:42:51 CET 2014
Commit: a71f072f9ccaae043069df1cbf95c169a60e494e
Author: Campbell Barton
Date: Mon Jan 27 18:38:53 2014 +1100
https://developer.blender.org/rBa71f072f9ccaae043069df1cbf95c169a60e494e
UI: Replace +/- menus with collapsible ones
Patch D160, by Scott Petrovic with own modifications.
===================================================================
M release/datafiles/blender_icons.svg
A release/datafiles/blender_icons16/icon16_collapsemenu.dat
A release/datafiles/blender_icons32/icon32_collapsemenu.dat
M release/scripts/modules/bpy_types.py
M release/scripts/startup/bl_ui/space_clip.py
M release/scripts/startup/bl_ui/space_console.py
M release/scripts/startup/bl_ui/space_dopesheet.py
M release/scripts/startup/bl_ui/space_filebrowser.py
M release/scripts/startup/bl_ui/space_graph.py
M release/scripts/startup/bl_ui/space_image.py
M release/scripts/startup/bl_ui/space_info.py
M release/scripts/startup/bl_ui/space_logic.py
M release/scripts/startup/bl_ui/space_nla.py
M release/scripts/startup/bl_ui/space_node.py
M release/scripts/startup/bl_ui/space_outliner.py
M release/scripts/startup/bl_ui/space_properties.py
M release/scripts/startup/bl_ui/space_sequencer.py
M release/scripts/startup/bl_ui/space_text.py
M release/scripts/startup/bl_ui/space_time.py
M release/scripts/startup/bl_ui/space_userpref.py
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/editors/include/ED_screen.h
M source/blender/editors/include/UI_icons.h
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_templates.c
M source/blender/editors/screen/area.c
M source/blender/editors/screen/screen_ops.c
M source/blender/makesrna/intern/rna_ui_api.c
M source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
diff --git a/release/datafiles/blender_icons.svg b/release/datafiles/blender_icons.svg
index 3f2aa4a..8d6b9ee 100644
--- a/release/datafiles/blender_icons.svg
+++ b/release/datafiles/blender_icons.svg
@@ -86291,6 +86291,42 @@
style="opacity:0.7;fill:url(#linearGradient18212);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.98985863;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<g
+ style="display:inline;enable-background:new"
+ id="g24559-2-1"
+ transform="translate(279.8665,506.92392)">
+ <rect
+ y="111"
+ x="103"
+ height="16"
+ width="16"
+ id="rect24489-7-4"
+ style="opacity:0;fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.79999995;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="fill:#ececec;fill-opacity:1;stroke:#141414;stroke-width:0.79452544;stroke-opacity:1"
+ id="rect29842"
+ width="11.816368"
+ height="2.1883197"
+ x="105.18671"
+ y="-116.88043"
+ transform="scale(1,-1)" />
+ <rect
+ style="fill:#ececec;fill-opacity:1;stroke:#141414;stroke-width:0.79452544;stroke-opacity:1;display:inline;enable-background:new"
+ id="rect29842-4"
+ width="11.816368"
+ height="2.1883197"
+ x="105.31538"
+ y="-120.80865"
+ transform="scale(1,-1)" />
+ <rect
+ style="fill:#ececec;fill-opacity:1;stroke:#141414;stroke-width:0.79452544;stroke-opacity:1;display:inline;enable-background:new"
+ id="rect29842-4-5"
+ width="11.816368"
+ height="2.1883197"
+ x="105.41832"
+ y="-124.71391"
+ transform="scale(1,-1)" />
+ </g>
+ <g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="C:\Documents and Settings\Pracownia\Pulpit\sss.png"
diff --git a/release/datafiles/blender_icons16/icon16_collapsemenu.dat b/release/datafiles/blender_icons16/icon16_collapsemenu.dat
new file mode 100644
index 0000000..fd16fad
Binary files /dev/null and b/release/datafiles/blender_icons16/icon16_collapsemenu.dat differ
diff --git a/release/datafiles/blender_icons32/icon32_collapsemenu.dat b/release/datafiles/blender_icons32/icon32_collapsemenu.dat
new file mode 100644
index 0000000..d84dd84
Binary files /dev/null and b/release/datafiles/blender_icons32/icon32_collapsemenu.dat differ
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index f7af297..0b9893c 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -753,6 +753,17 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta):
self.preset_operator,
filter_ext=lambda ext: ext.lower() in {".py", ".xml"})
+ @classmethod
+ def draw_collapsible(cls, context, layout):
+ # helper function for (optionally) collapsed header menus
+ # only usable within headers
+ if context.area.show_menus:
+ cls.draw_menus(layout, context)
+ else:
+ layout.separator()
+ layout.menu(cls.__name__, icon='COLLAPSEMENU')
+ layout.separator()
+
class Region(StructRNA):
__slots__ = ()
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index 3a203c7..28d1d52 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -51,18 +51,7 @@ class CLIP_HT_header(Header):
row = layout.row(align=True)
row.template_header()
- if context.area.show_menus:
- sub = row.row(align=True)
- sub.menu("CLIP_MT_view")
-
- if sc.view == 'CLIP':
- if clip:
- sub.menu("CLIP_MT_select")
- sub.menu("CLIP_MT_clip")
- sub.menu("CLIP_MT_track")
- sub.menu("CLIP_MT_reconstruction")
- else:
- sub.menu("CLIP_MT_clip")
+ CLIP_MT_tracking_editor_menus.draw_collapsible(context, layout)
row = layout.row()
row.template_ID(sc, "clip", open="clip.open")
@@ -128,16 +117,7 @@ class CLIP_HT_header(Header):
row = layout.row(align=True)
row.template_header()
- if context.area.show_menus:
- sub = row.row(align=True)
- sub.menu("CLIP_MT_view")
-
- if clip:
- sub.menu("MASK_MT_select")
- sub.menu("CLIP_MT_clip") # XXX - remove?
- sub.menu("MASK_MT_mask")
- else:
- sub.menu("CLIP_MT_clip") # XXX - remove?
+ CLIP_MT_masking_editor_menus.draw_collapsible(context, layout)
row = layout.row()
row.template_ID(sc, "clip", open="clip.open")
@@ -169,6 +149,52 @@ class CLIP_HT_header(Header):
layout.template_running_jobs()
+class CLIP_MT_tracking_editor_menus(Menu):
+ bl_idname = "CLIP_MT_tracking_editor_menus"
+ bl_label = ""
+
+ def draw(self, context):
+ self.draw_menus(self.layout, context)
+
+ @staticmethod
+ def draw_menus(layout, context):
+ sc = context.space_data
+ clip = sc.clip
+
+ layout.menu("CLIP_MT_view")
+
+ if sc.view == 'CLIP':
+ if clip:
+ layout.menu("CLIP_MT_select")
+ layout.menu("CLIP_MT_clip")
+ layout.menu("CLIP_MT_track")
+ layout.menu("CLIP_MT_reconstruction")
+ else:
+ layout.menu("CLIP_MT_clip")
+
+
+class CLIP_MT_masking_editor_menus(Menu):
+
+ bl_idname = "CLIP_MT_masking_editor_menus"
+ bl_label = ""
+
+ def draw(self, context):
+ self.draw_menus(self.layout, context)
+
+ @staticmethod
+ def draw_menus(layout, context):
+ layout = self.layout
+
+ layout.menu("CLIP_MT_view")
+
+ if clip:
+ layout.menu("MASK_MT_select")
+ layout.menu("CLIP_MT_clip") # XXX - remove?
+ layout.menu("MASK_MT_mask")
+ else:
+ layout.menu("CLIP_MT_clip") # XXX - remove?
+
+
class CLIP_PT_clip_view_panel:
@classmethod
diff --git a/release/scripts/startup/bl_ui/space_console.py b/release/scripts/startup/bl_ui/space_console.py
index e097dfe..ec16cfd 100644
--- a/release/scripts/startup/bl_ui/space_console.py
+++ b/release/scripts/startup/bl_ui/space_console.py
@@ -29,12 +29,23 @@ class CONSOLE_HT_header(Header):
layout.template_header()
- if context.area.show_menus:
- layout.menu("CONSOLE_MT_console")
+ CONSOLE_MT_editor_menus.draw_collapsible(context, layout)
layout.operator("console.autocomplete", text="Autocomplete")
+class CONSOLE_MT_editor_menus(Menu):
+ bl_idname = "CONSOLE_MT_editor_menus"
+ bl_label = ""
+
+ def draw(self, context):
+ self.draw_menus(self.layout, context)
+
+ @staticmethod
+ def draw_menus(layout, context):
+ layout.menu("CONSOLE_MT_console")
+
+
class CONSOLE_MT_console(Menu):
bl_label = "Console"
diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py
index 9d31703..269c960 100644
--- a/release/scripts/startup/bl_ui/space_dopesheet.py
+++ b/release/scripts/startup/bl_ui/space_dopesheet.py
@@ -107,20 +107,7 @@ class DOPESHEET_HT_header(Header):
row = layout.row(align=True)
row.template_header()
- if context.area.show_menus:
- row.menu("DOPESHEET_MT_view")
- row.menu("DOPESHEET_MT_select")
- row.menu("DOPESHEET_MT_marker")
-
- if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action is not None):
- row.menu("DOPESHEET_MT_channel")
- elif st.mode == 'GPENCIL':
- row.menu("DOPESHEET_MT_gpencil_channel")
-
- if st.mode != 'GPENCIL':
- row.menu("DOPESHEET_MT_key")
- else:
- row.menu("DOPESHEET_MT_gpencil_frame")
+ DOPESHEET_MT_editor_menus.draw_collapsible(context, layout)
layout.prop(st, "mode", text="")
layout.prop(st.dopesheet, "show_summary", text="Summary")
@@ -144,6 +131,32 @@ class DOPESHEET_HT_header(Header):
row.operator("action.paste", text="", icon='PASTEDOWN')
+class DOPESHEET_MT_editor_menus(Menu):
+ bl_idname = "DOPESHEET_MT_editor_menus"
+ bl_label = ""
+
+ def draw(self, context):
+ self.draw_menus(self.layout, context)
+
+ @staticmethod
+ def draw_menus(layout, context):
+ st = context.space_data
+
+ layout.menu("DOPESHEET_MT_view")
+ layout.menu("DOPESHEET_MT_select")
+ layout.menu("DOPESHEET_MT_marker")
+
+ if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action is not None):
+ layout.menu("DOPESHEET_MT_channel")
+ elif st.mode == 'GPENCIL':
+ layout.menu("DOPESHEET_MT_gpencil_channel")
+
+ if st.mode != 'GPENCIL':
+ layout.menu("DOPESHEET_MT_key")
+ else:
+ layout.menu("DOPESHEET_MT_gpencil_frame")
+
+
class DOPESHEET_MT_view(Menu):
bl_label = "View"
diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 201ac0a..b90eb7a 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -29,7 +29,7 @@ class FILEBROWSER_HT_header(Header):
st = context.space_data
- layout.template_header(menus=False)
+ layout.template_header()
row = layout.row()
row.separator()
diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py
index 61e2f10..775f398 100644
--- a/release/scripts/startup/bl_ui/space_graph.py
+++ b/release/scripts/startup/bl_ui/space_graph.py
@@ -35,12 +35,7 @@ class GRAPH_HT_header(Header):
row = layout.row(align=True)
row.template_h
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list