diff options
Diffstat (limited to 'release/scripts/templates_py')
-rw-r--r-- | release/scripts/templates_py/ui_tool_simple.py | 65 |
1 files changed, 65 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..9cd71d0160c --- /dev/null +++ b/release/scripts/templates_py/ui_tool_simple.py @@ -0,0 +1,65 @@ +# This example adds an object mode tool to the toolbar. +# This is just the circle-select and lasso tools tool. +import bpy +from bpy.utils.toolsystem import ToolDef +from bpy.types import WorkSpaceTool + +class MyTool(WorkSpaceTool): + bl_space_type='VIEW_3D' + bl_context_mode='OBJECT' + + # The prefix of the idname should be your add-on name. + bl_idname = "my_template.my_circle_select" + bl_label = "My Circle Select" + bl_description = ( + "This is a tooltip\n" + "with multiple lines" + ) + bl_icon = "ops.generic.select_circle" + bl_widget = None + bl_keymap = ( + ("view3d.select_circle", {"type": 'LEFTMOUSE', "value": 'PRESS'}, + {"properties": [("wait_for_input", False)]}), + ("view3d.select_circle", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, + {"properties": [("mode", 'SUB'), ("wait_for_input", False)]}), + ) + + def draw_settings(context, layout, tool): + props = tool.operator_properties("view3d.select_circle") + layout.prop(props, "mode") + layout.prop(props, "radius") + + +class MyOtherTool(WorkSpaceTool): + bl_space_type='VIEW_3D' + bl_context_mode='OBJECT' + + bl_idname = "my_template.my_other_select" + bl_label = "My Lasso Tool Select" + bl_description = ( + "This is a tooltip\n" + "with multiple lines" + ) + bl_icon = "ops.generic.select_lasso" + bl_widget = None + bl_keymap = ( + ("view3d.select_lasso", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), + ("view3d.select_lasso", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, + {"properties": [("mode", 'SUB')]}), + ) + + def draw_settings(context, layout, tool): + props = tool.operator_properties("view3d.select_lasso") + layout.prop(props, "mode") + + +def register(): + bpy.utils.register_tool(MyTool, after={"builtin.scale_cage"}, separator=True, group=True) + bpy.utils.register_tool(MyOtherTool, after={MyTool.bl_idname}) + +def unregister(): + bpy.utils.unregister_tool(MyTool) + bpy.utils.unregister_tool(MyOtherTool) + +if __name__ == "__main__": + register() |