diff options
author | Thomas Dinges <blender@dingto.org> | 2009-08-15 23:40:09 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2009-08-15 23:40:09 +0400 |
commit | 0ce5163cc0aa32df5450752da9056059a88f1fd5 (patch) | |
tree | a5aa62f012dba91b3d78935f608a06c1b69b4ef6 /release | |
parent | ca906df5ccdd0d1b0a600f073b5bad5251d42e07 (diff) |
2.5 3D_View:
Patch [#19031] (2.5) python menus for the view3d header
by Lorenzo Pierfederici (lento). Thanks!
* Added CTX_data_mode_string() to find out in which mode we're in.
* Added some "select" menus as a test.
This patch makes it basically possible to wrap the 3D View menus to python.
Diffstat (limited to 'release')
-rw-r--r-- | release/ui/space_view3d.py | 260 | ||||
-rw-r--r-- | release/ui/space_view3d_toolbar.py | 121 |
2 files changed, 297 insertions, 84 deletions
diff --git a/release/ui/space_view3d.py b/release/ui/space_view3d.py index 5e0e2fa60b6..a595cba52c4 100644 --- a/release/ui/space_view3d.py +++ b/release/ui/space_view3d.py @@ -95,6 +95,256 @@ class VIEW3D_MT_view(bpy.types.Menu): layout.itemO("screen.region_foursplit", text="Toggle Quad View") layout.itemO("screen.screen_full_area", text="Toggle Full Screen") +# ********** Select menus **************** + +class VIEW3D_MT_select_objectmode(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("object.select_all_toggle", text="Select/Deselect All") + layout.itemO("object.select_inverse", text="Inverse") + layout.itemO("object.select_random", text="Random") + layout.itemO("object.select_by_layer", text="Select All by Layer") + layout.item_enumO("object.select_by_type", "type", "", text="Select All by Type") + layout.item_enumO("object.select_grouped", "type", "", text="Select Grouped") + +class VIEW3D_MT_select_posemode(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("pose.select_all_toggle", text="Select/Deselect All") + layout.itemO("pose.select_inverse", text="Inverse") + layout.itemO("pose.select_constraint_target", text="Constraint Target") + + layout.itemS() + + layout.item_enumO("pose.select_hierarchy", "direction", "PARENT") + layout.item_enumO("pose.select_hierarchy", "direction", "CHILD") + + layout.itemS() + + layout.view3d_select_posemenu() + +class VIEW3D_MT_select_particlemode(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("particle.select_all_toggle", text="Select/Deselect All") + layout.itemO("particle.select_linked") + + layout.itemS() + + #layout.itemO("particle.select_last") + #layout.itemO("particle.select_first") + + layout.itemO("particle.select_more") + layout.itemO("particle.select_less") + +class VIEW3D_MT_select_meshedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("mesh.select_all_toggle", text="Select/Deselect All") + layout.itemO("mesh.select_inverse", text="Inverse") + + layout.itemS() + + layout.itemO("mesh.select_random", text="Random...") + layout.itemO("mesh.edges_select_sharp", text="Sharp Edges") + layout.itemO("mesh.faces_select_linked_flat", text="Linked Flat Faces") + + layout.itemS() + + layout.item_enumO("mesh.select_by_number_vertices", "type", "TRIANGLES", text="Triangles") + layout.item_enumO("mesh.select_by_number_vertices", "type", "QUADS", text="Quads") + layout.item_enumO("mesh.select_by_number_vertices", "type", "OTHER", text="Loose Verts/Edges") + layout.itemO("mesh.select_similar", text="Similar...") + + layout.itemS() + + layout.itemO("mesh.select_less", text="Less") + layout.itemO("mesh.select_more", text="More") + + layout.itemS() + + layout.itemO("mesh.select_linked", text="Linked") + layout.itemO("mesh.select_vertex_path", text="Vertex Path") + layout.itemO("mesh.loop_multi_select", text="Edge Loop") + layout.item_booleanO("mesh.loop_multi_select", "ring", True, text="Edge Ring") + + layout.itemS() + + layout.itemO("mesh.loop_to_region") + layout.itemO("mesh.region_to_loop") + +class VIEW3D_MT_select_curveedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + layout.itemO("view3d.select_circle") + + layout.itemS() + + layout.itemO("curve.select_all_toggle", text="Select/Deselect All") + layout.itemO("curve.select_inverse") + layout.itemO("curve.select_random") + layout.itemO("curve.select_every_nth") + + layout.itemS() + + layout.itemO("curve.de_select_first") + layout.itemO("curve.de_select_last") + layout.itemO("curve.select_next") + layout.itemO("curve.select_previous") + + layout.itemS() + + layout.itemO("curve.select_more") + layout.itemO("curve.select_less") + +class VIEW3D_MT_select_surfaceedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + layout.itemO("view3d.select_circle") + + layout.itemS() + + layout.itemO("curve.select_all_toggle", text="Select/Deselect All") + layout.itemO("curve.select_inverse") + layout.itemO("curve.select_random") + layout.itemO("curve.select_every_nth") + + layout.itemS() + + layout.itemO("curve.select_row") + + layout.itemS() + + layout.itemO("curve.select_more") + layout.itemO("curve.select_less") + +class VIEW3D_MT_select_mballedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemL(text="Select/Deselect All") + layout.itemL(text="Inverse") + + layout.itemS() + + layout.itemL(text="Random") + +class VIEW3D_MT_select_latticeedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("lattice.select_all_toggle", text="Select/Deselect All") + +class VIEW3D_MT_select_armatureedit(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.itemO("view3d.select_border") + + layout.itemS() + + layout.itemO("armature.select_all_toggle", text="Select/Deselect All") + layout.itemO("armature.select_inverse", text="Inverse") + + layout.itemS() + + layout.item_enumO("armature.select_hierarchy", "direction", "PARENT") + layout.item_enumO("armature.select_hierarchy", "direction", "CHILD") + + layout.itemS() + + layout.view3d_select_armaturemenu() + +class VIEW3D_MT_select_facesel(bpy.types.Menu): + __space_type__ = "VIEW_3D" + __label__ = "Select" + + def draw(self, context): + layout = self.layout + + layout.view3d_select_faceselmenu() + +class VIEW3D_HT_header(bpy.types.Header): + __space_type__ = "VIEW_3D" + + def draw(self, context): + view = context.space_data + mode_string = context.mode_string + layout = self.layout + + layout.template_header() + + # menus + if context.area.show_menus: + row = layout.row() + + row.itemM("VIEW3D_MT_view") + + selectmenu = "VIEW3D_MT_select_%s" % mode_string + if selectmenu in dir(bpy.types): + layout.itemM(selectmenu) + + layout.template_header_3D() + # ********** Panel **************** class VIEW3D_PT_3dview_properties(bpy.types.Panel): @@ -200,6 +450,16 @@ class VIEW3D_PT_background_image(bpy.types.Panel): bpy.types.register(VIEW3D_MT_view_navigation) bpy.types.register(VIEW3D_MT_view) +bpy.types.register(VIEW3D_MT_select_objectmode) +bpy.types.register(VIEW3D_MT_select_posemode) +bpy.types.register(VIEW3D_MT_select_particlemode) +bpy.types.register(VIEW3D_MT_select_meshedit) +bpy.types.register(VIEW3D_MT_select_curveedit) +bpy.types.register(VIEW3D_MT_select_surfaceedit) +bpy.types.register(VIEW3D_MT_select_mballedit) +bpy.types.register(VIEW3D_MT_select_latticeedit) +bpy.types.register(VIEW3D_MT_select_armatureedit) +bpy.types.register(VIEW3D_MT_select_facesel) bpy.types.register(VIEW3D_HT_header) bpy.types.register(VIEW3D_PT_3dview_properties) bpy.types.register(VIEW3D_PT_3dview_display) diff --git a/release/ui/space_view3d_toolbar.py b/release/ui/space_view3d_toolbar.py index 53534de52ab..18ae7b2290d 100644 --- a/release/ui/space_view3d_toolbar.py +++ b/release/ui/space_view3d_toolbar.py @@ -1,14 +1,15 @@ import bpy -# ********** default tools for objectmode **************** class View3DPanel(bpy.types.Panel): __space_type__ = "VIEW_3D" __region_type__ = "TOOLS" - __context__ = "objectmode" + +# ********** default tools for objectmode **************** class VIEW3D_PT_tools_objectmode(View3DPanel): + __context__ = "objectmode" __label__ = "Object Tools" def draw(self, context): @@ -43,12 +44,8 @@ class VIEW3D_PT_tools_objectmode(View3DPanel): # ********** default tools for editmode_mesh **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_mesh" - -class VIEW3D_PT_tools_editmode_mesh(View3DPanel): +class VIEW3D_PT_tools_meshedit(View3DPanel): + __context__ = "meshedit" __label__ = "Mesh Tools" def draw(self, context): @@ -90,12 +87,8 @@ class VIEW3D_PT_tools_editmode_mesh(View3DPanel): # ********** default tools for editmode_curve **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_curve" - -class VIEW3D_PT_tools_editmode_curve(View3DPanel): +class VIEW3D_PT_tools_curveedit(View3DPanel): + __context__ = "curveedit" __label__ = "Curve Tools" def draw(self, context): @@ -124,12 +117,8 @@ class VIEW3D_PT_tools_editmode_curve(View3DPanel): # ********** default tools for editmode_surface **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_surface" - -class VIEW3D_PT_tools_editmode_surface(View3DPanel): +class VIEW3D_PT_tools_surfaceedit(View3DPanel): + __context__ = "surfaceedit" __label__ = "Surface Tools" def draw(self, context): @@ -158,12 +147,8 @@ class VIEW3D_PT_tools_editmode_surface(View3DPanel): # ********** default tools for editmode_text **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_text" - -class VIEW3D_PT_tools_editmode_text(View3DPanel): +class VIEW3D_PT_tools_textedit(View3DPanel): + __context__ = "textedit" __label__ = "Text Tools" def draw(self, context): @@ -179,12 +164,8 @@ class VIEW3D_PT_tools_editmode_text(View3DPanel): # ********** default tools for editmode_armature **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_armature" - -class VIEW3D_PT_tools_editmode_armature(View3DPanel): +class VIEW3D_PT_tools_armatureedit(View3DPanel): + __context__ = "armatureedit" __label__ = "Armature Tools" def draw(self, context): @@ -209,12 +190,8 @@ class VIEW3D_PT_tools_editmode_armature(View3DPanel): # ********** default tools for editmode_mball **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_mball" - -class VIEW3D_PT_tools_editmode_mball(View3DPanel): +class VIEW3D_PT_tools_mballedit(View3DPanel): + __context__ = "mballedit" __label__ = "Meta Tools" def draw(self, context): @@ -229,12 +206,8 @@ class VIEW3D_PT_tools_editmode_mball(View3DPanel): # ********** default tools for editmode_lattice **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "editmode_lattice" - -class VIEW3D_PT_tools_editmode_lattice(View3DPanel): +class VIEW3D_PT_tools_latticeedit(View3DPanel): + __context__ = "latticeedit" __label__ = "Lattice Tools" def draw(self, context): @@ -249,12 +222,8 @@ class VIEW3D_PT_tools_editmode_lattice(View3DPanel): # ********** default tools for posemode **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "pose_mode" - class VIEW3D_PT_tools_posemode(View3DPanel): + __context__ = "posemode" __label__ = "Pose Tools" def draw(self, context): @@ -492,12 +461,8 @@ class VIEW3D_PT_sculpt_options(PaintPanel): # ********** default tools for weightpaint **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "weight_paint" - -class VIEW3D_PT_weight_paint_options(View3DPanel): +class VIEW3D_PT_tools_weightpaint(View3DPanel): + __context__ = "weightpaint" __label__ = "Options" def draw(self, context): @@ -523,12 +488,8 @@ class VIEW3D_PT_weight_paint_options(View3DPanel): # ********** default tools for vertexpaint **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - -class VIEW3D_PT_vertex_paint_options(View3DPanel): - __context__ = "vertex_paint" +class VIEW3D_PT_tools_vertexpaint(View3DPanel): + __context__ = "vertexpaint" __label__ = "Options" def draw(self, context): @@ -551,12 +512,8 @@ class VIEW3D_PT_vertex_paint_options(View3DPanel): # ********** default tools for texturepaint **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "texture_paint" - -class VIEW3D_PT_tools_texture_paint(View3DPanel): +class VIEW3D_PT_tools_texturepaint(View3DPanel): + __context__ = "texturepaint" __label__ = "Options" def draw(self, context): @@ -584,12 +541,8 @@ class VIEW3D_PT_tools_texture_paint(View3DPanel): # ********** default tools for particle mode **************** -class View3DPanel(bpy.types.Panel): - __space_type__ = "VIEW_3D" - __region_type__ = "TOOLS" - __context__ = "particle_mode" - -class VIEW3D_PT_tools_particle_edit(View3DPanel): +class VIEW3D_PT_tools_particlemode(View3DPanel): + __context__ = "particlemode" __label__ = "Options" def draw(self, context): @@ -613,18 +566,18 @@ class VIEW3D_PT_tools_particle_edit(View3DPanel): col.itemR(pe, "show_children", text="Children") bpy.types.register(VIEW3D_PT_tools_objectmode) -bpy.types.register(VIEW3D_PT_tools_editmode_mesh) -bpy.types.register(VIEW3D_PT_tools_editmode_curve) -bpy.types.register(VIEW3D_PT_tools_editmode_surface) -bpy.types.register(VIEW3D_PT_tools_editmode_text) -bpy.types.register(VIEW3D_PT_tools_editmode_armature) -bpy.types.register(VIEW3D_PT_tools_editmode_mball) -bpy.types.register(VIEW3D_PT_tools_editmode_lattice) +bpy.types.register(VIEW3D_PT_tools_meshedit) +bpy.types.register(VIEW3D_PT_tools_curveedit) +bpy.types.register(VIEW3D_PT_tools_surfaceedit) +bpy.types.register(VIEW3D_PT_tools_textedit) +bpy.types.register(VIEW3D_PT_tools_armatureedit) +bpy.types.register(VIEW3D_PT_tools_mballedit) +bpy.types.register(VIEW3D_PT_tools_latticeedit) bpy.types.register(VIEW3D_PT_tools_posemode) bpy.types.register(VIEW3D_PT_tools_brush) bpy.types.register(VIEW3D_PT_tools_brush_curve) bpy.types.register(VIEW3D_PT_sculpt_options) -bpy.types.register(VIEW3D_PT_vertex_paint_options) -bpy.types.register(VIEW3D_PT_weight_paint_options) -bpy.types.register(VIEW3D_PT_tools_texture_paint) -bpy.types.register(VIEW3D_PT_tools_particle_edit) +bpy.types.register(VIEW3D_PT_tools_vertexpaint) +bpy.types.register(VIEW3D_PT_tools_weightpaint) +bpy.types.register(VIEW3D_PT_tools_texturepaint) +bpy.types.register(VIEW3D_PT_tools_particlemode) |