[Bf-extensions-cvs] [3cc8407] master: Update Dynamic Spacebar Menu: Context Sensitive cleanup, code rewrite

meta-androcto noreply at git.blender.org
Tue Apr 19 05:01:45 CEST 2016


Commit: 3cc840752b1871a77b8250ae22a56a2be1c72710
Author: meta-androcto
Date:   Tue Apr 19 13:01:23 2016 +1000
Branches: master
https://developer.blender.org/rBA3cc840752b1871a77b8250ae22a56a2be1c72710

Update Dynamic Spacebar Menu: Context Sensitive cleanup, code rewrite

===================================================================

M	space_view3d_spacebar_menu.py

===================================================================

diff --git a/space_view3d_spacebar_menu.py b/space_view3d_spacebar_menu.py
index 53e9ade..fd0e802 100644
--- a/space_view3d_spacebar_menu.py
+++ b/space_view3d_spacebar_menu.py
@@ -1,5 +1,3 @@
-#3d_cursor_menu.py (c) 2011 Jonathan Smith (JayDez)
-#
 # ##### BEGIN GPL LICENSE BLOCK #####
 #
 #  This program is free software; you can redistribute it and/or
@@ -17,14 +15,15 @@
 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 # ##### END GPL LICENSE BLOCK #####
+# Contributed to by: meta-androcto, JayDez, sim88, sam #
 
 bl_info = {
-    "name": "Dynamic Spacebar Menu",
-    "author": "meta-androcto, JayDez, sim88, sam",
-    "version": (1, 7, 4),
-    "blender": (2, 72, 0),
-    "location": "View3D > Spacebar for menu then 's' key for Search",
-    "description": "Context Sensitive Spacebar Menu",
+    "name": "Dynamic Context Menu",
+    "author": "meta-androcto",
+    "version": (1, 8, 0),
+    "blender": (2, 77, 0),
+    "location": "View3D > Double right click",
+    "description": "Object Context Sensitive double right click Menu",
     "warning": "",
     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
                 "Scripts/3D_interaction/Dynamic_Spacebar_Menu",
@@ -32,610 +31,578 @@ bl_info = {
 }
 
 import bpy
+from bpy.types import Operator, Menu
+
+### Dynamic Context Sensitive Menu ###
+### Main Menu based on Object Type & 3d View Editor Mode ###
 
-# Dynamic Menu
 class VIEW3D_MT_Space_Dynamic_Menu(bpy.types.Menu):
-    bl_label = "Dynamic Spacebar Menu"
+    bl_label = "Dynamic Context Menu"
 
     def draw(self, context):
         layout = self.layout
         settings = context.tool_settings
         layout.operator_context = 'INVOKE_REGION_WIN'
+        scene = context.scene
+        obj = context.object
 
-        ob = context
-        if ob.mode == 'OBJECT':
-            # Object mode
-
-            # Search Menu
+### Mesh Object Mode ###
+        if obj.type == 'MESH' and obj.mode in {'OBJECT'}:
+            layout.operator_context = 'INVOKE_REGION_WIN'
             layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
             layout.separator()
-
-            # Add Menu block
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_Select_Object", icon='RESTRICT_SELECT_OFF')
             layout.menu("VIEW3D_MT_AddMenu", icon='OBJECT_DATAMODE')
-
-            # Transform block
+            layout.menu("VIEW3D_MT_Object", icon='VIEW3D')
             layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
-
-            # Mirror block
             layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
-
-            # Cursor Block
             layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
-
-            # Parent block
             layout.menu("VIEW3D_MT_ParentMenu", icon='ROTACTIVE')
-
-            # Group block
             layout.menu("VIEW3D_MT_GroupMenu", icon='GROUP')
-
-            # Modifier block
-            layout.operator_menu_enum("object.modifier_add", "type",
-                                      icon='MODIFIER')
-
-            # Align block
-            layout.menu("VIEW3D_MT_AlignMenu", icon='ALIGN')
-
-            # Select block
-            layout.menu("VIEW3D_MT_SelectMenu", icon='RESTRICT_SELECT_OFF')
-
-            # Toolshelf block
+            layout.menu("VIEW3D_MT_object_specials", text = "Specials", icon='SOLO_OFF')
+            layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
+            layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
+            layout.operator("object.delete", text="Delete Object", icon='X_VEC')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
             layout.operator("view3d.toolshelf", icon='MENU_PANEL')
-
-            # Properties block
             layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            #TODO: Add if statement to test whether editmode switch needs to
-            #be added to the menu, since certain object can't enter edit mode
-            #In which case we don't need the toggle
-            # Toggle Editmode
-            layout.operator("object.editmode_toggle", text="Enter Edit Mode",
-                            icon='EDITMODE_HLT')
-
-            # Delete block
-            layout.operator("object.delete", text="Delete Object",
-                            icon='CANCEL')
-
-
-        elif ob.mode == 'EDIT_MESH':
-            # Edit mode
-
-            # Search Menu
+## Mesh Edit Mode ##
+        if obj.type == 'MESH' and obj.mode in {'EDIT'}:
             layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
             layout.separator()
-
-            # Add block
-            layout.menu("INFO_MT_mesh_add", text="Add Mesh",
-                        icon='OUTLINER_OB_MESH')
-
-            # Transform block
-            layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
-
-            # Mirror block
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_Select_Edit_Mesh", icon='RESTRICT_SELECT_OFF')
+            layout.menu("INFO_MT_mesh_add", text="Add Mesh", icon='OUTLINER_OB_MESH')
+            layout.menu("VIEW3D_MT_Edit_Mesh", text="Mesh", icon='MESH_DATA')
+            layout.menu("VIEW3D_MT_TransformMenuEdit", icon='MANIPUL')
             layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
-
-            # Cursor block
             layout.menu("VIEW3D_MT_EditCursorMenu", icon='CURSOR')
+            layout.menu("VIEW3D_MT_UV_Map", icon='MOD_UVPROJECT')
+            layout.menu("VIEW3D_MT_edit_mesh_specials", icon='SOLO_OFF')
+            layout.menu("VIEW3D_MT_edit_mesh_extrude", icon='ORTHO')
+            layout.menu("VIEW3D_MT_Edit_Multi", icon='VERTEXSEL')
+            layout.menu("VIEW3D_MT_edit_mesh_delete", icon='X_VEC')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
+            layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+            layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            # Proportional block
-            layout.prop_menu_enum(settings, "proportional_edit",
-                                  icon="PROP_CON")
-            layout.prop_menu_enum(settings, "proportional_edit_falloff",
-                                  icon="SMOOTHCURVE")
+## Sculpt Mode ##
+        if obj.type == 'MESH' and obj.mode in {'SCULPT'}:
 
-            # Edit block
-            layout.menu("VIEW3D_MT_edit_TK", icon='EDITMODE_HLT')
+            layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+            layout.separator()
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_sculpt", icon='SCULPTMODE_HLT')
+            layout.menu("VIEW3D_MT_brush", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_hide_mask", icon='SCULPTMODE_HLT')
+            layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
+            layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
+            layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
+            layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+            layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            # Multi Select
-            layout.menu("VIEW3D_MT_edit_multi", icon='VERTEXSEL')
+## Vertex Paint ##
+        if obj.type == 'MESH' and obj.mode in {'VERTEX_PAINT'}:
 
-            # Extrude block
-            layout.menu("VIEW3D_MT_edit_mesh_extrude", icon='EDIT_VEC')
+            layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+            layout.separator()
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_paint_vertex", icon='VPAINT_HLT')
+            layout.menu("VIEW3D_MT_brush", icon='BRUSH_DATA')
+            layout.operator("paint.vertex_color_set", icon='GROUP_VCOL')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
+            layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+            layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            # Tools block
-            layout.menu("VIEW3D_MT_edit_mesh_specials", icon='MODIFIER')
+## Weight Paint Menu ##
+        if obj.type == 'MESH' and obj.mode in {'WEIGHT_PAINT'}:
 
-			# UV Map block
-            layout.menu("VIEW3D_MT_uv_map", icon='MOD_UVPROJECT')
+            layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+            layout.separator()
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_paint_weight", icon='WPAINT_HLT')
+            layout.menu("VIEW3D_MT_brush", icon='BRUSH_DATA')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
+            layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+            layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            # Select block
-            layout.menu("VIEW3D_MT_SelectEditMenu",
-                        icon='RESTRICT_SELECT_OFF')
+## Texture Paint ##
+        if obj.type == 'MESH' and obj.mode in {'TEXTURE_PAINT'}:
 
-            # Toolshelf block
+            layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+            layout.separator()
+            layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
+            layout.menu("VIEW3D_MT_brush", icon='BRUSH_DATA')
+            layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
+            layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
             layout.operator("view3d.toolshelf", icon='MENU_PANEL')
-
-            # Properties block
             layout.operator("view3d.properties", icon='MENU_PANEL')
 
-            # Toggle Object Mode
-            layout.o

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list