Newer
Older
Brendon Murphy
committed
# ##### 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 #####
# some parts based on 3d_cursor_menu.py by Jonathan Smith (JayDez) & work by sim88 & sam.
# view3d_advanced_dynamic_toolshelf_menu by Brendon Murphy (meta-androcto)
Brendon Murphy
committed
bl_info = {
"name": "Dynamic Toolshelf Menu",
"author": "meta-androcto",
Brendon Murphy
committed
"location": "View3D > Spacebar Key, Dynamic Tab",
"description": "Context Sensitive Toolshelf Menu",
"warning": "",
"wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
Brendon Murphy
committed
"Scripts/3D_interaction/Dynamic_Spacebar_Menu",
"tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
Brendon Murphy
committed
"category": "3D View",
}
import bpy
from bpy.types import (
Menu,
Operator,
Panel,
AddonPreferences,
)
from bl_ui.properties_paint_common import UnifiedPaintPanel
Brendon Murphy
committed
class View3DPanel():
bl_space_type = 'VIEW_3D'
bl_region_type = 'TOOLS'
class VIEW3D_PT_Toolshelf_menu(View3DPanel, Panel):
Brendon Murphy
committed
bl_label = "Dynamic Toolshelf"
bl_category = "Dynamic"
def draw(self, context):
layout = self.layout
settings = context.tool_settings
layout.operator_context = 'INVOKE_REGION_WIN'
obj = context.object
Brendon Murphy
committed
# No Object Selected #
if not context.active_object:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_View_Directions2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_View_Navigation2", icon='PIVOT_BOUNDBOX')
layout.menu("VIEW3D_MT_View_Toggle2", icon='WORKSPACE')
layout.operator("view3d.snap_cursor_to_center",
text="Cursor to Center")
layout.operator("view3d.snap_cursor_to_grid",
text="Cursor to Grid")
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
if context.gpencil_data and context.gpencil_data.use_stroke_edit_mode:
layout.menu("VIEW3D_MT_Edit_Gpencil2", icon='GREASEPENCIL')
Brendon Murphy
committed
# Mesh Object Mode #
if obj and obj.type == 'MESH' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
if context.gpencil_data and context.gpencil_data.use_stroke_edit_mode:
layout.menu("VIEW3D_MT_Edit_Gpencil2", icon='GREASEPENCIL')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
Brendon Murphy
committed
layout.operator("view3d.properties", icon='MENU_PANEL')
# Mesh Edit Mode #
if obj and obj.type == 'MESH' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Edit_Mesh2", icon='RESTRICT_SELECT_OFF')
layout.menu("VIEW3D_MT_Edit_Multi2", icon='VERTEXSEL')
UseSeparator(self, context)
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_mesh_add", text="Add Mesh", icon='OUTLINER_OB_MESH')
layout.menu("VIEW3D_MT_Edit_Mesh2", text="Mesh", icon='MESH_DATA')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuEdit2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_EditCursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UV_Map2", icon='MOD_UVPROJECT')
layout.menu("VIEW3D_MT_edit_mesh_specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_edit_mesh_extrude", icon='XRAY')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_edit_mesh_delete", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Sculpt Mode #
if obj and obj.type == 'MESH' and obj.mode in {'SCULPT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Sculpts2", icon='SCULPTMODE_HLT')
layout.menu("VIEW3D_MT_Brush_Selection2", text="Sculpt Tool", icon='BRUSH_SCULPT_DRAW')
layout.menu("VIEW3D_MT_Brush_Settings2", icon='BRUSH_DATA')
layout.menu("VIEW3D_MT_Hide_Masks2", icon='RESTRICT_VIEW_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Sculpt_Specials2", icon='SOLO_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Vertex Paint #
if obj and obj.type == 'MESH' and obj.mode in {'VERTEX_PAINT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Brush_Settings2", icon='BRUSH_DATA')
layout.menu("VIEW3D_MT_Brush_Selection2", text="Vertex Paint Tool", icon='BRUSH_VERTEXDRAW')
layout.menu("VIEW3D_MT_Vertex_Colors2", icon='GROUP_VCOL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Weight Paint Menu #
if obj and obj.type == 'MESH' and obj.mode in {'WEIGHT_PAINT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Paint_Weights2", icon='WPAINT_HLT')
layout.menu("VIEW3D_MT_Brush_Settings2", icon='BRUSH_DATA')
layout.menu("VIEW3D_MT_Brush_Selection2", text="Weight Paint Tool", icon='BRUSH_TEXMASK')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Texture Paint #
if obj and obj.type == 'MESH' and obj.mode in {'TEXTURE_PAINT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Brush_Settings2", icon='BRUSH_DATA')
layout.menu("VIEW3D_MT_Brush_Selection2", text="Texture Paint Tool", icon='SCULPTMODE_HLT')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='EDIT')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Curve Object Mode #
if obj and obj.type == 'CURVE' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Edit Curve #
if obj and obj.type == 'CURVE' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Edit_Curve2",
icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_curve_add", text="Add Curve",
Brendon Murphy
committed
icon='OUTLINER_OB_CURVE')
layout.menu("VIEW3D_MT_Edit_Curve2", icon='CURVE_DATA')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
layout.menu("VIEW3D_MT_EditCurveCtrlpoints2",
Brendon Murphy
committed
icon='CURVE_BEZCURVE')
layout.menu("VIEW3D_MT_EditCurveSpecials2",
icon='SOLO_OFF')
UseSeparator(self, context)
layout.operator("curve.delete", text="Delete Object",
icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Surface Object Mode #
if obj and obj.type == 'SURFACE' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Edit Surface #
if obj and obj.type == 'SURFACE' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Edit_Surface2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_surface_add", text="Add Surface",
Brendon Murphy
committed
icon='OUTLINER_OB_SURFACE')
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
Brendon Murphy
committed
layout.prop_menu_enum(settings, "proportional_edit",
icon="PROP_CON")
layout.prop_menu_enum(settings, "proportional_edit_falloff",
icon="SMOOTHCURVE")
layout.menu("VIEW3D_MT_EditCurveSpecials2",
icon='SOLO_OFF')
UseSeparator(self, context)
layout.operator("curve.delete", text="Delete Object",
icon='CANCEL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Metaball Object Mode #
if obj and obj.type == 'META' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Edit Metaball #
if obj and obj.type == 'META' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_SelectMetaball2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator_menu_enum("object.metaball_add", "type",
text="Add Metaball",
icon='OUTLINER_OB_META')
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
Brendon Murphy
committed
layout.prop_menu_enum(settings, "proportional_edit",
icon="PROP_CON")
layout.prop_menu_enum(settings, "proportional_edit_falloff",
icon="SMOOTHCURVE")
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("mball.delete_metaelems", text="Delete Object",
icon='CANCEL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Text Object Mode #
if obj and obj.type == 'FONT' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
# New Entry For Switching to Editmode
layout.operator("view3d.interactive_mode_text2", icon='VIEW3D')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Text Edit Mode #
# To Do: Space is already reserved for the typing tool
if obj and obj.type == 'FONT' and obj.mode in {'EDIT'}:
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_select_edit_text", icon='VIEW3D')
layout.menu("VIEW3D_MT_edit_font", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
Brendon Murphy
committed
layout.operator("object.editmode_toggle", text="Enter Object Mode",
icon='OBJECT_DATA')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Camera Object Mode #
if obj and obj.type == 'CAMERA' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Lamp Object Mode #
if obj and obj.type == 'LAMP' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuLite2", icon='MANIPUL')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Armature Object Mode #
if obj and obj.type == 'ARMATURE' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuArmature2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Armature2", icon='VIEW3D')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Armature Edit #
if obj and obj.type == 'ARMATURE' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Edit_Armature2",
icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_armature_add", text="Add Armature",
icon='OUTLINER_OB_ARMATURE')
layout.menu("VIEW3D_MT_Edit_Armature2", text="Armature",
icon='OUTLINER_DATA_ARMATURE')
layout.menu("VIEW3D_MT_EditArmatureTK2",
icon='ARMATURE_DATA')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuArmatureEdit2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_armature_specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_edit_armature_roll",
icon='BONE_DATA')
UseSeparator(self, context)
layout.operator("armature.delete", text="Delete Object",
icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Armature2", icon='VIEW3D')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Armature Pose #
if obj and obj.type == 'ARMATURE' and obj.mode in {'POSE'}:
Brendon Murphy
committed
arm = context.active_object.data
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Pose2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Pose2", icon='OUTLINER_DATA_POSE')
layout.menu("VIEW3D_MT_TransformMenuArmaturePose2", icon='MANIPUL')
layout.menu("VIEW3D_MT_pose_transform", icon='EMPTY_DATA')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
layout.menu("VIEW3D_MT_PoseCopy2", icon='FILE')
Brendon Murphy
committed
if arm.display_type in {'BBONE', 'ENVELOPE'}:
layout.operator("transform.transform",
text="Scale Envelope Distance").mode = 'BONE_SIZE'
Brendon Murphy
committed
layout.menu("VIEW3D_MT_pose_apply", icon='AUTO')
layout.operator("pose.relax", icon='ARMATURE_DATA')
layout.menu("VIEW3D_MT_KeyframeMenu2", icon='KEY_HLT')
layout.menu("VIEW3D_MT_pose_specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_pose_group", icon='GROUP_BONE')
UseSeparator(self, context)
layout.operator_menu_enum("pose.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT_BONE')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Armature2", icon='VIEW3D')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Lattice Object Mode #
if obj and obj.type == 'LATTICE' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Edit Lattice #
if obj and obj.type == 'LATTICE' and obj.mode in {'EDIT'}:
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Edit_Lattice2",
icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenu2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.prop_menu_enum(settings, "proportional_edit",
icon="PROP_CON")
layout.prop_menu_enum(settings, "proportional_edit_falloff",
icon="SMOOTHCURVE")
UseSeparator(self, context)
layout.operator("lattice.make_regular")
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Other2", icon='OBJECT_DATA')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Empty Object Mode #
if obj and obj.type == 'EMPTY' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuLite2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options2", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Speaker Object Mode #
if obj and obj.type == 'SPEAKER' and obj.mode in {'OBJECT'}:
Brendon Murphy
committed
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Object2", icon='RESTRICT_SELECT_OFF')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AddMenu2", icon='OBJECT_DATAMODE')
layout.menu("VIEW3D_MT_Object2", icon='VIEW3D')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenuLite2", icon='MANIPUL')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_ParentMenu2", icon='PIVOT_ACTIVE')
layout.menu("VIEW3D_MT_GroupMenu2", icon='GROUP')
UseSeparator(self, context)
layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
UseSeparator(self, context)
Brendon Murphy
committed
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
# Particle Menu #
if obj and context.mode == 'PARTICLE':
Brendon Murphy
committed
layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu2", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Select_Particle2",
icon='RESTRICT_SELECT_OFF')
layout.menu("VIEW3D_MT_Selection_Mode_Particle2",
text="Select and Display Mode", icon='PARTICLE_PATH')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_TransformMenu2", icon='MANIPUL')
layout.menu("VIEW3D_MT_MirrorMenu2", icon='MOD_MIRROR')
layout.menu("VIEW3D_MT_CursorMenuLite2", icon='PIVOT_CURSOR')
UseSeparator(self, context)
Brendon Murphy
committed
layout.prop_menu_enum(settings, "proportional_edit",
icon="PROP_CON")
layout.prop_menu_enum(settings, "proportional_edit_falloff",
icon="SMOOTHCURVE")
UseSeparator(self, context)
layout.menu("VIEW3D_MT_particle", icon='PARTICLEMODE')
layout.menu("VIEW3D_MT_particle_specials", text="Hair Specials", icon='HAIR')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS2", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode2", icon='VIEW3D')
UseSeparator(self, context)
layout.operator("view3d.toolshelf", icon='MENU_PANEL')
layout.operator("view3d.properties", icon='MENU_PANEL')
Brendon Murphy
committed
# Object Menus #
Brendon Murphy
committed
# ********** Object Menu **********
class VIEW3D_MT_Object2(Menu):
bl_context = "objectmode"
bl_label = "Object"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
view = context.space_data
is_local_view = (view.local_view is not None)
Brendon Murphy
committed
layout.operator("object.delete", text="Delete...").use_global = False
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_parent")
layout.operator("object.join")
Brendon Murphy
committed
if is_local_view:
layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("object.move_to_layer", text="Move out of Local View")
layout.operator_context = 'INVOKE_REGION_WIN'
else:
layout.operator("object.move_to_layer", text="Move to Layer...")
layout.menu("VIEW3D_MT_make_links", text="Make Links...")
layout.menu("VIEW3D_MT_Object_Data_Link2")
UseSeparator(self, context)
layout.menu("VIEW3D_MT_AutoSmooth2", icon='ALIASED')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_constraints")
layout.menu("VIEW3D_MT_object_track")
layout.menu("VIEW3D_MT_object_animation")
UseSeparator(self, context)
layout.menu("VIEW3D_MT_object_game")
layout.menu("VIEW3D_MT_object_showhide")
UseSeparator(self, context)
layout.operator_menu_enum("object.convert", "target")
# ********** Object Add **********
class VIEW3D_MT_AddMenu2(Menu):
bl_label = "Add Object"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
Brendon Murphy
committed
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_mesh_add", text="Add Mesh",
icon='OUTLINER_OB_MESH')
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_curve_add", text="Add Curve",
icon='OUTLINER_OB_CURVE')
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_surface_add", text="Add Surface",
icon='OUTLINER_OB_SURFACE')
layout.operator_menu_enum("object.metaball_add", "type",
icon='OUTLINER_OB_META')
layout.operator("object.text_add", text="Add Text",
icon='OUTLINER_OB_FONT')
UseSeparator(self, context)
Brecht Van Lommel
committed
layout.menu("VIEW3D_MT_armature_add", text="Add Armature",
icon='OUTLINER_OB_ARMATURE')
layout.operator("object.add", text="Lattice",
icon='OUTLINER_OB_LATTICE').type = 'LATTICE'
layout.operator_menu_enum("object.empty_add", "type", text="Empty", icon='OUTLINER_OB_EMPTY')
UseSeparator(self, context)
layout.operator("object.speaker_add", text="Speaker", icon='OUTLINER_OB_SPEAKER')
UseSeparator(self, context)
layout.operator("object.camera_add", text="Camera",
icon='OUTLINER_OB_CAMERA')
layout.operator_menu_enum("object.lamp_add", "type",
icon="OUTLINER_OB_LAMP")
UseSeparator(self, context)
layout.operator_menu_enum("object.effector_add", "type",
text="Force Field",
icon='FORCE_FORCE')
layout.menu("VIEW3D_MT_object_quick_effects", text="Quick Effects", icon='PARTICLES')
UseSeparator(self, context)
layout.operator_menu_enum("object.group_instance_add", "group",
text="Group Instance",
icon='GROUP_VERTEX')
Brendon Murphy
committed
# ********** Object Manipulator **********
class VIEW3D_MT_ManipulatorMenu12(Menu):
bl_label = "Manipulator"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
props = layout.operator("view3d.enable_manipulator", text='Translate', icon='MAN_TRANS')
props.translate = True
props = layout.operator("view3d.enable_manipulator", text='Rotate', icon='MAN_ROT')
props.rotate = True
props = layout.operator("view3d.enable_manipulator", text='Scale', icon='MAN_SCALE')
props.scale = True
UseSeparator(self, context)
props = layout.operator("view3d.enable_manipulator", text='Combo', icon='MAN_SCALE')
props.scale = True
props.rotate = True
props.translate = True
props = layout.operator("view3d.enable_manipulator", text='Hide', icon='MAN_SCALE')
props.scale = False
props.rotate = False
props.translate = False
# ********** Object Mirror **********
class VIEW3D_MT_MirrorMenu2(Menu):
bl_label = "Mirror"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.operator("transform.mirror", text="Interactive Mirror")
UseSeparator(self, context)
layout.operator_context = 'INVOKE_REGION_WIN'
props = layout.operator("transform.mirror", text="X Global")
props.constraint_axis = (True, False, False)
props.constraint_orientation = 'GLOBAL'
props = layout.operator("transform.mirror", text="Y Global")
props.constraint_axis = (False, True, False)
props.constraint_orientation = 'GLOBAL'
props = layout.operator("transform.mirror", text="Z Global")
props.constraint_axis = (False, False, True)
props.constraint_orientation = 'GLOBAL'
Brendon Murphy
committed
if context.edit_object:
Brendon Murphy
committed
UseSeparator(self, context)
props = layout.operator("transform.mirror", text="X Local")
props.constraint_axis = (True, False, False)
props.constraint_orientation = 'LOCAL'
props = layout.operator("transform.mirror", text="Y Local")
props.constraint_axis = (False, True, False)
props.constraint_orientation = 'LOCAL'
props = layout.operator("transform.mirror", text="Z Local")
props.constraint_axis = (False, False, True)
props.constraint_orientation = 'LOCAL'
UseSeparator(self, context)
layout.operator("object.vertex_group_mirror")
Brendon Murphy
committed
# ********** Object Snap Cursor **********
class VIEW3D_MT_Pivot2(Menu):
bl_label = "Pivot"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.prop(context.space_data, "pivot_point", expand=True)
if context.active_object.mode == 'OBJECT':
UseSeparator(self, context)
layout.prop(context.space_data, "use_pivot_point_align", text="Center Points")
Brendon Murphy
committed
class VIEW3D_Snap_Context2(Menu):
bl_label = "Snapping"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
toolsettings = context.tool_settings
layout.prop(toolsettings, "snap_element", expand=True)
layout.prop(toolsettings, "use_snap")
Brendon Murphy
committed
class VIEW3D_Snap_Origin2(Menu):
bl_label = "Snap "
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.operator_context = 'EXEC_AREA'
layout.operator("object.origin_set",
text="Geometry to Origin").type = 'GEOMETRY_ORIGIN'
UseSeparator(self, context)
layout.operator("object.origin_set",
text="Origin to Geometry").type = 'ORIGIN_GEOMETRY'
layout.operator("object.origin_set",
text="Origin to 3D Cursor").type = 'ORIGIN_CURSOR'
layout.operator("object.origin_set",
text="Origin to Center of Mass").type = 'ORIGIN_CENTER_OF_MASS'
Brendon Murphy
committed
class VIEW3D_MT_CursorMenu2(Menu):
bl_label = "Snap Cursor"
Brendon Murphy
committed
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
layout.menu("VIEW3D_Snap_Origin2")
layout.menu("VIEW3D_Snap_Context2")
UseSeparator(self, context)
layout.operator("view3d.snap_cursor_to_selected",
text="Cursor to Selected")
layout.operator("view3d.snap_cursor_to_center",
text="Cursor to Center")
layout.operator("view3d.snap_cursor_to_grid",
text="Cursor to Grid")
layout.operator("view3d.snap_cursor_to_active",
text="Cursor to Active")
UseSeparator(self, context)
layout.operator("view3d.snap_selected_to_cursor",
text="Selection to Cursor").use_offset = False
layout.operator("view3d.snap_selected_to_cursor",
text="Selection to Cursor (Keep Offset)").use_offset = True
layout.operator("view3d.snap_selected_to_grid",
text="Selection to Grid")
layout.operator("view3d.snap_cursor_selected_to_center2",
text="Selection and Cursor to Center")
UseSeparator(self, context)
layout.operator("view3d.pivot_cursor2",
text="Set Cursor as Pivot Point")
layout.operator("view3d.revert_pivot2",
text="Revert Pivot Point")
class VIEW3D_MT_CursorMenuLite2(Menu):
bl_label = "Snap Cursor"
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
UseSeparator(self, context)
layout.operator("view3d.snap_cursor_to_selected",
text="Cursor to Selected")
layout.operator("view3d.snap_cursor_to_center",
text="Cursor to Center")
layout.operator("view3d.snap_cursor_to_grid",
text="Cursor to Grid")
layout.operator("view3d.snap_cursor_to_active",
text="Cursor to Active")
UseSeparator(self, context)
layout.operator("view3d.snap_selected_to_cursor",
text="Selection to Cursor").use_offset = False
layout.operator("view3d.snap_selected_to_cursor",
text="Selection to Cursor (Keep Offset)").use_offset = True
layout.operator("view3d.snap_selected_to_grid",
text="Selection to Grid")