[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [599] trunk/py/scripts/addons/ space_view3d_spacebar_menu.py: spacebar menu is complete enough for release to add ons.
Brendon Murphy
meta.androcto1 at gmail.com
Sat Apr 17 18:35:45 CEST 2010
Revision: 599
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=599
Author: meta-androcto
Date: 2010-04-17 18:35:44 +0200 (Sat, 17 Apr 2010)
Log Message:
-----------
spacebar menu is complete enough for release to add ons.
this will allow more user feedback for any required updates.
Added Paths:
-----------
trunk/py/scripts/addons/space_view3d_spacebar_menu.py
Added: trunk/py/scripts/addons/space_view3d_spacebar_menu.py
===================================================================
--- trunk/py/scripts/addons/space_view3d_spacebar_menu.py (rev 0)
+++ trunk/py/scripts/addons/space_view3d_spacebar_menu.py 2010-04-17 16:35:44 UTC (rev 599)
@@ -0,0 +1,1259 @@
+#3d_cursor_menu.py (c) 2010 Jonathan Smith (JayDez)
+#Original Script by: Mariano Hidalgo (uselessdreamer)
+#contributed to by: Crouch, sim88, sam, meta-androcto
+#
+#Tested with r28146
+#
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+bl_addon_info = {
+ 'name': '3D View: Dynamic Spacebar Menu',
+ 'author': 'JayDez, sim88, meta-androcto',
+ 'version': '1.3',
+ 'blender': (2, 5, 3),
+ 'location': 'View3D > Mouse > Menu ',
+ 'description': 'Dynamic Menu Object/Edit mode in the 3D View',
+ 'url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/' \
+ 'Scripts/3D_interaction/Dynamic_Menu',
+ 'category': '3D View'}
+"Add Dynamic Menu (Right click in View3D)"
+
+"""
+Name: 'Dynamic Spacebar Menu'
+Blender: 253
+"""
+
+__author__ = ["JayDez, sim88, meta-androcto, sam"]
+__version__ = '1.5'
+__url__ = [""]
+__bpydoc__ = """
+Dynamic Menu
+This adds a the Dynamic Spacebar Menu in the 3DView.
+
+Usage:
+* Right click in an empty space in the 3D View(that means nothing
+selectable is there). If your select mouse is set to left then left
+click in the 3D View.
+
+* Choose your function from the menu.
+
+Version history:
+v1.5 - (meta-androcto) - adding context sensitive menus.
+v1.3 - (JayDez) - Changed toggle editmode to an if statement, so that
+ if you are in editmode it will show change to object mode but
+ otherwise it shows change to edit mode. Also added separate icons
+ for change to edit mode and to object mode.
+v1.2 - (JayDez) - Editing docs, changing 3D cursor to dynamic menu,
+ reorganizing menu.
+v1.1 - (meta-androcto) - added editmode menu
+v1.0 - (meta-androcto) - initial final revision (commited to contrib)
+v0.1 through 0.9 - various tests/contributions by various people and scripts
+ Devs: JayDez, Crouch, sim88, meta-androcto, Sam
+ Scripts: 3D Cursor Menu, Original Dynamic Menu
+"""
+import bpy
+from bpy import *
+
+
+# Classes for VIEW3D_MT_CursorMenu()
+class pivot_cursor(bpy.types.Operator):
+ bl_idname = "view3d.pivot_cursor"
+ bl_label = "Cursor as Pivot Point"
+
+ def poll(self, context):
+ return bpy.context.space_data.pivot_point != 'CURSOR'
+
+ def execute(self, context):
+ bpy.context.space_data.pivot_point = 'CURSOR'
+ return {'FINISHED'}
+
+
+class revert_pivot(bpy.types.Operator):
+ bl_idname = "view3d.revert_pivot"
+ bl_label = "Reverts Pivot Point to median"
+
+ def poll(self, context):
+ return bpy.context.space_data.pivot_point != 'MEDIAN_POINT'
+
+ def execute(self, context):
+ bpy.context.space_data.pivot_point = 'MEDIAN_POINT'
+ # @todo Change this to 'BOUDNING_BOX_CENTER' if needed...
+ return{'FINISHED'}
+
+
+# Dynamic Menu
+class VIEW3D_MT_Space_Dynamic_Menu(bpy.types.Menu):
+ bl_label = "Dynamic Spacebar Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ settings = context.tool_settings
+ layout.operator_context = 'INVOKE_REGION_WIN'
+
+ ob = context
+ if ob.mode == 'OBJECT':
+ # Object mode
+
+ # Search Menu
+ layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+ layout.separator()
+
+ # Add Menu block
+ layout.menu("VIEW3D_MT_AddMenu", icon='OBJECT_DATAMODE')
+ layout.separator()
+
+ # Transform block
+ layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
+
+ # Mirror block
+ layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
+ layout.separator()
+
+ # Parent block
+ layout.menu("VIEW3D_MT_ParentMenu", icon='ROTACTIVE')
+
+ # Group block
+ layout.menu("VIEW3D_MT_GroupMenu", icon='GROUP')
+ layout.separator()
+
+ # Modifier block
+ layout.operator("object.modifier_add", icon='MODIFIER')
+ layout.separator()
+
+ # Cursor Block
+ layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
+ layout.separator()
+
+ # Align block
+ layout.menu("VIEW3D_MT_AlignMenu", icon='ALIGN')
+ layout.separator()
+
+ # Select block
+ layout.menu("VIEW3D_MT_SelectMenu", icon='RESTRICT_SELECT_OFF')
+
+ # Toolshelf block
+ layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+ layout.separator()
+
+ # 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
+ layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+
+ # Add block
+ bl_label = "Create"
+ layout.menu("INFO_MT_mesh_add", text="Add Mesh",
+ icon='EDITMODE_HLT')
+ layout.separator()
+
+ # Transform block
+ layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
+ layout.separator()
+
+ # Mirror block
+ layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
+ layout.separator()
+
+ # Cursor block
+ layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
+ layout.separator()
+
+ # Edit block
+ layout.menu("VIEW3D_MT_edit_TK", icon='OUTLINER_OB_MESH')
+ layout.separator()
+
+ # Extrude block
+ layout.menu("VIEW3D_MT_edit_mesh_extrude", icon='EDITMODE_HLT')
+ layout.separator()
+
+ # Tools block
+ layout.menu("VIEW3D_MT_edit_mesh_specials", icon='MODIFIER')
+ layout.menu("VIEW3D_MT_uv_map", icon='MOD_UVPROJECT')
+
+ # Select block
+ layout.menu("VIEW3D_MT_SelectMenu", icon='RESTRICT_SELECT_OFF')
+
+ # Toolshelf block
+ layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+ layout.separator()
+
+ # Toggle Object Mode
+ layout.operator("object.editmode_toggle", text="Enter Object Mode",
+ icon='OBJECT_DATAMODE')
+
+ # Delete Block
+ layout.operator("mesh.delete", icon='CANCEL')
+
+ if ob.mode == 'EDIT_CURVE':
+ # Curve menu
+
+ # Search Menu
+ layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+
+ # Transform block
+ layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
+ layout.separator()
+
+ # Mirror block
+ layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
+ layout.separator()
+
+ # Proportional block
+ layout.prop_menu_enum(settings, "proportional_editing", icon= "PROP_CON")
+ layout.prop_menu_enum(settings, "proportional_editing_falloff", icon= "SMOOTHCURVE")
+ layout.separator()
+
+ # Edit Control Points
+ layout.menu("VIEW3D_MT_EditCurveCtrlpoints",
+ icon='CURVE_BEZCURVE')
+ layout.separator()
+
+ # Edit Curve Specials
+ layout.menu("VIEW3D_MT_EditCurveSpecials",
+ icon='MODIFIER')
+ layout.separator()
+
+ # Cursor block
+ layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
+ layout.separator()
+
+ # Select Curve Block
+ layout.menu("VIEW3D_MT_SelectCurveMenu", icon='RESTRICT_SELECT_OFF')
+ layout.separator()
+
+ # Toolshelf block
+ layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+ layout.separator()
+
+ # Toggle Objectmode
+ layout.operator("object.editmode_toggle", text="Enter Object Mode",
+ icon='OBJECT_DATA')
+
+ # Delete block
+ layout.operator("object.delete", text="Delete Object",
+ icon='CANCEL')
+
+ if ob.mode == 'EDIT_SURFACE':
+ # Surface menu
+
+ # Search Menu
+ layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+
+ # Transform block
+ layout.menu("VIEW3D_MT_TransformMenu", icon='MANIPUL')
+ layout.separator()
+
+ # Mirror block
+ layout.menu("VIEW3D_MT_MirrorMenu", icon='MOD_MIRROR')
+ layout.separator()
+
+ # Proportional block
+ layout.prop_menu_enum(settings, "proportional_editing", icon= "PROP_CON")
+ layout.prop_menu_enum(settings, "proportional_editing_falloff", icon= "SMOOTHCURVE")
+
+ # Edit Curve Specials
+ layout.menu("VIEW3D_MT_EditCurveSpecials",
+ icon='MODIFIER')
+ layout.separator()
+
+ # Cursor block
+ layout.menu("VIEW3D_MT_CursorMenu", icon='CURSOR')
+ layout.separator()
+
+ # Select Surface
+ layout.menu("VIEW3D_MT_SelectSurface", icon='RESTRICT_SELECT_OFF')
+ layout.separator()
+
+ # Toolshelf block
+ layout.operator("view3d.toolshelf", icon='MENU_PANEL')
+ layout.separator()
+
+ # Toggle Objectmode
+ layout.operator("object.editmode_toggle", text="Enter Object Mode",
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list