mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-11-17 03:27:57 +01:00
113 lines
2.4 KiB
Python
113 lines
2.4 KiB
Python
|
from bpy import context
|
||
|
|
||
|
CONTEXT = {
|
||
|
0: {
|
||
|
'title': "Error Message",
|
||
|
'icon': 'CANCEL'
|
||
|
},
|
||
|
1: {
|
||
|
'title': "Warning Message",
|
||
|
'icon': 'ERROR' # I prefer this icon for warnings
|
||
|
},
|
||
|
2: {
|
||
|
'title': "Message",
|
||
|
'icon': 'NONE'
|
||
|
},
|
||
|
3: {
|
||
|
'title': "Question",
|
||
|
'icon': 'QUESTION'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
def error(message, title="", wrap=40):
|
||
|
"""Creates an error dialog.
|
||
|
|
||
|
:param message: text of the message body
|
||
|
:param title: text to append to the title
|
||
|
(Default value = "")
|
||
|
:param wrap: line width (Default value = 40)
|
||
|
|
||
|
"""
|
||
|
_draw(message, title, wrap, 0)
|
||
|
|
||
|
|
||
|
def warning(message, title="", wrap=40):
|
||
|
"""Creates an error dialog.
|
||
|
|
||
|
:param message: text of the message body
|
||
|
:param title: text to append to the title
|
||
|
(Default value = "")
|
||
|
:param wrap: line width (Default value = 40)
|
||
|
|
||
|
"""
|
||
|
_draw(message, title, wrap, 1)
|
||
|
|
||
|
|
||
|
|
||
|
def info(message, title="", wrap=40):
|
||
|
"""Creates an error dialog.
|
||
|
|
||
|
:param message: text of the message body
|
||
|
:param title: text to append to the title
|
||
|
(Default value = "")
|
||
|
:param wrap: line width (Default value = 40)
|
||
|
|
||
|
"""
|
||
|
_draw(message, title, wrap, 2)
|
||
|
|
||
|
|
||
|
|
||
|
def question(message, title="", wrap=40):
|
||
|
"""Creates an error dialog.
|
||
|
|
||
|
:param message: text of the message body
|
||
|
:param title: text to append to the title
|
||
|
(Default value = "")
|
||
|
:param wrap: line width (Default value = 40)
|
||
|
|
||
|
"""
|
||
|
_draw(message, title, wrap, 3)
|
||
|
|
||
|
|
||
|
|
||
|
# Great idea borrowed from
|
||
|
# http://community.cgcookie.com/t/code-snippet-easy-error-messages/203
|
||
|
def _draw(message, title, wrap, key):
|
||
|
"""
|
||
|
|
||
|
:type message: str
|
||
|
:type title: str
|
||
|
:type wrap: int
|
||
|
:type key: int
|
||
|
|
||
|
"""
|
||
|
lines = []
|
||
|
if wrap > 0:
|
||
|
while len(message) > wrap:
|
||
|
i = message.rfind(' ', 0, wrap)
|
||
|
if i == -1:
|
||
|
lines += [message[:wrap]]
|
||
|
message = message[wrap:]
|
||
|
else:
|
||
|
lines += [message[:i]]
|
||
|
message = message[i+1:]
|
||
|
if message:
|
||
|
lines += [message]
|
||
|
|
||
|
def draw(self, *args):
|
||
|
"""
|
||
|
|
||
|
:param self:
|
||
|
:param *args:
|
||
|
|
||
|
"""
|
||
|
for line in lines:
|
||
|
self.layout.label(line)
|
||
|
|
||
|
title = "%s: %s" % (title, CONTEXT[key]['title'])
|
||
|
icon = CONTEXT[key]['icon']
|
||
|
|
||
|
context.window_manager.popup_menu(
|
||
|
draw, title=title.strip(), icon=icon)
|