[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18042] branches/blender2.5/blender/source /blender/makesrna: RNA
Brecht Van Lommel
brecht at blender.org
Wed Dec 24 11:50:42 CET 2008
Revision: 18042
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18042
Author: blendix
Date: 2008-12-24 11:50:39 +0100 (Wed, 24 Dec 2008)
Log Message:
-----------
RNA
* RNA_enum_is_equal function to quickly compare with enum identifier name.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2008-12-24 10:43:39 UTC (rev 18041)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2008-12-24 10:50:39 UTC (rev 18042)
@@ -321,6 +321,7 @@
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);
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2008-12-24 10:43:39 UTC (rev 18041)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2008-12-24 10:50:39 UTC (rev 18042)
@@ -1588,6 +1588,28 @@
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; a<totitem; a++)
+ if(strcmp(item->identifier, 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);
More information about the Bf-blender-cvs
mailing list