diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_ui_api.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_ui_api.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c index 41d32bb0c92..aa235b599b7 100644 --- a/source/blender/makesrna/intern/rna_ui_api.c +++ b/source/blender/makesrna/intern/rna_ui_api.c @@ -384,26 +384,28 @@ static void rna_uiItemsEnumO(uiLayout *layout, uiItemsFullEnumO(layout, opname, propname, NULL, uiLayoutGetOperatorContext(layout), flag); } -static void rna_uiItemMenuEnumO(uiLayout *layout, - bContext *C, - const char *opname, - const char *propname, - const char *name, - const char *text_ctxt, - bool translate, - int icon) +static PointerRNA rna_uiItemMenuEnumO(uiLayout *layout, + bContext *C, + const char *opname, + const char *propname, + const char *name, + const char *text_ctxt, + bool translate, + int icon) { wmOperatorType *ot = WM_operatortype_find(opname, 0); /* print error next */ if (!ot || !ot->srna) { RNA_warning("%s '%s'", ot ? "unknown operator" : "operator missing srna", opname); - return; + return PointerRNA_NULL; } /* Get translated name (label). */ name = rna_translate_ui_text(name, text_ctxt, ot->srna, NULL, translate); - uiItemMenuEnumO_ptr(layout, C, ot, propname, name, icon); + PointerRNA opptr; + uiItemMenuEnumFullO_ptr(layout, C, ot, propname, name, icon, &opptr); + return opptr; } static void rna_uiItemL(uiLayout *layout, @@ -1028,6 +1030,10 @@ void RNA_api_ui_layout(StructRNA *srna) parm = RNA_def_string(func, "property", NULL, 0, "", "Identifier of property in operator"); RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); api_ui_item_common(func); + parm = RNA_def_pointer( + func, "properties", "OperatorProperties", "", "Operator properties to fill in"); + RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_RNAPTR); + RNA_def_function_return(func, parm); /* useful in C but not in python */ # if 0 |