From 063a7f217be43718a69f6cbcfcf322ca71bdeeb0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 18 Feb 2011 08:47:37 +0000 Subject: python api docs & examples for registrable Menu/Panel/Operator/PropertyGroup classes. --- doc/python_api/examples/bpy.types.Operator.4.py | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 doc/python_api/examples/bpy.types.Operator.4.py (limited to 'doc/python_api/examples/bpy.types.Operator.4.py') diff --git a/doc/python_api/examples/bpy.types.Operator.4.py b/doc/python_api/examples/bpy.types.Operator.4.py new file mode 100644 index 00000000000..4cb7b02fdc6 --- /dev/null +++ b/doc/python_api/examples/bpy.types.Operator.4.py @@ -0,0 +1,46 @@ +""" +Custom Drawing +++++++++++++++ +By default operator properties use an automatic user interface layout. +If you need more control you can create your own layout with a +:class:`Operator.draw` function. + +This works like the :class:`Panel` and :class:`Menu` draw functions, its used +for dialogs and file selectors. +""" +import bpy + + +class CustomDrawOperator(bpy.types.Operator): + bl_idname = "object.custom_draw" + bl_label = "Simple Modal Operator" + + filepath = bpy.props.StringProperty(subtype="FILE_PATH") + + my_float = bpy.props.FloatProperty(name="Float") + my_bool = bpy.props.BoolProperty(name="Toggle Option") + my_string = bpy.props.StringProperty(name="String Value") + + def execute(self, context): + print() + return {'FINISHED'} + + def invoke(self, context, event): + context.window_manager.fileselect_add(self) + return {'RUNNING_MODAL'} + + def draw(self, context): + layout = self.layout + col = layout.column() + col.label(text="Custom Interface!") + + row = col.row() + row.prop(self, "my_float") + row.prop(self, "my_bool") + + col.prop(self, "my_string") + +bpy.utils.register_class(CustomDrawOperator) + +# test call +bpy.ops.object.custom_draw('INVOKE_DEFAULT') -- cgit v1.2.3