Use URL icon, add Tip: prefix, increase lower margin
[blender-addons-contrib.git] / mesh_extra_tools / __init__.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7 #
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18 # Contributed to by
19 # meta-androcto #
20
21 bl_info = {
22     "name": "Extra Tools",
23     "author": "various",
24     "version": (0, 1),
25     "blender": (2, 71, 0),
26     "location": "View3D > Toolshelf > Addons Tab & Specials (W-key)",
27     "description": "Add extra mesh edit tools",
28     "warning": "",
29     "wiki_url": "",
30     "tracker_url": "https://developer.blender.org/T32711",
31     "category": "Mesh"}
32
33
34 if "bpy" in locals():
35     import imp
36     imp.reload(mesh_bump)
37     imp.reload(face_inset_fillet)
38     imp.reload(mesh_bevel_witold)
39     imp.reload(mesh_filletplus)
40     imp.reload(mesh_normal_smooth)
41     imp.reload(mesh_polyredux)
42     imp.reload(mesh_vertex_chamfer)
43     imp.reload(mesh_mextrude_plus)
44
45 else:
46     from . import mesh_bump
47     from . import face_inset_fillet
48     from . import mesh_bevel_witold
49     from . import mesh_filletplus
50     from . import mesh_normal_smooth
51     from . import mesh_polyredux
52     from . import mesh_vertex_chamfer
53     from . import mesh_mextrude_plus
54
55 import bpy
56
57 class VIEW3D_MT_edit_mesh_extras(bpy.types.Menu):
58     # Define the "Extras" menu
59     bl_idname = "VIEW3D_MT_edit_mesh_extras"
60     bl_label = "Extra Tools"
61
62     def draw(self, context):
63         layout = self.layout
64         layout.operator_context = 'INVOKE_REGION_WIN'
65         layout.operator("faceinfillet.op0_id",
66             text="Face Inset Fillet")
67         layout.operator("fillet.op0_id",
68             text="Edge Fillet Plus")
69         layout.operator("object.mextrude",
70             text="Multi Extrude")
71         layout.operator("mesh.bump",
72             text="Inset Extrude Bump")
73         layout.operator("mesh.mbevel",
74             text="Bevel Selected")
75         layout.operator("mesh.vertex_chamfer",
76             text="Vertex Chamfer")
77         layout.operator("mesh.polyredux",
78             text="Poly Redux")
79         layout.operator("normal.smooth",
80             text="Normal Smooth")
81
82
83 class ExtrasPanel(bpy.types.Panel):
84     bl_label = 'Mesh Extra Tools'
85     bl_space_type = 'VIEW_3D'
86     bl_region_type = 'TOOLS'
87     bl_context = 'mesh_edit'
88     bl_category = 'Addons'
89     bl_options = {'DEFAULT_CLOSED'}
90
91     def draw(self, context):
92         layout = self.layout
93         row = layout.split(0.80)
94         row.operator('faceinfillet.op0_id', text = 'Face Inset Fillet', icon = 'PLUGIN')
95         row.operator('help.face_inset', text = '', icon = 'INFO')
96         row = layout.split(0.80)
97         row.operator('fillet.op0_id', text = 'Edge Fillet plus', icon = 'PLUGIN')
98         row.operator('help.edge_fillet', text = '', icon = 'INFO')
99         row = layout.split(0.80)
100         row.operator('object.mextrude', text = 'Multi Face Extrude', icon = 'PLUGIN')
101         row.operator('help.mextrude', text = '', icon = 'INFO')
102         row = layout.split(0.80)
103         row.operator('mesh.bump', text = 'Inset Bump', icon = 'PLUGIN')
104         row.operator('help.bump', text = '', icon = 'INFO')
105         row = layout.split(0.80)
106         row.operator('mesh.mbevel', text = 'Bevel Selected', icon = 'PLUGIN')
107         row.operator('help.edge_bevel', text = '', icon = 'INFO')
108         row = layout.split(0.80)
109         row.operator('mesh.vertex_chamfer', text = 'Vertex Chamfer' , icon = 'PLUGIN')
110         row.operator('help.vertexchamfer', text = '', icon = 'INFO')
111         row = layout.split(0.80)
112         row.operator('mesh.polyredux', text = 'Poly Redux', icon = 'PLUGIN')
113         row.operator('help.polyredux', text = '', icon = 'INFO')
114         row = layout.split(0.80)
115         row.operator('normal.smooth', text = 'Normal Smooth', icon = 'PLUGIN')
116         row.operator('help.normal_smooth', text = '', icon = 'INFO')
117         row = layout.split(0.50)
118         row.operator('mesh.flip_normals', text = 'Normals Flip')
119         row.operator('mesh.remove_doubles', text = 'Remove Doubles')
120
121
122 # Multi Extrude Panel
123
124 class ExtrudePanel(bpy.types.Panel):
125     bl_label = 'Multi Extrude Plus'
126     bl_space_type = 'VIEW_3D'
127     bl_region_type = 'TOOLS'
128     bl_category = 'Addons'
129     bl_options = {'DEFAULT_CLOSED'}
130
131     def draw(self, context):
132         layout = self.layout
133         row = layout.split(0.80)
134         row.operator('object.mextrude', text = 'Multi Face Extrude', icon = 'PLUGIN')
135         row.operator('help.mextrude', text = '', icon = 'INFO')
136         row = layout.split(0.80)
137         row.operator('object.mesh2bones', text = 'Add Armature', icon = 'PLUGIN')
138         row.operator('help.addarm', text = '', icon = 'INFO')
139
140 # Define "Extras" menu
141 def menu_func(self, context):
142     self.layout.menu('VIEW3D_MT_edit_mesh_extras', icon='PLUGIN')
143
144
145 def register():
146     bpy.utils.register_module(__name__)
147
148     # Add "Extras" menu to the "Add Mesh" menu
149     bpy.types.VIEW3D_MT_edit_mesh_specials.prepend(menu_func)
150
151
152 def unregister():
153     bpy.utils.unregister_module(__name__)
154
155     # Remove "Extras" menu from the "Add Mesh" menu.
156     bpy.types.VIEW3D_MT_edit_mesh_specials.remove(menu_func)
157
158 if __name__ == "__main__":
159     register()