Support for update callbacks in python defined RNA properties as discussed last meeting.
[blender.git] / source / blender / makesrna / intern / rna_define.c
index 66d1036ec44578cd90c7b2222126437d88383ab3..8e9c7e287d63120691ea4a0e7f1ead39a737b980 100644 (file)
@@ -1839,6 +1839,11 @@ void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
        prop->update= (UpdateFunc)func;
 }
 
+void RNA_def_property_update_runtime(PropertyRNA *prop, void *func)
+{
+       prop->update= func;
+}
+
 void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
 {
        if(!DefRNA.preprocess) {
@@ -2057,6 +2062,11 @@ void RNA_def_property_srna(PropertyRNA *prop, const char *type)
        prop->srna= (StructRNA*)type;
 }
 
+void RNA_def_py_data(PropertyRNA *prop, void *py_data)
+{
+       prop->py_data= py_data;
+}
+
 /* Compact definitions */
 
 PropertyRNA *RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, int default_value, const char *ui_name, const char *ui_description)
@@ -2822,6 +2832,7 @@ void RNA_def_property_free_pointers(PropertyRNA *prop)
                if(prop->identifier) MEM_freeN((void*)prop->identifier);
                if(prop->name) MEM_freeN((void*)prop->name);
                if(prop->description) MEM_freeN((void*)prop->description);
+               if(prop->py_data) MEM_freeN(prop->py_data);
 
                switch(prop->type) {
                        case PROP_BOOLEAN: {