[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43614] trunk/blender/source/blender/ editors/interface/interface_layout.c: minor edit for operator error macro so it can return different values.
Campbell Barton
ideasman42 at gmail.com
Sun Jan 22 20:52:50 CET 2012
Revision: 43614
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43614
Author: campbellbarton
Date: 2012-01-22 19:52:41 +0000 (Sun, 22 Jan 2012)
Log Message:
-----------
minor edit for operator error macro so it can return different values.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface_layout.c
Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c 2012-01-22 18:59:06 UTC (rev 43613)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c 2012-01-22 19:52:41 UTC (rev 43614)
@@ -66,6 +66,14 @@
#define EM_SEPR_X 6
#define EM_SEPR_Y 6
+#define UI_OPERATOR_ERROR_RET(_ot, _opname, return_statement) \
+ if (ot == NULL) { \
+ ui_item_disabled(layout, _opname); \
+ RNA_warning("'%s' unknown operator", _opname); \
+ return_statement; \
+ } (void)0 \
+
+
/* uiLayoutRoot */
typedef struct uiLayoutRoot {
@@ -690,14 +698,9 @@
{
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
- if(ot) {
- return uiItemFullO_ptr(layout, ot, name, icon, properties, context, flag);
- }
- else {
- ui_item_disabled(layout, opname);
- RNA_warning("unknown operator '%s'", opname);
- return PointerRNA_NULL;
- }
+ UI_OPERATOR_ERROR_RET(ot, opname, return PointerRNA_NULL);
+
+ return uiItemFullO_ptr(layout, ot, name, icon, properties, context, flag);
}
static const char *ui_menu_enumpropname(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int retval)
@@ -842,13 +845,6 @@
uiItemsFullEnumO(layout, opname, propname, NULL, layout->root->opcontext, 0);
}
-#define UI_OPERATOR_ERROR_RET(_ot, _opname) \
- if (ot == NULL) { \
- ui_item_disabled(layout, _opname); \
- RNA_warning("'%s' unknown operator", _opname); \
- return; \
- } (void)0
-
/* 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)
{
@@ -856,7 +852,7 @@
PointerRNA ptr;
PropertyRNA *prop;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
@@ -887,7 +883,7 @@
EnumPropertyItem *item;
int value, free;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
@@ -925,7 +921,7 @@
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
PointerRNA ptr;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
RNA_boolean_set(&ptr, propname, value);
@@ -938,7 +934,7 @@
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
PointerRNA ptr;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
RNA_int_set(&ptr, propname, value);
@@ -951,7 +947,7 @@
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
PointerRNA ptr;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
RNA_float_set(&ptr, propname, value);
@@ -964,7 +960,7 @@
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
PointerRNA ptr;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
WM_operator_properties_create_ptr(&ptr, ot);
RNA_string_set(&ptr, propname, value);
@@ -1608,7 +1604,7 @@
wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */
MenuItemLevel *lvl;
- UI_OPERATOR_ERROR_RET(ot, opname);
+ UI_OPERATOR_ERROR_RET(ot, opname, return);
if(!ot->srna) {
ui_item_disabled(layout, opname);
More information about the Bf-blender-cvs
mailing list