minor edit for operator error macro so it can return different values.

This commit is contained in:
Campbell Barton 2012-01-22 19:52:41 +00:00
parent ab1600bee5
commit 008b0e90dd

@ -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 @@ PointerRNA uiItemFullO(uiLayout *layout, const char *opname, const char *name, i
{
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 @@ void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname)
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 @@ void uiItemEnumO_value(uiLayout *layout, const char *name, int icon, const char
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 @@ void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char
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 @@ void uiItemBooleanO(uiLayout *layout, const char *name, int icon, const char *op
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 @@ void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname
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 @@ void uiItemFloatO(uiLayout *layout, const char *name, int icon, const char *opna
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 @@ void uiItemStringO(uiLayout *layout, const char *name, int icon, const char *opn
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 @@ void uiItemMenuEnumO(uiLayout *layout, const char *opname, const char *propname,
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);