[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35750] trunk/blender/source/blender/ editors: fix for using uiItemIntO for an enum, added uiItemEnumO_value function.
Campbell Barton
ideasman42 at gmail.com
Thu Mar 24 13:36:12 CET 2011
Revision: 35750
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35750
Author: campbellbarton
Date: 2011-03-24 12:36:12 +0000 (Thu, 24 Mar 2011)
Log Message:
-----------
fix for using uiItemIntO for an enum, added uiItemEnumO_value function.
Modified Paths:
--------------
trunk/blender/source/blender/editors/animation/keyingsets.c
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/interface/interface_layout.c
Modified: trunk/blender/source/blender/editors/animation/keyingsets.c
===================================================================
--- trunk/blender/source/blender/editors/animation/keyingsets.c 2011-03-24 12:17:24 UTC (rev 35749)
+++ trunk/blender/source/blender/editors/animation/keyingsets.c 2011-03-24 12:36:12 UTC (rev 35750)
@@ -795,7 +795,7 @@
for (ks= builtin_keyingsets.first; ks; ks= ks->next) {
/* only show KeyingSet if context is suitable */
if (ANIM_keyingset_context_ok_poll(C, ks))
- uiItemIntO(layout, ks->name, ICON_NONE, op_name, "type", i--);
+ uiItemEnumO_value(layout, ks->name, ICON_NONE, op_name, "type", i--);
}
uiPupMenuEnd(C, pup);
Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h 2011-03-24 12:17:24 UTC (rev 35749)
+++ trunk/blender/source/blender/editors/include/UI_interface.h 2011-03-24 12:36:12 UTC (rev 35750)
@@ -720,6 +720,7 @@
/* items */
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname);
void uiItemEnumO(uiLayout *layout, const char *opname, const char *name, int icon, const char *propname, int value);
+void uiItemEnumO_value(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value);
void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value);
void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname);
void uiItemBooleanO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value);
Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c 2011-03-24 12:17:24 UTC (rev 35749)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c 2011-03-24 12:36:12 UTC (rev 35750)
@@ -781,6 +781,33 @@
}
/* for use in cases where we have */
+void uiItemEnumO_value(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
+{
+ PointerRNA ptr;
+
+ /* for getting the enum */
+ PropertyRNA *prop;
+
+ WM_operator_properties_create(&ptr, opname);
+
+ /* enum lookup */
+ if((prop= RNA_struct_find_property(&ptr, propname))) {
+ /* pass */
+ }
+ else {
+ printf("uiItemEnumO_value: %s.%s not found.\n", RNA_struct_identifier(ptr.type), propname);
+ return;
+ }
+
+ RNA_property_enum_set(&ptr, prop, value);
+
+ /* same as uiItemEnumO */
+ if(!name)
+ name= ui_menu_enumpropname(layout, opname, propname, value);
+
+ uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
+}
+
void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value_str)
{
PointerRNA ptr;
More information about the Bf-blender-cvs
mailing list