33#include "RNA_prototypes.hh"
41#define UNDOCUMENTED_OPERATOR_TIP N_("(undocumented operator)")
84 WM_LOG_OPERATORS, 0,
"search for unknown operator '%s', '%s'\n", idname_bl, idname);
118 if (
ot->
name ==
nullptr) {
147 opfunc(
ot, userdata);
267 visit_params.
text = idname_py;
268 visit_params.info =
ot->
name;
269 visit_fn(visit_params);
297 retval &= ~OPERATOR_CANCELLED;
321 if (opm->type->exec ==
nullptr) {
326 opm->flag |= op_inherited_flag;
327 retval = opm->type->exec(C, opm);
328 opm->flag &= ~op_inherited_flag;
353 for (; opm; opm = opm->
next) {
355 opm->
flag |= op_inherited_flag;
362 opm->
flag &= ~op_inherited_flag;
391 if (opm ==
nullptr) {
395 retval = opm->
type->
modal(C, opm, event);
427 const rcti *wrap_region =
nullptr;
444 wrap_region = ®ion->winrct;
469 const char *description,
473 const char *i18n_context;
533 opfunc(
ot, userdata);
569 MEM_delete(otmacro->ptr);
589 if (!description.empty()) {
595 if (info && info[0]) {
608 if (!text_orig.empty()) {
wmWindow * CTX_wm_window(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
void IDP_FreeProperty(IDProperty *prop)
#define LISTBASE_FOREACH(type, var, list)
void void void BLI_movelisttolist(struct ListBase *dst, struct ListBase *src) ATTR_NONNULL(1
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
#define CLOG_ERROR(clg_ref,...)
#define CLOG_WARN(clg_ref,...)
#define CLOG_INFO(clg_ref, level,...)
ID and Library types, which are fundamental for SDNA.
@ OP_IS_MODAL_GRAB_CURSOR
#define OPERATOR_RETVAL_CHECK(ret)
Read Guarded memory(de)allocation.
#define RNA_STRUCT_BEGIN(sptr, prop)
#define WM_operatortype_prop_tag(property, tags)
@ OPTYPE_DEPENDS_ON_CURSOR
CLG_LogRef * WM_LOG_OPERATORS
#define OP_PROP_TAG_ADVANCED
ValueIterator values() const
void add_new(const Key &key, const Value &value)
bool remove(const Key &key)
Value lookup_default_as(const ForwardKey &key, ForwardValue &&...default_value) const
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
float wrap(float value, float max, float min)
const char * RNA_struct_ui_description(const StructRNA *type)
const char * RNA_struct_ui_name(const StructRNA *type)
uint RNA_struct_count_properties(StructRNA *srna)
const char * RNA_struct_translation_context(const StructRNA *type)
PropertyRNA * RNA_def_pointer_runtime(StructOrFunctionRNA *cont_, const char *identifier, StructRNA *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_property_tags(StructRNA *srna, const EnumPropertyItem *prop_tag_defines)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_struct_identifier(BlenderRNA *brna, StructRNA *srna, const char *identifier)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
const EnumPropertyItem rna_enum_operator_property_tag_items[]
struct IDProperty * properties
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
std::string(* get_description)(bContext *C, wmOperatorType *ot, PointerRNA *ptr)
bool(* depends_on_cursor)(bContext &C, wmOperatorType &ot, PointerRNA *ptr)
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
std::string(* get_name)(wmOperatorType *ot, PointerRNA *ptr)
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
const char * translation_context
IDProperty * last_properties
void(* cancel)(bContext *C, wmOperator *op)
struct ReportList * reports
struct wmOperatorType * type
void WM_cursor_grab_enable(wmWindow *win, const eWM_CursorWrapAxis wrap, const rcti *wrap_region, const bool hide)
void wm_event_free_handler(wmEventHandler *handler)
void WM_keyconfig_update_operatortype()
static int wm_macro_end(wmOperator *op, int retval)
void WM_operatortype_append_macro_ptr(void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
void WM_operatortype_idname_visit_for_search(const bContext *, PointerRNA *, PropertyRNA *, const char *, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
static wmOperatorType * wm_operatortype_append__begin()
static void wm_operatortype_free_macro(wmOperatorType *ot)
static wmOperatorTypeMap & get_operators_map()
static int ot_prop_basic_count
void WM_operatortype_props_advanced_begin(wmOperatorType *ot)
static void wm_macro_start(wmOperator *op)
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
void wm_operatortype_free()
std::string WM_operatortype_name(wmOperatorType *ot, PointerRNA *properties)
bool WM_operator_depends_on_cursor(bContext &C, wmOperatorType &ot, PointerRNA *properties)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))
static int wm_macro_modal(bContext *C, wmOperator *op, const wmEvent *event)
std::string WM_operatortype_description_or_name(bContext *C, wmOperatorType *ot, PointerRNA *properties)
std::string WM_operatortype_description(bContext *C, wmOperatorType *ot, PointerRNA *properties)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
static int wm_macro_exec(bContext *C, wmOperator *op)
const wmOperatorTypeMap & WM_operatortype_map()
void WM_operatortype_last_properties_clear_all()
void WM_operatortype_append_ptr(void(*opfunc)(wmOperatorType *, void *), void *userdata)
static void wm_operatortype_append__end(wmOperatorType *ot)
#define UNDOCUMENTED_OPERATOR_TIP
wmOperatorType * WM_operatortype_append_macro(const char *idname, const char *name, const char *description, int flag)
static void operatortype_ghash_free_cb(wmOperatorType *ot)
void WM_operatortype_remove_ptr(wmOperatorType *ot)
static int wm_macro_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void WM_operatortype_props_advanced_end(wmOperatorType *ot)
static int wm_macro_invoke_internal(bContext *C, wmOperator *op, const wmEvent *event, wmOperator *opm)
bool WM_operatortype_remove(const char *idname)
static void wm_macro_cancel(bContext *C, wmOperator *op)
size_t WM_operator_py_idname(char *dst, const char *src)
size_t WM_operator_bl_idname(char *dst, const char *src)
void WM_operator_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *opstring)
bool WM_operator_bl_idname_is_valid(const char *idname)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_clear(PointerRNA *ptr)
void WM_operator_properties_free(PointerRNA *ptr)
void WM_operator_properties_sanitize(PointerRNA *ptr, const bool no_context)