-
Joshua Leung authored
Port the "View 3D Pie Menus" Addon's "Manipulator" Pie over to activate tools, as manipulators are no more * Spring team animator request * It's no longer possible to combinations of manipulators. Hence the reason they don't exist here * I've kept the basic/original layout to avoid muscle memory problems. However, as a result, the new pie doesn't make good use of space, and is unbalanced.
Joshua Leung authoredPort the "View 3D Pie Menus" Addon's "Manipulator" Pie over to activate tools, as manipulators are no more * Spring team animator request * It's no longer possible to combinations of manipulators. Hence the reason they don't exist here * I've kept the basic/original layout to avoid muscle memory problems. However, as a result, the new pie doesn't make good use of space, and is unbalanced.
pie_manipulator_menu.py 3.38 KiB
# ##### 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 #####
# <pep8 compliant>
bl_info = {
"name": "Hotkey: 'Ctrl Space'",
"description": "Extended Manipulator Menu",
"author": "pitiwazou, meta-androcto",
"version": (0, 1, 1),
"blender": (2, 77, 0),
"location": "3D View",
"warning": "",
"wiki_url": "",
"category": "Manipulator Pie"
}
import bpy
from bpy.types import (
Menu,
Operator,
)
class WManupulators(Operator):
bl_idname = "w.manupulators"
bl_label = "W Manupulators"
bl_options = {'REGISTER', 'UNDO'}
bl_description = " Show/Hide Manipulator"
def execute(self, context):
if context.space_data.show_manipulator is True:
context.space_data.show_manipulator = False
elif context.space_data.show_manipulator is False:
context.space_data.show_manipulator = True
return {'FINISHED'}
# Pie Manipulators - Ctrl + Space
class PieManipulator(Menu):
bl_idname = "pie.manipulator"
bl_label = "Pie Manipulator"
def draw(self, context):
layout = self.layout
pie = layout.menu_pie()
# 4 - LEFT
pie.separator() # Rotate/Scale
# 6 - RIGHT
pie.operator("wm.tool_set_by_name", text="Rotate", icon='MAN_ROT').name = "Rotate"
# 2 - BOTTOM
pie.operator("wm.tool_set_by_name", text="Translate/Rotate/Scale").name = "Transform"
# 8 - TOP
pie.operator("w.manupulators", text="Show/Hide Toggle", icon='MANIPUL')
# 7 - TOP - LEFT
pie.separator() # Translate/Rotate
# 9 - TOP - RIGHT
pie.operator("wm.tool_set_by_name", text="Translate", icon='MAN_TRANS').name = "Move"
# 1 - BOTTOM - LEFT
pie.separator() # Translate/Scale
# 3 - BOTTOM - RIGHT
pie.operator("wm.tool_set_by_name", text="Scale", icon='MAN_SCALE').name = "Scale"
classes = (
PieManipulator,
WManupulators,
)
addon_keymaps = []
def register():
for cls in classes:
bpy.utils.register_class(cls)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
# Manipulators
km = wm.keyconfigs.addon.keymaps.new(name='3D View Generic', space_type='VIEW_3D')
kmi = km.keymap_items.new('wm.call_menu_pie', 'SPACE', 'PRESS', ctrl=True)
kmi.properties.name = "pie.manipulator"
addon_keymaps.append((km, kmi))
def unregister():
for cls in classes:
bpy.utils.unregister_class(cls)
wm = bpy.context.window_manager
kc = wm.keyconfigs.addon
if kc:
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
if __name__ == "__main__":
register()