fix for enabling/disabing all contrib addons.
[blender-addons-contrib.git] / space_view3d_manipulator_Menu.py
1 #re creating the functionality of the manipulator menu from 2.49
2 #
3 #ported by Michael Williamson
4 #
5 # ##### BEGIN GPL LICENSE BLOCK #####
6 #
7 #  This program is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU General Public License
9 #  as published by the Free Software Foundation; either version 2
10 #  of the License, or (at your option) any later version.
11 #
12 #  This program is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #  GNU General Public License for more details.
16 #
17 #  You should have received a copy of the GNU General Public License
18 #  along with this program; if not, write to the Free Software Foundation,
19 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 #
21 # ##### END GPL LICENSE BLOCK #####
22
23 bl_info = {
24     'name': 'Manipulator Menu',
25     'author': 'MichaelW',
26     'version': (1,),
27     'blender': (2, 5, 3),
28     'api': 33907,
29     'location': 'View3D > Ctrl Space ',
30     'description': 'Menu to change the manipulator type and/or disable it',
31     'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/Py/'\
32         'Scripts/3D_interaction/Manipulator_Menu',
33     'tracker_url': 'https://projects.blender.org/tracker/index.php?'\
34         'func=detail&aid=22092',
35     'category': '3D View'}
36
37 "Add manipulator menu  (Ctrl-space in 3d view)"
38
39 """
40 This adds a popup menu to change the manipulator mode.
41 to move, rotate, scale or combo like in 2.49
42
43 Usage:
44 * Ctrl Space in the 3d view
45
46 * Choose your function from the menu.
47
48 Version history:
49 V1(MichaelW) initial port form 2.49
50 """
51
52 import bpy
53
54 def main(context):
55     bpy.context.space_data.manipulator = False
56
57 #class VIEW3D_OT_disable_manipulator(bpy.types.Operator):
58 #    ''''''
59 #    bl_idname = "VIEW3D_OT_disable_manipulator"
60 #    bl_label = "disable manipulator"
61 #
62 #    def poll(self, context):
63 #        return context.active_object != None
64 #
65 #    def execute(self, context):
66 #        main(context)
67 #        return {'FINISHED'}
68 #
69
70
71 class VIEW3D_MT_ManipulatorMenu(bpy.types.Menu):
72     bl_label = "ManipulatorType"
73
74     def draw(self, context):
75         layout = self.layout
76         layout.operator_context = 'INVOKE_REGION_WIN'
77
78
79
80         prop = layout.operator("view3d.enable_manipulator",text ='Translate', icon='MAN_TRANS')
81         prop.translate = True
82
83         prop = layout.operator("view3d.enable_manipulator",text ='Rotate', icon='MAN_ROT')
84         prop.rotate = True
85
86         prop = layout.operator("view3d.enable_manipulator",text ='Scale', icon='MAN_SCALE')
87         prop.scale = True
88         layout.separator()
89
90         prop = layout.operator("view3d.enable_manipulator",text ='Combo', icon='MAN_SCALE')
91         prop.scale = True
92         prop.rotate = True
93         prop.translate = True
94
95         layout.separator()
96
97         bpy.context.space_data.show_manipulator =True
98 #        layout.operator("view3d.disable_manipulator",text ='Disable', icon='MANIPUL')
99 #        layout.separator()
100
101
102             
103 def register():
104     km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View Generic']
105     kmi = km.keymap_items.new('wm.call_menu', 'SPACE', 'PRESS' , ctrl=True)
106     kmi.properties.name = "VIEW3D_MT_ManipulatorMenu"
107
108
109 def unregister():
110     for kmi in km.items:
111         if kmi.idname == 'wm.call_menu':
112             if kmi.properties.name == "VIEW3D_MT_ManipulatorMenu":
113                 km.keymap_items.remove(kmi)
114                 break
115
116 if __name__ == "__main__":
117     register()