2.5: RNA, defining enums, pointers and collections properties is now
[blender.git] / source / blender / makesrna / intern / rna_ID.c
index cf3d59f78a0552ed5280591511fbde797404cd98..f6e0a2468c4c43863e488c94a7554e7477aa6958 100644 (file)
@@ -152,6 +152,30 @@ IDProperty *rna_IDPropertyGroup_idproperties(PointerRNA *ptr, int create)
        return ptr->data;
 }
 
+void rna_IDPropertyGroup_unregister(const bContext *C, StructRNA *type)
+{
+       RNA_struct_free(&BLENDER_RNA, type);
+}
+
+StructRNA *rna_IDPropertyGroup_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
+{
+       PointerRNA dummyptr;
+
+       /* create dummy pointer */
+       RNA_pointer_create(NULL, &RNA_IDPropertyGroup, NULL, &dummyptr);
+
+       /* validate the python class */
+       if(validate(&dummyptr, data, NULL) != 0)
+               return NULL;
+
+       return RNA_def_struct(&BLENDER_RNA, identifier, "IDPropertyGroup");  // XXX
+}
+
+StructRNA* rna_IDPropertyGroup_refine(PointerRNA *ptr)
+{
+       return ptr->type;
+}
+
 #else
 
 static void rna_def_ID_properties(BlenderRNA *brna)
@@ -210,6 +234,8 @@ static void rna_def_ID_properties(BlenderRNA *brna)
        srna= RNA_def_struct(brna, "IDPropertyGroup", NULL);
        RNA_def_struct_ui_text(srna, "ID Property Group", "Group of ID properties.");
        RNA_def_struct_idproperties_func(srna, "rna_IDPropertyGroup_idproperties");
+       RNA_def_struct_register_funcs(srna, "rna_IDPropertyGroup_register", "rna_IDPropertyGroup_unregister");
+       RNA_def_struct_refine_func(srna, "rna_IDPropertyGroup_refine");
 }
 
 static void rna_def_ID(BlenderRNA *brna)