Blender  V3.3
Classes | Macros | Functions
wm_operator_type.c File Reference
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "DNA_ID.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "BLT_translation.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_idprop.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "RNA_prototypes.h"
#include "WM_api.h"
#include "WM_types.h"
#include "wm.h"
#include "wm_event_system.h"

Go to the source code of this file.

Classes

struct  MacroData
 

Macros

#define UNDOCUMENTED_OPERATOR_TIP   N_("(undocumented operator)")
 

Functions

void WM_operatortype_remove_ptr (wmOperatorType *ot)
 
bool WM_operatortype_remove (const char *idname)
 
void wm_operatortype_init (void)
 
static void operatortype_ghash_free_cb (wmOperatorType *ot)
 
void wm_operatortype_free (void)
 
void WM_operatortype_props_advanced_begin (wmOperatorType *ot)
 
void WM_operatortype_props_advanced_end (wmOperatorType *ot)
 
void WM_operatortype_last_properties_clear_all (void)
 
void WM_operatortype_idname_visit_for_search (const bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), const char *UNUSED(edit_text), StringPropertySearchVisitFunc visit_fn, void *visit_user_data)
 
Operator Macro Type
static void wm_operatortype_free_macro (wmOperatorType *ot)
 
static void wm_macro_start (wmOperator *op)
 
static int wm_macro_end (wmOperator *op, int retval)
 
static int wm_macro_exec (bContext *C, wmOperator *op)
 
static int wm_macro_invoke_internal (bContext *C, wmOperator *op, const wmEvent *event, wmOperator *opm)
 
static int wm_macro_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int wm_macro_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void wm_macro_cancel (bContext *C, wmOperator *op)
 
wmOperatorTypeWM_operatortype_append_macro (const char *idname, const char *name, const char *description, int flag)
 
void WM_operatortype_append_macro_ptr (void(*opfunc)(wmOperatorType *, void *), void *userdata)
 
wmOperatorTypeMacroWM_operatortype_macro_define (wmOperatorType *ot, const char *idname)
 
const char * WM_operatortype_name (struct wmOperatorType *ot, struct PointerRNA *properties)
 
char * WM_operatortype_description (struct bContext *C, struct wmOperatorType *ot, struct PointerRNA *properties)
 
char * WM_operatortype_description_or_name (struct bContext *C, struct wmOperatorType *ot, struct PointerRNA *properties)
 
Operator Type Append
static wmOperatorTypewm_operatortype_append__begin (void)
 
static void wm_operatortype_append__end (wmOperatorType *ot)
 
void WM_operatortype_append (void(*opfunc)(wmOperatorType *))
 
void WM_operatortype_append_ptr (void(*opfunc)(wmOperatorType *, void *), void *userdata)
 

Operator Type Registry

static GHashglobal_ops_hash = NULL
 
static int ot_prop_basic_count = -1
 
wmOperatorTypeWM_operatortype_find (const char *idname, bool quiet)
 
void WM_operatortype_iter (GHashIterator *ghi)
 

Detailed Description

Operator Registry.

Definition in file wm_operator_type.c.

Macro Definition Documentation

◆ UNDOCUMENTED_OPERATOR_TIP

#define UNDOCUMENTED_OPERATOR_TIP   N_("(undocumented operator)")

Definition at line 39 of file wm_operator_type.c.

Function Documentation

◆ operatortype_ghash_free_cb()

static void operatortype_ghash_free_cb ( wmOperatorType ot)
static

◆ wm_macro_cancel()

static void wm_macro_cancel ( bContext C,
wmOperator op 
)
static

◆ wm_macro_end()

static int wm_macro_end ( wmOperator op,
int  retval 
)
static

◆ wm_macro_exec()

static int wm_macro_exec ( bContext C,
wmOperator op 
)
static

◆ wm_macro_invoke()

static int wm_macro_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ wm_macro_invoke_internal()

static int wm_macro_invoke_internal ( bContext C,
wmOperator op,
const wmEvent event,
wmOperator opm 
)
static

◆ wm_macro_modal()

static int wm_macro_modal ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ wm_macro_start()

static void wm_macro_start ( wmOperator op)
static

Definition at line 280 of file wm_operator_type.c.

References wmOperator::customdata, MEM_callocN, and NULL.

Referenced by wm_macro_exec(), and wm_macro_invoke().

◆ WM_operatortype_append()

void WM_operatortype_append ( void(*)(wmOperatorType *)  opfunc)

Definition at line 123 of file wm_operator_type.c.

References ot, wm_operatortype_append__begin(), and wm_operatortype_append__end().

Referenced by action_operatortypes(), buttons_operatortypes(), clip_operatortypes(), console_operatortypes(), ED_operatortypes_anim(), ED_operatortypes_animchannels(), ED_operatortypes_armature(), ED_operatortypes_asset(), ED_operatortypes_curve(), ED_operatortypes_curves(), ED_operatortypes_edutils(), ED_operatortypes_geometry(), ED_operatortypes_gpencil(), ED_operatortypes_io(), ED_operatortypes_lattice(), ED_operatortypes_marker(), ED_operatortypes_mask(), ED_operatortypes_mesh(), ED_operatortypes_metaball(), ED_operatortypes_object(), ED_operatortypes_paint(), ED_operatortypes_render(), ED_operatortypes_scene(), ED_operatortypes_screen(), ED_operatortypes_sculpt(), ED_operatortypes_sculpt_curves(), ED_operatortypes_sound(), ED_operatortypes_ui(), ED_operatortypes_userpref(), ED_operatortypes_uvedit(), ED_operatortypes_view2d(), ED_operatortypes_workspace(), file_operatortypes(), graphedit_operatortypes(), image_operatortypes(), info_operatortypes(), nla_operatortypes(), blender::ed::space_node::node_operatortypes(), operatortypes_boids(), operatortypes_dynamicpaint(), operatortypes_fluid(), operatortypes_particle(), operatortypes_pointcache(), outliner_operatortypes(), script_operatortypes(), sequencer_operatortypes(), spreadsheet_operatortypes(), text_operatortypes(), transform_operatortypes(), view3d_operatortypes(), WM_operatortypes_lineart(), wm_operatortypes_register(), and wm_xr_operatortypes_register().

◆ wm_operatortype_append__begin()

static wmOperatorType* wm_operatortype_append__begin ( void  )
static

◆ wm_operatortype_append__end()

static void wm_operatortype_append__end ( wmOperatorType ot)
static

◆ WM_operatortype_append_macro()

wmOperatorType* WM_operatortype_append_macro ( const char *  idname,
const char *  name,
const char *  description,
int  flag 
)

◆ WM_operatortype_append_macro_ptr()

void WM_operatortype_append_macro_ptr ( void(*)(wmOperatorType *, void *)  opfunc,
void userdata 
)

◆ WM_operatortype_append_ptr()

void WM_operatortype_append_ptr ( void(*)(wmOperatorType *, void *)  opfunc,
void userdata 
)

◆ WM_operatortype_description()

char* WM_operatortype_description ( struct bContext C,
struct wmOperatorType ot,
struct PointerRNA properties 
)

◆ WM_operatortype_description_or_name()

char* WM_operatortype_description_or_name ( struct bContext C,
struct wmOperatorType ot,
struct PointerRNA properties 
)

Use when we want a label, preferring the description.

Definition at line 598 of file wm_operator_type.c.

References BLI_strdup(), C, NULL, ot, WM_operatortype_description(), and WM_operatortype_name().

Referenced by ui_tooltip_data_from_gizmo().

◆ WM_operatortype_find()

wmOperatorType* WM_operatortype_find ( const char *  idname,
bool  quiet 
)

Definition at line 51 of file wm_operator_type.c.

References BLI_ghash_lookup(), CLOG_INFO, global_ops_hash, NULL, OP_MAX_TYPENAME, ot, WM_LOG_OPERATORS, and WM_operator_bl_idname().

Referenced by add_driver_button_menu_exec(), bone_mouse_select_menu(), constraint_reorder(), doc_view_manual_ui_context_exec(), ED_object_mode_compat_set(), ED_object_mode_set_ex(), file_browse_invoke(), file_directory_enter_handle(), ghost_event_proc(), gizmo2d_resize_setup(), gizmo2d_rotate_setup(), gizmo2d_xform_setup(), gizmo_mesh_extrude_setup(), gizmo_mesh_spin_init_setup(), gizmo_mesh_spin_redo_setup(), gizmogroup_init_properties_from_twtype(), gpencil_modifier_reorder(), id_remap_fn(), image_file_browse_invoke(), keymap_handler_log_kmi_op_str(), lib_reload_fn(), lib_relocate_fn(), blender::ed::space_node::link_drag_search_exec_fn(), modifier_reorder(), blender::nodes::node_composite_output_file_cc::node_composit_buts_file_output_ex(), object_mouse_select_menu(), ot_lookup_from_py_string(), outliner_item_drag_drop_invoke(), outliner_lib_relocate_invoke_do(), outliner_operator_menu(), panel_activate_state(), poselib_add_menu_invoke__replacemenu(), pyop_as_string(), pyop_call(), pyop_poll(), PYOP_wrap_macro_define(), screen_user_menu_draw(), sculpt_detail_size_set_radial_control(), shaderfx_reorder(), template_operator_property_buts_draw_single(), transform_from_gizmo_invoke(), transform_modal(), ui_but_anim_decorate_cb(), UI_but_extra_operator_icon_add(), UI_but_is_tool(), ui_but_menu_add_path_operators(), UI_but_operatortype_get_from_enum_menu(), ui_but_predefined_extra_operator_icons_add(), UI_list_custom_activate_operator_set(), UI_list_custom_drag_operator_set(), ui_popup_context_menu_for_button(), ui_tooltip_data_from_tool(), uiDefButO(), uiDefIconButO(), uiDefIconTextButO(), uiItemBooleanO(), uiItemEnumO(), uiItemEnumO_string(), uiItemEnumO_value(), uiItemFloatO(), uiItemFullO(), uiItemIntO(), uiItemMenuEnumFullO(), uiItemsFullEnumO(), uiItemStringO(), uiTemplateEditModeSelection(), unpack_menu(), view3d_interactive_add_modal(), view3d_lightcache_update(), view3d_panel_vgroup(), WIDGETGROUP_light_target_setup(), WIDGETGROUP_navigate_setup(), WIDGETGROUP_ruler_setup(), WIDGETGROUP_xform_cage_setup(), WIDGETGROUP_xform_shear_setup(), WM_dropbox_add(), WM_event_match_keymap_item(), wm_handler_operator_call(), wm_handlers_do_gizmo_handler(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), wm_keymap_item_properties_update_ot(), WM_menu_name_call(), WM_modalkeymap_assign(), WM_operator_check_ui_empty(), wm_operator_create(), WM_operator_name_call(), WM_operator_name_call_ptr(), WM_operator_name_call_ptr_with_depends_on_cursor(), WM_operator_name_call_with_properties(), WM_operator_name_poll(), WM_operator_poll(), WM_operator_properties_create(), WM_operator_repeat_check(), WM_operatortype_append_macro(), WM_operatortype_macro_define(), WM_operatortype_remove(), WM_operatortype_remove_ptr(), wm_test_autorun_revert_action_exec(), WM_toolsystem_ref_set_by_id_ex(), WM_window_cursor_keymap_status_refresh(), WM_xr_actionmap_item_properties_update_ot(), and workspace_add_menu().

◆ wm_operatortype_free()

void wm_operatortype_free ( void  )

Definition at line 197 of file wm_operator_type.c.

References BLI_ghash_free(), global_ops_hash, NULL, and operatortype_ghash_free_cb().

Referenced by WM_exit_ex().

◆ wm_operatortype_free_macro()

static void wm_operatortype_free_macro ( wmOperatorType ot)
static

◆ WM_operatortype_idname_visit_for_search()

void WM_operatortype_idname_visit_for_search ( const bContext UNUSEDC,
PointerRNA UNUSEDptr,
PropertyRNA UNUSEDprop,
const char *  UNUSEDedit_text,
StringPropertySearchVisitFunc  visit_fn,
void visit_user_data 
)

◆ wm_operatortype_init()

void wm_operatortype_init ( void  )

Called on initialize WM_init().

Definition at line 173 of file wm_operator_type.c.

References BLI_ghash_str_new_ex(), and global_ops_hash.

Referenced by WM_init().

◆ WM_operatortype_iter()

void WM_operatortype_iter ( struct GHashIterator ghi)

◆ WM_operatortype_last_properties_clear_all()

void WM_operatortype_last_properties_clear_all ( void  )

◆ WM_operatortype_macro_define()

wmOperatorTypeMacro* WM_operatortype_macro_define ( wmOperatorType ot,
const char *  idname 
)

◆ WM_operatortype_name()

const char* WM_operatortype_name ( struct wmOperatorType ot,
struct PointerRNA properties 
)

◆ WM_operatortype_props_advanced_begin()

void WM_operatortype_props_advanced_begin ( struct wmOperatorType ot)

◆ WM_operatortype_props_advanced_end()

void WM_operatortype_props_advanced_end ( struct wmOperatorType ot)

Tags all operator-properties of ot defined since the first WM_operatortype_props_advanced_begin call, or the last WM_operatortype_props_advanced_end call, with OP_PROP_TAG_ADVANCED.

Note
This is called for all operators during registration (see wm_operatortype_append__end). So it does not need to be explicitly called in operator-type definition.

Definition at line 211 of file wm_operator_type.c.

References counter, OP_PROP_TAG_ADVANCED, ot, ot_prop_basic_count, RNA_STRUCT_BEGIN, RNA_STRUCT_END, WM_operator_properties_create_ptr(), and WM_operatortype_prop_tag.

Referenced by wm_operatortype_append__end().

◆ WM_operatortype_remove()

bool WM_operatortype_remove ( const char *  idname)

Definition at line 160 of file wm_operator_type.c.

References NULL, ot, WM_operatortype_find(), and WM_operatortype_remove_ptr().

◆ WM_operatortype_remove_ptr()

void WM_operatortype_remove_ptr ( struct wmOperatorType ot)

Variable Documentation

◆ global_ops_hash

GHash* global_ops_hash = NULL
static

◆ ot_prop_basic_count

int ot_prop_basic_count = -1
static

Counter for operator-properties that should not be tagged with OP_PROP_TAG_ADVANCED.

Definition at line 49 of file wm_operator_type.c.

Referenced by wm_operatortype_append__begin(), WM_operatortype_props_advanced_begin(), and WM_operatortype_props_advanced_end().