diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-08-19 04:55:30 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-08-19 04:55:30 +0400 |
commit | 184ac26dd0187d70985cdc49ae527a1900fce840 (patch) | |
tree | 7b946acb11e0a430b61e2f608e0308a1b18439d7 /release/ui | |
parent | e21c1dde810b3447eaa1f6a667ae027978b18d9b (diff) |
2.5: Headers
* Fix header menu spacing bug, and make it consistent for all headers.
* For consistency, always put menus first in the header, then any enums
to switch the type of data displayed.
* Node editor header ported to python layout. Still quite a few
operators missing to make the menus complete.
* RNA wrapped node editor, and added use_nodes property to material
and scene.
Diffstat (limited to 'release/ui')
-rw-r--r-- | release/ui/space_buttons.py | 7 | ||||
-rw-r--r-- | release/ui/space_console.py | 27 | ||||
-rw-r--r-- | release/ui/space_filebrowser.py | 2 | ||||
-rw-r--r-- | release/ui/space_image.py | 15 | ||||
-rw-r--r-- | release/ui/space_info.py | 17 | ||||
-rw-r--r-- | release/ui/space_node.py | 121 | ||||
-rw-r--r-- | release/ui/space_outliner.py | 7 | ||||
-rw-r--r-- | release/ui/space_sequencer.py | 30 | ||||
-rw-r--r-- | release/ui/space_text.py | 21 | ||||
-rw-r--r-- | release/ui/space_time.py | 11 | ||||
-rw-r--r-- | release/ui/space_view3d.py | 17 |
11 files changed, 205 insertions, 70 deletions
diff --git a/release/ui/space_buttons.py b/release/ui/space_buttons.py index cf1c385e3dc..3cf782e615f 100644 --- a/release/ui/space_buttons.py +++ b/release/ui/space_buttons.py @@ -10,11 +10,12 @@ class Buttons_HT_header(bpy.types.Header): so = context.space_data scene = context.scene - layout.template_header() + row= layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row(align=True) - row.itemM("Buttons_MT_view", text="View") + sub = row.row(align=True) + sub.itemM("Buttons_MT_view", text="View") row = layout.row() row.itemR(so, "buttons_context", expand=True, text="") diff --git a/release/ui/space_console.py b/release/ui/space_console.py index 2cf41a1f88f..45cb2a856e1 100644 --- a/release/ui/space_console.py +++ b/release/ui/space_console.py @@ -12,17 +12,22 @@ class CONSOLE_HT_header(bpy.types.Header): # text = sc.text layout = self.layout - layout.template_header() + row= layout.row(align=True) + row.template_header() - row = layout.row() - row.itemR(sc, "console_type", expand=True) + if context.area.show_menus: + sub = row.row(align=True) + + if sc.console_type == 'REPORT': + sub.itemM("CONSOLE_MT_report") + else: + sub.itemM("CONSOLE_MT_console") + + layout.itemS() + layout.itemR(sc, "console_type", expand=True) if sc.console_type == 'REPORT': - - if context.area.show_menus: - row = layout.row() - row.itemM("CONSOLE_MT_report") - + row = layout.row(align=True) row.itemR(sc, "show_report_debug", text="Debug") row.itemR(sc, "show_report_info", text="Info") row.itemR(sc, "show_report_operator", text="Operators") @@ -32,12 +37,6 @@ class CONSOLE_HT_header(bpy.types.Header): row = layout.row() row.enabled = sc.show_report_operator row.itemO("console.report_replay") - - else: - if context.area.show_menus: - row = layout.row() - row.itemM("CONSOLE_MT_console") - class CONSOLE_MT_console(bpy.types.Menu): __space_type__ = "CONSOLE" diff --git a/release/ui/space_filebrowser.py b/release/ui/space_filebrowser.py index 0fecbdbfbba..51a8f3f78e8 100644 --- a/release/ui/space_filebrowser.py +++ b/release/ui/space_filebrowser.py @@ -10,7 +10,7 @@ class FILEBROWSER_HT_header(bpy.types.Header): layout = self.layout params = st.params - layout.template_header() + layout.template_header(menus=False) row = layout.row(align=True) row.itemO("file.parent", text="", icon='ICON_FILE_PARENT') diff --git a/release/ui/space_image.py b/release/ui/space_image.py index 7154bb8ae1c..090067120b1 100644 --- a/release/ui/space_image.py +++ b/release/ui/space_image.py @@ -205,23 +205,24 @@ class IMAGE_HT_header(bpy.types.Header): show_paint = sima.show_paint show_uvedit = sima.show_uvedit - layout.template_header() + row = layout.row(align=True) + row.template_header() # menus if context.area.show_menus: - row = layout.row() - row.itemM("IMAGE_MT_view") + sub = row.row(align=True) + sub.itemM("IMAGE_MT_view") if show_uvedit: - row.itemM("IMAGE_MT_select") + sub.itemM("IMAGE_MT_select") if ima and ima.dirty: - row.itemM("IMAGE_MT_image", text="Image*") + sub.itemM("IMAGE_MT_image", text="Image*") else: - row.itemM("IMAGE_MT_image", text="Image") + sub.itemM("IMAGE_MT_image", text="Image") if show_uvedit: - row.itemM("IMAGE_MT_uvs") + sub.itemM("IMAGE_MT_uvs") layout.template_ID(sima, "image", new="image.new") diff --git a/release/ui/space_info.py b/release/ui/space_info.py index e0b5c770f29..770387498a2 100644 --- a/release/ui/space_info.py +++ b/release/ui/space_info.py @@ -9,18 +9,19 @@ class INFO_HT_header(bpy.types.Header): st = context.space_data rd = context.scene.render_data - - layout.template_header() + + row = layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row() - row.itemM("INFO_MT_file") - row.itemM("INFO_MT_add") + sub = row.row(align=True) + sub.itemM("INFO_MT_file") + sub.itemM("INFO_MT_add") if rd.use_game_engine: - row.itemM("INFO_MT_game") + sub.itemM("INFO_MT_game") else: - row.itemM("INFO_MT_render") - row.itemM("INFO_MT_help") + sub.itemM("INFO_MT_render") + sub.itemM("INFO_MT_help") layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete") layout.template_ID(context.screen, "scene", new="scene.new", unlink="scene.delete") diff --git a/release/ui/space_node.py b/release/ui/space_node.py new file mode 100644 index 00000000000..2e28cfc2eed --- /dev/null +++ b/release/ui/space_node.py @@ -0,0 +1,121 @@ + +import bpy + +class NODE_HT_header(bpy.types.Header): + __space_type__ = "NODE_EDITOR" + + def draw(self, context): + layout = self.layout + snode = context.space_data + + row = layout.row(align=True) + row.template_header() + + if context.area.show_menus: + sub = row.row(align=True) + sub.itemM("NODE_MT_view") + sub.itemM("NODE_MT_select") + sub.itemM("NODE_MT_add") + sub.itemM("NODE_MT_node") + + row = layout.row() + row.itemR(snode, "tree_type", text="", expand=True) + + if snode.tree_type == 'MATERIAL': + ob = snode.id_from + id = snode.id + if ob: + layout.template_ID(ob, "active_material", new="material.new") + if id: + layout.itemR(id, "use_nodes", toggle=True) + + elif snode.tree_type == 'TEXTURE': + row.itemR(snode, "texture_type", text="", expand=True) + + id = snode.id + id_from = snode.id_from + if id_from: + layout.template_ID(id_from, "active_texture", new="texture.new") + if id: + layout.itemR(id, "use_nodes", toggle=True) + + elif snode.tree_type == 'COMPOSITING': + id = snode.id + + layout.itemR(id, "use_nodes", toggle=True) + layout.itemR(id.render_data, "free_unused_nodes", text="Free Unused", toggle=True) + layout.itemR(snode, "backdrop", toggle=True) + +class NODE_MT_view(bpy.types.Menu): + __space_type__ = "NODE_EDITOR" + __label__ = "View" + + def draw(self, context): + layout = self.layout + + # layout.itemO("grease_pencil..") + # layout.itemS() + + layout.itemO("view2d.zoom_in") + layout.itemO("view2d.zoom_out") + + layout.itemS() + + layout.itemO("node.view_all") + layout.itemO("screen.screen_full_area") + +class NODE_MT_select(bpy.types.Menu): + __space_type__ = "NODE_EDITOR" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("node.select_border") + + # XXX + # layout.itemS() + # layout.itemO("node.select_all") + # layout.itemO("node.select_linked_from") + # layout.itemO("node.select_linked_to") + +class NODE_MT_node(bpy.types.Menu): + __space_type__ = "NODE_EDITOR" + __label__ = "Node" + + def draw(self, context): + layout = self.layout + + layout.itemO("tfm.translate") + layout.itemO("tfm.resize") + layout.itemO("tfm.rotate") + + layout.itemS() + + layout.itemO("node.duplicate") + layout.itemO("node.delete") + + # XXX + # layout.itemS() + # layout.itemO("node.make_link") + # layout.itemS() + # layout.itemO("node.edit_group") + # layout.itemO("node.ungroup") + # layout.itemO("node.group") + # layout.itemO("node.make_link") + + layout.itemS() + + layout.itemO("node.visibility_toggle") + + # XXX + # layout.itemO("node.rename") + # layout.itemS() + # layout.itemO("node.show_cyclic_dependencies") + + +bpy.types.register(NODE_HT_header) +bpy.types.register(NODE_MT_view) +bpy.types.register(NODE_MT_select) +bpy.types.register(NODE_MT_node) + diff --git a/release/ui/space_outliner.py b/release/ui/space_outliner.py index 5815acc7e12..f55f4633a7b 100644 --- a/release/ui/space_outliner.py +++ b/release/ui/space_outliner.py @@ -9,11 +9,12 @@ class OUTLINER_HT_header(bpy.types.Header): sce = context.scene layout = self.layout - layout.template_header() + row = layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row(align=True) - row.itemM("OUTLINER_MT_view") + sub = row.row(align=True) + sub.itemM("OUTLINER_MT_view") row = layout.row() row.itemR(so, "display_mode", text="") diff --git a/release/ui/space_sequencer.py b/release/ui/space_sequencer.py index a29e0fad895..1edcf32d3b5 100644 --- a/release/ui/space_sequencer.py +++ b/release/ui/space_sequencer.py @@ -14,24 +14,28 @@ class SEQUENCER_HT_header(bpy.types.Header): st = context.space_data - layout.template_header() + row = layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row() - row.itemR(st, "display_mode", text="") - row.itemM("SEQUENCER_MT_view") + sub = row.row(align=True) + sub.itemM("SEQUENCER_MT_view") - layout.itemS() + row.itemS() if st.display_mode == 'SEQUENCER': - row.itemM("SEQUENCER_MT_select") - row.itemM("SEQUENCER_MT_marker") - row.itemM("SEQUENCER_MT_add") - row.itemM("SEQUENCER_MT_strip") - layout.itemS() - row.itemO("sequencer.reload") - else: - row.itemR(st, "display_channel", text="Channel") + sub.itemM("SEQUENCER_MT_select") + sub.itemM("SEQUENCER_MT_marker") + sub.itemM("SEQUENCER_MT_add") + sub.itemM("SEQUENCER_MT_strip") + + layout.itemR(st, "display_mode", text="") + + if st.display_mode == 'SEQUENCER': + layout.itemS() + layout.itemO("sequencer.reload") + else: + layout.itemR(st, "display_channel", text="Channel") class SEQUENCER_MT_view(bpy.types.Menu): __space_type__ = "SEQUENCE_EDITOR" diff --git a/release/ui/space_text.py b/release/ui/space_text.py index c54073c2938..61e8d3489a5 100644 --- a/release/ui/space_text.py +++ b/release/ui/space_text.py @@ -9,27 +9,28 @@ class TEXT_HT_header(bpy.types.Header): text = st.text layout = self.layout - layout.template_header() + row = layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row() - row.itemM("TEXT_MT_text") + sub = row.row(align=True) + sub.itemM("TEXT_MT_text") if text: - row.itemM("TEXT_MT_edit") - row.itemM("TEXT_MT_format") + sub.itemM("TEXT_MT_edit") + sub.itemM("TEXT_MT_format") if text and text.modified: row = layout.row() # row.color(redalert) row.itemO("text.resolve_conflict", text="", icon='ICON_HELP') + layout.template_ID(st, "text", new="text.new", unlink="text.unlink") + row = layout.row(align=True) row.itemR(st, "line_numbers", text="") row.itemR(st, "word_wrap", text="") row.itemR(st, "syntax_highlight", text="") - layout.template_ID(st, "text", new="text.new", unlink="text.unlink") - if text: row = layout.row() if text.filename != "": @@ -123,6 +124,10 @@ class TEXT_MT_text(bpy.types.Menu): # XXX if(BPY_is_pyconstraint(text)) # XXX uiMenuItemO(head, 0, "text.refresh_pyconstraints"); #endif + + layout.itemS() + + layout.itemO("text.properties", icon="ICON_MENU_PANEL") #ifndef DISABLE_PYTHON # XXX layout.column() @@ -219,7 +224,7 @@ class TEXT_MT_edit(bpy.types.Menu): layout.itemS() layout.itemO("text.jump") - layout.itemO("text.properties") + layout.itemO("text.properties", text="Find...") layout.itemS() diff --git a/release/ui/space_time.py b/release/ui/space_time.py index 785d11a8fc5..d1c9f9806f3 100644 --- a/release/ui/space_time.py +++ b/release/ui/space_time.py @@ -13,13 +13,14 @@ class TIME_HT_header(bpy.types.Header): tools = context.tool_settings screen = context.screen - layout.template_header() + row = layout.row(align=True) + row.template_header() if context.area.show_menus: - row = layout.row() - row.itemM("TIME_MT_view") - row.itemM("TIME_MT_frame") - row.itemM("TIME_MT_playback") + sub = row.row(align=True) + sub.itemM("TIME_MT_view") + sub.itemM("TIME_MT_frame") + sub.itemM("TIME_MT_playback") layout.itemR(scene, "use_preview_range", text="PR", toggle=True) diff --git a/release/ui/space_view3d.py b/release/ui/space_view3d.py index 1a5dd6b148c..44b1c82ff46 100644 --- a/release/ui/space_view3d.py +++ b/release/ui/space_view3d.py @@ -13,25 +13,26 @@ class VIEW3D_HT_header(bpy.types.Header): mode_string = context.mode edit_object = context.edit_object - layout.template_header() - + row = layout.row(align=True) + row.template_header() + # Menus if context.area.show_menus: - row = layout.row() + sub = row.row(align=True) - row.itemM("VIEW3D_MT_view") + sub.itemM("VIEW3D_MT_view") # Select Menu if mode_string not in ('EDIT_TEXT', 'SCULPT', 'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE', 'PARTICLE'): # XXX: Particle Mode has Select Menu. - row.itemM("VIEW3D_MT_select_%s" % mode_string) + sub.itemM("VIEW3D_MT_select_%s" % mode_string) if mode_string == 'OBJECT': - row.itemM("VIEW3D_MT_object") + sub.itemM("VIEW3D_MT_object") elif mode_string == 'SCULPT': - row.itemM("VIEW3D_MT_sculpt") + sub.itemM("VIEW3D_MT_sculpt") elif edit_object: - row.itemM("VIEW3D_MT_edit_%s" % edit_object.type) + sub.itemM("VIEW3D_MT_edit_%s" % edit_object.type) layout.template_header_3D() |