Merge with trunk r37677
[blender.git] / source / blender / makesrna / RNA_types.h
index 3a15146770f3f36e702aa801810b69a1e8a1c59e..ec213d6a496cbbe13b5e975a662d5ba5a5f96f28 100644 (file)
@@ -39,10 +39,12 @@ extern "C" {
 struct ParameterList;
 struct FunctionRNA;
 struct PropertyRNA;
+struct EnumPropertyRNA;
 struct StructRNA;
 struct BlenderRNA;
 struct IDProperty;
 struct bContext;
+struct Main;
 struct ReportList;
 
 /** Pointer
@@ -157,6 +159,8 @@ typedef enum PropertyFlag {
 
        /* hidden in  the user interface */
        PROP_HIDDEN = 1<<19,
+       /* do not write in presets */
+       PROP_SKIP_SAVE = 1<<28,
 
        /* function paramater flags */
        PROP_REQUIRED = 1<<2,
@@ -188,6 +192,7 @@ typedef enum PropertyFlag {
 
        /* need context for update function */
        PROP_CONTEXT_UPDATE = 1<<22,
+       PROP_CONTEXT_PROPERTY_UPDATE = (1<<22)|(1<<27),
 
        /* Use for arrays or for any data that should not have a referene kept
         * most common case is functions that return arrays where the array */
@@ -254,7 +259,8 @@ typedef struct EnumPropertyItem {
        const char *description;
 } EnumPropertyItem;
 
-typedef EnumPropertyItem *(*EnumPropertyItemFunc)(struct bContext *C, PointerRNA *ptr, int *free);
+/* this is a copy of 'PropEnumItemFunc' defined in rna_internal_types.h */
+typedef EnumPropertyItem *(*EnumPropertyItemFunc)(struct bContext *C, PointerRNA *ptr, struct PropertyRNA *prop, int *free);
 
 typedef struct PropertyRNA PropertyRNA;
 
@@ -329,9 +335,10 @@ typedef enum StructFlag {
 typedef int (*StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function);
 typedef int (*StructCallbackFunc)(struct bContext *C, struct PointerRNA *ptr, struct FunctionRNA *func, ParameterList *list);
 typedef void (*StructFreeFunc)(void *data);
-typedef struct StructRNA *(*StructRegisterFunc)(struct bContext *C, struct ReportList *reports, void *data,
+typedef struct StructRNA *(*StructRegisterFunc)(struct Main *bmain, struct ReportList *reports, void *data,
        const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free);
-typedef void (*StructUnregisterFunc)(const struct bContext *C, struct StructRNA *type);
+typedef void (*StructUnregisterFunc)(struct Main *bmain, struct StructRNA *type);
+typedef void **(*StructInstanceFunc)(PointerRNA *ptr);
 
 typedef struct StructRNA StructRNA;