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:
Diffstat (limited to 'doc/python_api/examples/bpy.types.Operator.1.py')
-rw-r--r--doc/python_api/examples/bpy.types.Operator.1.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/python_api/examples/bpy.types.Operator.1.py b/doc/python_api/examples/bpy.types.Operator.1.py
new file mode 100644
index 00000000000..133dc09af46
--- /dev/null
+++ b/doc/python_api/examples/bpy.types.Operator.1.py
@@ -0,0 +1,52 @@
+"""
+Invoke Function
++++++++++++++++
+:class:`Operator.invoke` is used to initialize the operator from the context
+at the moment the operator is called.
+invoke() is typically used to assign properties which are then used by
+execute().
+Some operators don't have an execute() function, removing the ability to be
+repeated from a script or macro.
+
+This example shows how to define an operator which gets mouse input to
+execute a function and that this operator can be invoked or executed from
+the python api.
+
+Also notice this operator defines its own properties, these are different
+to typical class properties because blender registers them with the
+operator, to use as arguments when called, saved for operator undo/redo and
+automatically added into the user interface.
+"""
+import bpy
+
+
+class SimpleMouseOperator(bpy.types.Operator):
+ """ This operator shows the mouse location,
+ this string is used for the tooltip and API docs
+ """
+ bl_idname = "wm.mouse_position"
+ bl_label = "Invoke Mouse Operator"
+
+ x = bpy.props.IntProperty()
+ y = bpy.props.IntProperty()
+
+ def execute(self, context):
+ # rather then printing, use the report function,
+ # this way the messag appiers in the header,
+ self.report({'INFO'}, "Mouse coords are %d %d" % (self.x, self.y))
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ self.x = event.mouse_x
+ self.y = event.mouse_y
+ return self.execute(context)
+
+bpy.utils.register_class(SimpleMouseOperator)
+
+# Test call to the newly defined operator.
+# Here we call the operator and invoke it, meaning that the settings are taken
+# from the mouse.
+bpy.ops.wm.mouse_position('INVOKE_DEFAULT')
+
+# Another test call, this time call execute() directly with pre-defined settings.
+bpy.ops.wm.mouse_position('EXEC_DEFAULT', x=20, y=66)