From bc5b56e2a8f962f7116b1d8ccdd20f07e2ff0d2b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 24 Dec 2008 10:50:39 +0000 Subject: RNA * RNA_enum_is_equal function to quickly compare with enum identifier name. --- source/blender/makesrna/RNA_access.h | 1 + source/blender/makesrna/intern/rna_access.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'source') diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 00e4ef299b1..cb57343a50e 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -321,6 +321,7 @@ void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values) int RNA_enum_get(PointerRNA *ptr, const char *name); void RNA_enum_set(PointerRNA *ptr, const char *name, int value); +int RNA_enum_is_equal(PointerRNA *ptr, const char *name, const char *enumname); void RNA_string_get(PointerRNA *ptr, const char *name, char *value); char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 2ed0848e159..4c6c7cabf9e 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1588,6 +1588,28 @@ void RNA_enum_set(PointerRNA *ptr, const char *name, int value) printf("RNA_enum_set: %s.%s not found.\n", ptr->type->identifier, name); } +int RNA_enum_is_equal(PointerRNA *ptr, const char *name, const char *enumname) +{ + PropertyRNA *prop= RNA_struct_find_property(ptr, name); + const EnumPropertyItem *item; + int a, totitem; + + if(prop) { + RNA_property_enum_items(ptr, prop, &item, &totitem); + + for(a=0; aidentifier, enumname) == 0) + return (item->value == RNA_property_enum_get(ptr, prop)); + + printf("RNA_enum_is_equal: %s.%s item %s not found.\n", ptr->type->identifier, name, enumname); + return 0; + } + else { + printf("RNA_enum_is_equal: %s.%s not found.\n", ptr->type->identifier, name); + return 0; + } +} + void RNA_string_get(PointerRNA *ptr, const char *name, char *value) { PropertyRNA *prop= RNA_struct_find_property(ptr, name); -- cgit v1.2.3