forked from fedackb/mesh-fairing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathui.py
82 lines (62 loc) · 2.7 KB
/
ui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# ##### 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 3 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, see <http://www.gnu.org/licenses/>.
#
# ##### END GPL LICENSE BLOCK #####
import bpy
from . import moduleutil
from . import operators
def display_popup(message: str, title: str = '', icon: str = ''):
def draw(self, context):
self.layout.label(text = message)
bpy.context.window_manager.popup_menu(draw, title = title, icon = icon)
def draw_vertex_menu(menu: bpy.types.Menu, context: bpy.types.Context):
layout = menu.layout
layout.operator_context = 'INVOKE_DEFAULT'
layout.separator()
layout.operator(operators.MESH_OT_fair_vertices.bl_idname,
text = 'Fair Vertices')
def draw_sculpt_menu(menu: bpy.types.Menu, context: bpy.types.Context):
layout = menu.layout
layout.separator()
layout.operator(operators.SCULPT_OT_fair_vertices.bl_idname,
text = 'Fair Vertices')
def draw_numpy_ui(context: bpy.types.Context, layout: bpy.types.UILayout):
numpy_is_installed = moduleutil.is_installed('numpy')
col = layout.column(align = True)
if numpy_is_installed:
col.label(text = 'NumPy is already installed', icon = 'INFO')
else:
col.label(text = 'NumPy is not installed', icon = 'ERROR')
row = col.row()
row.enabled = not numpy_is_installed
op = row.operator(operators.SCRIPT_OT_install_module.bl_idname,
text = 'Install NumPy')
op.name = 'numpy'
op.reload_scripts = True
def draw_scipy_ui(context: bpy.types.Context, layout: bpy.types.UILayout):
numpy_is_installed = moduleutil.is_installed('numpy')
scipy_is_installed = moduleutil.is_installed('scipy')
col = layout.column(align = True)
if scipy_is_installed:
col.label(text = 'SciPy is already installed', icon = 'INFO')
else:
col.label(text = 'SciPy is not installed', icon = 'ERROR')
row = col.row()
row.enabled = numpy_is_installed and not scipy_is_installed
op = row.operator(operators.SCRIPT_OT_install_module.bl_idname,
text = 'Install SciPy')
op.name = 'scipy'
op.options = '--no-deps'
op.reload_scripts = True