diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2017-11-29 05:52:06 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-11-29 05:53:34 +0300 |
commit | ad625acda82281461267a3379c57ce76d54325a1 (patch) | |
tree | 22b2b7c583ba35c33cfec4aac7608f5f62e6e2c8 /source/blender/makesrna/intern/rna_internal_types.h | |
parent | 0b325ba201269b3c8aab6e61c70f15c1758737d8 (diff) |
RNA: Allow structs to define tags for their properties
Adds support for defining a number of tags as part of the rna-struct
definition, which its properties can set similar to property-flags.
BPY supports setting these tags when defining custom properties too.
* To define tags for a struct (which its properties can use then), define the tags in an `EnumPropertyItem` array, and assign them to the struct using `RNA_def_struct_property_tags(...)`.
* To set tags for an RNA-property in C, use the new `RNA_def_property_tags(...)`.
* To set tags for an RNA-property in Python, use the newly added tags parameter. E.g. `bpy.props.FloatProperty(name="Some Float", tags={'SOME_TAG', 'ANOTHER_TAG'})`.
Diffstat (limited to 'source/blender/makesrna/intern/rna_internal_types.h')
-rw-r--r-- | source/blender/makesrna/intern/rna_internal_types.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index 59f68cdf106..d93f3308b2a 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -168,6 +168,8 @@ struct PropertyRNA { short flag_parameter; /* Internal ("private") flags. */ short flag_internal; + /* The subset of StructRNA.prop_tag_defines values that applies to this property. */ + short tags; /* user readable name */ const char *name; @@ -365,6 +367,9 @@ struct StructRNA { /* various options */ int flag; + /* Each StructRNA type can define own tags which properties can set + * (PropertyRNA.tags) for changed behavior based on struct-type. */ + const EnumPropertyItem *prop_tag_defines; /* user readable name */ const char *name; |