forked from bartvdbraak/blender
RNA
* RNA_enum_is_equal function to quickly compare with enum identifier name.
This commit is contained in:
parent
c34d2f4449
commit
bc5b56e2a8
@ -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);
|
||||
|
@ -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; 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);
|
||||
|
Loading…
Reference in New Issue
Block a user