svn merge -r 21041:21301 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
[blender.git] / source / blender / makesrna / RNA_types.h
index 69d9a6db7ce699602854b381cc56692b3fc55be7..923191cba78878ac018d25a143bc1b1ec085fa65 100644 (file)
@@ -91,24 +91,34 @@ typedef enum PropertyFlag {
         * and collections */
        PROP_ANIMATEABLE = 2,
 
+       /* icon */
+       PROP_ICONS_CONSECUTIVE = 4096,
+
        /* function paramater flags */
        PROP_REQUIRED = 4,
        PROP_RETURN = 8,
+       PROP_RNAPTR = 2048,
 
        /* registering */
        PROP_REGISTER = 16,
        PROP_REGISTER_OPTIONAL = 16|32,
 
+       /* pointers */
+       PROP_ID_REFCOUNT = 64,
+
        /* internal flags */
        PROP_BUILTIN = 128,
        PROP_EXPORT = 256,
        PROP_RUNTIME = 512,
-       PROP_IDPROPERTY = 1024
+       PROP_IDPROPERTY = 1024,
+       PROP_RAW_ACCESS = 8192,
+       PROP_RAW_ARRAY = 16384,
 } PropertyFlag;
 
 typedef struct CollectionPropertyIterator {
        /* internal */
        PointerRNA parent;
+       PointerRNA builtin_parent;
        struct PropertyRNA *prop;
        void *internal;
        int idprop;
@@ -124,11 +134,27 @@ typedef struct CollectionPointerLink {
        PointerRNA ptr;
 } CollectionPointerLink;
 
+typedef enum RawPropertyType {
+       PROP_RAW_CHAR,
+       PROP_RAW_SHORT,
+       PROP_RAW_INT,
+       PROP_RAW_FLOAT,
+       PROP_RAW_DOUBLE
+} RawPropertyType;
+
+typedef struct RawArray {
+       void *array;
+       RawPropertyType type;
+       int len;
+       int stride;
+} RawArray;
+
 /* Iterator Utility */
 
 typedef struct EnumPropertyItem {
        int value;
        const char *identifier;
+       int icon;
        const char *name;
        const char *description;
 } EnumPropertyItem;
@@ -152,11 +178,13 @@ typedef struct ParameterIterator {
 /* Function */
 
 typedef enum FunctionFlag {
-       FUNC_TYPESTATIC = 1, /* for static functions, FUNC_ STATIC is taken by some windows header it seems */
+       FUNC_NO_SELF = 1, /* for static functions */
+       FUNC_USE_CONTEXT = 2,
+       FUNC_USE_REPORTS = 4,
 
        /* registering */
-       FUNC_REGISTER = 2,
-       FUNC_REGISTER_OPTIONAL = 2|4,
+       FUNC_REGISTER = 8,
+       FUNC_REGISTER_OPTIONAL = 8|16,
 
        /* internal flags */
        FUNC_BUILTIN = 128,
@@ -164,19 +192,20 @@ typedef enum FunctionFlag {
        FUNC_RUNTIME = 512
 } FunctionFlag;
 
-typedef void (*CallFunc)(PointerRNA *ptr, ParameterList *parms);
+typedef void (*CallFunc)(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, ParameterList *parms);
 
 typedef struct FunctionRNA FunctionRNA;
 
 /* Struct */
 
 typedef enum StructFlag {
-       /* indicates that this struct is an ID struct */
+       /* indicates that this struct is an ID struct, and to use refcounting */
        STRUCT_ID = 1,
+       STRUCT_ID_REFCOUNT = 2,
 
        /* internal flags */
-       STRUCT_RUNTIME = 2,
-       STRUCT_GENERATED = 4
+       STRUCT_RUNTIME = 4,
+       STRUCT_GENERATED = 8
 } StructFlag;
 
 typedef int (*StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function);