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:
authorThomas Dinges <blender@dingto.org>2009-08-15 23:40:09 +0400
committerThomas Dinges <blender@dingto.org>2009-08-15 23:40:09 +0400
commit0ce5163cc0aa32df5450752da9056059a88f1fd5 (patch)
treea5aa62f012dba91b3d78935f608a06c1b69b4ef6 /release/ui
parentca906df5ccdd0d1b0a600f073b5bad5251d42e07 (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/ui')
-rw-r--r--release/ui/space_view3d.py260
-rw-r--r--release/ui/space_view3d_toolbar.py121
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)