35#include "RNA_prototypes.hh"
98 const char *op_prop_enum,
105 const bool ok_prop_enum = (umi_op->
op_prop_enum[0] !=
'\0') ?
133 const char *context_data_path,
154 const char *op_prop_enum,
160 if (!
STREQ(ui_name,
ot->name)) {
180 const char *context_data_path,
208 const bool show_missing =
false;
213 bool is_empty =
true;
214 for (
int um_index = 0; um_index < um_array_len; um_index++) {
220 std::optional<StringRefNull> ui_name = umi->ui_name[0] ?
221 std::make_optional<StringRefNull>(umi->ui_name) :
227 ui_name =
CTX_IFACE_(
ot->translation_context, ui_name->c_str());
275 if (
ptr.type ==
nullptr) {
288 if (
ptr.type !=
nullptr) {
291 if ((data_path ==
nullptr) ||
322 menu->
layout->
label(
RPT_(
"Right click on buttons to add them to this menu"), ICON_NONE);
PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
const char * CTX_data_mode_string(const bContext *C)
SpaceLink * CTX_wm_space_data(const bContext *C)
void IDP_CopyPropertyContent(IDProperty *dst, const IDProperty *src) ATTR_NONNULL()
IDProperty * IDP_CopyProperty(const IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool IDP_EqualsProperties(const IDProperty *prop1, const IDProperty *prop2) ATTR_WARN_UNUSED_RESULT
#define LISTBASE_FOREACH(type, var, list)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define SNPRINTF_UTF8(dst, format,...)
#define STRNCPY_UTF8(dst, src)
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
@ USER_MENU_TYPE_OPERATOR
Read Guarded memory(de)allocation.
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
bool RNA_path_resolve_full(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
PointerRNA op_menu_enum(const bContext *C, wmOperatorType *ot, blender::StringRefNull propname, std::optional< blender::StringRefNull > name, int icon)
void label(blender::StringRef name, int icon)
void separator(float factor=1.0f, LayoutSeparatorType type=LayoutSeparatorType::Auto)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void menu(MenuType *mt, std::optional< blender::StringRef > name, int icon)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)