From b877dcb6f644fbc4588e5bc75a7aaed6da9ca3cb Mon Sep 17 00:00:00 2001 From: meta-androcto Date: Fri, 26 Aug 2016 19:19:48 +1000 Subject: 3d view pie menus: clean up, remove folder structure & unneeded utils.py --- space_view3d_pie_menus/pie_animation_menu.py | 125 +++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 space_view3d_pie_menus/pie_animation_menu.py (limited to 'space_view3d_pie_menus/pie_animation_menu.py') diff --git a/space_view3d_pie_menus/pie_animation_menu.py b/space_view3d_pie_menus/pie_animation_menu.py new file mode 100644 index 00000000..9c2b6042 --- /dev/null +++ b/space_view3d_pie_menus/pie_animation_menu.py @@ -0,0 +1,125 @@ +# ##### 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_info = { + "name": "Hotkey: 'Alt A'", + "description": "Pie menu for Timeline controls", + # "author": "pitiwazou, meta-androcto", + # "version": (0, 1, 0), + "blender": (2, 77, 0), + "location": "3D View", + "warning": "", + "wiki_url": "", + "category": "Animation Pie" + } + +import bpy +from bpy.types import ( + Menu, + Operator, + ) + +# Pie Animation + + +class PieAnimation(Menu): + bl_idname = "pie.animation" + bl_label = "Pie Animation" + + def draw(self, context): + layout = self.layout + pie = layout.menu_pie() + # 4 - LEFT + pie.operator("screen.frame_jump", text="Jump REW", icon='REW').end = False + # 6 - RIGHT + pie.operator("screen.frame_jump", text="Jump FF", icon='FF').end = True + # 2 - BOTTOM + pie.operator("screen.animation_play", text="Reverse", icon='PLAY_REVERSE').reverse = True + # 8 - TOP + if not context.screen.is_animation_playing: # Play / Pause + pie.operator("screen.animation_play", text="Play", icon='PLAY') + else: + pie.operator("screen.animation_play", text="Stop", icon='PAUSE') + # 7 - TOP - LEFT + pie.operator("screen.keyframe_jump", text="Previous FR", icon='PREV_KEYFRAME').next = False + # 9 - TOP - RIGHT + pie.operator("screen.keyframe_jump", text="Next FR", icon='NEXT_KEYFRAME').next = True + # 1 - BOTTOM - LEFT + pie.operator("insert.autokeyframe", text="Auto Keyframe ", icon='REC') + # 3 - BOTTOM - RIGHT + pie.menu("VIEW3D_MT_object_animation", icon="CLIP") + + +# Insert Auto Keyframe +class InsertAutoKeyframe(Operator): + bl_idname = "insert.autokeyframe" + bl_label = "Insert Auto Keyframe" + bl_description = "Toggle Insert Auto Keyframe" + bl_options = {'REGISTER', 'UNDO'} + + def execute(self, context): + ts = context.tool_settings + + ts.use_keyframe_insert_auto ^= 1 + + for area in context.screen.areas: + if area.type in ('TIMELINE'): + area.tag_redraw() + + return {'FINISHED'} + +classes = ( + PieAnimation, + InsertAutoKeyframe + ) + +addon_keymaps = [] + + +def register(): + for cls in classes: + bpy.utils.register_class(cls) + wm = bpy.context.window_manager + + if wm.keyconfigs.addon: + # Animation + km = wm.keyconfigs.addon.keymaps.new(name='Object Non-modal') + kmi = km.keymap_items.new('wm.call_menu_pie', 'A', 'PRESS', alt=True) + kmi.properties.name = "pie.animation" + # kmi.active = True + 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: + km = kc.keymaps['Object Non-modal'] + for kmi in km.keymap_items: + if kmi.idname == 'wm.call_menu_pie': + if kmi.properties.name == "pie.animation": + km.keymap_items.remove(kmi) + + +if __name__ == "__main__": + register() -- cgit v1.2.3