python operators (in bpy_opwrapper.*)
authorCampbell Barton <ideasman42@gmail.com>
Sat, 27 Dec 2008 14:52:49 +0000 (14:52 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 27 Dec 2008 14:52:49 +0000 (14:52 +0000)
commit0714d28236e66b258de90bcbb8a1a821ee424a71
treef7b99bdec9e093e0e2ecf1b00229f37d1ca2687c
parent86886cbc55c036af44833fd861cfd276fbec256a
python operators (in bpy_opwrapper.*)
This means you can define an operator in python that is called from C or Python - like any other operator.

Python functions for invoke and exec can be registered with an operator name.

keywords are read from the python exec() function, then used to create operator properties. The default python values are used to set the property type and defaults.

def exec(size=2.0, text="blah"): ...

is equivalent to...
prop = RNA_def_property(ot->srna, "size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_default(prop, 2.0f);

prop = RNA_def_property(ot->srna, "size", PROP_STRING, PROP_NONE);
RNA_def_property_string_default(prop, "blah");

TODO -
* make use of events
* return OPERATOR_CANCELLED/OPERATOR_FINISHED.. etc
* add support for array args
* more testing
source/blender/makesdna/DNA_windowmanager_types.h
source/blender/makesrna/RNA_define.h
source/blender/makesrna/intern/rna_define.c
source/blender/python/intern/bpy_operator.c
source/blender/python/intern/bpy_opwrapper.c [new file with mode: 0644]
source/blender/python/intern/bpy_opwrapper.h [new file with mode: 0644]
source/blender/python/intern/bpy_rna.c
source/blender/python/intern/bpy_rna.h
source/blender/windowmanager/WM_api.h
source/blender/windowmanager/intern/wm_operators.c