Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-08-19 04:55:30 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-08-19 04:55:30 +0400
commit184ac26dd0187d70985cdc49ae527a1900fce840 (patch)
tree7b946acb11e0a430b61e2f608e0308a1b18439d7 /release
parente21c1dde810b3447eaa1f6a667ae027978b18d9b (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')
-rw-r--r--release/ui/space_buttons.py7
-rw-r--r--release/ui/space_console.py27
-rw-r--r--release/ui/space_filebrowser.py2
-rw-r--r--release/ui/space_image.py15
-rw-r--r--release/ui/space_info.py17
-rw-r--r--release/ui/space_node.py121
-rw-r--r--release/ui/space_outliner.py7
-rw-r--r--release/ui/space_sequencer.py30
-rw-r--r--release/ui/space_text.py21
-rw-r--r--release/ui/space_time.py11
-rw-r--r--release/ui/space_view3d.py17
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()