Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-10-18 08:46:43 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-10-18 09:13:22 +0300
commit108475dc019d0b7f7c1f20acdd528832edc88901 (patch)
tree8d80137b84d3243eee36c5f92baeeab74b04718e /release/scripts/templates_py
parent321c8232bc240a0e86a3fa2ed1a3f8871d53d8aa (diff)
PyAPI: Support for custom tool registration
Added a module bpy.utils.toolsystem which only exposes ToolDef, to avoid scripts referencing bl_ui internals.
Diffstat (limited to 'release/scripts/templates_py')
-rw-r--r--release/scripts/templates_py/ui_tool_simple.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/release/scripts/templates_py/ui_tool_simple.py b/release/scripts/templates_py/ui_tool_simple.py
new file mode 100644
index 00000000000..920a23b081a
--- /dev/null
+++ b/release/scripts/templates_py/ui_tool_simple.py
@@ -0,0 +1,35 @@
+# This example adds an object mode tool to the toolbar.
+# This is just the circle-select tool.
+import bpy
+from bpy.utils.toolsystem import ToolDef
+
+@ToolDef.from_fn
+def my_tool():
+ def draw_settings(context, layout, tool):
+ props = tool.operator_properties("view3d.select_circle")
+ layout.prop(props, "radius")
+ return dict(
+ text="My Circle Select",
+ description=(
+ "This is a tooltip\n"
+ "with multiple lines"
+ ),
+ icon="ops.generic.select_circle",
+ widget=None,
+ keymap=(
+ ("view3d.select_circle", dict(deselect=False), dict(type='ACTIONMOUSE', value='PRESS')),
+ ("view3d.select_circle", dict(deselect=True), dict(type='ACTIONMOUSE', value='PRESS', ctrl=True)),
+ ),
+ draw_settings=draw_settings,
+ )
+
+
+def register():
+ bpy.utils.register_tool('VIEW_3D', 'OBJECT', my_tool)
+
+
+def unregister():
+ bpy.utils.unregister_tool('VIEW_3D', 'OBJECT', my_tool)
+
+if __name__ == "__main__":
+ register()