Blender V5.0
WM_api.hh File Reference
#include <optional>
#include <string>
#include "DNA_windowmanager_types.h"
#include "BLI_array.hh"
#include "BLI_bounds_types.hh"
#include "BLI_compiler_attrs.h"
#include "BLI_function_ref.hh"
#include "BLI_math_vector_types.hh"
#include "BLI_sys_types.h"
#include "WM_keymap.hh"
#include "WM_types.hh"

Go to the source code of this file.

Classes

struct  wmEventHandler_KeymapResult
struct  CheckerIntervalParams

Namespaces

namespace  blender
namespace  blender::bke
namespace  blender::bke::id
namespace  blender::asset_system

Macros

#define WM_CURSOR_DEFAULT_LOGICAL_SIZE   24
#define WM_operatortype_prop_tag(property, tags)

Typedefs

using EventHandlerPoll
using wmEventHandler_KeymapDynamicFn
using wmUIHandlerFunc = int (*)(bContext *C, const wmEvent *event, void *userdata)
using wmUIHandlerRemoveFunc = void (*)(bContext *C, void *userdata)
using wm_jobs_start_callback = void (*)(void *custom_data, wmJobWorkerStatus *worker_status)
using wmTooltipInitFn

Enumerations

enum  eWM_CapabilitiesFlag {
  WM_CAPABILITY_CURSOR_WARP = (1 << 0) , WM_CAPABILITY_WINDOW_POSITION = (1 << 1) , WM_CAPABILITY_CLIPBOARD_PRIMARY = (1 << 2) , WM_CAPABILITY_GPU_FRONT_BUFFER_READ = (1 << 3) ,
  WM_CAPABILITY_CLIPBOARD_IMAGE = (1 << 4) , WM_CAPABILITY_DESKTOP_SAMPLE = (1 << 5) , WM_CAPABILITY_INPUT_IME = (1 << 6) , WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION = (1 << 7) ,
  WM_CAPABILITY_WINDOW_DECORATION_STYLES = (1 << 8) , WM_CAPABILITY_KEYBOARD_HYPER_KEY = (1 << 9) , WM_CAPABILITY_CURSOR_RGBA = (1 << 10) , WM_CAPABILITY_CURSOR_GENERATOR = (1 << 11) ,
  WM_CAPABILITY_MULTIMONITOR_PLACEMENT = (1 << 12) , WM_CAPABILITY_INITIALIZED = (1u << 31)
}
enum  eWindowAlignment { WIN_ALIGN_ABSOLUTE = 0 , WIN_ALIGN_LOCATION_CENTER , WIN_ALIGN_PARENT_CENTER }
enum  eWM_WindowDecorationStyleFlag { WM_WINDOW_DECORATION_STYLE_NONE = 0 , WM_WINDOW_DECORATION_STYLE_COLORED_TITLEBAR = (1 << 0) }
enum  eWM_EventHandlerFlag { WM_HANDLER_BLOCKING = (1 << 0) , WM_HANDLER_ACCEPT_DBL_CLICK = (1 << 1) , WM_HANDLER_DO_FREE = (1 << 7) }
enum  eFileSel_Flag {
  WM_FILESEL_RELPATH = 1 << 0 , WM_FILESEL_DIRECTORY = 1 << 1 , WM_FILESEL_FILENAME = 1 << 2 , WM_FILESEL_FILEPATH = 1 << 3 ,
  WM_FILESEL_FILES = 1 << 4 , WM_FILESEL_SHOW_PROPS = 1 << 5
}
enum  eFileSel_Action { FILE_OPENFILE = 0 , FILE_SAVE = 1 }
enum  eWM_JobFlag { WM_JOB_PRIORITY = (1 << 0) , WM_JOB_EXCL_RENDER = (1 << 1) , WM_JOB_PROGRESS = (1 << 2) }
enum  eWM_JobType {
  WM_JOB_TYPE_ANY = 0 , WM_JOB_TYPE_COMPOSITE , WM_JOB_TYPE_RENDER , WM_JOB_TYPE_RENDER_PREVIEW ,
  WM_JOB_TYPE_LOAD_PREVIEW , WM_JOB_TYPE_OBJECT_SIM_OCEAN , WM_JOB_TYPE_OBJECT_SIM_FLUID , WM_JOB_TYPE_OBJECT_BAKE_TEXTURE ,
  WM_JOB_TYPE_OBJECT_BAKE , WM_JOB_TYPE_FILESEL_READDIR , WM_JOB_TYPE_ASSET_LIBRARY_LOAD , WM_JOB_TYPE_CLIP_BUILD_PROXY ,
  WM_JOB_TYPE_CLIP_TRACK_MARKERS , WM_JOB_TYPE_CLIP_SOLVE_CAMERA , WM_JOB_TYPE_CLIP_PREFETCH , WM_JOB_TYPE_SEQ_BUILD_PROXY ,
  WM_JOB_TYPE_SEQ_BUILD_PREVIEW , WM_JOB_TYPE_POINTCACHE , WM_JOB_TYPE_DPAINT_BAKE , WM_JOB_TYPE_ALEMBIC_IMPORT ,
  WM_JOB_TYPE_ALEMBIC_EXPORT , WM_JOB_TYPE_USD_IMPORT , WM_JOB_TYPE_USD_EXPORT , WM_JOB_TYPE_SHADER_COMPILATION ,
  WM_JOB_TYPE_STUDIOLIGHT , WM_JOB_TYPE_LIGHT_BAKE , WM_JOB_TYPE_FSMENU_BOOKMARK_VALIDATE , WM_JOB_TYPE_QUADRIFLOW_REMESH ,
  WM_JOB_TYPE_TRACE_IMAGE , WM_JOB_TYPE_LINEART , WM_JOB_TYPE_SEQ_DRAW_THUMBNAIL , WM_JOB_TYPE_SEQ_DRAG_DROP_PREVIEW ,
  WM_JOB_TYPE_CALCULATE_SIMULATION_NODES , WM_JOB_TYPE_BAKE_GEOMETRY_NODES , WM_JOB_TYPE_UV_PACK
}

Functions

void WM_init_state_app_template_set (const char *app_template)
const char * WM_init_state_app_template_get ()
void WM_init_state_size_set (int stax, int stay, int sizx, int sizy)
void WM_init_state_fullscreen_set ()
void WM_init_state_normal_set ()
void WM_init_state_maximized_set ()
void WM_init_state_start_with_console_set (bool value)
void WM_init_window_focus_set (bool do_it)
bool WM_init_window_frame_get ()
void WM_init_window_frame_set (bool do_it)
void WM_init_native_pixels (bool do_it)
void WM_init_input_devices ()
void WM_init (bContext *C, int argc, const char **argv)
void WM_exit_ex (bContext *C, bool do_python_exit, bool do_user_exit_actions)
void WM_exit (bContext *C, int exit_code) ATTR_NORETURN
void WM_main (bContext *C) ATTR_NORETURN
void WM_init_splash_on_startup (bContext *C)
void WM_init_splash (bContext *C)
void WM_init_gpu ()
const char * WM_ghost_backend ()
eWM_CapabilitiesFlag WM_capabilities_flag ()
void WM_check (bContext *C)
void WM_reinit_gizmomap_all (Main *bmain)
void WM_script_tag_reload ()
wmWindowWM_window_find_under_cursor (wmWindow *win, const int event_xy[2], int r_event_xy_other[2])
wmWindowWM_window_find_by_area (wmWindowManager *wm, const ScrArea *area)
bool WM_desktop_cursor_sample_read (float r_col[3])
uint8_t * WM_window_pixels_read_from_frontbuffer (const wmWindowManager *wm, const wmWindow *win, int r_size[2])
void WM_window_pixels_read_sample_from_frontbuffer (const wmWindowManager *wm, const wmWindow *win, const int pos[2], float r_col[3])
uint8_t * WM_window_pixels_read_from_offscreen (bContext *C, wmWindow *win, int r_size[2])
bool WM_window_pixels_read_sample_from_offscreen (bContext *C, wmWindow *win, const int pos[2], float r_col[3])
uint8_t * WM_window_pixels_read (bContext *C, wmWindow *win, int r_size[2])
bool WM_window_pixels_read_sample (bContext *C, wmWindow *win, const int pos[2], float r_col[3])
int WM_window_native_pixel_x (const wmWindow *win)
int WM_window_native_pixel_y (const wmWindow *win)
blender::int2 WM_window_native_pixel_size (const wmWindow *win)
void WM_window_native_pixel_coords (const wmWindow *win, int *x, int *y)
void WM_window_rect_calc (const wmWindow *win, rcti *r_rect)
void WM_window_screen_rect_calc (const wmWindow *win, rcti *r_rect)
bool WM_window_is_main_top_level (const wmWindow *win)
bool WM_window_is_fullscreen (const wmWindow *win)
bool WM_window_is_maximized (const wmWindow *win)
bool WM_window_support_hdr_color (const wmWindow *win)
void WM_windows_scene_data_sync (const ListBase *win_lb, Scene *scene) ATTR_NONNULL()
SceneWM_windows_scene_get_from_screen (const wmWindowManager *wm, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
ViewLayerWM_windows_view_layer_get_from_screen (const wmWindowManager *wm, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
WorkSpaceWM_windows_workspace_get_from_screen (const wmWindowManager *wm, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
SceneWM_window_get_active_scene (const wmWindow *win) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void WM_window_set_active_scene (Main *bmain, bContext *C, wmWindow *win, Scene *scene) ATTR_NONNULL()
WorkSpaceWM_window_get_active_workspace (const wmWindow *win) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void WM_window_set_active_workspace (bContext *C, wmWindow *win, WorkSpace *workspace) ATTR_NONNULL(1)
WorkSpaceLayoutWM_window_get_active_layout (const wmWindow *win) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void WM_window_set_active_layout (wmWindow *win, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL(1)
bScreenWM_window_get_active_screen (const wmWindow *win) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void WM_window_set_active_screen (wmWindow *win, WorkSpace *workspace, bScreen *screen) ATTR_NONNULL(1)
ViewLayerWM_window_get_active_view_layer (const wmWindow *win) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
void WM_window_set_active_view_layer (wmWindow *win, ViewLayer *view_layer) ATTR_NONNULL(1)
void WM_window_ensure_active_view_layer (wmWindow *win) ATTR_NONNULL(1)
bool WM_window_is_temp_screen (const wmWindow *win) ATTR_WARN_UNUSED_RESULT
void * WM_system_gpu_context_create ()
void WM_system_gpu_context_dispose (void *context)
void WM_system_gpu_context_activate (void *context)
void WM_system_gpu_context_release (void *context)
wmWindowWM_window_open (bContext *C, const char *title, const rcti *rect_unscaled, int space_type, bool toplevel, bool dialog, bool temp, eWindowAlignment alignment, void(*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data), void *area_setup_user_data) ATTR_NONNULL(1
wmWindow wmWindowWM_window_open_temp (bContext *C, const char *title, int space_type, bool dialog)
void WM_window_dpi_set_userdef (const wmWindow *win)
float WM_window_dpi_get_scale (const wmWindow *win)
void WM_window_title (wmWindowManager *wm, wmWindow *win, const char *title=nullptr)
bool WM_stereo3d_enabled (wmWindow *win, bool skip_stereo3d_check)
eWM_WindowDecorationStyleFlag WM_window_decoration_style_flags_get (const wmWindow *win)
void WM_window_decoration_style_flags_set (const wmWindow *win, eWM_WindowDecorationStyleFlag style_flags)
void WM_window_decoration_style_apply (const wmWindow *win, const bScreen *screen=nullptr)
void WM_file_autoexec_init (const char *filepath)
bool WM_file_read (bContext *C, const char *filepath, const bool use_scripts_autoexec_check, ReportList *reports)
void WM_file_autosave_init (wmWindowManager *wm)
bool WM_file_recover_last_session (bContext *C, const bool use_scripts_autoexec_check, ReportList *reports)
void WM_file_tag_modified ()
IDWM_file_link_datablock (Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const char *filepath, short id_code, const char *id_name, int flag)
IDWM_file_append_datablock (Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const char *filepath, short id_code, const char *id_name, int flag)
void WM_lib_reload (Library *lib, bContext *C, ReportList *reports)
void WM_cursor_set (wmWindow *win, int curs)
bool WM_cursor_set_from_tool (wmWindow *win, const ScrArea *area, const ARegion *region)
bool WM_cursor_modal_is_set_ok (const wmWindow *win)
void WM_cursor_modal_set (wmWindow *win, int val)
void WM_cursor_modal_restore (wmWindow *win)
void WM_cursor_wait (bool val)
void WM_cursor_grab_enable (wmWindow *win, eWM_CursorWrapAxis wrap, const rcti *wrap_region, bool hide)
void WM_cursor_grab_disable (wmWindow *win, const int mouse_ungrab_xy[2])
void WM_cursor_time (wmWindow *win, int nr)
void WM_cursor_progress (wmWindow *win, float progress_factor)
wmPaintCursorWM_paint_cursor_activate (short space_type, short region_type, bool(*poll)(bContext *C), wmPaintCursorDraw draw, void *customdata)
bool WM_paint_cursor_end (wmPaintCursor *handle)
void WM_paint_cursor_remove_by_type (wmWindowManager *wm, void *draw_fn, void(*free)(void *))
void WM_paint_cursor_tag_redraw (wmWindow *win, ARegion *region)
void WM_cursor_warp (wmWindow *win, int x, int y)
uint WM_cursor_preferred_logical_size ()
wmEventHandler_KeymapWM_event_add_keymap_handler (ListBase *handlers, wmKeyMap *keymap)
wmEventHandler_KeymapWM_event_add_keymap_handler_poll (ListBase *handlers, wmKeyMap *keymap, EventHandlerPoll poll)
bool WM_event_handler_region_v2d_mask_poll (const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
bool WM_event_handler_region_marker_poll (const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
bool WM_event_handler_region_v2d_mask_no_marker_poll (const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
wmEventHandler_KeymapWM_event_add_keymap_handler_v2d_mask (ListBase *handlers, wmKeyMap *keymap)
wmEventHandler_KeymapWM_event_add_keymap_handler_priority (ListBase *handlers, wmKeyMap *keymap, int priority)
void WM_event_get_keymap_from_toolsystem_with_gizmos (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
void WM_event_get_keymap_from_toolsystem (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
wmEventHandler_KeymapWM_event_add_keymap_handler_dynamic (ListBase *handlers, wmEventHandler_KeymapDynamicFn keymap_fn, void *user_data)
void WM_event_remove_keymap_handler (ListBase *handlers, wmKeyMap *keymap)
void WM_event_set_keymap_handler_post_callback (wmEventHandler_Keymap *handler, void(keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data), void *user_data)
void WM_event_get_keymaps_from_handler (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
wmKeyMapItemWM_event_match_keymap_item (bContext *C, wmKeyMap *keymap, const wmEvent *event)
wmKeyMapItemWM_event_match_keymap_item_from_handlers (bContext *C, wmWindowManager *wm, wmWindow *win, ListBase *handlers, const wmEvent *event)
bool WM_event_match (const wmEvent *winevent, const wmKeyMapItem *kmi)
wmEventHandler_UIWM_event_add_ui_handler (const bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, eWM_EventHandlerFlag flag)
wmOperatorWM_operator_find_modal_by_type (wmWindow *win, const wmOperatorType *ot)
void WM_event_remove_ui_handler (ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, bool postpone)
void WM_event_remove_handlers_by_area (ListBase *handlers, const ScrArea *area)
void WM_event_free_ui_handler_all (bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn)
wmEventHandler_OpWM_event_add_modal_handler_ex (wmWindow *win, ScrArea *area, ARegion *region, wmOperator *op) ATTR_NONNULL(1
wmEventHandler_Op wmEventHandler_OpWM_event_add_modal_handler (bContext *C, wmOperator *op) ATTR_NONNULL(1
wmEventHandler_Op wmEventHandler_Op void WM_event_remove_model_handler (ListBase *handlers, const wmOperator *op, bool postpone) ATTR_NONNULL(1
wmEventHandler_Op wmEventHandler_Op void void WM_event_remove_modal_handler_all (const wmOperator *op, bool postpone) ATTR_NONNULL(1)
void WM_event_modal_handler_area_replace (wmWindow *win, const ScrArea *old_area, ScrArea *new_area)
void WM_event_modal_handler_region_replace (wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_event_ui_handler_region_popup_replace (wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_event_remove_handlers (bContext *C, ListBase *handlers)
wmEventHandler_DropboxWM_event_add_dropbox_handler (ListBase *handlers, ListBase *dropboxes)
void WM_event_add_mousemove (wmWindow *win)
void WM_event_add_notifier_ex (wmWindowManager *wm, const wmWindow *win, unsigned int type, void *reference)
void WM_event_add_notifier (const bContext *C, unsigned int type, void *reference)
void WM_main_add_notifier (unsigned int type, void *reference)
void WM_main_remove_notifier_reference (const void *reference)
void WM_main_remap_editor_id_reference (const blender::bke::id::IDRemapper &mappings)
void WM_report_banner_show (wmWindowManager *wm, wmWindow *win) ATTR_NONNULL(1)
void WM_report_banners_cancel (Main *bmain)
void WM_reports_from_reports_move (wmWindowManager *wm, ReportList *reports)
void WM_global_report (eReportType type, const char *message)
void WM_global_reportf (eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(2
void wmEventWM_event_add (wmWindow *win, const wmEvent *event_to_add) ATTR_NONNULL(1
void wmEvent void wm_event_init_from_window (wmWindow *win, wmEvent *event)
wmTimerWM_event_timer_add (wmWindowManager *wm, wmWindow *win, wmEventType event_type, double time_step)
wmTimerWM_event_timer_add_notifier (wmWindowManager *wm, wmWindow *win, unsigned int type, double time_step)
void WM_event_timer_free_data (wmTimer *timer)
void WM_event_timer_remove (wmWindowManager *wm, wmWindow *win, wmTimer *timer)
void WM_event_timer_remove_notifier (wmWindowManager *wm, wmWindow *win, wmTimer *timer)
void WM_event_timer_sleep (wmWindowManager *wm, wmWindow *win, wmTimer *timer, bool do_sleep)
wmOperatorStatus WM_generic_select_modal (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_generic_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void WM_operator_view3d_unit_defaults (bContext *C, wmOperator *op)
int WM_operator_smooth_viewtx_get (const wmOperator *op)
wmOperatorStatus WM_menu_invoke_ex (bContext *C, wmOperator *op, blender::wm::OpCallContext opcontext)
wmOperatorStatus WM_menu_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void WM_menu_name_call (bContext *C, const char *menu_name, blender::wm::OpCallContext context)
wmOperatorStatus WM_enum_search_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_confirm (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_confirm_or_exec (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_confirm_ex (bContext *C, wmOperator *op, const char *title=nullptr, const char *message=nullptr, const char *confirm_text=nullptr, int icon=0, bool cancel_default=false)
wmOperatorStatus WM_operator_filesel (bContext *C, wmOperator *op, const wmEvent *event)
bool WM_operator_filesel_ensure_ext_imtype (wmOperator *op, const ImageFormatData *im_format)
bool WM_operator_winactive (bContext *C)
wmOperatorStatus WM_operator_props_popup_confirm (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_props_popup_confirm_ex (bContext *C, wmOperator *op, const wmEvent *event, std::optional< std::string > title=std::nullopt, std::optional< std::string > confirm_text=std::nullopt, bool cancel_default=false, std::optional< std::string > message=std::nullopt)
wmOperatorStatus WM_operator_props_popup_call (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_props_popup (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_operator_props_dialog_popup (bContext *C, wmOperator *op, int width, std::optional< std::string > title=std::nullopt, std::optional< std::string > confirm_text=std::nullopt, bool cancel_default=false, std::optional< std::string > message=std::nullopt)
wmOperatorStatus WM_operator_redo_popup (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_ui_popup (bContext *C, wmOperator *op, int width)
wmOperatorStatus WM_operator_confirm_message_ex (bContext *C, wmOperator *op, const char *title, int icon, const char *message, blender::wm::OpCallContext opcontext)
wmOperatorStatus WM_operator_confirm_message (bContext *C, wmOperator *op, const char *message)
void WM_operator_free (wmOperator *op)
void WM_operator_free_all_after (wmWindowManager *wm, wmOperator *op)
void WM_operator_type_set (wmOperator *op, wmOperatorType *ot)
void WM_operator_stack_clear (wmWindowManager *wm)
void WM_operator_handlers_clear (wmWindowManager *wm, wmOperatorType *ot)
bool WM_operator_poll (bContext *C, wmOperatorType *ot)
bool WM_operator_poll_context (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context)
bool WM_operator_poll_or_report_error (bContext *C, wmOperatorType *ot, ReportList *reports)
wmOperatorStatus WM_operator_call_ex (bContext *C, wmOperator *op, bool store)
wmOperatorStatus WM_operator_call (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_call_notest (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_repeat (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_repeat_last (bContext *C, wmOperator *op)
bool WM_operator_repeat_check (const bContext *C, wmOperator *op)
bool WM_operator_is_repeat (const bContext *C, const wmOperator *op)
bool WM_operator_name_poll (bContext *C, const char *opstring)
wmOperatorStatus WM_operator_name_call_ptr (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
wmOperatorStatus WM_operator_name_call (bContext *C, const char *opstring, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
wmOperatorStatus WM_operator_name_call_with_properties (bContext *C, const char *opstring, blender::wm::OpCallContext context, IDProperty *properties, const wmEvent *event)
wmOperatorStatus WM_operator_call_py (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, ReportList *reports, bool is_undo)
void WM_operator_name_call_ptr_with_depends_on_cursor (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext opcontext, PointerRNA *properties, const wmEvent *event, blender::StringRef drawstr)
void WM_operator_properties_alloc (PointerRNA **ptr, IDProperty **properties, const char *opstring)
void WM_operator_properties_sanitize (PointerRNA *ptr, bool no_context)
bool WM_operator_properties_default (PointerRNA *ptr, bool do_update)
void WM_operator_properties_reset (wmOperator *op)
void WM_operator_properties_create (PointerRNA *ptr, const char *opstring)
void WM_operator_properties_create_ptr (PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_clear (PointerRNA *ptr)
void WM_operator_properties_free (PointerRNA *ptr)
bool WM_operator_ui_poll (wmOperatorType *ot, PointerRNA *ptr)
bool WM_operator_check_ui_enabled (const bContext *C, const char *idname)
IDPropertyWM_operator_last_properties_ensure_idprops (wmOperatorType *ot)
void WM_operator_last_properties_ensure (wmOperatorType *ot, PointerRNA *ptr)
wmOperatorWM_operator_last_redo (const bContext *C)
IDWM_operator_drop_load_path (bContext *C, wmOperator *op, short idcode)
bool WM_operator_last_properties_init (wmOperator *op)
bool WM_operator_last_properties_store (wmOperator *op)
void WM_operator_properties_confirm_or_exec (wmOperatorType *ot)
void WM_operator_properties_filesel (wmOperatorType *ot, int filter, short type, eFileSel_Action action, eFileSel_Flag flag, short display, short sort)
void WM_operator_properties_id_lookup_set_from_id (PointerRNA *ptr, const ID *id)
IDWM_operator_properties_id_lookup_from_name_or_session_uid (Main *bmain, PointerRNA *ptr, enum ID_Type type)
bool WM_operator_properties_id_lookup_is_set (PointerRNA *ptr)
void WM_operator_properties_id_lookup (wmOperatorType *ot, const bool add_name_prop)
void WM_operator_properties_use_cursor_init (wmOperatorType *ot)
void WM_operator_properties_border (wmOperatorType *ot)
void WM_operator_properties_border_to_rcti (wmOperator *op, rcti *r_rect)
void WM_operator_properties_border_to_rctf (wmOperator *op, rctf *r_rect)
blender::Bounds< blender::int2WM_operator_properties_border_to_bounds (wmOperator *op)
void WM_operator_properties_gesture_box_ex (wmOperatorType *ot, bool deselect, bool extend)
void WM_operator_properties_gesture_box (wmOperatorType *ot)
void WM_operator_properties_gesture_box_select (wmOperatorType *ot)
void WM_operator_properties_gesture_box_zoom (wmOperatorType *ot)
void WM_operator_properties_gesture_lasso (wmOperatorType *ot)
void WM_operator_properties_gesture_polyline (wmOperatorType *ot)
void WM_operator_properties_gesture_straightline (wmOperatorType *ot, int cursor)
void WM_operator_properties_gesture_circle (wmOperatorType *ot)
void WM_operator_properties_mouse_select (wmOperatorType *ot)
void WM_operator_properties_select_all (wmOperatorType *ot)
void WM_operator_properties_select_action (wmOperatorType *ot, int default_action, bool hide_gui)
void WM_operator_properties_select_action_simple (wmOperatorType *ot, int default_action, bool hide_gui)
void WM_operator_properties_select_random (wmOperatorType *ot)
int WM_operator_properties_select_random_seed_increment_get (wmOperator *op)
void WM_operator_properties_select_operation (wmOperatorType *ot)
void WM_operator_properties_select_operation_simple (wmOperatorType *ot)
void WM_operator_properties_select_walk_direction (wmOperatorType *ot)
void WM_operator_properties_generic_select (wmOperatorType *ot)
void WM_operator_properties_checker_interval (wmOperatorType *ot, bool nth_can_disable)
void WM_operator_properties_checker_interval_from_op (wmOperator *op, CheckerIntervalParams *op_params)
bool WM_operator_properties_checker_interval_test (const CheckerIntervalParams *op_params, int depth)
std::string WM_operator_pystring_ex (bContext *C, wmOperator *op, bool all_args, bool macro_args, wmOperatorType *ot, PointerRNA *opptr)
std::string WM_operator_pystring (bContext *C, wmOperator *op, bool all_args, bool macro_args)
std::string WM_operator_pystring_abbreviate (std::string str, int str_len_max)
std::optional< std::string > WM_prop_pystring_assign (bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
size_t WM_operator_bl_idname (char *dst, const char *src) ATTR_NONNULL(1
size_t size_t WM_operator_py_idname (char *dst, const char *src) ATTR_NONNULL(1
size_t size_t bool WM_operator_py_idname_ok_or_report (ReportList *reports, const char *classname, const char *idname)
bool WM_operator_bl_idname_is_valid (const char *idname)
std::optional< std::string > WM_context_path_resolve_property_full (const bContext *C, const PointerRNA *ptr, PropertyRNA *prop, int index)
std::optional< std::string > WM_context_path_resolve_full (bContext *C, const PointerRNA *ptr)
wmOperatorTypeWM_operatortype_find (const char *idname, bool quiet)
blender::Span< wmOperatorType * > WM_operatortypes_registered_get ()
void WM_operatortype_append (void(*opfunc)(wmOperatorType *ot))
void WM_operatortype_append_ptr (void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
void WM_operatortype_append_macro_ptr (void(*opfunc)(wmOperatorType *ot, void *userdata), void *userdata)
void WM_operatortype_remove_ptr (wmOperatorType *ot)
bool WM_operatortype_remove (const char *idname)
void WM_operatortype_last_properties_clear_all ()
void WM_operatortype_idname_visit_for_search (const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
void WM_operatortype_props_advanced_begin (wmOperatorType *ot)
void WM_operatortype_props_advanced_end (wmOperatorType *ot)
wmOperatorTypeWM_operatortype_append_macro (const char *idname, const char *name, const char *description, int flag)
wmOperatorTypeMacroWM_operatortype_macro_define (wmOperatorType *ot, const char *idname)
std::string WM_operatortype_name (wmOperatorType *ot, PointerRNA *properties)
std::string WM_operatortype_description (bContext *C, wmOperatorType *ot, PointerRNA *properties)
std::string WM_operatortype_description_or_name (bContext *C, wmOperatorType *ot, PointerRNA *properties)
bool WM_operator_depends_on_cursor (bContext &C, wmOperatorType &ot, PointerRNA *properties)
void WM_operator_type_modal_from_exec_for_object_edit_coords (wmOperatorType *ot)
void WM_uilisttype_init ()
uiListTypeWM_uilisttype_find (blender::StringRef idname, bool quiet)
bool WM_uilisttype_add (uiListType *ult)
void WM_uilisttype_remove_ptr (Main *bmain, uiListType *ult)
void WM_uilisttype_free ()
void WM_uilisttype_to_full_list_id (const uiListType *ult, const char *list_id, char r_full_list_id[])
const char * WM_uilisttype_list_id_get (const uiListType *ult, uiList *list)
void WM_menutype_init ()
MenuTypeWM_menutype_find (blender::StringRef idname, bool quiet)
blender::Span< MenuType * > WM_menutypes_registered_get ()
bool WM_menutype_add (MenuType *mt)
void WM_menutype_freelink (MenuType *mt)
void WM_menutype_free ()
bool WM_menutype_poll (bContext *C, MenuType *mt)
void WM_menutype_idname_visit_for_search (const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
void WM_paneltype_init ()
void WM_paneltype_clear ()
PanelTypeWM_paneltype_find (blender::StringRef idname, bool quiet)
bool WM_paneltype_add (PanelType *pt)
void WM_paneltype_remove (PanelType *pt)
void WM_paneltype_idname_visit_for_search (const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn)
wmOperatorStatus WM_gesture_box_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_box_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_box_cancel (bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_circle_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_circle_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_circle_cancel (bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_lines_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_lines_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_lines_cancel (bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_lasso_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_lasso_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_lasso_cancel (bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_polyline_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_polyline_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_polyline_cancel (bContext *C, wmOperator *op)
blender::Array< blender::int2WM_gesture_lasso_path_to_array (bContext *C, wmOperator *op)
wmOperatorStatus WM_gesture_straightline_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_straightline_active_side_invoke (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_straightline_modal (bContext *C, wmOperator *op, const wmEvent *event)
wmOperatorStatus WM_gesture_straightline_oneshot_modal (bContext *C, wmOperator *op, const wmEvent *event)
void WM_gesture_straightline_cancel (bContext *C, wmOperator *op)
wmGestureWM_gesture_new (wmWindow *window, const ARegion *region, const wmEvent *event, int type)
void WM_gesture_end (wmWindow *win, wmGesture *gesture)
void WM_gestures_remove (wmWindow *win)
void WM_gestures_free_all (wmWindow *win)
bool WM_gesture_is_modal_first (const wmGesture *gesture)
void WM_event_add_fileselect (bContext *C, wmOperator *op)
void WM_event_fileselect_event (wmWindowManager *wm, void *ophandle, int eventval)
void * WM_event_consecutive_data_get (wmWindow *win, const char *id)
void WM_event_consecutive_data_set (wmWindow *win, const char *id, void *custom_data)
void WM_event_consecutive_data_free (wmWindow *win)
void WM_operator_region_active_win_set (bContext *C)
wmOperatorStatus WM_operator_flag_only_pass_through_on_press (wmOperatorStatus retval, const wmEvent *event)
void WM_event_start_drag (bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags)
wmDragWM_drag_data_create (bContext *C, int icon, eWM_DragDataType type, void *poin, unsigned int flags)
void WM_event_start_prepared_drag (bContext *C, wmDrag *drag)
void WM_event_drag_image (wmDrag *drag, const ImBuf *imb, float scale)
void WM_event_drag_path_override_poin_data_with_space_file_paths (const bContext *, wmDrag *drag)
void WM_event_drag_preview_icon (wmDrag *drag, int icon_id)
void WM_drag_free (wmDrag *drag)
void WM_drag_data_free (eWM_DragDataType dragtype, void *poin)
void WM_drag_free_list (ListBase *lb)
wmDropBoxWM_dropbox_add (ListBase *lb, const char *idname, bool(*poll)(bContext *C, wmDrag *drag, const wmEvent *event), void(*copy)(bContext *C, wmDrag *drag, wmDropBox *drop), void(*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop), WMDropboxTooltipFunc tooltip)
void WM_dropbox_update_ot ()
void WM_drag_draw_item_name_fn (bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
void WM_drag_draw_default_fn (bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
ListBaseWM_dropboxmap_find (const char *idname, int spaceid, int regionid)
IDWM_drag_asset_id_import (const bContext *C, wmDragAsset *asset_drag, int flag_extra)
bool WM_drag_asset_will_import_linked (const wmDrag *drag)
bool WM_drag_asset_will_import_packed (const wmDrag *drag)
void WM_drag_add_local_ID (wmDrag *drag, ID *id, ID *from_parent)
IDWM_drag_get_local_ID (const wmDrag *drag, short idcode)
IDWM_drag_get_local_ID_from_event (const wmEvent *event, short idcode)
bool WM_drag_is_ID_type (const wmDrag *drag, int idcode)
wmDragAssetWM_drag_create_asset_data (const blender::asset_system::AssetRepresentation *asset, const AssetImportSettings &import_settings)
wmDragAssetWM_drag_get_asset_data (const wmDrag *drag, int idcode)
AssetMetaDataWM_drag_get_asset_meta_data (const wmDrag *drag, int idcode)
IDWM_drag_get_local_ID_or_import_from_asset (const bContext *C, const wmDrag *drag, int idcode)
void WM_drag_add_asset_list_item (wmDrag *drag, const blender::asset_system::AssetRepresentation *asset)
 Free asset ID imported for canceled drop.
const ListBaseWM_drag_asset_list_get (const wmDrag *drag)
const char * WM_drag_get_item_name (wmDrag *drag)
wmDragPathWM_drag_create_path_data (blender::Span< const char * > paths)
const char * WM_drag_get_single_path (const wmDrag *drag)
const char * WM_drag_get_single_path (const wmDrag *drag, int file_type)
blender::Span< std::string > WM_drag_get_paths (const wmDrag *drag)
bool WM_drag_has_path_file_type (const wmDrag *drag, int file_type)
int WM_drag_get_path_file_type (const wmDrag *drag)
const std::string & WM_drag_get_string (const wmDrag *drag)
std::string WM_drag_get_string_firstline (const wmDrag *drag)
void wmViewport (const rcti *winrct)
void wmPartialViewport (rcti *drawrct, const rcti *winrct, const rcti *partialrct)
void wmWindowViewport (const wmWindow *win)
void wmWindowViewport_ex (const wmWindow *win, float offset)
void wmOrtho2 (float x1, float x2, float y1, float y2)
void wmOrtho2_region_pixelspace (const ARegion *region)
void wmOrtho2_pixelspace (float x, float y)
void wmGetProjectionMatrix (float mat[4][4], const rcti *winrct)
 ENUM_OPERATORS (eWM_JobFlag, WM_JOB_PROGRESS)
wmJobWM_jobs_get (wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, eWM_JobFlag flag, eWM_JobType job_type)
bool WM_jobs_test (const wmWindowManager *wm, const void *owner, int job_type)
float WM_jobs_progress (const wmWindowManager *wm, const void *owner)
const char * WM_jobs_name (const wmWindowManager *wm, const void *owner)
double WM_jobs_starttime (const wmWindowManager *wm, const void *owner)
void * WM_jobs_customdata_from_type (wmWindowManager *wm, const void *owner, int job_type)
bool WM_jobs_is_running (const wmJob *wm_job)
bool WM_jobs_is_stopped (const wmWindowManager *wm, const void *owner)
void * WM_jobs_customdata_get (wmJob *wm_job)
void WM_jobs_customdata_set (wmJob *wm_job, void *customdata, void(*free)(void *))
void WM_jobs_timer (wmJob *wm_job, double time_step, unsigned int note, unsigned int endnote)
void WM_jobs_delay_start (wmJob *wm_job, double delay_time)
void WM_jobs_callbacks (wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_callbacks_ex (wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *), void(*completed)(void *), void(*canceled)(void *))
void WM_jobs_start (wmWindowManager *wm, wmJob *wm_job)
void WM_jobs_stop_type (wmWindowManager *wm, const void *owner, eWM_JobType job_type)
void WM_jobs_stop_all_from_owner (wmWindowManager *wm, const void *owner) ATTR_NONNULL()
void WM_jobs_kill_all (wmWindowManager *wm)
void WM_jobs_kill_all_except (wmWindowManager *wm, const void *owner)
void WM_jobs_kill_type (wmWindowManager *wm, const void *owner, int job_type)
void WM_jobs_kill_all_from_owner (wmWindowManager *wm, const void *owner) ATTR_NONNULL()
bool WM_jobs_has_running (const wmWindowManager *wm)
bool WM_jobs_has_running_type (const wmWindowManager *wm, int job_type)
void WM_job_main_thread_lock_acquire (wmJob *wm_job)
void WM_job_main_thread_lock_release (wmJob *wm_job)
char * WM_clipboard_text_get (bool selection, bool ensure_utf8, int *r_len)
char * WM_clipboard_text_get_firstline (bool selection, bool ensure_utf8, int *r_len)
void WM_clipboard_text_set (const char *buf, bool selection)
bool WM_clipboard_image_available ()
ImBufWM_clipboard_image_get ()
bool WM_clipboard_image_set_byte_buffer (ImBuf *ibuf) ATTR_NONNULL(1)
void WM_progress_set (wmWindow *win, float progress)
void WM_progress_clear (wmWindow *win)
void * WM_draw_cb_activate (wmWindow *win, void(*draw)(const wmWindow *win, void *customdata), void *customdata)
void WM_draw_cb_exit (wmWindow *win, void *handle)
void WM_redraw_windows (bContext *C)
void WM_draw_region_viewport_ensure (Scene *scene, ARegion *region, short space_type)
void WM_draw_region_viewport_bind (ARegion *region)
void WM_draw_region_viewport_unbind (ARegion *region)
void WM_draw_region_free (ARegion *region)
GPUViewportWM_draw_region_get_viewport (ARegion *region)
GPUViewportWM_draw_region_get_bound_viewport (ARegion *region)
int WM_main_playanim (int argc, const char **argv)
bool write_crash_blend ()
bool WM_autosave_is_scheduled (wmWindowManager *wm)
void WM_autosave_write (wmWindowManager *wm, Main *bmain)
void WM_locked_interface_set (wmWindowManager *wm, bool lock)
void WM_locked_interface_set_with_flags (wmWindowManager *wm, short lock_flags)
void WM_event_tablet_data_default_set (wmTabletData *tablet_data)
wmEventWM_event_add_simulate (wmWindow *win, const wmEvent *event_to_add)
const char * WM_window_cursor_keymap_status_get (const wmWindow *win, int button_index, int type_index)
void WM_window_cursor_keymap_status_refresh (bContext *C, wmWindow *win)
void WM_window_status_area_tag_redraw (wmWindow *win)
ScrAreaWM_window_status_area_find (wmWindow *win, bScreen *screen)
bool WM_window_modal_keymap_status_draw (bContext *C, wmWindow *win, uiLayout *layout)
void WM_event_print (const wmEvent *event)
bool WM_event_is_modal_drag_exit (const wmEvent *event, short init_event_type, short init_event_val)
bool WM_event_is_mouse_drag (const wmEvent *event)
bool WM_event_is_mouse_drag_or_press (const wmEvent *event)
int WM_event_drag_direction (const wmEvent *event)
char WM_event_utf8_to_ascii (const wmEvent *event) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
bool WM_cursor_test_motion_and_update (const int mval[2]) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
bool WM_event_consecutive_gesture_test (const wmEvent *event)
bool WM_event_consecutive_gesture_test_break (const wmWindow *win, const wmEvent *event)
int WM_event_drag_threshold (const wmEvent *event)
bool WM_event_drag_test (const wmEvent *event, const int prev_xy[2])
bool WM_event_drag_test_with_delta (const wmEvent *event, const int drag_delta[2])
void WM_event_drag_start_mval (const wmEvent *event, const ARegion *region, int r_mval[2])
void WM_event_drag_start_mval_fl (const wmEvent *event, const ARegion *region, float r_mval[2])
void WM_event_drag_start_xy (const wmEvent *event, int r_xy[2])
int WM_userdef_event_map (int kmitype)
int WM_userdef_event_type_from_keymap_type (int kmitype)
float WM_event_tablet_data (const wmEvent *event, bool *r_pen_flip, float r_tilt[2])
bool WM_event_is_tablet (const wmEvent *event)
int WM_event_absolute_delta_x (const wmEvent *event)
int WM_event_absolute_delta_y (const wmEvent *event)
void WM_tooltip_immediate_init (bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init)
void WM_tooltip_timer_init_ex (bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init, double delay)
void WM_tooltip_timer_init (bContext *C, wmWindow *win, ScrArea *area, ARegion *region, wmTooltipInitFn init)
void WM_tooltip_timer_clear (bContext *C, wmWindow *win)
void WM_tooltip_clear (bContext *C, wmWindow *win)
void WM_tooltip_init (bContext *C, wmWindow *win)
void WM_tooltip_refresh (bContext *C, wmWindow *win)
double WM_tooltip_time_closed ()
wmGenericCallbackWM_generic_callback_steal (wmGenericCallback *callback)
void WM_generic_callback_free (wmGenericCallback *callback)
void WM_generic_user_data_free (wmGenericUserData *wm_userdata)
bool WM_region_use_viewport (ScrArea *area, ARegion *region)
bool WM_platform_associate_set (bool do_register, bool all_users, char **r_error_msg)

Macro Definition Documentation

◆ WM_CURSOR_DEFAULT_LOGICAL_SIZE

#define WM_CURSOR_DEFAULT_LOGICAL_SIZE   24

The default size of a cursor without any DPI scaling.

Definition at line 567 of file WM_api.hh.

Referenced by wm_software_cursor_draw_crosshair().

◆ WM_operatortype_prop_tag

#define WM_operatortype_prop_tag ( property,
tags )
Value:
{ \
CHECK_TYPE(tags, eOperatorPropTags); \
RNA_def_property_tags(prop, tags); \
} \
(void)0
eOperatorPropTags
Definition WM_types.hh:263

Definition at line 1385 of file WM_api.hh.

Referenced by WM_operatortype_props_advanced_end().

Typedef Documentation

◆ EventHandlerPoll

Initial value:
bool (*)(const wmWindow *win,
const ScrArea *area,
const ARegion *region,
const wmEvent *event)

Definition at line 589 of file WM_api.hh.

◆ wm_jobs_start_callback

using wm_jobs_start_callback = void (*)(void *custom_data, wmJobWorkerStatus *worker_status)

Definition at line 1848 of file WM_api.hh.

◆ wmEventHandler_KeymapDynamicFn

◆ wmTooltipInitFn

Initial value:
ARegion *region,
int *pass,
double *r_pass_delay,
bool *r_exit_on_event)
#define C
Definition RandGen.cpp:29

Definition at line 2124 of file WM_api.hh.

◆ wmUIHandlerFunc

using wmUIHandlerFunc = int (*)(bContext *C, const wmEvent *event, void *userdata)

Definition at line 677 of file WM_api.hh.

◆ wmUIHandlerRemoveFunc

using wmUIHandlerRemoveFunc = void (*)(bContext *C, void *userdata)

Definition at line 678 of file WM_api.hh.

Enumeration Type Documentation

◆ eFileSel_Action

Action for WM_operator_properties_filesel.

Enumerator
FILE_OPENFILE 
FILE_SAVE 

Definition at line 1132 of file WM_api.hh.

◆ eFileSel_Flag

Flags for WM_operator_properties_filesel.

Enumerator
WM_FILESEL_RELPATH 
WM_FILESEL_DIRECTORY 
WM_FILESEL_FILENAME 
WM_FILESEL_FILEPATH 
WM_FILESEL_FILES 
WM_FILESEL_SHOW_PROPS 

Show the properties sidebar by default.

Definition at line 1120 of file WM_api.hh.

◆ eWindowAlignment

WM_window_open alignment.

Enumerator
WIN_ALIGN_ABSOLUTE 
WIN_ALIGN_LOCATION_CENTER 
WIN_ALIGN_PARENT_CENTER 

Definition at line 373 of file WM_api.hh.

◆ eWM_CapabilitiesFlag

Enumerator
WM_CAPABILITY_CURSOR_WARP 

Ability to warp the cursor (set its location).

WM_CAPABILITY_WINDOW_POSITION 

Window position access, support for the following.

  • Getting window positions.
  • Setting window positions.
  • Setting positions for new windows.

Currently there is no need to distinguish between these different cases so a single flag is used.

When omitted, it isn't possible to know where windows are located in relation to each other. Operations such as applying events from one window to another or detecting the non-active window under the cursor are not supported.

WM_CAPABILITY_CLIPBOARD_PRIMARY 

The windowing system supports a separate primary clipboard (typically set when interactively selecting text).

WM_CAPABILITY_GPU_FRONT_BUFFER_READ 

Reading from the back-buffer is supported.

WM_CAPABILITY_CLIPBOARD_IMAGE 

Ability to copy/paste system clipboard images.

WM_CAPABILITY_DESKTOP_SAMPLE 

Ability to sample a color outside of Blender windows.

WM_CAPABILITY_INPUT_IME 

Support for IME input methods.

WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION 

Trackpad physical scroll detection.

WM_CAPABILITY_WINDOW_DECORATION_STYLES 

Support for window decoration styles.

WM_CAPABILITY_KEYBOARD_HYPER_KEY 

Support for the "Hyper" modifier key.

WM_CAPABILITY_CURSOR_RGBA 

Support for RGBA Cursors.

WM_CAPABILITY_CURSOR_GENERATOR 

Support on demand cursor generation.

WM_CAPABILITY_MULTIMONITOR_PLACEMENT 

Ability to save/restore windows among multiple monitors.

WM_CAPABILITY_INITIALIZED 

The initial value, indicates the value needs to be set by inspecting GHOST.

Definition at line 168 of file WM_api.hh.

◆ eWM_EventHandlerFlag

Enumerator
WM_HANDLER_BLOCKING 

After this handler all others are ignored.

WM_HANDLER_ACCEPT_DBL_CLICK 

Handler accepts double key press events.

WM_HANDLER_DO_FREE 

Handler tagged to be freed in wm_handlers_do().

Definition at line 577 of file WM_api.hh.

◆ eWM_JobFlag

Enumerator
WM_JOB_PRIORITY 
WM_JOB_EXCL_RENDER 

Only one render job can run at a time, this tags them a such. New jobs with this flag will wait on previous ones to finish then.

WM_JOB_PROGRESS 

Definition at line 1759 of file WM_api.hh.

◆ eWM_JobType

Identifying jobs by owner alone is unreliable, this isn't saved, order can change.

Enumerator
WM_JOB_TYPE_ANY 

Not a real type, use for querying any type.

WM_JOB_TYPE_COMPOSITE 
WM_JOB_TYPE_RENDER 
WM_JOB_TYPE_RENDER_PREVIEW 
WM_JOB_TYPE_LOAD_PREVIEW 

Job for the UI to load previews from the file system (uses OS thumbnail cache).

WM_JOB_TYPE_OBJECT_SIM_OCEAN 
WM_JOB_TYPE_OBJECT_SIM_FLUID 
WM_JOB_TYPE_OBJECT_BAKE_TEXTURE 
WM_JOB_TYPE_OBJECT_BAKE 
WM_JOB_TYPE_FILESEL_READDIR 
WM_JOB_TYPE_ASSET_LIBRARY_LOAD 
WM_JOB_TYPE_CLIP_BUILD_PROXY 
WM_JOB_TYPE_CLIP_TRACK_MARKERS 
WM_JOB_TYPE_CLIP_SOLVE_CAMERA 
WM_JOB_TYPE_CLIP_PREFETCH 
WM_JOB_TYPE_SEQ_BUILD_PROXY 
WM_JOB_TYPE_SEQ_BUILD_PREVIEW 
WM_JOB_TYPE_POINTCACHE 
WM_JOB_TYPE_DPAINT_BAKE 
WM_JOB_TYPE_ALEMBIC_IMPORT 
WM_JOB_TYPE_ALEMBIC_EXPORT 
WM_JOB_TYPE_USD_IMPORT 
WM_JOB_TYPE_USD_EXPORT 
WM_JOB_TYPE_SHADER_COMPILATION 
WM_JOB_TYPE_STUDIOLIGHT 
WM_JOB_TYPE_LIGHT_BAKE 
WM_JOB_TYPE_FSMENU_BOOKMARK_VALIDATE 
WM_JOB_TYPE_QUADRIFLOW_REMESH 
WM_JOB_TYPE_TRACE_IMAGE 
WM_JOB_TYPE_LINEART 
WM_JOB_TYPE_SEQ_DRAW_THUMBNAIL 
WM_JOB_TYPE_SEQ_DRAG_DROP_PREVIEW 
WM_JOB_TYPE_CALCULATE_SIMULATION_NODES 
WM_JOB_TYPE_BAKE_GEOMETRY_NODES 
WM_JOB_TYPE_UV_PACK 

Definition at line 1773 of file WM_api.hh.

◆ eWM_WindowDecorationStyleFlag

Flags for #WM_window_decoration_set_style().

Note
To be kept in sync with #GHOST_TWindowDecorationFlags.
Enumerator
WM_WINDOW_DECORATION_STYLE_NONE 

No decoration styling.

WM_WINDOW_DECORATION_STYLE_COLORED_TITLEBAR 

Colored TitleBar.

Definition at line 428 of file WM_api.hh.

Function Documentation

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( eWM_JobFlag ,
WM_JOB_PROGRESS  )

References WM_JOB_PROGRESS.

◆ WM_autosave_is_scheduled()

bool WM_autosave_is_scheduled ( wmWindowManager * wm)

Definition at line 2346 of file wm_files.cc.

Referenced by blender::ed::object::object_mode_set_exec().

◆ WM_autosave_write()

void WM_autosave_write ( wmWindowManager * wm,
Main * bmain )

◆ WM_capabilities_flag()

eWM_CapabilitiesFlag WM_capabilities_flag ( )

Return the capabilities of the windowing system.

Note
Some callers need to check G.background == false before this function. See inline code-comments for details.

Definition at line 2261 of file wm_window.cc.

References flag, GHOST_GetCapabilities(), GHOST_kCapabilityClipboardImage, GHOST_kCapabilityClipboardPrimary, GHOST_kCapabilityCursorGenerator, GHOST_kCapabilityCursorRGBA, GHOST_kCapabilityCursorWarp, GHOST_kCapabilityDesktopSample, GHOST_kCapabilityGPUReadFrontBuffer, GHOST_kCapabilityInputIME, GHOST_kCapabilityKeyboardHyperKey, GHOST_kCapabilityMultiMonitorPlacement, GHOST_kCapabilityTrackpadPhysicalDirection, GHOST_kCapabilityWindowDecorationStyles, GHOST_kCapabilityWindowPosition, WM_CAPABILITY_CLIPBOARD_IMAGE, WM_CAPABILITY_CLIPBOARD_PRIMARY, WM_CAPABILITY_CURSOR_GENERATOR, WM_CAPABILITY_CURSOR_RGBA, WM_CAPABILITY_CURSOR_WARP, WM_CAPABILITY_DESKTOP_SAMPLE, WM_CAPABILITY_GPU_FRONT_BUFFER_READ, WM_CAPABILITY_INITIALIZED, WM_CAPABILITY_INPUT_IME, WM_CAPABILITY_KEYBOARD_HYPER_KEY, WM_CAPABILITY_MULTIMONITOR_PLACEMENT, WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION, WM_CAPABILITY_WINDOW_DECORATION_STYLES, and WM_CAPABILITY_WINDOW_POSITION.

Referenced by bpy_wm_capabilities(), console_select_update_primary_clipboard(), ED_area_newspace(), ED_screen_do_listen(), eyedropper_color_sample_fl(), font_select_update_primary_clipboard(), render_view_open(), text_select_update_primary_clipboard(), window_set_custom_cursor(), window_set_custom_cursor_pixmap(), wm_cursor_number_impl(), wm_cursor_text(), wm_event_add_ghostevent(), wm_event_cursor_other_windows(), wm_paintcursor_draw(), wm_software_cursor_draw_bitmap(), wm_software_cursor_needed(), WM_window_decoration_style_apply(), WM_window_decoration_style_flags_set(), WM_window_find_under_cursor(), wm_window_ghostwindow_add(), wm_window_ghostwindow_ensure(), WM_window_open_temp(), WM_window_pixels_read(), WM_window_pixels_read_sample(), WM_window_pixels_read_sample_from_frontbuffer(), and wm_window_update_size_position().

◆ WM_check()

◆ WM_clipboard_image_available()

bool WM_clipboard_image_available ( )

Returns true if the clipboard contains an image.

Definition at line 2618 of file wm_window.cc.

References G, and GHOST_hasClipboardImage().

Referenced by image_clipboard_paste_poll().

◆ WM_clipboard_image_get()

ImBuf * WM_clipboard_image_get ( )

Get image data from the clipboard.

Returns
The image or null when not found. Caller must free.

Definition at line 2626 of file wm_window.cc.

References free(), G, GHOST_getClipboardImage(), and IMB_allocFromBuffer().

Referenced by image_clipboard_paste_exec().

◆ WM_clipboard_image_set_byte_buffer()

bool WM_clipboard_image_set_byte_buffer ( ImBuf * ibuf)

Put image data to the clipboard.

Parameters
ibufthe image to set the clipboard to.

Definition at line 2645 of file wm_window.cc.

References ImBuf::byte_buffer, ImBufByteBuffer::data, G, GHOST_putClipboardImage(), ImBuf::x, and ImBuf::y.

Referenced by image_clipboard_copy_exec().

◆ WM_clipboard_text_get()

char * WM_clipboard_text_get ( bool selection,
bool ensure_utf8,
int * r_len )

Return text from the clipboard.

Parameters
selectionUse the "primary" clipboard, see: WM_CAPABILITY_CLIPBOARD_PRIMARY.
ensure_utf8Ensure the resulting string does not contain invalid UTF8 encoding.

Definition at line 2569 of file wm_window.cc.

References wm_clipboard_text_get_ex().

Referenced by console_paste_exec(), paste_text_exec(), pyrna_WindowManager_clipboard_get(), blender::ed::vse::sequencer_text_edit_paste_exec(), and text_paste_exec().

◆ WM_clipboard_text_get_firstline()

char * WM_clipboard_text_get_firstline ( bool selection,
bool ensure_utf8,
int * r_len )

Convenience function for pasting to areas of Blender which don't support newlines.

Definition at line 2574 of file wm_window.cc.

References wm_clipboard_text_get_ex().

Referenced by handleNumInput(), ui_but_get_pasted_text_from_clipboard(), and ui_textedit_copypaste().

◆ WM_clipboard_text_set()

◆ WM_context_path_resolve_full()

std::optional< std::string > WM_context_path_resolve_full ( bContext * C,
const PointerRNA * ptr )

◆ WM_context_path_resolve_property_full()

std::optional< std::string > WM_context_path_resolve_property_full ( const bContext * C,
const PointerRNA * ptr,
PropertyRNA * prop,
int index )

◆ WM_cursor_grab_disable()

◆ WM_cursor_grab_enable()

void WM_cursor_grab_enable ( wmWindow * win,
eWM_CursorWrapAxis wrap,
const rcti * wrap_region,
bool hide )

Enable cursor grabbing, optionally hiding the cursor and wrapping cursor-motion within a sub-region of the window.

Parameters
wrapan enum (WM_CURSOR_WRAP_NONE, WM_CURSOR_WRAP_XY... etc).
wrap_regionWindow-relative region for cursor wrapping (when wrap is WM_CURSOR_WRAP_XY). When NULL, the window bounds are used for wrapping.
Note
The current grab state can be accessed by #wmWindowManager.grabcursor although.

Definition at line 508 of file wm_cursors.cc.

References wmWindow::eventstate, G, G_DEBUG, GHOST_kAxisX, GHOST_kAxisY, GHOST_kGrabHide, GHOST_kGrabNormal, GHOST_kGrabWrap, GHOST_SetCursorGrab(), wmWindow::ghostwin, wmWindow::grabcursor, wmTabletData::is_motion_absolute, wmEvent::tablet, wm_cursor_position_to_ghost_screen_coords(), WM_CURSOR_WRAP_NONE, WM_CURSOR_WRAP_X, WM_CURSOR_WRAP_Y, wrap(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by button_activate_state(), initWalkInfo(), wm_gizmomap_modal_set(), wm_macro_modal(), and wm_operator_invoke().

◆ WM_cursor_modal_is_set_ok()

bool WM_cursor_modal_is_set_ok ( const wmWindow * win)

Check the cursor isn't set elsewhere. When false setting the modal cursor can be done but may overwrite an existing cursor.

Use this check for modal navigation operators that may be activated while other modal operators are running.

Note
A cursor "stack" would remove the need for this.

Definition at line 468 of file wm_cursors.cc.

References wmWindow::grabcursor, and wmWindow::modalcursor.

Referenced by image_view_pan_init(), image_view_zoom_init(), view_pan_init(), view_pan_invoke(), view_zoom_init(), and view_zoomdrag_invoke().

◆ WM_cursor_modal_restore()

void WM_cursor_modal_restore ( wmWindow * win)

◆ WM_cursor_modal_set()

void WM_cursor_modal_set ( wmWindow * win,
int val )

Definition at line 473 of file wm_cursors.cc.

References wmWindow::cursor, wmWindow::lastcursor, wmWindow::modalcursor, and WM_cursor_set().

Referenced by annotation_draw_cursor_set(), area_swap_invoke(), blender::ui::bonedropper_invoke(), button_activate_init(), curve_draw_invoke(), blender::ed::curves::curves_draw_invoke(), datadropper_invoke(), depthdropper_invoke(), driverdropper_invoke(), blender::ui::eyedropper_colorband_invoke(), eyedropper_invoke(), graph_slider_invoke(), blender::ed::sculpt_paint::grease_pencil_fill_event_modal_map(), blender::ed::sculpt_paint::grease_pencil_fill_invoke(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_invoke(), blender::ed::greasepencil::grease_pencil_primitive_cursor_update(), blender::ed::greasepencil::grease_pencil_primitive_invoke(), image_view_pan_init(), image_view_zoom_init(), blender::ed::transform::initMouseInputMode(), blender::ed::curves::pen_tool::PenToolOperation::invoke(), knifetool_invoke(), blender::ed::space_node::node_resize_init(), pose_slide_invoke_common(), poselib_blend_invoke(), sample_color_invoke(), blender::ed::asset::screenshot_preview_invoke(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_modal(), blender::ed::sculpt_paint::dyntopo::sculpt_sample_detail_size_invoke(), ui_numedit_set_active(), ui_textedit_begin(), view_pan_init(), view_pan_invoke(), view_zoom_init(), view_zoomdrag_invoke(), WM_cursor_wait(), wm_drags_check_ops(), WM_gesture_lasso_invoke(), WM_gesture_lines_invoke(), WM_gesture_polyline_invoke(), WM_gesture_straightline_invoke(), and WM_operator_name_call_ptr_with_depends_on_cursor().

◆ WM_cursor_preferred_logical_size()

uint WM_cursor_preferred_logical_size ( )
Returns
the preferred logical size for the cursor (before DPI/Hi-DPI scaling is applied).

Definition at line 2887 of file wm_window.cc.

References g_system, and GHOST_GetCursorPreferredLogicalSize().

Referenced by wm_cursor_size(), and wm_software_cursor_draw_crosshair().

◆ WM_cursor_progress()

void WM_cursor_progress ( wmWindow * win,
float progress_factor )

Show progress in the cursor (0.0..1.0 when complete).

Definition at line 958 of file wm_cursors.cc.

References wm_cursor_number_impl().

◆ WM_cursor_set()

◆ WM_cursor_set_from_tool()

◆ WM_cursor_test_motion_and_update()

bool WM_cursor_test_motion_and_update ( const int mval[2])

Detect motion between selection (callers should only use this for selection picking), typically mouse press/click events.

Parameters
mvalRegion relative coordinates, call with (-1, -1) resets the last cursor location.
Returns
True when there was motion since last called.

NOTE(@ideasman42): The logic used here isn't foolproof. It's possible that users move the cursor past WM_EVENT_CURSOR_MOTION_THRESHOLD then back to a position within the threshold (between mouse clicks). In practice users never reported this since the threshold is very small (a few pixels). To prevent the unlikely case of values matching from another region, changing regions resets this value to (-1, -1).

Definition at line 351 of file wm_event_query.cc.

References copy_v2_v2_int(), len_manhattan_v2v2_int(), and WM_EVENT_CURSOR_MOTION_THRESHOLD.

Referenced by ED_screen_set_active_region(), get_nearest_editbonepoint(), mixed_bones_object_selectbuffer_extended(), blender::ed::vse::strip_select_from_preview(), and unified_findnearest().

◆ WM_cursor_time()

void WM_cursor_time ( wmWindow * win,
int nr )

After this you can call restore too.

Definition at line 953 of file wm_cursors.cc.

References wm_cursor_number_impl().

Referenced by screen_opengl_render_anim_step().

◆ WM_cursor_wait()

◆ WM_cursor_warp()

void WM_cursor_warp ( wmWindow * win,
int x,
int y )

Set the cursor location in window coordinates (compatible with wmEvent.xy).

Note
Some platforms don't support this, check: WM_CAPABILITY_WINDOW_POSITION before relying on this functionality.

Definition at line 2867 of file wm_window.cc.

References wmWindow::eventstate, g_system, GHOST_SetCursorPosition(), wmWindow::ghostwin, wmEvent::prev_xy, wm_cursor_position_to_ghost_client_coords(), x, wmEvent::xy, and y.

Referenced by initFlyInfo(), wm_cursor_warp_relative(), and wm_gizmomap_modal_set().

◆ WM_desktop_cursor_sample_read()

bool WM_desktop_cursor_sample_read ( float r_col[3])

Return the color of the pixel at the current mouse cursor position on the desktop, whether in a Blender window or not. Returns false on failure or if not supported by the platform.

Definition at line 1501 of file wm_draw.cc.

References GHOST_GetPixelAtCursor().

Referenced by eyedropper_color_sample_fl().

◆ WM_drag_add_asset_list_item()

void WM_drag_add_asset_list_item ( wmDrag * drag,
const blender::asset_system::AssetRepresentation * asset )

Free asset ID imported for canceled drop.

If the asset was imported (linked/appended) using WM_drag_get_local_ID_or_import_from_asset()` (typically via a wmDropBox.copy() callback), we want the ID to be removed again if the drop operator cancels. This is for use as wmDropBox.cancel() callback. */ void WM_drag_free_imported_drag_ID(Main *bmain, wmDrag *drag, wmDropBox *drop);

wmDragAssetCatalog *WM_drag_get_asset_catalog_data(const wmDrag *drag);

/**

Note
Does not store asset in any way, so it's fine to pass a temporary.

Definition at line 866 of file wm_dragdrop.cc.

References wmDragAssetListItem::asset_data, ASSET_IMPORT_APPEND, wmDrag::asset_items, BLI_addtail(), BLI_assert, wmDragAssetListItem::external_info, wmDragAssetListItem::is_external, blender::asset_system::AssetRepresentation::local_id(), wmDragAssetListItem::local_id, MEM_callocN(), AssetImportSettings::method, wmDrag::type, AssetImportSettings::use_instance_collections, WM_DRAG_ASSET_LIST, and WM_drag_create_asset_data().

Referenced by WM_drag_data_create().

◆ WM_drag_add_local_ID()

void WM_drag_add_local_ID ( wmDrag * drag,
ID * id,
ID * from_parent )

◆ WM_drag_asset_id_import()

◆ WM_drag_asset_list_get()

◆ WM_drag_asset_will_import_linked()

bool WM_drag_asset_will_import_linked ( const wmDrag * drag)

◆ WM_drag_asset_will_import_packed()

◆ WM_drag_create_asset_data()

wmDragAsset * WM_drag_create_asset_data ( const blender::asset_system::AssetRepresentation * asset,
const AssetImportSettings & import_settings )
Note
Does not store asset in any way, so it's fine to pass a temporary.

Definition at line 677 of file wm_dragdrop.cc.

References wmDragAsset::asset, and wmDragAsset::import_settings.

Referenced by blender::ed::asset::shelf::AssetDragController::create_drag_data(), UI_but_drag_set_asset(), and WM_drag_add_asset_list_item().

◆ WM_drag_create_path_data()

◆ WM_drag_data_create()

wmDrag * WM_drag_data_create ( bContext * C,
int icon,
eWM_DragDataType type,
void * poin,
unsigned int flags )

Create and fill the dragging data, but don't start dragging just yet (unlike WM_event_start_drag()). Must be followed up by WM_event_start_prepared_drag(), otherwise the returned pointer will leak memory.

Note that poin should be valid allocated and not on stack.

Definition at line 263 of file wm_dragdrop.cc.

References C, CTX_data_collection_get(), wmDrag::flags, wmDrag::icon, wmDrag::poin, ptr, wmDrag::type, WM_drag_add_asset_list_item(), WM_drag_add_local_ID(), WM_DRAG_ASSET, WM_DRAG_ASSET_CATALOG, WM_DRAG_ASSET_LIST, WM_DRAG_FREE_DATA, WM_DRAG_GREASE_PENCIL_LAYER, WM_DRAG_ID, and WM_DRAG_PATH.

Referenced by blender::ed::outliner::outliner_item_drag_drop_invoke(), ui_but_drag_start(), and WM_event_start_drag().

◆ WM_drag_data_free()

◆ WM_drag_draw_default_fn()

void WM_drag_draw_default_fn ( bContext * C,
wmWindow * win,
wmDrag * drag,
const int xy[2] )

Definition at line 1259 of file wm_dragdrop.cc.

References C, wm_drag_draw_default(), and xy.

◆ WM_drag_draw_item_name_fn()

void WM_drag_draw_item_name_fn ( bContext * C,
wmWindow * win,
wmDrag * drag,
const int xy[2] )

Definition at line 1147 of file wm_dragdrop.cc.

References UI_SCALE_FAC, wm_drag_draw_item_name(), wmWindowViewport_ex(), x, xy, and y.

Referenced by view3d_dropboxes().

◆ WM_drag_free()

◆ WM_drag_free_list()

◆ WM_drag_get_asset_data()

◆ WM_drag_get_asset_meta_data()

AssetMetaData * WM_drag_get_asset_meta_data ( const wmDrag * drag,
int idcode )

◆ WM_drag_get_item_name()

◆ WM_drag_get_local_ID()

◆ WM_drag_get_local_ID_from_event()

◆ WM_drag_get_local_ID_or_import_from_asset()

ID * WM_drag_get_local_ID_or_import_from_asset ( const bContext * C,
const wmDrag * drag,
int idcode )

When dragging a local ID, return that. Otherwise, if dragging an asset-handle, link or append that depending on what was chosen by the drag-box (currently append only in fact).

Use WM_drag_free_imported_drag_ID() as cancel callback of the drop-box, so that the asset import is rolled back if the drop operator fails.

Definition at line 813 of file wm_dragdrop.cc.

References C, ELEM, wmDrag::type, WM_DRAG_ASSET, WM_drag_asset_id_import(), WM_drag_get_asset_data(), WM_drag_get_local_ID(), and WM_DRAG_ID.

Referenced by blender::ed::vse::get_drag_path(), blender::ed::space_node::node_group_drop_copy(), blender::ed::space_node::node_id_drop_copy(), blender::ed::space_node::node_id_im_drop_copy(), screen_drop_scene_copy(), blender::ed::vse::sequencer_drop_copy(), ui_drop_material_copy(), ui_drop_name_copy(), view3d_id_drop_copy(), view3d_id_drop_copy_with_type(), and view3d_id_path_drop_copy().

◆ WM_drag_get_path_file_type()

int WM_drag_get_path_file_type ( const wmDrag * drag)

Note that even though the enum return type uses bit-flags, this should never have multiple type-bits set, so ELEM() like comparison is possible. To check all paths or to do a bit-flag check use WM_drag_has_path_file_type(drag, file_type) instead.

Definition at line 978 of file wm_dragdrop.cc.

References wmDragPath::file_types, wmDrag::poin, wmDrag::type, and WM_DRAG_PATH.

Referenced by blend_file_drop_poll(), clip_drop_poll(), blender::ed::vse::image_drop_poll(), blender::ed::vse::image_drop_preview_poll(), blender::ed::vse::is_movie(), blender::ed::vse::is_sound(), blender::ed::vse::movie_drop_preview_poll(), blender::ed::vse::sound_drop_preview_poll(), blender::tests::TEST(), and text_drop_path_poll().

◆ WM_drag_get_paths()

◆ WM_drag_get_single_path() [1/2]

◆ WM_drag_get_single_path() [2/2]

const char * WM_drag_get_single_path ( const wmDrag * drag,
int file_type )

If drag contains path data, returns the first path in the path list that matches a a file_type.

Parameters
dragThe drag that could contain drag path data.
file_typeeFileSel_File_Types bit flag.

Definition at line 939 of file wm_dragdrop.cc.

References blender::Span< T >::begin(), blender::Span< T >::end(), wmDragPath::file_types, wmDragPath::paths, wmDrag::poin, wmDrag::type, and WM_DRAG_PATH.

◆ WM_drag_get_string()

const std::string & WM_drag_get_string ( const wmDrag * drag)

◆ WM_drag_get_string_firstline()

std::string WM_drag_get_string_firstline ( const wmDrag * drag)

Definition at line 995 of file wm_dragdrop.cc.

References BLI_assert, wmDrag::poin, str, wmDrag::type, and WM_DRAG_STRING.

Referenced by console_drop_string_copy().

◆ WM_drag_has_path_file_type()

bool WM_drag_has_path_file_type ( const wmDrag * drag,
int file_type )

If drag contains path data, returns if any file path match a file_type.

Parameters
dragThe drag that could contain drag path data.
file_typeeFileSel_File_Types bit flag.

Definition at line 959 of file wm_dragdrop.cc.

References wmDragPath::file_types_bit_flag, wmDrag::poin, wmDrag::type, and WM_DRAG_PATH.

Referenced by blender::tests::TEST().

◆ WM_drag_is_ID_type()

◆ WM_draw_cb_activate()

◆ WM_draw_cb_exit()

◆ WM_draw_region_free()

void WM_draw_region_free ( ARegion * region)

◆ WM_draw_region_get_bound_viewport()

◆ WM_draw_region_get_viewport()

◆ WM_draw_region_viewport_bind()

void WM_draw_region_viewport_bind ( ARegion * region)

Definition at line 1726 of file wm_draw.cc.

References wm_draw_region_bind().

Referenced by ED_view3d_depth_override(), and ui_region_redraw_immediately().

◆ WM_draw_region_viewport_ensure()

void WM_draw_region_viewport_ensure ( Scene * scene,
ARegion * region,
short space_type )

◆ WM_draw_region_viewport_unbind()

void WM_draw_region_viewport_unbind ( ARegion * region)

Definition at line 1731 of file wm_draw.cc.

References wm_draw_region_unbind().

Referenced by ED_view3d_depth_override(), and ui_region_redraw_immediately().

◆ WM_dropbox_add()

◆ WM_dropbox_update_ot()

void WM_dropbox_update_ot ( )

Ensure operator pointers & properties are valid after operators have been added/removed.

Definition at line 176 of file wm_dragdrop.cc.

References dropboxes, LISTBASE_FOREACH, and wm_dropbox_item_update_ot().

Referenced by WM_keyconfig_update_ex().

◆ WM_dropboxmap_find()

◆ WM_enum_search_invoke()

◆ WM_event_absolute_delta_x()

int WM_event_absolute_delta_x ( const wmEvent * event)

Definition at line 655 of file wm_event_query.cc.

References wmEvent::flag, and WM_EVENT_SCROLL_INVERT.

Referenced by view_zoomdrag_invoke().

◆ WM_event_absolute_delta_y()

int WM_event_absolute_delta_y ( const wmEvent * event)

◆ WM_event_add()

void wmEvent * WM_event_add ( wmWindow * win,
const wmEvent * event_to_add )

References ATTR_NONNULL, C, false, ot, ptr, timer, WM_enum_search_invoke(), WM_event_add(), wm_event_init_from_window(), WM_event_timer_add(), WM_event_timer_add_notifier(), WM_event_timer_free_data(), WM_event_timer_remove(), WM_event_timer_remove_notifier(), WM_event_timer_sleep(), WM_generic_select_invoke(), WM_generic_select_modal(), WM_menu_invoke(), WM_menu_invoke_ex(), WM_menu_name_call(), WM_operator_call(), WM_operator_call_ex(), WM_operator_call_notest(), WM_operator_call_py(), WM_operator_check_ui_enabled(), WM_operator_confirm(), WM_operator_confirm_ex(), WM_operator_confirm_message(), WM_operator_confirm_message_ex(), WM_operator_confirm_or_exec(), WM_operator_drop_load_path(), WM_operator_filesel(), WM_operator_filesel_ensure_ext_imtype(), WM_operator_free(), WM_operator_free_all_after(), WM_operator_handlers_clear(), WM_operator_is_repeat(), WM_operator_last_properties_ensure(), WM_operator_last_properties_ensure_idprops(), WM_operator_last_properties_init(), WM_operator_last_properties_store(), WM_operator_last_redo(), 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_poll_context(), WM_operator_poll_or_report_error(), WM_operator_properties_alloc(), WM_operator_properties_clear(), WM_operator_properties_confirm_or_exec(), WM_operator_properties_create(), WM_operator_properties_create_ptr(), WM_operator_properties_default(), WM_operator_properties_free(), WM_operator_properties_reset(), WM_operator_properties_sanitize(), WM_operator_props_dialog_popup(), WM_operator_props_popup(), WM_operator_props_popup_call(), WM_operator_props_popup_confirm(), WM_operator_props_popup_confirm_ex(), WM_operator_redo_popup(), WM_operator_repeat(), WM_operator_repeat_check(), WM_operator_repeat_last(), WM_operator_smooth_viewtx_get(), WM_operator_stack_clear(), WM_operator_type_set(), WM_operator_ui_poll(), WM_operator_ui_popup(), WM_operator_view3d_unit_defaults(), and WM_operator_winactive().

◆ WM_event_add_dropbox_handler()

◆ WM_event_add_fileselect()

void WM_event_add_fileselect ( bContext * C,
wmOperator * op )

The idea here is to keep a handler alive on window queue, owning the operator. The file window can send event to make it execute, thus ensuring executing happens outside of lower level queues, with UI refreshed. Should also allow multi-window solutions.

Definition at line 4441 of file wm_event_system.cc.

References wmEventHandler_Op::area, BLI_assert, C, wmOperatorType::check, CLG_quiet_get(), CLOG_WARN, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_window(), CTX_wm_window_set(), ED_fileselect_handler_area_find(), wmWindow::eventstate, EVT_FILESELECT_CANCEL, EVT_FILESELECT_EXTERNAL_CANCEL, EVT_FILESELECT_FULL_OPEN, wmEventHandler_Op::head, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH_MUTABLE, MEM_callocN(), wmWindow::modalhandlers, wmEventHandler_Op::op, PROP_DIRPATH, PROP_FILENAME, PROP_FILEPATH, PROP_STRING, wmOperator::ptr, wmEventHandler_Op::region, RNA_property_subtype(), RNA_property_type(), RNA_struct_find_property(), wmEventHandler::type, wmOperator::type, wmEventHandler_Op::win, WM_event_fileselect_event(), wm_event_find_fileselect_root_window_from_context(), wm_handler_fileselect_do(), wm_handler_op_context_get_if_valid(), wm_handler_operator_insert(), WM_HANDLER_TYPE_OP, and WM_LOG_OPERATORS.

Referenced by blender::ed::asset::asset_bundle_install_invoke(), cachefile_layer_open_invoke(), cachefile_open_invoke(), clip_filesel(), file_browse_invoke(), blender::ed::io::filesel_drop_import_invoke(), find_missing_files_invoke(), image_filesel(), blender::ed::object::multires_external_save_invoke(), blender::ed::object::object_image_add_invoke(), open_invoke(), paste_from_file_invoke(), preferences_asset_library_add_invoke(), rigidbody_world_export_invoke(), screenshot_invoke(), blender::ed::vse::sequencer_add_image_strip_invoke(), blender::ed::vse::sequencer_add_movie_strip_invoke(), blender::ed::vse::sequencer_add_sound_strip_invoke(), blender::ed::vse::sequencer_change_path_invoke(), blender::ed::vse::sequencer_export_subtitles_invoke(), text_open_invoke(), text_save_as_invoke(), blender::ed::object::volume_import_invoke(), wm_lib_relocate_invoke(), wm_link_append_invoke(), wm_open_mainfile__select_file_path_exec(), WM_operator_filesel(), wm_recover_auto_save_invoke(), wm_save_as_mainfile_invoke(), and wm_save_mainfile_invoke().

◆ WM_event_add_keymap_handler()

◆ WM_event_add_keymap_handler_dynamic()

◆ WM_event_add_keymap_handler_poll()

◆ WM_event_add_keymap_handler_priority()

wmEventHandler_Keymap * WM_event_add_keymap_handler_priority ( ListBase * handlers,
wmKeyMap * keymap,
int priority )
Note
Priorities not implemented yet, for time being just insert in begin of list.

Definition at line 4926 of file wm_event_system.cc.

References BLI_addhead(), wmEventHandler_Keymap::head, wmEventHandler_Keymap::keymap, MEM_callocN(), wmEventHandler::type, WM_event_remove_keymap_handler(), and WM_HANDLER_TYPE_KEYMAP.

Referenced by UI_popover_end().

◆ WM_event_add_keymap_handler_v2d_mask()

◆ WM_event_add_modal_handler()

wmEventHandler_Op wmEventHandler_Op * WM_event_add_modal_handler ( bContext * C,
wmOperator * op )

References C.

◆ WM_event_add_modal_handler_ex()

wmEventHandler_Op * WM_event_add_modal_handler_ex ( wmWindow * win,
ScrArea * area,
ARegion * region,
wmOperator * op )

Add a modal handler to win, area and region may optionally be NULL.

◆ WM_event_add_mousemove()

◆ WM_event_add_notifier()

void WM_event_add_notifier ( const bContext * C,
unsigned int type,
void * reference )

Definition at line 397 of file wm_event_system.cc.

References C, CTX_wm_manager(), CTX_wm_window(), and WM_event_add_notifier_ex().

Referenced by achannel_setting_flush_widget_cb(), achannel_setting_slider_cb(), achannel_setting_slider_nla_curve_cb(), achannel_setting_widget_cb(), act_markers_make_local_exec(), action_circle_select_exec(), action_new_exec(), action_pushdown_exec(), action_stash_create_exec(), action_stash_exec(), actkeys_bake_exec(), actkeys_box_select_exec(), actkeys_clean_exec(), actkeys_clickselect_exec(), actkeys_columnselect_exec(), actkeys_delete_exec(), actkeys_deselectall_exec(), actkeys_duplicate_exec(), actkeys_easing_exec(), actkeys_expo_exec(), actkeys_framejump_exec(), actkeys_handletype_exec(), actkeys_insertkey_exec(), actkeys_ipo_exec(), actkeys_keytype_exec(), actkeys_lassoselect_exec(), actkeys_mirror_exec(), actkeys_paste_exec(), actkeys_previewrange_exec(), actkeys_select_leftright_exec(), actkeys_select_less_exec(), actkeys_select_linked_exec(), actkeys_select_more_exec(), actkeys_snap_exec(), add_default_keyingset_exec(), add_driver_button_invoke(), add_driver_button_none(), add_feather_vertex_exec(), add_keyingset_button_exec(), add_marker_at_click_modal(), add_marker_exec(), blender::ed::space_node::add_node_group_asset(), add_or_move_to_collection_exec(), add_simple_uvs_exec(), blender::ed::object::add_type_with_obdata(), add_vertex_exec(), add_vertex_extrude(), add_vertex_handle_cyclic_at_point(), add_vertex_new(), add_vertex_subdivide(), ANIM_channel_draw_widgets(), anim_set_efra_exec(), anim_set_sfra_exec(), animchannels_box_select_exec(), animchannels_channel_select_keys_invoke(), animchannels_clean_empty_exec(), animchannels_collapse_exec(), animchannels_delete_exec(), animchannels_enable_exec(), animchannels_expand_exec(), animchannels_group_exec(), animchannels_mouseclick_invoke(), animchannels_rearrange_exec(), animchannels_rename_invoke(), animchannels_select_filter_modal(), animchannels_selectall_exec(), animchannels_setflag_exec(), animchannels_ungroup_exec(), annotation_draw_exec(), annotation_draw_invoke(), annotation_draw_modal(), apply_armature_pose2bones_exec(), blender::ed::object::apply_objects_internal(), apply_to_active_object(), area_close_exec(), area_docking_apply(), area_dupli_invoke(), area_join_cancel(), area_join_exec(), area_join_invoke(), area_join_modal(), area_move_apply_do(), area_split_apply(), area_split_exit(), area_swap_modal(), armature_align_bones_exec(), armature_autoside_names_exec(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_de_select_all_exec(), armature_de_select_less_exec(), armature_de_select_more_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_fill_bones_exec(), armature_flip_names_exec(), armature_hide_exec(), armature_parent_clear_exec(), armature_parent_set_exec(), armature_reveal_exec(), armature_roll_clear_exec(), armature_select_hierarchy_exec(), armature_select_mirror_exec(), armature_shortest_path_pick_invoke(), armature_split_exec(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), armature_undosys_step_decode(), blender::ed::asset::asset_catalog_redo_exec(), blender::ed::asset::asset_catalog_undo_exec(), blender::ed::asset::asset_library_refresh_exec(), blender::animrig::autokeyframe_property(), average_islands_scale_exec(), average_tracks_exec(), blender::ed::object::bake_image_exec(), blender::ed::object::bake_invoke(), blend_offset_exec(), blend_offset_modal_update(), blend_to_default_exec(), blend_to_default_modal_update(), blend_to_ease_exec(), blend_to_ease_modal_update(), blend_to_neighbor_exec(), blend_to_neighbor_modal_update(), bone_collection_add_exec(), bone_collection_assign_editbones(), bone_collection_assign_named_mode_specific(), bone_collection_assign_pchans(), bone_collection_move_exec(), bone_collection_remove_exec(), bone_collection_select(), bone_select_menu_exec(), bookmark_select_exec(), box_select_exec(), box_select_exec(), box_select_graph_exec(), breakdown_exec(), breakdown_modal_update(), brush_colors_flip_exec(), brush_edit_apply(), btw_smooth_exec(), btw_smooth_modal_update(), camera_background_image_add_exec(), camera_background_image_remove_exec(), change_frame_apply(), change_frame_apply(), change_frame_apply(), change_frame_cancel(), change_frame_modal(), channels_bake_exec(), blender::ed::object::childof_clear_inverse_exec(), blender::ed::object::childof_set_inverse_exec(), circle_select_exec(), circle_select_exec(), clean_tracks_exec(), clear_edited_exec(), clear_key_button_exec(), blender::ed::object::clear_override_library_exec(), clear_render_border_exec(), clear_render_border_exec(), clear_solution_exec(), clear_tilt_exec(), clear_track_path_exec(), blender::ed::space_node::clear_viewer_border_exec(), click_select_channel_gplayer(), click_select_channel_grease_pencil_layer(), click_select_channel_grease_pencil_layer_group(), clip_delete_marker(), clip_delete_track(), clip_set_2d_cursor_exec(), clip_set_scene_frames_exec(), blender::ed::object::collection_add_exec(), blender::ed::object::collection_create_exec(), blender::ed::outliner::collection_drop_invoke(), blender::ed::object::collection_exporter_add_exec(), blender::ed::object::collection_exporter_remove_exec(), blender::ed::object::collection_link_exec(), blender::ed::object::collection_objects_remove_all_exec(), blender::ed::object::collection_objects_remove_exec(), blender::ed::object::collection_remove_exec(), blender::ed::object::collection_unlink_exec(), connect_hair_exec(), blender::ed::object::constraint_add_exec(), blender::ed::object::constraint_apply_exec(), blender::ed::object::constraint_copy_exec(), blender::ed::object::constraint_copy_to_selected_exec(), blender::ed::object::constraint_delete_exec(), blender::ed::outliner::constraint_fn(), blender::ed::object::constraint_move_down_exec(), blender::ed::object::constraint_move_up_exec(), copy_driver_to_selected_button_exec(), copy_particle_dupliob_exec(), blender::ed::object::correctivesmooth_bind_exec(), blender::ed::transform::create_orientation_exec(), create_plane_track_tracks_exec(), create_primitive_from_points(), cube_project_exec(), curve_decimate_exec(), curve_delete_exec(), curve_dissolve_exec(), curve_draw_exec(), curve_extrude_exec(), curve_normals_make_consistent_exec(), curve_pen_modal(), curve_select_less_exec(), curve_select_more_exec(), curve_select_random_exec(), curve_select_similar_exec(), curve_smooth_radius_exec(), curve_smooth_tilt_exec(), curve_smooth_weight_exec(), curve_split_exec(), curve_undosys_step_decode(), blender::ed::curves::curves_draw_exec(), blender::ed::sculpt_paint::curves_sculptmode_enter(), blender::ed::sculpt_paint::curves_sculptmode_toggle_exec(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), curvesurf_prim_add(), cyclic_toggle_exec(), cylinder_project_exec(), blender::ed::object::dash_modifier_segment_add_exec(), blender::ed::object::dash_modifier_segment_move_exec(), blender::ed::object::dash_modifier_segment_remove_exec(), blender::ed::object::data_transfer_exec(), blender::ed::object::datalayout_transfer_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), decimate_exec(), decimate_modal_update(), blender::ed::object::bake_simulation::delete_baked_simulation_exec(), blender::ed::curves::curves_delete::delete_exec(), blender::ed::pointcloud::pointcloud_delete::delete_exec(), delete_exec(), delete_exec(), delete_fmodifier_cb(), blender::ed::object::shapekey::ShapeKeyItem::delete_item(), blender::ui::greasepencil::LayerGroupViewItem::delete_item(), blender::ui::greasepencil::LayerViewItem::delete_item(), delete_key_button_exec(), delete_key_using_keying_set(), delete_metaelems_exec(), blender::ed::transform::delete_orientation_exec(), delete_track_exec(), detect_features_exec(), disable_markers_exec(), disconnect_hair_exec(), do_graph_region_driver_buttons(), do_graph_region_modifier_buttons(), do_lasso_select_marker(), do_lasso_select_mask(), blender::ed::space_node::do_lasso_select_node(), do_nla_region_buttons(), blender::ed::outliner::do_outliner_item_editmode_toggle(), blender::ed::outliner::do_outliner_item_posemode_toggle(), do_pose_box_select(), do_preview_buttons(), do_set_scale(), do_uvedit_vertex(), do_view3d_region_buttons(), do_view3d_vgroup_buttons(), dopesheet_select_channel_exec(), blender::ed::vse::draw_channel_labels(), driverdropper_sample(), blender::ed::object::drop_geometry_nodes_invoke(), blender::ed::object::drop_named_material_invoke(), drop_scene_asset_exec(), drop_world_exec(), blender::ed::space_node::duplicate_compositing_node_group_exec(), blender::ed::curves::curves_duplicate::duplicate_exec(), blender::ed::object::duplicate_exec(), blender::ed::pointcloud::duplicate_exec(), duplicate_exec(), duplicate_metaelems_exec(), dupliob_move_down_exec(), dupliob_move_up_exec(), dupliob_refresh_exec(), ease_exec(), ease_modal_update(), ED_area_newspace(), ED_area_prevspace(), ED_armature_edit_select_pick_bone(), ED_armature_join_objects_exec(), ED_curve_editfont_select_pick(), ED_curve_editnurb_select_pick(), ED_curve_join_objects_exec(), ed_curves_select_pick(), ED_grease_pencil_join_objects_exec(), ED_lattice_select_pick(), ed_marker_add_exec(), ed_marker_box_select_exec(), ed_marker_camera_bind_exec(), ed_marker_delete_exec(), ed_marker_move_apply(), ed_marker_move_modal(), ed_marker_rename_exec(), ed_marker_select(), ed_marker_select_all_exec(), ed_marker_select_leftright_exec(), ED_mask_deselect_all(), ED_mball_select_pick(), ED_mesh_uv_loop_reset(), ED_object_posemode_enter(), ED_object_posemode_exit(), ed_object_select_pick(), ed_object_select_pick_camera_track(), ED_outliner_select_sync_from_outliner(), ED_scene_add(), ED_scene_delete(), ED_screen_animation_timer(), ED_space_clip_set_clip(), ED_space_clip_set_mask(), ED_space_image_set_mask(), ED_text_activate_in_screen(), ed_undo_step_post(), ED_view3d_cursor3d_update(), ED_wpaint_ensure_data(), edbm_delete_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_faces_select_interior_exec(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_region_to_loop_exec(), edbm_select_all_exec(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_by_pole_count_exec(), edbm_select_face_by_sides_exec(), edbm_select_less_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_linked_pick_exec(), edbm_select_linked_pick_invoke(), edbm_select_loose_exec(), edbm_select_mirror_exec(), edbm_select_more_exec(), edbm_select_non_manifold_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_similar_region_exec(), edbm_select_ungrouped_exec(), EDBM_selectmode_to_scene(), EDBM_selectmode_toggle_multi(), edbm_separate_exec(), edcu_shortest_path_pick_invoke(), blender::ed::sculpt_paint::face_set::edit_modify_geometry(), blender::ed::curves::add_bezier::exec(), blender::ed::curves::add_circle::exec(), blender::ed::curves::clear_tilt::exec(), blender::ed::curves::curve_type_set::exec(), blender::ed::curves::cyclic_toggle::exec(), blender::ed::curves::set_handle_type::exec(), blender::ed::curves::subdivide::exec(), blender::ed::curves::switch_direction::exec(), blender::ed::object::explode_refresh_exec(), file_box_select_exec(), file_box_select_modal(), file_column_sort_ui_context_invoke(), file_delete_exec(), file_directory_enter_handle(), file_directory_new_exec(), file_filename_enter_handle(), file_hidedot_exec(), file_next_exec(), file_parent_exec(), file_previous_exec(), file_refresh_exec(), file_select_exec(), file_walk_select_invoke(), filelist_readjob_start_ex(), filepath_drop_exec(), fly_modal(), fmodifier_reorder(), blender::ed::object::followpath_path_animate_exec(), font_cursor_set_apply(), font_undosys_step_decode(), blender::ed::object::forcefield_toggle_exec(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::foreach_editable_drawing(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::foreach_editable_drawing(), blender::ed::greasepencil::frame_clean_duplicate_exec(), frame_jump_delta_exec(), frame_jump_exec(), frame_jump_exec(), frame_offset_exec(), gaussian_smooth_exec(), gaussian_smooth_modal_update(), geometry_extract_apply(), blender::ed::object::geometry_node_tree_copy_assign_exec(), blender::ed::object::geometry_nodes_input_attribute_toggle_exec(), blender::ed::geometry::geometry_randomization_exec(), gizmo_ruler_exit(), gpencil_actframe_delete_exec(), gpencil_data_add_exec(), gpencil_data_unlink_exec(), gpencil_layer_add_exec(), gpencil_layer_move_exec(), gpencil_layer_remove_exec(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), graph_circle_select_exec(), graph_disable_markers_exec(), graph_driver_delete_invalid_exec(), graph_driver_vars_paste_exec(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graph_select_all_markers_exec(), graph_slider_modal(), graphkeys_bake_exec(), graphkeys_box_select_exec(), graphkeys_clean_exec(), graphkeys_click_insert_exec(), graphkeys_clickselect_exec(), graphkeys_columnselect_exec(), graphkeys_delete_exec(), graphkeys_deselectall_exec(), graphkeys_duplicate_exec(), graphkeys_easing_exec(), graphkeys_equalize_handles_exec(), graphkeys_euler_filter_exec(), graphkeys_expo_exec(), graphkeys_framejump_exec(), graphkeys_handletype_exec(), graphkeys_insertkey_exec(), graphkeys_ipo_exec(), graphkeys_keys_to_samples_exec(), graphkeys_lassoselect_exec(), graphkeys_mirror_exec(), graphkeys_paste_exec(), graphkeys_previewrange_exec(), graphkeys_samples_to_keys_exec(), graphkeys_select_key_handles_exec(), graphkeys_select_leftright_exec(), graphkeys_select_less_exec(), graphkeys_select_linked_exec(), graphkeys_select_more_exec(), graphkeys_smooth_exec(), graphkeys_snap_exec(), graphview_cursor_apply(), graphview_cursor_modal(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), blender::ed::greasepencil::grease_pencil_active_frame_delete_exec(), blender::ed::greasepencil::grease_pencil_caps_set_exec(), blender::ed::greasepencil::grease_pencil_clean_loose_exec(), blender::ed::greasepencil::grease_pencil_convert_curve_type_exec(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::ed::greasepencil::grease_pencil_delete_breakdown_frames_exec(), blender::ed::greasepencil::grease_pencil_delete_exec(), blender::ed::greasepencil::grease_pencil_delete_frame_exec(), blender::ed::greasepencil::grease_pencil_dissolve_exec(), blender::ed::greasepencil::grease_pencil_draw_operator_invoke(), blender::ed::greasepencil::grease_pencil_duplicate_exec(), blender::ed::greasepencil::grease_pencil_extrude_exec(), blender::ed::sculpt_paint::grease_pencil_fill_event_modal_map(), blender::ed::sculpt_paint::grease_pencil_fill_exit(), blender::ed::sculpt_paint::grease_pencil_fill_invoke(), blender::ed::sculpt_paint::grease_pencil_fill_modal(), blender::ed::greasepencil::grease_pencil_frame_duplicate_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_invoke(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_restore(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_layer_active_exec(), blender::ed::greasepencil::grease_pencil_layer_add_exec(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), blender::ed::greasepencil::grease_pencil_layer_duplicate_object_exec(), blender::ed::greasepencil::grease_pencil_layer_group_add_exec(), blender::ed::greasepencil::grease_pencil_layer_group_color_tag_exec(), blender::ed::greasepencil::grease_pencil_layer_group_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_hide_exec(), blender::ed::greasepencil::grease_pencil_layer_isolate_exec(), blender::ed::greasepencil::grease_pencil_layer_lock_all_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_add_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_reorder_exec(), blender::ed::greasepencil::grease_pencil_layer_move_exec(), blender::ed::greasepencil::grease_pencil_layer_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_reveal_exec(), blender::ed::greasepencil::grease_pencil_material_copy_to_object_exec(), blender::ed::greasepencil::grease_pencil_material_hide_exec(), blender::ed::greasepencil::grease_pencil_material_lock_all_exec(), blender::ed::greasepencil::grease_pencil_material_lock_unselected_exec(), blender::ed::greasepencil::grease_pencil_material_lock_unused_exec(), blender::ed::greasepencil::grease_pencil_material_reveal_exec(), blender::ed::greasepencil::grease_pencil_material_select_exec(), blender::ed::greasepencil::grease_pencil_material_unlock_all_exec(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), blender::ed::greasepencil::grease_pencil_move_to_layer_exec(), blender::ed::greasepencil::grease_pencil_outline_exec(), blender::ed::greasepencil::grease_pencil_paste_strokes_exec(), blender::ed::greasepencil::grease_pencil_primitive_update_view(), blender::ed::greasepencil::grease_pencil_remove_fill_guides_exec(), blender::ed::greasepencil::grease_pencil_reproject_exec(), blender::ed::greasepencil::grease_pencil_reset_uvs_exec(), blender::ed::sculpt_paint::grease_pencil_sculpt_paint_invoke(), blender::ed::greasepencil::grease_pencil_separate_exec(), blender::ed::greasepencil::grease_pencil_separate_layer(), blender::ed::greasepencil::grease_pencil_separate_material(), blender::ed::greasepencil::grease_pencil_separate_selected(), blender::ed::greasepencil::grease_pencil_set_active_material_exec(), blender::ed::greasepencil::grease_pencil_set_corner_type_exec(), blender::ed::greasepencil::grease_pencil_set_curve_resolution_exec(), blender::ed::greasepencil::grease_pencil_set_curve_type_exec(), blender::ed::greasepencil::grease_pencil_set_handle_type_exec(), blender::ed::greasepencil::grease_pencil_set_material_exec(), blender::ed::greasepencil::grease_pencil_set_start_point_exec(), blender::ed::greasepencil::grease_pencil_set_uniform_opacity_exec(), blender::ed::greasepencil::grease_pencil_set_uniform_thickness_exec(), blender::ed::greasepencil::grease_pencil_snap_cursor_to_sel_exec(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_snap_to_grid_exec(), blender::ed::greasepencil::grease_pencil_stroke_material_set_exec(), blender::ed::greasepencil::grease_pencil_stroke_merge_by_distance_exec(), blender::ed::greasepencil::grease_pencil_stroke_reorder_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_stroke_split_exec(), blender::ed::greasepencil::grease_pencil_stroke_switch_direction_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::ed::sculpt_paint::grease_pencil_update_extend(), blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_invoke(), blender::ed::greasepencil::grease_pencil_vertex_paint_brightness_contrast_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_hsv_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_invert_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_levels_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_reset_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_set_exec(), blender::ed::greasepencil::grease_pencil_weight_invert_exec(), header_toggle_menus_exec(), hide_exec(), hide_exec(), hide_metaelems_exec(), hide_tracks_clear_exec(), hide_tracks_exec(), blender::ed::outliner::id_delete_tag(), blender::ed::outliner::id_override_library_resync_hierarchy_process(), image_add_render_slot_exec(), image_clear_render_slot_exec(), image_clipboard_paste_exec(), image_cycle_render_slot_exec(), image_flip_exec(), image_invert_exec(), image_multi_cb(), image_multiview_cb(), image_new_exec(), image_open_exec(), image_pack_exec(), image_read_viewlayers_exec(), image_reload_exec(), image_remove_render_slot_exec(), image_replace_exec(), image_rotate_orthogonal_exec(), image_sample_apply(), image_scale_exec(), image_unpack_exec(), blender::ed::greasepencil::GreasePencilPenToolOperation::initialize(), blender::ed::greasepencil::insert_blank_frame_exec(), insert_key(), insert_key_button_exec(), insert_key_with_keyingset(), blender::ed::curves::join_objects_exec(), blender::ed::mesh::join_objects_exec(), blender::ed::pointcloud::join_objects_exec(), join_tracks_exec(), blender::ed::object::jump_to_object(), keyframe_jump_exec(), keyframe_set_flag(), keyingset_active_menu_exec(), blender::ed::object::laplaciandeform_bind_exec(), lattice_flip_exec(), lattice_select_all_exec(), lattice_select_mirror_exec(), lattice_select_more_less(), lattice_select_random_exec(), lattice_select_ungrouped_exec(), lattice_undosys_step_decode(), lib_id_generate_preview_exec(), lib_id_generate_preview_from_object_exec(), lib_id_load_custom_preview_exec(), lib_id_override_editable_toggle_exec(), lib_id_remove_preview_exec(), blender::ed::object::light_linking_link_exec(), blender::ed::object::light_linking_select_exec(), blender::ed::object::light_linking_unlink_from_collection_exec(), lightprobe_cache_free_exec(), blender::ed::object::limitdistance_reset_exec(), lineart_bake_startjob(), lineart_gpencil_clear_strokes_exec(), localview_exec(), localview_remove_from_exec(), lock_selection_toggle_exec(), lock_tracks_exec(), blender::ed::object::make_links_data_exec(), blender::ed::object::make_links_scene_exec(), blender::ed::object::make_local_exec(), blender::ed::object::make_override_library_exec(), make_prim_finish(), make_regular_exec(), make_segment_exec(), blender::ed::object::make_single_user_exec(), marker_block_handler(), marker_jump_exec(), marker_update_cb(), mask_duplicate_exec(), mask_feather_weight_clear_exec(), mask_hide_view_clear_exec(), mask_hide_view_set_exec(), mask_layer_move_exec(), mask_layer_new_exec(), mask_layer_remove_exec(), mask_new_exec(), mask_normals_make_consistent_exec(), mask_parent_clear_exec(), mask_parent_set_exec(), mask_select_linked_exec(), mask_select_linked_pick_invoke(), mask_select_more_less(), mask_shape_key_clear_exec(), mask_shape_key_feather_reset_exec(), mask_shape_key_insert_exec(), mask_shape_key_rekey_exec(), mask_switch_direction_exec(), match_slope_exec(), match_slope_modal_update(), match_texture_space_exec(), blender::ed::outliner::material_drop_invoke(), blender::ed::greasepencil::material_isolate_exec(), material_slot_add_exec(), material_slot_assign_exec(), material_slot_copy_exec(), material_slot_de_select(), material_slot_move_exec(), material_slot_remove_all_exec(), material_slot_remove_exec(), material_slot_remove_unused_exec(), mball_select_all_exec(), mball_select_similar_exec(), mball_undosys_step_decode(), memfile_undosys_step_decode(), mesh_customdata_clear_exec__internal(), mesh_customdata_custom_splitnormals_add_exec(), mesh_customdata_custom_splitnormals_clear_exec(), mesh_customdata_skin_add_exec(), mesh_reorder_vertices_spatial_exec(), mesh_undosys_step_decode(), mesh_uv_texture_add_exec(), mesh_uv_texture_remove_exec(), blender::ed::object::meshdeform_bind_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), mirror_exec(), mode_set_exec(), blender::ed::object::modifier_add_asset_exec(), blender::ed::object::modifier_add_exec(), blender::ed::object::modifier_apply_exec_ex(), blender::ed::object::modifier_convert_exec(), blender::ed::object::modifier_copy_exec(), blender::ed::object::modifier_copy_to_selected_exec(), blender::ed::outliner::modifier_fn(), blender::ed::object::modifier_link(), blender::ed::object::modifier_move_down_exec(), blender::ed::vse::modifier_move_to_index_exec(), blender::ed::object::modifier_move_up_exec(), blender::ed::object::modifier_remove_exec(), blender::ed::object::modifier_set_active_exec(), mouse_mesh_loop(), mouse_select(), move_lines_exec(), blender::ed::object::move_to_collection_exec(), blender::ed::object::multires_base_apply_exec(), blender::ed::object::multires_higher_levels_delete_exec(), blender::ed::object::multires_rebuild_subdiv_exec(), blender::ed::object::multires_reshape_exec(), blender::ed::object::multires_subdivide_exec(), blender::ed::object::multires_unsubdivide_exec(), blender::ed::outliner::namebutton_fn(), blender::ed::space_node::new_compositing_node_group_exec(), blender::ed::space_node::new_compositor_sequencer_node_group_exec(), new_image_from_plane_marker_exec(), new_material_exec(), blender::ed::space_node::new_node_tree_exec(), new_particle_settings_exec(), new_particle_target_exec(), new_sequencer_scene_exec(), new_texture_exec(), new_world_exec(), nla_fmodifier_add_exec(), nla_fmodifier_paste_exec(), nlaedit_add_actionclip_exec(), nlaedit_add_meta_exec(), nlaedit_add_sound_exec(), nlaedit_add_tracks_exec(), nlaedit_add_transition_exec(), nlaedit_apply_scale_exec(), nlaedit_box_select_exec(), nlaedit_clear_scale_exec(), nlaedit_clickselect_exec(), nlaedit_delete_exec(), nlaedit_delete_tracks_exec(), nlaedit_deselectall_exec(), nlaedit_duplicate_exec(), nlaedit_enable_tweakmode_exec(), nlaedit_make_single_user_exec(), nlaedit_move_down_exec(), nlaedit_move_up_exec(), nlaedit_objects_add_exec(), nlaedit_previewrange_exec(), nlaedit_remove_meta_exec(), nlaedit_select_leftright_exec(), nlaedit_snap_exec(), nlaedit_split_exec(), nlaedit_swap_exec(), nlaedit_sync_actlen_exec(), nlaedit_toggle_mute_exec(), nlatracks_mouseclick_invoke(), nlatracks_pushdown_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_attach_invoke(), blender::ed::space_node::node_box_select_exec(), blender::ed::space_node::node_circleselect_exec(), blender::ed::space_node::node_collapse_toggle_exec(), blender::ed::space_node::node_copy_color_exec(), blender::ed::space_node::node_default_group_width_set_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::ed::space_node::node_detach_exec(), blender::ed::space_node::node_group_edit_exec(), blender::ed::space_node::node_group_make_exec(), blender::ed::space_node::node_join_in_frame_exec(), blender::ed::space_node::node_join_nodes_exec(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_options_toggle_exec(), blender::ed::space_node::node_parent_set_exec(), blender::ed::space_node::node_preview_toggle_exec(), blender::ed::space_node::node_select_all_exec(), blender::ed::space_node::node_select_grouped_exec(), blender::ed::space_node::node_select_linked_from_exec(), blender::ed::space_node::node_select_linked_to_exec(), blender::ed::space_node::node_select_single(), blender::ed::space_node::node_socket_toggle_exec(), blender::ed::space_node::node_swap_group_asset_invoke(), obedit_circle_select(), blender::ed::object::object_add_hook_newob_exec(), blender::ed::object::object_add_hook_selob_exec(), blender::ed::object::object_add_named_exec(), blender::ed::object::object_calculate_paths_exec(), blender::ed::object::object_clear_paths_exec(), blender::ed::object::object_clear_transform_generic_exec(), blender::ed::object::object_constraint_copy_exec(), blender::ed::object::object_constraints_clear_exec(), blender::ed::object::object_convert_exec(), blender::ed::object::object_delete_exec(), blender::ed::object::object_duplicates_make_real_exec(), blender::ed::object::object_hide_collection_exec(), blender::ed::object::object_hide_view_clear_exec(), blender::ed::object::object_hide_view_set_exec(), blender::ed::object::object_hook_assign_exec(), blender::ed::object::object_hook_recenter_exec(), blender::ed::object::object_hook_remove_exec(), blender::ed::object::object_hook_reset_exec(), blender::ed::object::object_hook_select_exec(), blender::ed::object::object_image_add_invoke(), blender::ed::object::object_metaball_add_exec(), blender::ed::object::object_modifiers_copy_exec(), blender::ed::object::object_origin_clear_exec(), blender::ed::object::object_origin_set_exec(), blender::ed::object::object_parent_inverse_apply_exec(), blender::ed::object::object_rand_verts_exec(), blender::ed::object::object_select_all_exec(), blender::ed::object::object_select_by_type_exec(), blender::ed::object::object_select_grouped_exec(), blender::ed::object::object_select_less_exec(), blender::ed::object::object_select_linked_exec(), object_select_menu_exec(), blender::ed::object::object_select_mirror_exec(), blender::ed::object::object_select_more_exec(), blender::ed::object::object_select_random_exec(), blender::ed::object::object_select_same_collection_exec(), object_select_tag_updates(), blender::ed::object::object_shape_key_add(), blender::ed::object::object_shape_key_mirror(), blender::ed::object::object_speaker_add_exec(), blender::ed::object::object_track_clear_exec(), blender::ed::object::object_transfer_mode_invoke(), blender::ed::object::object_transform_axis_target_cancel(), blender::ed::object::object_transform_axis_target_modal(), blender::ed::object::object_update_all_paths_exec(), blender::ed::object::object_update_paths_exec(), blender::ed::object::object_warp_verts_exec(), blender::ed::object::objects_add_active_exec(), blender::ed::object::objects_bake_render_invoke(), blender::ed::object::objects_remove_active_exec(), blender::ed::object::objectsolver_clear_inverse_exec(), blender::ed::object::objectsolver_set_inverse_exec(), blender::ed::object::ocean_bake_exec(), blender::ed::object::shapekey::ShapeKeyDropTarget::on_drop(), blender::ui::bonecollections::BoneCollectionDropTarget::on_drop(), blender::ui::greasepencil::LayerNodeDropTarget::on_drop(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::EraseOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_extended(), open_exec(), blender::ed::sculpt_paint::optimize_exec(), blender::ed::outliner::outliner_action_set_exec(), blender::ed::outliner::outliner_animdata_operation_exec(), blender::ed::outliner::outliner_box_select_exec(), blender::ed::outliner::outliner_buttons(), blender::ed::outliner::outliner_color_tag_set_exec(), blender::ed::outliner::outliner_data_operation_exec(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_drivers_addsel_exec(), blender::ed::outliner::outliner_drivers_deletesel_exec(), blender::ed::outliner::outliner_id_operation_exec(), blender::ed::outliner::outliner_id_paste_exec(), blender::ed::outliner::outliner_id_remap_exec(), blender::ed::outliner::outliner_keyingset_additems_exec(), blender::ed::outliner::outliner_keyingset_removeitems_exec(), blender::ed::outliner::outliner_lib_operation_exec(), blender::ed::outliner::outliner_liboverride_operation_exec(), blender::ed::outliner::outliner_object_operation_exec(), blender::ed::outliner::outliner_orphans_purge_exec(), blender::ed::outliner::outliner_select_all_exec(), override_idtemplate_clear_exec(), override_idtemplate_make_exec(), paint_2d_bucket_fill(), paint_2d_gradient_fill(), paint_2d_redraw(), paint_mask_slice_exec(), paint_proj_redraw(), paint_weight_gradient_exec(), paint_weight_gradient_modal(), paintcurve_cursor_invoke(), paintcurve_new_exec(), paintface_flush_flags(), blender::ed::greasepencil::paintmode_toggle_exec(), paintvert_tag_select_update(), palette_color_move_exec(), palette_join_exec(), palette_sort_exec(), blender::ed::object::parent_clear_exec(), blender::ed::outliner::parent_clear_invoke(), blender::ed::outliner::parent_drop_set_parents(), blender::ed::object::parent_noinv_set_exec(), blender::ed::object::parent_set_exec(), particle_system_add_exec(), particle_system_remove_all_exec(), particle_system_remove_exec(), paste_driver_button_exec(), paste_material_exec(), paste_mtex_exec(), paste_splines_exec(), paste_tracks_exec(), PE_box_select(), PE_circle_select(), PE_lasso_select(), PE_mouse_particles(), pe_select_all_exec(), pointcloud_select_pick(), pose_autoside_names_exec(), pose_bone_rotmode_exec(), pose_calculate_paths_exec(), pose_clear_paths_exec(), pose_clear_transform_generic_exec(), pose_clear_user_transforms_exec(), blender::ed::object::pose_constraint_copy_exec(), blender::ed::object::pose_constraints_clear_exec(), pose_de_select_all_exec(), pose_flip_names_exec(), pose_flip_quats_exec(), pose_hide_exec(), blender::ed::object::pose_ik_clear_exec(), pose_paste_exec(), pose_reveal_exec(), pose_select_mirror_exec(), pose_update_paths_exec(), pose_update_paths_range_exec(), pose_visual_transform_apply_exec(), poseAnim_mapping_refresh(), poselib_blend_apply(), poselib_blend_cleanup(), poselib_keytag_pose(), preferences_extension_repo_add_exec(), preferences_extension_repo_remove_exec(), preferences_reset_default_theme_exec(), previewrange_clear_exec(), previewrange_define_exec(), proj_paint_add_slot(), ptcache_add_new_exec(), ptcache_bake_from_cache_exec(), ptcache_free_bake_all_exec(), ptcache_free_bake_exec(), ptcache_remove_exec(), push_pull_exec(), push_pull_modal_update(), pyrna_struct_driver_add(), pyrna_struct_driver_remove(), pyrna_struct_keyframe_insert(), radial_control_cancel(), refine_marker_exec(), region_flip_exec(), region_quadview_exec(), region_scale_invoke(), region_scale_modal(), rekey_exec(), reload_exec(), remove_active_keyingset_exec(), remove_doubles_exec(), remove_driver_button_exec(), remove_keyingset_button_exec(), remove_particle_dupliob_exec(), remove_particle_target_exec(), render_border_exec(), render_border_exec(), render_view_add_exec(), render_view_remove_exec(), blender::ed::sculpt_paint::expand::reposition_pivot(), reset_exec(), reset_exec(), blender::ed::object::reset_override_library_exec(), blender::ed::sculpt_paint::undo::restore_active_shape_key(), blender::ed::outliner::restrictbutton_bone_select_fn(), blender::ed::outliner::restrictbutton_ebone_select_fn(), blender::ed::outliner::restrictbutton_ebone_visibility_fn(), blender::ed::outliner::restrictbutton_gp_layer_flag_fn(), blender::ed::outliner::restrictbutton_r_lay_fn(), reveal_exec(), reveal_exec(), reveal_metaelems_exec(), rigidbody_con_add_exec(), rigidbody_con_remove_exec(), rigidbody_object_add_exec(), rigidbody_object_remove_exec(), rigidbody_objects_add_exec(), rigidbody_objects_calc_mass_exec(), rigidbody_objects_remove_exec(), rigidbody_objects_shape_change_exec(), ringsel_finish(), blender::ed::spreadsheet::row_filter_add_exec(), blender::ed::spreadsheet::row_filter_remove_exec(), blender::ed::geometry::run_node_group_exec(), sample_color_exec(), blender::ed::sculpt_paint::sample_color_invoke(), sample_color_invoke(), sample_color_modal(), scale_average_exec(), scale_average_modal_update(), scale_from_neighbor_exec(), scale_from_neighbor_modal_update(), scene_delete_exec(), blender::ed::outliner::scene_fn(), screen_animation_cancel_exec(), screen_change_update(), screen_delete_exec(), screen_new_exec(), screen_render_exec(), screen_render_invoke(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::sculpt_mode_toggle_exec(), SCULPT_tag_update_overlays(), blender::ed::greasepencil::sculptmode_toggle_exec(), blender::ed::vse::segment_speed_set_exec(), blender::ed::curves::select_all_exec(), blender::ed::greasepencil::select_all_exec(), blender::ed::pointcloud::select_all_exec(), select_all_exec(), select_all_exec(), blender::ed::greasepencil::select_alternate_exec(), blender::ed::curves::select_ends_exec(), blender::ed::greasepencil::select_ends_exec(), select_exec(), select_exec(), select_grouped_exec(), blender::ed::sculpt_paint::select_grow::select_grow_modal(), blender::ed::sculpt_paint::select_grow::select_grow_update(), blender::ed::curves::select_less_exec(), blender::ed::greasepencil::select_less_exec(), select_less_exec(), blender::ed::object::select_linked_by_id(), blender::ed::curves::select_linked_exec(), blender::ed::greasepencil::select_linked_exec(), select_linked_exec(), select_linked_exec(), blender::ed::curves::select_linked_pick(), select_linked_pick_exec(), select_linked_pick_invoke(), select_marker_camera_switch(), blender::ed::curves::select_more_exec(), blender::ed::greasepencil::select_more_exec(), select_more_exec(), select_next_exec(), select_nth_exec(), blender::ed::transform::select_orientation_exec(), select_previous_exec(), blender::ed::curves::select_random_exec(), blender::ed::greasepencil::select_random_exec(), blender::ed::pointcloud::select_random_exec(), blender::ed::sculpt_paint::select_random::select_random_exec(), select_random_exec(), select_random_metaelems_exec(), select_roots_exec(), select_row_exec(), blender::ed::greasepencil::select_set_mode_exec(), select_similar_bone_collection(), select_similar_bone_color(), select_similar_children(), select_similar_children_immediate(), select_similar_data_pchan(), select_similar_direction(), blender::ed::greasepencil::select_similar_exec(), select_similar_length(), select_similar_prefix(), select_similar_siblings(), select_similar_suffix(), select_tips_exec(), blender::ed::greasepencil::selection_update(), blender::ed::asset::shelf::send_redraw_notifier(), separate_armature_exec(), separate_exec(), separate_slots_exec(), blender::ed::vse::seq_prefetch_wm_notify(), blender::ed::vse::sequencer_change_effect_type_exec(), blender::ed::vse::sequencer_change_path_exec(), blender::ed::vse::sequencer_change_scene_exec(), blender::ed::vse::sequencer_clipboard_copy_exec(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_connect_exec(), blender::ed::vse::sequencer_de_select_all_exec(), blender::ed::vse::sequencer_delete_exec(), blender::ed::vse::sequencer_delete_strip_data(), blender::ed::vse::sequencer_disconnect_exec(), blender::ed::vse::sequencer_enable_proxies_exec(), blender::ed::vse::sequencer_gap_insert_exec(), blender::ed::vse::sequencer_gap_remove_exec(), blender::ed::vse::sequencer_lock_exec(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_meta_toggle_exec(), blender::ed::vse::sequencer_mute_exec(), blender::ed::vse::sequencer_offset_clear_exec(), blender::ed::vse::sequencer_preview_add_sound(), blender::ed::vse::sequencer_reassign_inputs_exec(), blender::ed::vse::sequencer_refresh_all_exec(), blender::ed::vse::sequencer_reload_exec(), blender::ed::vse::sequencer_rename_channel_invoke(), blender::ed::vse::sequencer_rendersize_exec(), blender::ed::vse::sequencer_retiming_data_show_exec(), blender::ed::vse::sequencer_retiming_freeze_frame_add_exec(), blender::ed::vse::sequencer_retiming_key_add_exec(), blender::ed::vse::sequencer_retiming_key_delete_exec(), blender::ed::vse::sequencer_retiming_key_select_exec(), blender::ed::vse::sequencer_retiming_reset_exec(), blender::ed::vse::sequencer_retiming_select_all_exec(), blender::ed::vse::sequencer_retiming_select_linked_time(), blender::ed::vse::sequencer_retiming_transition_add_exec(), blender::ed::vse::sequencer_scene_frame_range_update_exec(), blender::ed::vse::sequencer_select_do_updates(), blender::ed::vse::sequencer_select_exec(), blender::ed::vse::sequencer_select_grouped_exec(), blender::ed::vse::sequencer_select_handles_exec(), blender::ed::vse::sequencer_select_inverse_exec(), blender::ed::vse::sequencer_select_less_exec(), blender::ed::vse::sequencer_select_linked_exec(), blender::ed::vse::sequencer_select_linked_pick_invoke(), blender::ed::vse::sequencer_select_more_exec(), blender::ed::vse::sequencer_select_side_exec(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_set_2d_cursor_exec(), blender::ed::vse::sequencer_set_range_to_strips_exec(), blender::ed::vse::sequencer_slip_invoke(), blender::ed::vse::sequencer_slip_modal(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_strip_color_tag_set_exec(), blender::ed::vse::sequencer_strip_jump_exec(), blender::ed::vse::sequencer_strip_transform_clear_exec(), blender::ed::vse::sequencer_strip_transform_fit_exec(), blender::ed::vse::sequencer_swap_data_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::sequencer_swap_inputs_exec(), blender::ed::vse::sequencer_text_cursor_move_exec(), blender::ed::vse::sequencer_text_cursor_set_invoke(), blender::ed::vse::sequencer_text_cursor_set_modal(), blender::ed::vse::sequencer_text_edit_mode_toggle_exec(), blender::ed::vse::sequencer_unlock_exec(), blender::ed::vse::sequencer_unmute_exec(), blender::ed::object::set_active_group_exec(), blender::ed::curves::set_attribute_exec(), blender::ed::pointcloud::set_attribute_exec(), set_axis_exec(), set_goal_weight_exec(), set_handle_type_exec(), set_handle_type_exec(), set_origin_exec(), blender::ed::sculpt_paint::set_pivot_position_exec(), set_plane_exec(), set_radius_exec(), blender::ed::mesh::set_sharpness_by_angle_exec(), set_solver_keyframe_exec(), set_spline_type_exec(), set_style(), blender::ed::object::shade_auto_smooth_exec(), blender::ed::object::shade_smooth_exec(), shade_smooth_exec(), blender::ed::object::shaderfx_add_exec(), blender::ed::object::shaderfx_move_down_exec(), blender::ed::object::shaderfx_move_up_exec(), blender::ed::object::shaderfx_remove_exec(), shape_cut_exec(), blender::ed::object::shape_key_clear_exec(), blender::ed::object::shape_key_copy_exec(), blender::ed::object::shape_key_lock_exec(), blender::ed::object::shape_key_make_basis_exec(), blender::ed::object::shape_key_move_exec(), blender::ed::object::shape_key_remove_exec(), blender::ed::object::shape_key_retime_exec(), shear_exec(), shear_modal_update(), blender::ed::object::skin_armature_create_exec(), blender::ed::object::skin_loose_mark_clear_exec(), blender::ed::object::skin_radii_equalize_exec(), blender::ed::object::skin_root_mark_exec(), slide_marker_invoke(), slide_marker_modal(), slide_plane_marker_invoke(), slide_plane_marker_modal(), slide_point_customdata(), slide_point_invoke(), slide_point_modal(), slide_spline_curvature_invoke(), slide_spline_curvature_modal(), blender::ed::vse::slip_cleanup(), blender::ed::vse::slip_handle_num_input(), slot_channels_move_to_new_action_exec(), smooth_exec(), snap_curs_to_active_exec(), snap_curs_to_center_exec(), snap_curs_to_grid_exec(), snap_curs_to_sel_exec(), blender::ed::curves::snap_curves_to_surface::snap_curves_to_surface_exec(), snap_sel_to_grid_exec(), snap_selected_to_location_rotation(), solve_camera_invoke(), sort_bmelem_flag(), space_workspace_cycle_invoke(), blender::ed::transform::special_aftertrans_update__mask(), blender::ed::transform::special_aftertrans_update__movieclip(), blender::ed::transform::special_aftertrans_update__movieclip_for_curves(), blender::ed::transform::special_aftertrans_update__nla(), sphere_project_exec(), spin_exec(), blender::ed::curves::split::split_exec(), stabilize_2d_add_exec(), stabilize_2d_remove_exec(), stabilize_2d_rotation_add_exec(), stabilize_2d_rotation_remove_exec(), stabilize_2d_rotation_select_exec(), stabilize_2d_select_exec(), stencil_control_modal(), stencil_fit_image_aspect_exec(), stencil_reset_transform_exec(), blender::ed::curves::undo::step_decode(), blender::ed::greasepencil::undo::step_decode(), blender::ed::pointcloud::undo::step_decode(), stitch_exit(), stitch_invoke(), stop_playback(), blender::ed::geometry::store_result_geometry(), blender::ed::object::stretchto_reset_exec(), blender::ed::vse::strip_modifier_add_exec(), blender::ed::vse::strip_modifier_copy_exec(), blender::ed::vse::strip_modifier_equalizer_redefine_exec(), blender::ed::vse::strip_modifier_move_exec(), blender::ed::vse::strip_modifier_remove_exec(), blender::ed::vse::strip_speed_set_exec(), blender::ed::sculpt_paint::stroke_done(), blender::ed::greasepencil::stroke_trim_execute(), subdivide_exec(), subdivide_exec(), blender::ed::curves::surface_set::surface_set_exec(), surface_slot_remove_exec(), blender::ed::object::surfacedeform_bind_exec(), switch_direction_exec(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::vse::sync_active_scene_and_time_with_scene_strip(), blender::ed::sculpt_paint::hide::tag_update_visibility(), target_move_down_exec(), target_move_up_exec(), template_id_cb(), template_texture_select(), text_comment_exec(), text_convert_whitespace_exec(), text_cursor_set_apply(), text_cursor_set_exec(), text_cursor_set_exit(), text_cut_exec(), text_delete_exec(), text_duplicate_line_exec(), blender::ed::vse::text_editing_update(), text_find_and_replace(), text_indent_exec(), text_insert_exec(), text_jump_exec(), text_jump_to_file_at_point_internal(), text_line_break_exec(), text_line_number_invoke(), text_make_internal_exec(), text_move_cursor(), text_new_exec(), text_open_exec(), text_paste_exec(), text_reload_exec(), text_replace_all(), text_run_script(), text_save_as_exec(), text_save_exec(), text_select_all_exec(), text_select_line_exec(), text_select_word_exec(), text_toggle_overwrite_exec(), text_undosys_step_decode(), text_unindent_exec(), text_unlink_exec(), text_update_edited(), textbox_add_exec(), textbox_remove_exec(), texture_paint_camera_project_exec(), blender::ed::sculpt_paint::image::ops::paint::texture_paint_init(), texture_slot_move_exec(), tile_add_exec(), tile_fill_exec(), tile_remove_exec(), blender::ed::object::time_modifier_segment_add_exec(), blender::ed::object::time_modifier_segment_move_exec(), blender::ed::object::time_modifier_segment_remove_exec(), time_offset_exec(), time_offset_modal_update(), toggle_cyclic_exec(), toggle_matcap_flip_exec(), toggle_shading_exec(), toggle_xray_exec(), track_copy_color_exec(), blender::ed::object::track_set_exec(), tracking_object_new_exec(), tracking_object_remove_exec(), transform_active_color(), blender::ed::transform::transform_exec(), blender::ed::outliner::tree_element_active_ebone__sel(), blender::ed::outliner::tree_element_bone_activate(), blender::ed::outliner::tree_element_bonecollection_activate(), blender::ed::outliner::tree_element_camera_activate(), blender::ed::outliner::tree_element_constraint_activate(), blender::ed::outliner::tree_element_defgroup_activate(), blender::ed::outliner::tree_element_gplayer_activate(), blender::ed::outliner::tree_element_grease_pencil_node_activate(), blender::ed::outliner::tree_element_material_activate(), blender::ed::outliner::tree_element_modifier_activate(), blender::ed::outliner::tree_element_object_activate(), blender::ed::outliner::tree_element_posechannel_activate(), blender::ed::outliner::tree_element_psys_activate(), blender::ed::outliner::tree_element_strip_activate(), blender::ed::outliner::tree_element_viewlayer_activate(), txt_add_object(), type_toggle_exec(), ui_apply_but_autokey(), ui_but_anim_expression_create(), ui_but_anim_expression_set(), ui_drop_material_exec(), ui_handler_panel_region(), ui_imageuser_layer_menu_step(), ui_imageuser_pass_menu_step(), ui_imageuser_slot_menu_step(), ui_numedit_but_TRACKPREVIEW(), ui_template_id_liboverride_hierarchy_make(), undo_history_exec(), unify_length_exec(), update_autoflags_fcurve(), update_image_from_plane_marker_exec(), update_reports_display_invoke(), blender::ed::curves::pen_tool::CurvesPenToolOperation::update_view(), blender::ed::greasepencil::GreasePencilPenToolOperation::update_view(), uv_align(), uv_arrange_islands_exec(), uv_copy_mirrored_faces_exec(), uv_from_view_exec(), uv_hide_exec(), uv_mark_seam_exec(), uv_move_on_axis_exec(), uv_paste_exec(), uv_pin_exec(), uv_remove_doubles_to_selected(), uv_remove_doubles_to_selected_shared_vertex(), uv_remove_doubles_to_unselected(), uv_reveal_exec(), uv_rip_exec(), uv_sculpt_stroke_modal(), uv_seams_from_islands_exec(), uv_select_linked_internal(), uv_select_more_less(), uv_select_split_exec(), uv_set_2d_cursor_exec(), uv_snap_cursor_exec(), uv_snap_selection_exec(), uv_weld(), validate_viewer_paths(), vertex_color_levels_exec(), vertex_color_set_exec(), vertex_color_smooth_exec(), blender::ed::object::vertex_group_add_exec(), blender::ed::object::vertex_group_assign_exec(), blender::ed::object::vertex_group_clean_exec(), blender::ed::object::vertex_group_copy_exec(), blender::ed::object::vertex_group_copy_to_selected_exec(), blender::ed::object::vertex_group_deselect_exec(), blender::ed::object::vertex_group_invert_exec(), blender::ed::object::vertex_group_levels_exec(), blender::ed::object::vertex_group_limit_total_exec(), blender::ed::object::vertex_group_lock_exec(), blender::ed::object::vertex_group_mirror_exec(), blender::ed::object::vertex_group_normalize_all_exec(), blender::ed::object::vertex_group_normalize_exec(), blender::ed::object::vertex_group_quantize_exec(), blender::ed::object::vertex_group_remove_exec(), blender::ed::object::vertex_group_remove_from_exec(), blender::ed::object::vertex_group_select_exec(), blender::ed::object::vertex_group_smooth_exec(), blender::ed::object::vertex_group_sort_exec(), vertex_paint_from_weight_exec(), blender::ed::object::vertex_parent_set_exec(), blender::ed::object::vertex_weight_copy_exec(), blender::ed::object::vertex_weight_delete_exec(), blender::ed::object::vertex_weight_normalize_active_vertex_exec(), blender::ed::object::vertex_weight_paste_exec(), blender::ed::object::vertex_weight_set_active_exec(), blender::ed::greasepencil::vertexmode_toggle_exec(), blender::ed::object::vgroup_move_exec(), view3d_box_select_exec(), view3d_camera_to_view_exec(), view3d_camera_to_view_selected_exec(), view3d_center_camera_exec(), view3d_center_lock_exec(), view3d_circle_select_exec(), view3d_collection_drop_copy_external_asset(), view3d_lasso_select(), view3d_ob_drop_copy_external_asset(), view3d_pastebuffer_exec(), view3d_select_exec(), view3d_setobjectascamera_exec(), view3d_zoom_1_to_1_camera_exec(), view_cursor_center_exec(), blender::ed::vse::view_ghost_border_exec(), view_layer_add_aov_exec(), view_layer_add_exec(), view_layer_add_lightgroup_exec(), view_layer_add_used_lightgroups_exec(), view_layer_remove_aov_exec(), view_layer_remove_exec(), view_layer_remove_lightgroup_exec(), view_layer_remove_unused_lightgroups_exec(), view_lock_clear_exec(), view_lock_to_active_exec(), view_zoomdrag_apply(), view_zoomstep_apply_ex(), blender::ed::space_node::viewer_border_exec(), blender::ed::transform::viewRedrawForce(), blender::ed::transform::viewRedrawPost(), blender::ed::object::visual_geometry_to_objects_exec(), blender::ed::object::visual_transform_apply_exec(), blender::ed::object::voxel_remesh_exec(), blender::ed::object::voxel_size_edit_modal(), vpaint_mode_toggle_exec(), vpaint_stroke_done(), walk_modal(), weight_from_bones_exec(), weight_set_exec(), blender::ed::greasepencil::weightmode_toggle_exec(), wm_debug_menu_exec(), wm_file_read_opwrap(), wm_file_read_post(), wm_handler_operator_call(), wm_id_linked_relocate_exec(), WM_lib_reload(), wm_lib_relocate_exec_do(), wm_link_append_exec(), wm_operator_register(), wm_operator_reports(), wm_save_as_mainfile_exec(), wm_stereo3d_set_exec(), wm_userpref_read_exec(), wm_window_close(), WM_window_set_active_scene(), wm_xr_session_toggle_exec(), workspace_append_activate_exec(), workspace_delete_all_others_exec(), workspace_delete_exec(), workspace_new_exec(), workspace_reorder_to_back_exec(), workspace_reorder_to_front_exec(), workspace_scene_pin_toggle_exec(), wpaint_mode_toggle_exec(), wpaint_stroke_done(), and wpaint_stroke_update_step().

◆ WM_event_add_notifier_ex()

◆ WM_event_add_simulate()

◆ WM_event_add_ui_handler()

◆ WM_event_consecutive_data_free()

void WM_event_consecutive_data_free ( wmWindow * win)

◆ WM_event_consecutive_data_get()

void * WM_event_consecutive_data_get ( wmWindow * win,
const char * id )

◆ WM_event_consecutive_data_set()

void WM_event_consecutive_data_set ( wmWindow * win,
const char * id,
void * custom_data )

◆ WM_event_consecutive_gesture_test()

bool WM_event_consecutive_gesture_test ( const wmEvent * event)

Return true if this event type is a candidate for being flagged as consecutive.

See: WM_EVENT_IS_CONSECUTIVE doc-string.

Definition at line 365 of file wm_event_query.cc.

References ISMOUSE_GESTURE, NDOF_MOTION, and wmEvent::type.

Referenced by ED_view3d_autodist_last_set(), and wm_event_do_handlers().

◆ WM_event_consecutive_gesture_test_break()

bool WM_event_consecutive_gesture_test_break ( const wmWindow * win,
const wmEvent * event )

Return true if this event should break the chain of consecutive gestures. Practically all intentional user input should, key presses or button clicks.

Definition at line 370 of file wm_event_query.cc.

References wmWindow::event_queue_consecutive_gesture_xy, ISKEYBOARD_OR_BUTTON, ISKEYMODIFIER, ISMOUSE_MOTION, len_manhattan_v2v2_int(), wmEvent::type, WINDEACTIVATE, WM_EVENT_CURSOR_MOTION_THRESHOLD, and wmEvent::xy.

Referenced by wm_event_do_handlers().

◆ WM_event_drag_direction()

int WM_event_drag_direction ( const wmEvent * event)

◆ WM_event_drag_image()

void WM_event_drag_image ( wmDrag * drag,
const ImBuf * imb,
float scale )

Definition at line 358 of file wm_dragdrop.cc.

References wmDrag::imb, and wmDrag::imbuf_scale.

Referenced by ui_but_drag_start().

◆ WM_event_drag_path_override_poin_data_with_space_file_paths()

void WM_event_drag_path_override_poin_data_with_space_file_paths ( const bContext * C,
wmDrag * drag )

◆ WM_event_drag_preview_icon()

void WM_event_drag_preview_icon ( wmDrag * drag,
int icon_id )

Definition at line 384 of file wm_dragdrop.cc.

References BLI_assert_msg, wmDrag::imb, and wmDrag::preview_icon_id.

Referenced by ui_but_drag_start().

◆ WM_event_drag_start_mval()

◆ WM_event_drag_start_mval_fl()

void WM_event_drag_start_mval_fl ( const wmEvent * event,
const ARegion * region,
float r_mval[2] )

◆ WM_event_drag_start_xy()

void WM_event_drag_start_xy ( const wmEvent * event,
int r_xy[2] )

◆ WM_event_drag_test()

bool WM_event_drag_test ( const wmEvent * event,
const int prev_xy[2] )

◆ WM_event_drag_test_with_delta()

bool WM_event_drag_test_with_delta ( const wmEvent * event,
const int drag_delta[2] )

Definition at line 427 of file wm_event_query.cc.

References abs, and WM_event_drag_threshold().

Referenced by WM_event_drag_test(), and WM_generic_select_modal().

◆ WM_event_drag_threshold()

◆ WM_event_fileselect_event()

void WM_event_fileselect_event ( wmWindowManager * wm,
void * ophandle,
int eventval )

◆ WM_event_free_ui_handler_all()

◆ WM_event_get_keymap_from_toolsystem()

void WM_event_get_keymap_from_toolsystem ( wmWindowManager * wm,
wmWindow * win,
wmEventHandler_Keymap * handler,
wmEventHandler_KeymapResult * km_result )

Definition at line 4889 of file wm_event_system.cc.

References wm_event_get_keymap_from_toolsystem_ex().

Referenced by ed_default_handlers().

◆ WM_event_get_keymap_from_toolsystem_with_gizmos()

void WM_event_get_keymap_from_toolsystem_with_gizmos ( wmWindowManager * wm,
wmWindow * win,
wmEventHandler_Keymap * handler,
wmEventHandler_KeymapResult * km_result )

Definition at line 4881 of file wm_event_system.cc.

References wm_event_get_keymap_from_toolsystem_ex().

Referenced by ed_default_handlers().

◆ WM_event_get_keymaps_from_handler()

◆ WM_event_handler_region_marker_poll()

bool WM_event_handler_region_marker_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )

◆ WM_event_handler_region_v2d_mask_no_marker_poll()

bool WM_event_handler_region_v2d_mask_no_marker_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )

◆ WM_event_handler_region_v2d_mask_poll()

bool WM_event_handler_region_v2d_mask_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )
Returns
true when the event should be handled by the 2D views masked region.
Note
uses the EventHandlerPoll signature.

Definition at line 4952 of file wm_event_system.cc.

References BLI_rcti_translate(), event_or_prev_in_rect(), View2D::mask, ARegion::v2d, ARegion::winrct, rcti::xmin, and rcti::ymin.

Referenced by WM_event_add_keymap_handler_v2d_mask(), and WM_event_handler_region_v2d_mask_no_marker_poll().

◆ wm_event_init_from_window()

◆ WM_event_is_modal_drag_exit()

bool WM_event_is_modal_drag_exit ( const wmEvent * event,
short init_event_type,
short init_event_val )

For modal callbacks, check configuration for how to interpret exit when dragging.

Definition at line 246 of file wm_event_query.cc.

References KM_PRESS_DRAG, KM_RELEASE, wmEvent::type, U, USER_RELEASECONFIRM, and wmEvent::val.

Referenced by ed_marker_move_modal().

◆ WM_event_is_mouse_drag()

bool WM_event_is_mouse_drag ( const wmEvent * event)

◆ WM_event_is_mouse_drag_or_press()

bool WM_event_is_mouse_drag_or_press ( const wmEvent * event)

◆ WM_event_is_tablet()

bool WM_event_is_tablet ( const wmEvent * event)

◆ WM_event_match()

bool WM_event_match ( const wmEvent * winevent,
const wmKeyMapItem * kmi )

Definition at line 6560 of file wm_event_system.cc.

References wm_eventmatch().

Referenced by ED_view3d_navigation_do().

◆ WM_event_match_keymap_item()

◆ WM_event_match_keymap_item_from_handlers()

◆ WM_event_modal_handler_area_replace()

void WM_event_modal_handler_area_replace ( wmWindow * win,
const ScrArea * old_area,
ScrArea * new_area )

Modal handlers store a pointer to an area which might be freed while the handler runs. Use this function to NULL all handler pointers to old_area.

Definition at line 4707 of file wm_event_system.cc.

References wmEventHandler_Op::area, wmEventHandler_Op::context, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH, wmWindow::modalhandlers, and WM_HANDLER_TYPE_OP.

Referenced by area_offscreen_exit(), and ED_area_exit().

◆ WM_event_modal_handler_region_replace()

void WM_event_modal_handler_region_replace ( wmWindow * win,
const ARegion * old_region,
ARegion * new_region )

Modal handlers store a pointer to a region which might be freed while the handler runs. Use this function to NULL all handler pointers to old_region.

Definition at line 4721 of file wm_event_system.cc.

References wmEventHandler_Op::context, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH, wmWindow::modalhandlers, wmEventHandler_Op::region, wmEventHandler_Op::region_type, ARegion::regiontype, RGN_TYPE_WINDOW, and WM_HANDLER_TYPE_OP.

Referenced by area_join_modal(), area_offscreen_exit(), and ED_region_exit().

◆ WM_event_print()

◆ WM_event_remove_handlers()

◆ WM_event_remove_handlers_by_area()

void WM_event_remove_handlers_by_area ( ListBase * handlers,
const ScrArea * area )

◆ WM_event_remove_keymap_handler()

◆ WM_event_remove_modal_handler_all()

wmEventHandler_Op wmEventHandler_Op void void WM_event_remove_modal_handler_all ( const wmOperator * op,
bool postpone )

◆ WM_event_remove_model_handler()

wmEventHandler_Op wmEventHandler_Op void WM_event_remove_model_handler ( ListBase * handlers,
const wmOperator * op,
bool postpone )

References C, and dropboxes.

◆ WM_event_remove_ui_handler()

◆ WM_event_set_keymap_handler_post_callback()

void WM_event_set_keymap_handler_post_callback ( wmEventHandler_Keymap * handler,
void(keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data) ,
void * user_data )

◆ WM_event_start_drag()

void WM_event_start_drag ( bContext * C,
int icon,
eWM_DragDataType type,
void * poin,
unsigned int flags )

Start dragging immediately with the given data. Note that poin should be valid allocated and not on stack.

Definition at line 317 of file wm_dragdrop.cc.

References C, WM_drag_data_create(), and WM_event_start_prepared_drag().

Referenced by ghost_event_proc(), ui_but_drag_init(), ui_but_drag_start(), and UI_view_item_drag_start().

◆ WM_event_start_prepared_drag()

void WM_event_start_prepared_drag ( bContext * C,
wmDrag * drag )

◆ WM_event_tablet_data()

float WM_event_tablet_data ( const wmEvent * event,
bool * r_pen_flip,
float r_tilt[2] )

If this is a tablet event, return tablet pressure and set *pen_flip to 1 if the eraser tool is being used, 0 otherwise.

Definition at line 627 of file wm_event_query.cc.

References copy_v2_v2(), EVT_TABLET_ERASER, wmEvent::tablet, and wmTabletData::tilt.

Referenced by blender::ed::sculpt_paint::paint_stroke_modal(), and blender::ed::sculpt_paint::filter::sculpt_mesh_filter_modal().

◆ WM_event_tablet_data_default_set()

void WM_event_tablet_data_default_set ( wmTabletData * tablet_data)

Definition at line 5598 of file wm_event_system.cc.

References wm_event_tablet_data_default().

◆ WM_event_timer_add()

◆ WM_event_timer_add_notifier()

◆ WM_event_timer_free_data()

void WM_event_timer_free_data ( wmTimer * timer)

◆ WM_event_timer_remove()

void WM_event_timer_remove ( wmWindowManager * wm,
wmWindow * win,
wmTimer * timer )

◆ WM_event_timer_remove_notifier()

void WM_event_timer_remove_notifier ( wmWindowManager * wm,
wmWindow * win,
wmTimer * timer )

Definition at line 2435 of file wm_window.cc.

References timer, and WM_event_timer_remove().

Referenced by file_draw_list(), file_exit(), file_refresh(), and WM_event_add().

◆ WM_event_timer_sleep()

void WM_event_timer_sleep ( wmWindowManager * wm,
wmWindow * win,
wmTimer * timer,
bool do_sleep )

To (de)activate running timers temporary.

Definition at line 2328 of file wm_window.cc.

References BLI_findindex(), wmWindowManager::runtime, timer, and WM_TIMER_TAGGED_FOR_REMOVAL.

Referenced by screen_change_prepare(), screen_refresh_if_needed(), and WM_event_add().

◆ WM_event_ui_handler_region_popup_replace()

void WM_event_ui_handler_region_popup_replace ( wmWindow * win,
const ARegion * old_region,
ARegion * new_region )

◆ WM_event_utf8_to_ascii()

char WM_event_utf8_to_ascii ( const wmEvent * event)

Definition at line 465 of file wm_event_query.cc.

References BLI_str_utf8_size_or_error(), and wmEvent::utf8_buf.

Referenced by handleNumInput(), and text_line_number_invoke().

◆ WM_exit()

void WM_exit ( bContext * C,
int exit_code )

Main exit function to close Blender ordinarily.

Note
Use wm_exit_schedule_delayed() to close Blender from an operator. Might leak memory otherwise.
Parameters
exit_codePassed to #exit, typically #EXIT_SUCCESS or #EXIT_FAILURE should be used. With failure being used for an early exit when parsing command line arguments fails. Note that any exit-code besides #EXIT_SUCCESS calls WM_exit_ex with its do_user_exit_actions argument set to false.

Definition at line 691 of file wm_init_exit.cc.

References C, CLG_quiet_get(), false, G, printf, and WM_exit_ex().

Referenced by CocoaAppDelegate::applicationWillTerminate:, arg_handle_python_expr_run(), arg_handle_python_file_run(), arg_handle_python_text_run(), handle_load_file(), main(), wm_exit_handler(), and WM_init().

◆ WM_exit_ex()

void WM_exit_ex ( bContext * C,
bool do_python_exit,
bool do_user_exit_actions )

Main exit function (implementation).

Note
Unlike WM_exit this does not call exit(), the caller is responsible for this.
Parameters
CThe context or null, a null context implies do_user_exit_actions == false & prevents some editor-exit operations from running.
do_python_exitExit the Python interpreter (unless WITH_PYTHON_MODULE is enabled).
do_user_exit_actionsWhen enabled perform actions associated with a user having been using Blender then exiting. Actions such as writing the auto-save and writing any changes to preferences. Set to false in background mode or when exiting because of failed command line argument parsing. In general automated actions where the user isn't making changes should pass in false too.

Definition at line 451 of file wm_init_exit.cc.

References ANIM_driver_vars_copybuf_free(), ANIM_drivers_copybuf_free(), ANIM_fcurves_copybuf_free(), ANIM_fmodifiers_copybuf_free(), BKE_addon_pref_type_free(), BKE_appdir_exit(), BKE_blender_atexit(), BKE_blender_cli_command_free_all(), BKE_blender_free(), BKE_blender_userdef_data_free(), BKE_blendfile_userdef_write_all(), BKE_image_free_unused_gpu_textures(), BKE_keyconfig_pref_type_free(), BKE_mask_clipboard_free(), BKE_materials_exit(), BKE_mball_cubeTable_free(), BKE_sound_exit_once(), BKE_tempdir_base(), BKE_tempdir_session_purge(), BKE_tracking_clipboard_free(), BKE_vfont_clipboard_free(), BLENDER_QUIT_FILE, BLF_exit(), BLI_assert, BLI_path_join, BLI_task_scheduler_exit(), BLI_threadapi_exit(), BLI_timer_free(), BLO_write_file(), BLT_lang_free(), BPY_python_end(), BPY_run_string_eval(), C, blender::memory_cache::clear(), CLG_exit(), blender::ed::greasepencil::clipboard_free(), CLOG_INFO_NOCHECK, COM_deinitialize(), CTX_data_main(), CTX_free(), CTX_py_init_get(), CTX_wm_manager(), CTX_wm_window_set(), DNA_sdna_current_free(), blender::draw::DRW_cache_free_old_subdiv(), DRW_gpu_context_destroy(), DRW_gpu_context_disable_ex(), DRW_gpu_context_enable_ex(), ED_editors_exit(), ED_editors_flush_edits(), ED_file_exit(), ED_gpencil_anim_copybuf_free(), ED_node_clipboard_free(), ED_preview_free_dbase(), ED_preview_restart_queue_free(), ED_screen_exit(), ED_undosys_type_free(), blender::bke::subdiv::exit(), FILE_MAX, free_openrecent(), G, G_FILE_COMPRESS, G_FILE_RECOVER_WRITE, G_FLAG_USERPREF_NO_SAVE_ON_EXIT, GPU_exit(), gpu_is_init, GPU_shader_cache_dir_clear_old(), blender::animrig::keyingset_infos_exit(), LISTBASE_FOREACH, LOG_BLEND, RE_engines_exit(), RE_FreeAllRender(), RNA_exit(), blender::ed::asset::list::storage_exit(), U, UI_exit(), USER_PREF_FLAG_SAVE, UV_clipboard_free(), wm_autosave_delete(), wm_clipboard_free(), wm_dropbox_free(), WM_event_remove_handlers(), wm_ghost_exit(), wm_gizmogrouptype_free(), wm_gizmomaptypes_free(), wm_gizmotype_free(), WM_jobs_kill_all(), WM_menutype_free(), wm_operatortype_free(), WM_paneltype_clear(), wm_surfaces_free(), wm_test_autorun_revert_action_set(), WM_uilisttype_free(), WM_window_get_active_screen(), and blender::ui::string_search::write_recent_searches_file().

Referenced by arg_handle_engine_set(), bpy_atexit(), and WM_exit().

◆ WM_file_append_datablock()

ID * WM_file_append_datablock ( Main * bmain,
Scene * scene,
ViewLayer * view_layer,
View3D * v3d,
const char * filepath,
short id_code,
const char * id_name,
int flag )
Note
scene (and related view_layer and v3d) pointers may be NULL, in which case no instantiation of appended objects, collections etc. will be performed.

Definition at line 792 of file wm_files_link.cc.

References BLI_assert, FILE_LINK, flag, and wm_file_link_append_datablock_ex().

Referenced by blender::ed::asset::asset_local_id_ensure_imported(), WM_drag_asset_id_import(), and workspace_append_activate_exec().

◆ WM_file_autoexec_init()

void WM_file_autoexec_init ( const char * filepath)

◆ WM_file_autosave_init()

void WM_file_autosave_init ( wmWindowManager * wm)

Definition at line 2394 of file wm_files.cc.

References wm_autosave_timer_begin().

Referenced by WM_check().

◆ WM_file_link_datablock()

ID * WM_file_link_datablock ( Main * bmain,
Scene * scene,
ViewLayer * view_layer,
View3D * v3d,
const char * filepath,
short id_code,
const char * id_name,
int flag )
Note
scene (and related view_layer and v3d) pointers may be NULL, in which case no instantiation of linked objects, collections etc. will be performed.

Definition at line 778 of file wm_files_link.cc.

References FILE_LINK, flag, and wm_file_link_append_datablock_ex().

Referenced by blender::ed::asset::asset_local_id_ensure_imported(), and WM_drag_asset_id_import().

◆ WM_file_read()

bool WM_file_read ( bContext * C,
const char * filepath,
const bool use_scripts_autoexec_check,
ReportList * reports )
Parameters
use_scripts_autoexec_checkWhen true, script auto-execution checks excluded directories. Note that this is passed in as an argument because filepath may reference a path to recover. In this case the file-path used for exclusion is the recovery path which is only known once the file has been loaded.

Definition at line 1054 of file wm_files.cc.

References BKE_blendfile_read(), BKE_blendfile_read_setup_readfile(), BKE_main_namemap_validate(), BKE_READ_EXOTIC_FAIL_FORMAT, BKE_READ_EXOTIC_FAIL_OPEN, BKE_READ_EXOTIC_FAIL_PATH, BKE_READ_EXOTIC_OK_BLEND, BKE_reportf(), BLF_reset_fonts(), BLI_assert, BLI_assert_msg, BLI_time_now_seconds(), BLO_READ_SKIP_USERDEF, C, CTX_data_main(), CTX_wm_manager(), BlendFileReadReport::duration, file_read_reports_finalize(), Main::filepath, G, G_FLAG_ALL_READFILE, G_FLAG_ALL_RUNTIME, wmFileReadPost_Params::is_alloc, wmFileReadPost_Params::is_factory_startup, wmFileReadPost_Params::is_startup_file, params, BlendFileReadReport::reports, wmFileReadPost_Params::reset_app_template, RPT_, RPT_ERROR, wmFileReadPost_Params::success, wmFileReadPost_Params::use_data, wmFileReadPost_Params::use_userdef, BlendFileReadReport::whole, WM_check(), WM_cursor_wait(), WM_file_autoexec_init(), wm_file_read_post(), wm_file_read_pre(), wm_file_read_setup_wm_finalize(), wm_file_read_setup_wm_init(), wm_history_file_update(), wm_read_callback_post_wrapper(), wm_read_callback_pre_wrapper(), and wm_read_exotic().

Referenced by handle_load_file(), and wm_file_read_opwrap().

◆ WM_file_recover_last_session()

bool WM_file_recover_last_session ( bContext * C,
const bool use_scripts_autoexec_check,
ReportList * reports )

◆ WM_file_tag_modified()

◆ WM_generic_callback_free()

◆ WM_generic_callback_steal()

◆ WM_generic_select_invoke()

◆ WM_generic_select_modal()

◆ WM_generic_user_data_free()

◆ WM_gesture_box_cancel()

◆ WM_gesture_box_invoke()

wmOperatorStatus WM_gesture_box_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )

◆ WM_gesture_box_modal()

wmOperatorStatus WM_gesture_box_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )

Definition at line 196 of file wm_gesture_ops.cc.

References BLI_rcti_translate(), C, CTX_wm_window(), wmGesture::customdata, wmOperator::customdata, EVT_MODAL_MAP, gesture_box_apply(), gesture_box_apply_rect(), GESTURE_MODAL_BEGIN, GESTURE_MODAL_CANCEL, GESTURE_MODAL_DESELECT, gesture_modal_end(), GESTURE_MODAL_IN, GESTURE_MODAL_MOVE, GESTURE_MODAL_OUT, GESTURE_MODAL_SELECT, wmGesture::is_active, wmGesture::is_active_prev, wmGesture::modal_state, MOUSEMOVE, wmGesture::move, NDOF_MOTION, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, wmEvent::type, wmGesture::type, wmEvent::val, wmGesture::wait_for_input, wmGesture::winrct, WM_GESTURE_CROSS_RECT, wm_gesture_tag_redraw(), rcti::xmax, rcti::xmin, wmEvent::xy, rcti::ymax, and rcti::ymin.

Referenced by ACTION_OT_select_box(), ANIM_OT_channels_select_box(), ANIM_OT_previewrange_set(), CLIP_OT_graph_select_box(), CLIP_OT_select_box(), file_box_select_modal(), GRAPH_OT_select_box(), blender::ed::sculpt_paint::GREASE_PENCIL_OT_erase_box(), IMAGE_OT_render_border(), IMAGE_OT_view_zoom_border(), INFO_OT_select_box(), MARKER_OT_select_box(), MASK_OT_select_box(), NLA_OT_select_box(), blender::ed::space_node::NODE_OT_select_box(), blender::ed::space_node::NODE_OT_viewer_border(), blender::ed::outliner::OUTLINER_OT_select_box(), blender::ed::sculpt_paint::hide::PAINT_OT_hide_show(), blender::ed::sculpt_paint::mask::PAINT_OT_mask_box_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_box_gesture(), blender::ed::sculpt_paint::trim::SCULPT_OT_trim_box_gesture(), blender::ed::vse::SEQUENCER_OT_select_box(), blender::ed::vse::SEQUENCER_OT_view_ghost_border(), UV_OT_custom_region_set(), UV_OT_select_box(), VIEW2D_OT_zoom_border(), VIEW3D_OT_clip_border(), VIEW3D_OT_render_border(), VIEW3D_OT_select_box(), and VIEW3D_OT_zoom_border().

◆ WM_gesture_circle_cancel()

void WM_gesture_circle_cancel ( bContext * C,
wmOperator * op )

◆ WM_gesture_circle_invoke()

◆ WM_gesture_circle_modal()

◆ WM_gesture_end()

◆ WM_gesture_is_modal_first()

◆ WM_gesture_lasso_cancel()

◆ WM_gesture_lasso_invoke()

◆ WM_gesture_lasso_modal()

wmOperatorStatus WM_gesture_lasso_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )

◆ WM_gesture_lasso_path_to_array()

◆ WM_gesture_lines_cancel()

◆ WM_gesture_lines_invoke()

◆ WM_gesture_lines_modal()

◆ WM_gesture_new()

◆ WM_gesture_polyline_cancel()

void WM_gesture_polyline_cancel ( bContext * C,
wmOperator * op )

Definition at line 907 of file wm_gesture_ops.cc.

References C, and gesture_modal_end().

◆ WM_gesture_polyline_invoke()

◆ WM_gesture_polyline_modal()

◆ WM_gesture_straightline_active_side_invoke()

◆ WM_gesture_straightline_cancel()

◆ WM_gesture_straightline_invoke()

◆ WM_gesture_straightline_modal()

◆ WM_gesture_straightline_oneshot_modal()

wmOperatorStatus WM_gesture_straightline_oneshot_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )

This modal one-shot callback only calls exec once after the gesture finishes without any updates during the gesture execution. Should be used for operations that are intended to be applied once without real time preview (like a trimming tool that only applies the bisect operation once after finishing the gesture as the bisect operation is too heavy to be computed in real time for a preview).

Definition at line 1164 of file wm_gesture_ops.cc.

References BLI_rcti_translate(), C, CTX_data_scene(), CTX_wm_area(), CTX_wm_window(), wmGesture::customdata, wmOperator::customdata, EVT_MODAL_MAP, GESTURE_MODAL_BEGIN, GESTURE_MODAL_CANCEL, GESTURE_MODAL_DESELECT, gesture_modal_end(), GESTURE_MODAL_FLIP, GESTURE_MODAL_IN, GESTURE_MODAL_MOVE, GESTURE_MODAL_OUT, GESTURE_MODAL_SELECT, GESTURE_MODAL_SNAP, gesture_straightline_apply(), get_snap_angle(), SnapAngle::increment, wmGesture::is_active, wmGesture::is_active_prev, wmGesture::modal_state, MOUSEMOVE, wmGesture::move, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_RUNNING_MODAL, Scene::toolsettings, wmEvent::type, wmGesture::use_flip, wmGesture::use_snap, wmEvent::val, wmGesture::wait_for_input, wmGesture::winrct, wm_gesture_straightline_do_angle_snap(), wm_gesture_tag_redraw(), rcti::xmax, rcti::xmin, wmEvent::xy, rcti::ymax, and rcti::ymin.

Referenced by blender::ed::sculpt_paint::hide::PAINT_OT_hide_show_line_gesture(), blender::ed::sculpt_paint::mask::PAINT_OT_mask_line_gesture(), blender::ed::sculpt_paint::face_set::SCULPT_OT_face_set_line_gesture(), blender::ed::sculpt_paint::project::SCULPT_OT_project_line_gesture(), and blender::ed::sculpt_paint::trim::SCULPT_OT_trim_line_gesture().

◆ WM_gestures_free_all()

void WM_gestures_free_all ( wmWindow * win)

Definition at line 107 of file wm_gesture.cc.

References ListBase::first, wmWindow::gesture, and WM_gesture_end().

Referenced by wm_window_free().

◆ WM_gestures_remove()

void WM_gestures_remove ( wmWindow * win)

Definition at line 114 of file wm_gesture.cc.

References ListBase::first, wmWindow::gesture, and WM_gesture_end().

Referenced by ui_but_drag_init().

◆ WM_ghost_backend()

const char * WM_ghost_backend ( )

Return an identifier for the underlying GHOST implementation.

Warning
Use of this function should be limited & never for compatibility checks. see: GHOST_ISystem::getSystemBackend for details.

Definition at line 2181 of file wm_window.cc.

References g_system, and g_system_backend_id.

Referenced by bpy_ghost_backend().

◆ WM_global_report()

void WM_global_report ( eReportType type,
const char * message )

Report directly to the window manager without any context.

Warning
This function should almost always be avoided in favor of BKE_report, if this isn't possible, a code-comment must be included explaining why.

Global reports are bad practice because the caller can't handle or suppress them. This means for example, if an automated tasks/scripts can generate many reports that are shown to the user without any way to control error handling.

When used in operators it prevents the Python script from raising an exception form the error as it should do, showing a popup instead.

Definition at line 1041 of file wm_event_system.cc.

References BKE_report(), BKE_report_print_level_set(), BKE_reports_free(), BKE_reports_init(), RPT_PRINT, RPT_STORE, RPT_WARNING, and WM_reports_from_reports_move().

Referenced by action_preview_render_prepare(), button_activate_state(), cachefile_layer_add_exec(), dpaint_bake_endjob(), blender::io::alembic::export_startjob(), fmodifier_reorder(), import_endjob(), is_compositing_possible(), lineart_bake_common(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_invoke(), ui_but_paste_color(), ui_but_paste_normalized_vector(), ui_but_paste_numeric_array(), ui_but_paste_numeric_value(), ui_do_but_HOTKEYEVT(), wm_draw_region_buffer_create(), WM_global_reportf(), wm_xr_disable_passthrough(), and wm_xr_error_handler().

◆ WM_global_reportf()

void WM_global_reportf ( eReportType type,
const char * format,
... )

Report directly to the window manager without any context.

Warning
This function should almost always be avoided in favor of BKE_reportf, if this isn't possible, a code-comment must be included explaining why.

See WM_global_report for details.

References ATTR_PRINTF_FORMAT.

◆ WM_init()

void WM_init ( bContext * C,
int argc,
const char ** argv )

Initialize Blender and load the startup file & preferences (only called once).

NOTE(@ideasman42): Startup file and order of initialization.

Loading BLENDER_STARTUP_FILE, BLENDER_USERPREF_FILE, starting Python and other sub-systems, have inter-dependencies, for example.

  • Some sub-systems depend on the preferences (initializing icons depend on the theme).
  • Add-ons depends on the preferences to know what has been enabled.
  • Add-ons depends on the window-manger to register their key-maps.
  • Evaluating the startup file depends on Python for animation-drivers (see #89046).
  • Starting Python depends on the startup file so key-maps can be added in the window-manger.

Loading preferences early, then application subsystems and finally the startup data would simplify things if it weren't for key-maps being part of the window-manager which is blend file data. Creating a dummy window-manager early, or moving the key-maps into the preferences would resolve this and may be worth looking into long-term, see: D12184 for details.

Definition at line 199 of file wm_init_exit.cc.

References wmHomeFileRead_Params::app_template_override, BIFICONID_LAST_STATIC, BKE_addon_pref_type_init(), BKE_icons_init(), BKE_keyconfig_pref_type_init(), BKE_library_callback_free_notifier_reference_set(), BKE_library_callback_remap_editor_id_reference_set(), BKE_main_blendfile_path_from_global(), BKE_preview_images_init(), BKE_region_callback_free_gizmomap_set(), BKE_region_callback_refresh_tag_gizmomap_set(), BKE_sound_jack_sync_callback_set(), BKE_spacedata_callback_id_remap_set(), BKE_studiolight_init(), BLF_init(), BLI_assert, BLT_lang_init(), BLT_lang_set(), BPY_python_reset(), BPY_python_start(), C, CTX_py_init_set(), DEG_editors_set_update_cb(), ED_file_init(), ED_node_init_butfuncs(), ED_render_clear_mtex_copybuf(), ED_render_id_flush_update(), ED_render_scene_update(), ED_spacedata_id_remap_single(), ED_spacemacros_init(), ED_spacetypes_init(), ED_undosys_type_init(), wmHomeFileRead_Params::filepath_startup_override, G, G_FILE_NO_UI, G_MAIN, GHOST_kConsoleWindowStateHideForNonConsoleLaunch, GHOST_kConsoleWindowStateShow, GHOST_setConsoleWindowState(), GPU_context_active_get(), GPU_context_begin_frame(), GPU_context_end_frame(), GPU_render_begin(), GPU_render_end(), blender::bke::subdiv::init(), wmHomeFileRead_Params::is_first_time, blender::ui::string_search::read_recent_searches_file(), sound_jack_sync_callback(), STRNCPY(), U, UI_init(), UNUSED_VARS, wmHomeFileRead_Params::use_data, wmHomeFileRead_Params::use_empty_data, wmHomeFileRead_Params::use_factory_settings, wmHomeFileRead_Params::use_userdef, WM_exit(), wm_ghost_init(), wm_gizmogrouptype_init(), wm_gizmomap_remove(), WM_gizmomap_tag_refresh(), wm_gizmotype_init(), wm_history_file_read(), wm_homefile_read_ex(), wm_homefile_read_post(), wm_init_cursor_data(), WM_init_gpu(), wm_init_scripts_extensions_once(), WM_init_state_app_template_get(), WM_keyconfig_init(), WM_keyconfig_update_on_startup(), WM_keyconfig_update_postpone_begin(), WM_keyconfig_update_postpone_end(), WM_main_remap_editor_id_reference(), WM_main_remove_notifier_reference(), WM_menutype_init(), WM_msgbus_types_init(), wm_operatortypes_register(), WM_paneltype_init(), WM_platform_support_perform_checks(), wm_start_with_console, and WM_uilisttype_init().

Referenced by main().

◆ WM_init_gpu()

◆ WM_init_input_devices()

◆ WM_init_native_pixels()

void WM_init_native_pixels ( bool do_it)

Definition at line 2834 of file wm_window.cc.

References wm_init_state.

Referenced by arg_handle_native_pixels_set().

◆ WM_init_splash()

◆ WM_init_splash_on_startup()

void WM_init_splash_on_startup ( bContext * C)

Show the splash screen as needed on startup.

The splash may not show depending on a file being loaded and user preferences.

Definition at line 382 of file wm_init_exit.cc.

References C, WM_init_splash(), and wm_init_splash_show_on_startup_check().

Referenced by main().

◆ WM_init_state_app_template_get()

const char * WM_init_state_app_template_get ( )

Definition at line 1207 of file wm_files.cc.

References wm_init_state_app_template.

Referenced by wm_homefile_read_exec(), WM_init(), and wm_userpref_read_exec().

◆ WM_init_state_app_template_set()

void WM_init_state_app_template_set ( const char * app_template)

Used for setting app-template from the command line:

  • non-empty string: overrides.
  • empty string: override, using no app template.
  • NULL: clears override.

Definition at line 1195 of file wm_files.cc.

References app_template, STRNCPY(), and wm_init_state_app_template.

Referenced by arg_handle_app_template(), and wm_homefile_read_exec().

◆ WM_init_state_fullscreen_set()

void WM_init_state_fullscreen_set ( )

For border-less and border windows set from command-line.

Definition at line 2801 of file wm_window.cc.

References GHOST_kWindowStateFullScreen, WIN_OVERRIDE_WINSTATE, and wm_init_state.

Referenced by arg_handle_window_fullscreen().

◆ WM_init_state_maximized_set()

void WM_init_state_maximized_set ( )

◆ WM_init_state_normal_set()

void WM_init_state_normal_set ( )

Definition at line 2807 of file wm_window.cc.

References GHOST_kWindowStateNormal, WIN_OVERRIDE_WINSTATE, and wm_init_state.

Referenced by arg_handle_window_border().

◆ WM_init_state_size_set()

void WM_init_state_size_set ( int stax,
int stay,
int sizx,
int sizy )

Called when no ghost system was initialized.

Definition at line 2794 of file wm_window.cc.

References WIN_OVERRIDE_GEOM, and wm_init_state.

Referenced by arg_handle_window_geometry().

◆ WM_init_state_start_with_console_set()

void WM_init_state_start_with_console_set ( bool value)

Definition at line 132 of file wm_init_exit.cc.

References wm_start_with_console.

Referenced by arg_handle_start_with_console().

◆ WM_init_window_focus_set()

void WM_init_window_focus_set ( bool do_it)

Definition at line 2829 of file wm_window.cc.

References wm_init_state.

Referenced by arg_handle_no_window_focus().

◆ WM_init_window_frame_get()

bool WM_init_window_frame_get ( )

Definition at line 2819 of file wm_window.cc.

References wm_init_state.

Referenced by wm_main_playanim_intern().

◆ WM_init_window_frame_set()

void WM_init_window_frame_set ( bool do_it)

Definition at line 2824 of file wm_window.cc.

References wm_init_state.

Referenced by arg_handle_no_window_frame().

◆ WM_job_main_thread_lock_acquire()

void WM_job_main_thread_lock_acquire ( wmJob * wm_job)

◆ WM_job_main_thread_lock_release()

void WM_job_main_thread_lock_release ( wmJob * wm_job)

◆ WM_jobs_callbacks()

◆ WM_jobs_callbacks_ex()

void WM_jobs_callbacks_ex ( wmJob * wm_job,
wm_jobs_start_callback startjob,
void(* initjob )(void *),
void(* update )(void *),
void(* endjob )(void *),
void(* completed )(void *),
void(* canceled )(void *) )

◆ WM_jobs_customdata_from_type()

void * WM_jobs_customdata_from_type ( wmWindowManager * wm,
const void * owner,
int job_type )

Definition at line 330 of file wm_jobs.cc.

References wm_job_find(), and WM_jobs_customdata_get().

Referenced by ED_preview_draw(), and render_job_get().

◆ WM_jobs_customdata_get()

◆ WM_jobs_customdata_set()

◆ WM_jobs_delay_start()

void WM_jobs_delay_start ( wmJob * wm_job,
double delay_time )

Definition at line 383 of file wm_jobs.cc.

References wmJob::start_delay_time.

Referenced by ED_preview_icon_job(), and screen_render_invoke().

◆ WM_jobs_get()

wmJob * WM_jobs_get ( wmWindowManager * wm,
wmWindow * win,
const void * owner,
const char * name,
eWM_JobFlag flag,
eWM_JobType job_type )
Returns
current job or adds new job, but doesn't run it.
Note
every owner only gets a single running job of the same job_type (or with the WM_JOB_EXCL_RENDER flag). Adding a new one will wait for the running job to finish.

Definition at line 211 of file wm_jobs.cc.

References BKE_report_print_level_set(), BKE_reports_init(), BLI_addtail(), BLI_assert, BLI_ticket_mutex_alloc(), flag, wmJob::flag, wmJob::job_type, wmJob::main_thread_mutex, MEM_callocN(), name, wmJob::name, wmJob::owner, wmJobWorkerStatus::reports, RPT_PRINT, RPT_STORE, RPT_WARNING, wmWindowManager::runtime, STRNCPY(), wmJob::win, wm_job_find(), WM_job_main_thread_lock_acquire(), WM_JOB_TYPE_ANY, wm_jobs_update_qos(), and wmJob::worker_status.

Referenced by ABC_export(), ABC_import(), blender::ed::object::bake_invoke(), clip_rebuild_proxy_exec(), clip_start_prefetch_job(), dynamicpaint_bake_exec(), ED_node_composite_job(), ED_preview_icon_job(), ED_preview_shader_job(), blender::seq::ED_seq_proxy_wm_job_get(), EEVEE_lightbake_job_create(), blender::seq::ThumbGenerationJob::ensure_job(), PreviewLoadJob::ensure_job(), blender::ed::space_node::ensure_nodetree_previews(), filelist_readjob_start_ex(), fluid_bake_invoke(), fluid_free_exec(), lineart_bake_common(), blender::ed::object::multiresbake_image_exec(), blender::ed::object::ocean_bake_exec(), pack_islands_exec(), ptcache_bake_invoke(), blender::ed::object::quadriflow_remesh_exec(), screen_opengl_render_invoke(), screen_render_invoke(), blender::ed::vse::sequencer_preview_add_sound(), blender::ed::object::bake_simulation::simulate_to_frame_invoke(), solve_camera_invoke(), blender::ed::vse::start_audio_video_job(), blender::ed::object::bake_simulation::start_bake_job(), track_markers(), ui_icon_ensure_deferred(), blender::io::usd::USD_export(), and blender::io::usd::USD_import().

◆ WM_jobs_has_running()

bool WM_jobs_has_running ( const wmWindowManager * wm)

Definition at line 771 of file wm_jobs.cc.

References LISTBASE_FOREACH, wmJob::running, and wmWindowManager::runtime.

◆ WM_jobs_has_running_type()

bool WM_jobs_has_running_type ( const wmWindowManager * wm,
int job_type )

◆ WM_jobs_is_running()

◆ WM_jobs_is_stopped()

bool WM_jobs_is_stopped ( const wmWindowManager * wm,
const void * owner )

◆ WM_jobs_kill_all()

void WM_jobs_kill_all ( wmWindowManager * wm)

Wait until every job ended.

Definition at line 602 of file wm_jobs.cc.

References blender::seq::prefetch_stop_all(), wmWindowManager::runtime, and wm_jobs_kill_job().

Referenced by ed_undo_step_pre(), WM_exit_ex(), and wm_file_read_setup_wm_init().

◆ WM_jobs_kill_all_except()

void WM_jobs_kill_all_except ( wmWindowManager * wm,
const void * owner )

Wait until every job ended, except for one owner (used in undo to keep screen job alive).

Definition at line 614 of file wm_jobs.cc.

References LISTBASE_FOREACH_MUTABLE, wmJob::owner, wmWindowManager::runtime, and wm_jobs_kill_job().

Referenced by screen_opengl_render_init(), and screen_render_invoke().

◆ WM_jobs_kill_all_from_owner()

void WM_jobs_kill_all_from_owner ( wmWindowManager * wm,
const void * owner )

Terminate thread and timer of all jobs from this owner.

Beware of the impact of calling this. For example passing the scene will kill all jobs having the scene as owner, even otherwise unrelated jobs.

Definition at line 638 of file wm_jobs.cc.

References LISTBASE_FOREACH_MUTABLE, wmJob::owner, wmWindowManager::runtime, and wm_jobs_kill_job().

Referenced by ED_scene_delete().

◆ WM_jobs_kill_type()

◆ WM_jobs_name()

const char * WM_jobs_name ( const wmWindowManager * wm,
const void * owner )

Definition at line 319 of file wm_jobs.cc.

References wmJob::name, wm_job_find(), and WM_JOB_TYPE_ANY.

Referenced by uiTemplateRunningJobs().

◆ WM_jobs_progress()

float WM_jobs_progress ( const wmWindowManager * wm,
const void * owner )

◆ WM_jobs_start()

void WM_jobs_start ( wmWindowManager * wm,
wmJob * wm_job )

Register the given wm_job and try to start it immediately.

The new wm_job will not start immediately and wait for other blocking jobs to end in some way if:

  • the new job is flagged with WM_JOB_EXCL_RENDER and another job with the same flag is already running (blocks it), or...
  • the new job is not flagged with WM_JOB_EXCL_RENDER and a job of the same eWM_JobType is already running (blocks it).

If the new wm_job is flagged with WM_JOB_PRIORITY, it will request other blocking jobs to stop (using #WM_jobs_stop(), so this doesn't take immediate effect) rather than finish its work. Additionally, it will hint the operating system to use performance cores on hybrid CPUs.

Definition at line 479 of file wm_jobs.cc.

References BLI_threadpool_init(), BLI_threadpool_insert(), BLI_time_now_seconds(), wmJob::customdata, do_job_thread(), wmJob::free, wmJob::initjob, printf, wmJobWorkerStatus::progress, wmJob::ready, wmJob::run_customdata, wmJob::run_free, wmJob::running, wmJob::start_delay_time, wmJob::start_time, wmJob::startjob, wmJobWorkerStatus::stop, wmJob::suspended, wmJob::threads, wmJob::time_step, wmTimer::time_step, TIMERJOBS, wmJob::win, WM_event_timer_add(), WM_event_timer_remove(), wm_jobs_test_suspend_stop(), wmJob::worker_status, and wmJob::wt.

Referenced by ABC_export(), ABC_import(), blender::ed::object::bake_invoke(), clip_rebuild_proxy_exec(), clip_start_prefetch_job(), dynamicpaint_bake_exec(), ED_node_composite_job(), ED_preview_icon_job(), ED_preview_shader_job(), blender::seq::ThumbGenerationJob::ensure_job(), PreviewLoadJob::ensure_job(), blender::ed::space_node::ensure_nodetree_previews(), filelist_readjob_start_ex(), fluid_bake_invoke(), fluid_free_exec(), lightprobe_cache_bake_invoke(), lineart_bake_common(), blender::ed::object::multiresbake_image_exec(), blender::ed::object::ocean_bake_exec(), pack_islands_exec(), ptcache_bake_invoke(), blender::ed::object::quadriflow_remesh_exec(), screen_opengl_render_invoke(), screen_render_invoke(), blender::ed::vse::seq_build_proxy(), blender::ed::vse::seq_proxy_build_job(), blender::ed::vse::sequencer_preview_add_sound(), blender::ed::object::bake_simulation::simulate_to_frame_invoke(), solve_camera_invoke(), blender::ed::vse::start_audio_video_job(), blender::ed::object::bake_simulation::start_bake_job(), track_markers(), ui_icon_ensure_deferred(), blender::io::usd::USD_export(), blender::io::usd::USD_import(), and wm_jobs_timer().

◆ WM_jobs_starttime()

double WM_jobs_starttime ( const wmWindowManager * wm,
const void * owner )

Time that job started.

Definition at line 308 of file wm_jobs.cc.

References wmJob::flag, wmJob::start_time, wm_job_find(), WM_JOB_PROGRESS, and WM_JOB_TYPE_ANY.

Referenced by progress_tooltip_func().

◆ WM_jobs_stop_all_from_owner()

void WM_jobs_stop_all_from_owner ( wmWindowManager * wm,
const void * owner )

Signal all jobs from this owner to stop, timer is required to get handled.

Beware of the impact of calling this. For example passing the scene will stop all jobs having the scene as owner, even otherwise unrelated jobs.

Definition at line 663 of file wm_jobs.cc.

References LISTBASE_FOREACH, wmJob::owner, wmJob::running, wmWindowManager::runtime, wmJobWorkerStatus::stop, and wmJob::worker_status.

Referenced by do_running_jobs().

◆ WM_jobs_stop_type()

void WM_jobs_stop_type ( wmWindowManager * wm,
const void * owner,
eWM_JobType job_type )

Signal all jobs of this type and owner (if non-null) to stop, timer is required to get handled.

Don't pass WM_JOB_TYPE_ANY as job_type. Use WM_jobs_stop_all_from_owner() instead.

Definition at line 647 of file wm_jobs.cc.

References BLI_assert, wmJob::job_type, LISTBASE_FOREACH, wmJob::owner, wmJob::running, wmWindowManager::runtime, wmJobWorkerStatus::stop, WM_JOB_TYPE_ANY, and wmJob::worker_status.

Referenced by EEVEE_lightbake_job_create(), and blender::ed::space_node::ensure_nodetree_previews().

◆ WM_jobs_test()

◆ WM_jobs_timer()

◆ WM_lib_reload()

◆ WM_locked_interface_set()

◆ WM_locked_interface_set_with_flags()

◆ WM_main()

◆ WM_main_add_notifier()

void WM_main_add_notifier ( unsigned int type,
void * reference )

Definition at line 404 of file wm_event_system.cc.

References ListBase::first, G_MAIN, Main::wm, and WM_event_add_notifier_ex().

Referenced by action_unlink_exec(), blender::ed::asset_browser::AssetCatalogTreeView::activate_catalog_by_id(), blender::ed::viewer_path::activate_geometry_node(), ANIM_armature_bonecoll_remove_from_index(), armature_circle_select(), armature_select_linked_impl(), blender::ed::asset::asset_clear_exec(), blender::ed::asset::asset_mark_exec(), blender::ed::space_node::backimage_fit_exec(), blender::ed::space_node::backimage_zoom_exec(), blender::ed::object::bake_simulation::bake_geometry_nodes_endjob(), blender::ed::object::base_active_refresh(), bone_collection_assign_exec(), bone_collection_create_and_assign_exec(), bpy_app_debug_value_set(), bpy_batch_remove(), bpy_orphans_purge(), bpy_rna_region_from_string(), blender::ed::sculpt_paint::brush_asset_activate_exec(), blender::ed::sculpt_paint::brush_asset_delete_exec(), blender::ed::sculpt_paint::brush_asset_edit_metadata_exec(), blender::ed::sculpt_paint::brush_asset_load_preview_exec(), blender::ed::sculpt_paint::brush_asset_revert_exec(), blender::ed::sculpt_paint::brush_asset_save_as_exec(), blender::ed::sculpt_paint::brush_asset_save_exec(), brush_scale_size_exec(), cachefile_layer_add_exec(), cachefile_layer_move_exec(), cachefile_layer_remove_exec(), blender::ed::asset::catalog_add(), blender::ed::asset::catalog_move(), blender::ed::asset::catalog_remove(), blender::ed::asset::catalog_rename(), blender::ed::asset::list::AssetList::clear(), blender::ed::asset::list::AssetList::clear_current_file_assets(), blender::ed::outliner::collection_duplicate_exec(), blender::ed::outliner::collection_flag_exec(), blender::ed::outliner::collection_hierarchy_delete_exec(), blender::ed::outliner::collection_instance_exec(), blender::ed::outliner::collection_isolate_exec(), blender::ed::outliner::collection_link_exec(), blender::ed::outliner::collection_new_exec(), blender::ed::outliner::collection_objects_select_exec(), blender::ed::outliner::collection_view_layer_exec(), blender::ed::outliner::collection_visibility_exec(), blender::ed::space_node::compo_updatejob(), blender::ed::object::constraint_copy_for_object(), blender::ed::object::constraint_copy_for_pose(), blender::ed::object::constraint_link(), blender::ed::object::constraint_move_to_index(), convert_action_exec(), copy_particle_systems_to_object(), blender::ed::animrig::create_pose_asset_local(), blender::ed::animrig::create_pose_asset_user_library(), blender::ed::curves::convert_from_particle_system::curves_convert_from_particle_system_exec(), blender::ed::curves::convert_to_particle_system::curves_convert_to_particle_system_exec(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), blender::ed::object::bake_simulation::delete_single_bake_exec(), do_lasso_select_armature(), do_lasso_select_objects(), do_lasso_select_pose(), blender::ed::asset_browser::AssetCatalogDropTarget::drop_asset_catalog_into_catalog(), blender::ed::asset_browser::AssetCatalogDropTarget::drop_assets_into_catalog(), ED_fileselect_activate_asset_catalog(), ED_fileselect_activate_by_id(), ED_fileselect_activate_by_relpath(), ED_fileselect_clear(), ED_fileselect_clear_main_assets(), ED_fileselect_deselect_all(), ED_gpencil_set_active_channel(), ED_id_rename(), ED_mesh_color_add(), ED_mesh_shapes_join_objects_exec(), ED_mesh_uv_add(), ED_node_set_active(), ED_node_set_active_viewer_key(), ED_node_tree_pop(), ED_node_tree_push(), ED_node_tree_start(), ED_object_particle_edit_mode_enter_ex(), ED_object_particle_edit_mode_exit_ex(), ED_object_texture_paint_mode_enter_ex(), ED_object_texture_paint_mode_exit_ex(), ED_pose_bone_select_tag_update(), ED_scene_view_layer_delete(), ED_space_image_set(), ED_undo_push(), ED_view3d_camera_autokey(), ED_view3d_camera_lock_sync(), ED_view3d_persp_switch_from_camera(), EDBM_selectmode_disable(), EDBM_selectmode_set_multi_ex(), edbm_selectmode_sync_multi_ex(), EDBM_selectmode_toggle_multi(), edbm_shortest_path_pick_ex(), EDBM_update(), edgering_select(), blender::ed::object::editmode_enter_ex(), blender::ed::object::editmode_exit_ex(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::DeleteOperationExecutor::execute(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), blender::ui::greasepencil::eyedropper_add_material(), blender::ui::greasepencil::eyedropper_grease_pencil_modal(), find_missing_files_exec(), blender::ed::geometry::geometry_attribute_add_exec(), blender::ed::geometry::geometry_attribute_convert_exec(), blender::ed::geometry::geometry_attribute_remove_exec(), blender::ed::geometry::geometry_color_attribute_add_exec(), blender::ed::geometry::geometry_color_attribute_convert_exec(), blender::ed::geometry::geometry_color_attribute_duplicate_exec(), blender::ed::geometry::geometry_color_attribute_remove_exec(), blender::ed::geometry::geometry_color_attribute_set_render_exec(), ghost_event_proc(), gizmo_area_light_prop_matrix_set(), gizmo_empty_image_prop_matrix_set(), blender::ed::sculpt_paint::grease_pencil_fill_event_modal_map(), blender::ed::sculpt_paint::grease_pencil_fill_exit(), blender::ed::sculpt_paint::grease_pencil_fill_modal(), icon_preview_endjob(), blender::io::usd::import_endjob(), import_endjob(), blender::animrig::insert_key_to_keying_set_path(), blender::ed::object::lattice_add_to_selected_exec(), lib_id_override_editable_toggle_exec(), lineart_bake_endjob(), make_paths_absolute_exec(), make_paths_relative_exec(), blender::ed::object::material_active_index_set(), merge_actions_selection_exec(), mesh_uv_texture_remove_exec(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_modal(), blender::ed::object::modifier_copy_to_object(), blender::ed::object::modifier_move_to_index(), blender::ed::vse::modifier_set_active_exec(), blender::ed::object::modifiers_clear_exec(), nlaedit_disable_tweakmode(), blender::ed::space_node::node_activate_viewer_exec(), obedit_circle_select(), blender::ed::object::object_duplicates_make_real_exec(), blender::ed::object::object_grease_pencil_add_exec(), blender::ed::spreadsheet::InstancesTreeViewItem::on_activate(), blender::ed::spreadsheet::ViewerDataTreeItem::on_activate(), blender::ed::spreadsheet::ViewerPathTreeViewItem::on_activate(), blender::ed::outliner::outliner_hide_exec(), blender::ed::outliner::outliner_orphans_purge_exec(), blender::ed::outliner::outliner_select_sync_to_edit_bone(), blender::ed::outliner::outliner_select_sync_to_pose_bone(), blender::ed::outliner::outliner_unhide_all_exec(), override_add_button_exec(), override_remove_button_exec(), pack_all_exec(), pack_islands_endjob(), blender::ed::object::bake_simulation::pack_single_bake_exec(), blender::ed::animrig::pose_asset_delete_exec(), blender::ed::animrig::pose_asset_modify_exec(), blender::ed::transform::posttrans_gpd_clean(), blender::ed::transform::posttrans_mask_clean(), preferences_asset_library_add_exec(), preferences_asset_library_remove_exec(), blender::ed::vse::preview_endjob(), proj_paint_add_slot(), blender::seq::proxy_endjob(), proxy_endjob(), ptcache_job_endjob(), rearrange_gpencil_channels(), render_endjob(), report_missing_files_exec(), rna_property_update(), save_image_op(), blender::ed::outliner::scene_drop_invoke(), screen_modal_action_end(), screen_opengl_render_end(), blender::ed::asset::screenshot_preview_exec(), blender::ed::sculpt_paint::dyntopo::sculpt_dynamic_topology_toggle_exec(), blender::ed::sculpt_paint::dyntopo::sculpt_sample_detail_size_modal(), blender::ed::spreadsheet::select_component_domain_invoke(), blender::ed::object::select_grouped_exec(), blender::ed::greasepencil::select_layer_channel(), blender::ed::greasepencil::select_set_mode_exec(), send_notifiers_after_node_tree_change(), blender::ed::object::shade_auto_smooth_exec(), blender::ed::object::shade_smooth_exec(), blender::ed::object::shaderfx_copy(), blender::ed::object::shaderfx_copy_exec(), blender::ed::object::shaderfx_link(), blender::ed::object::shaderfx_move_to_index(), blender::ed::object::bake_simulation::simulate_to_frame_endjob(), blender::ed::space_node::snode_bg_viewmove_modal(), solve_camera_freejob(), blender::ed::space_node::tag_update_id(), blender::ed::greasepencil::toggle_weight_tool_direction_exec(), track_markers_endjob(), blender::ed::outliner::tree_element_layer_collection_activate(), blender::ed::outliner::tree_element_master_collection_activate(), ui_rna_update_preferences_dirty(), unpack_all_exec(), blender::ed::object::bake_simulation::unpack_single_bake_exec(), blender::nodes::socket_items::ops::update_after_node_change(), uv_select_mode_exec(), uv_select_tag_update_for_object(), uv_shortest_path_pick_ex(), uvedit_pack_islands_multi(), uvedit_unwrap_multi(), view3d_collection_drop_copy_external_asset(), view3d_ob_drop_copy_external_asset(), view3d_smoothview_apply_and_finish_ex(), blender::ed::transform::viewRedrawPost(), blender::ed::object::visual_geometry_to_objects_exec(), blender::ed::greasepencil::weight_sample_invoke(), weight_sample_invoke(), blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh(), WM_file_tag_modified(), WM_operator_stack_clear(), wm_set_working_color_space_exec(), wm_window_close(), wm_window_timers_process(), wm_xr_session_gpu_binding_context_create(), wm_xr_session_gpu_binding_context_destroy(), and wm_xr_session_update_screen().

◆ WM_main_playanim()

int WM_main_playanim ( int argc,
const char ** argv )

◆ WM_main_remap_editor_id_reference()

◆ WM_main_remove_notifier_reference()

void WM_main_remove_notifier_reference ( const void * reference)

Clear notifiers by reference, Used so listeners don't act on freed data.

Definition at line 412 of file wm_event_system.cc.

References BLI_assert, BLI_gset_remove(), BLI_remlink(), ListBase::first, G_MAIN, LISTBASE_FOREACH_MUTABLE, MEM_freeN(), wmWindowManager::runtime, UNUSED_VARS_NDEBUG, Main::wm, WM_msg_id_remove(), and wm_notifier_clear().

Referenced by WM_init().

◆ WM_menu_invoke()

wmOperatorStatus WM_menu_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )

Definition at line 1137 of file wm_operators.cc.

References C, blender::wm::InvokeRegionWin, and WM_menu_invoke_ex().

Referenced by ACTION_OT_easing_type(), ACTION_OT_extrapolation_type(), ACTION_OT_handle_type(), ACTION_OT_interpolation_type(), ACTION_OT_keyframe_insert(), ACTION_OT_keyframe_type(), ACTION_OT_mirror(), ACTION_OT_snap(), ANIM_OT_channels_setting_disable(), ANIM_OT_channels_setting_enable(), ANIM_OT_channels_setting_toggle(), ARMATURE_OT_autoside_names(), ARMATURE_OT_calculate_roll(), ARMATURE_OT_select_similar(), BOID_OT_rule_add(), blender::ed::object::COLLECTION_OT_objects_add_active(), blender::ed::object::COLLECTION_OT_objects_remove(), blender::ed::object::COLLECTION_OT_objects_remove_active(), CURVE_OT_delete(), CURVE_OT_handle_type_set(), CURVE_OT_select_similar(), CURVE_OT_spline_type_set(), blender::ed::curves::CURVES_OT_handle_type_set(), blender::ed::object::datalayout_transfer_invoke(), GRAPH_OT_easing_type(), GRAPH_OT_extrapolation_type(), GRAPH_OT_fmodifier_add(), GRAPH_OT_handle_type(), GRAPH_OT_interpolation_type(), GRAPH_OT_keyframe_insert(), GRAPH_OT_mirror(), graphkeys_selected_control_points_invoke(), blender::ed::greasepencil::GREASE_PENCIL_OT_caps_set(), blender::ed::greasepencil::GREASE_PENCIL_OT_convert_curve_type(), blender::ed::greasepencil::GREASE_PENCIL_OT_cyclical_set(), blender::ed::greasepencil::GREASE_PENCIL_OT_delete_frame(), blender::ed::greasepencil::GREASE_PENCIL_OT_dissolve(), blender::ed::greasepencil::GREASE_PENCIL_OT_reproject(), blender::ed::greasepencil::GREASE_PENCIL_OT_select_similar(), blender::ed::greasepencil::GREASE_PENCIL_OT_separate(), blender::ed::greasepencil::GREASE_PENCIL_OT_set_curve_type(), blender::ed::greasepencil::GREASE_PENCIL_OT_set_handle_type(), LATTICE_OT_flip(), MARKER_OT_make_links_scene(), MASK_OT_handle_type_set(), MBALL_OT_select_similar(), MESH_OT_delete(), MESH_OT_merge(), MESH_OT_select_similar(), MESH_OT_separate(), MESH_OT_sort_elements(), blender::ed::object::modifier_add_invoke(), new_sequencer_scene_invoke(), NLA_OT_fmodifier_add(), NLA_OT_snap(), blender::ed::space_node::NODE_OT_select_grouped(), blender::ed::object::OBJECT_OT_constraint_add(), blender::ed::object::OBJECT_OT_constraint_add_with_targets(), blender::ed::object::OBJECT_OT_convert(), blender::ed::object::OBJECT_OT_data_transfer(), blender::ed::object::OBJECT_OT_empty_add(), blender::ed::object::OBJECT_OT_hook_remove(), blender::ed::object::OBJECT_OT_light_add(), blender::ed::object::OBJECT_OT_make_local(), blender::ed::object::OBJECT_OT_metaball_add(), blender::ed::object::OBJECT_OT_origin_set(), blender::ed::object::OBJECT_OT_parent_clear(), blender::ed::object::OBJECT_OT_select_by_type(), blender::ed::object::OBJECT_OT_select_grouped(), blender::ed::object::OBJECT_OT_select_linked(), blender::ed::object::OBJECT_OT_shaderfx_add(), blender::ed::object::OBJECT_OT_track_clear(), blender::ed::object::OBJECT_OT_track_set(), blender::ed::object::OBJECT_OT_vertex_group_set_active(), blender::ed::outliner::OUTLINER_OT_animdata_operation(), blender::ed::outliner::OUTLINER_OT_constraint_operation(), blender::ed::outliner::OUTLINER_OT_data_operation(), blender::ed::outliner::OUTLINER_OT_id_operation(), blender::ed::outliner::OUTLINER_OT_lib_operation(), blender::ed::outliner::OUTLINER_OT_liboverride_operation(), blender::ed::outliner::OUTLINER_OT_liboverride_troubleshoot_operation(), blender::ed::outliner::OUTLINER_OT_modifier_operation(), blender::ed::outliner::OUTLINER_OT_object_operation(), blender::ed::outliner::OUTLINER_OT_scene_operation(), PAINT_OT_weight_from_bones(), PARTICLE_OT_delete(), POSE_OT_autoside_names(), blender::ed::object::POSE_OT_constraint_add(), blender::ed::object::POSE_OT_constraint_add_with_targets(), POSE_OT_rotation_mode_set(), POSE_OT_select_grouped(), RIGIDBODY_OT_mass_calculate(), RIGIDBODY_OT_shape_change(), SCENE_OT_new(), SCENE_OT_new_sequencer(), SCENE_OT_view_layer_add(), blender::ed::vse::SEQUENCER_OT_select_grouped(), blender::ed::vse::SEQUENCER_OT_strip_modifier_copy(), UV_OT_select_similar(), VIEW3D_OT_bone_select_menu(), VIEW3D_OT_select_menu(), WM_event_add(), WM_OT_previews_clear(), and WM_OT_redraw_timer().

◆ WM_menu_invoke_ex()

◆ WM_menu_name_call()

◆ WM_menutype_add()

◆ WM_menutype_find()

◆ WM_menutype_free()

void WM_menutype_free ( )

Definition at line 83 of file wm_menu_type.cc.

References get_menu_type_map(), and MEM_freeN().

Referenced by WM_exit_ex().

◆ WM_menutype_freelink()

void WM_menutype_freelink ( MenuType * mt)

Definition at line 68 of file wm_menu_type.cc.

References BLI_assert, get_menu_type_map(), MEM_freeN(), and UNUSED_VARS_NDEBUG.

◆ WM_menutype_idname_visit_for_search()

void WM_menutype_idname_visit_for_search ( const bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
const char * edit_text,
blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn )

◆ WM_menutype_init()

void WM_menutype_init ( )
Note
Called on initialize WM_init().

Definition at line 77 of file wm_menu_type.cc.

References get_menu_type_map().

Referenced by WM_init().

◆ WM_menutype_poll()

◆ WM_menutypes_registered_get()

blender::Span< MenuType * > WM_menutypes_registered_get ( )

Definition at line 56 of file wm_menu_type.cc.

References get_menu_type_map().

Referenced by menu_items_from_ui_create().

◆ WM_operator_bl_idname()

size_t WM_operator_bl_idname ( char * dst,
const char * src )

Convert: some.op -> SOME_OT_op or leave as-is.

Returns
the length of dst.

◆ WM_operator_bl_idname_is_valid()

bool WM_operator_bl_idname_is_valid ( const char * idname)

Return true when an operators name follows the SOME_OT_op naming convention.

Definition at line 174 of file wm_operators.cc.

References OP_BL_SEP_LEN, and OP_BL_SEP_STRING.

Referenced by PYOP_wrap_macro_define(), wm_operatortype_append__end(), WM_operatortype_append_macro(), and WM_operatortype_append_macro_ptr().

◆ WM_operator_call()

wmOperatorStatus WM_operator_call ( bContext * C,
wmOperator * op )

Definition at line 1437 of file wm_event_system.cc.

References C, and WM_operator_call_ex().

Referenced by WM_event_add().

◆ WM_operator_call_ex()

wmOperatorStatus WM_operator_call_ex ( bContext * C,
wmOperator * op,
bool store )

For running operators with frozen context (modal handlers, menus).

Parameters
storeStore properties for re-use when an operator has finished (unless PROP_SKIP_SAVE is set).
Warning
do not use this within an operator to call itself! #29537.

Definition at line 1432 of file wm_event_system.cc.

References C, and wm_operator_exec().

Referenced by dialog_exec_cb(), WM_event_add(), WM_operator_call(), and wm_operator_ui_popup_ok().

◆ WM_operator_call_notest()

wmOperatorStatus WM_operator_call_notest ( bContext * C,
wmOperator * op )

This is intended to be used when an invoke operator wants to call exec on itself and is basically like running op->type->exec() directly, no poll checks no freeing, since we assume whoever called invoke will take care of that

Definition at line 1442 of file wm_event_system.cc.

References C, and wm_operator_exec_notest().

Referenced by op_generic_value_invoke(), WM_event_add(), and WM_operator_filesel().

◆ WM_operator_call_py()

wmOperatorStatus WM_operator_call_py ( bContext * C,
wmOperatorType * ot,
blender::wm::OpCallContext context,
PointerRNA * properties,
ReportList * reports,
bool is_undo )

Similar to WM_operator_name_call called with blender::wm::OpCallContext::ExecDefault context.

  • wmOperatorType is used instead of operator name since python already has the operator type.
  • poll() must be called by python before this runs.
  • reports can be passed to this function (so python can report them as exceptions).

Definition at line 1982 of file wm_event_system.cc.

References C, CTX_wm_manager(), wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, ot, and wm_operator_call_internal().

Referenced by pyop_call(), and WM_event_add().

◆ WM_operator_check_ui_enabled()

bool WM_operator_check_ui_enabled ( const bContext * C,
const char * idname )

Return false, if the UI should be disabled.

Definition at line 1295 of file wm_operators.cc.

References C, CTX_data_scene(), CTX_wm_manager(), ED_undo_is_valid(), WM_JOB_TYPE_ANY, and WM_jobs_test().

Referenced by ed_undo_redo_poll(), hud_panel_operator_redo_draw(), wm_block_create_redo(), and WM_event_add().

◆ WM_operator_confirm()

wmOperatorStatus WM_operator_confirm ( bContext * C,
wmOperator * op,
const wmEvent * event )

Invoke callback, confirm menu + exec.

Definition at line 1245 of file wm_operators.cc.

References ALERT_ICON_NONE, C, IFACE_, wmOperatorType::name, wmOperator::type, and WM_operator_confirm_ex().

Referenced by WM_event_add(), WM_OT_read_history(), WM_OT_read_userpref(), and WM_OT_save_userpref().

◆ WM_operator_confirm_ex()

wmOperatorStatus WM_operator_confirm_ex ( bContext * C,
wmOperator * op,
const char * title = nullptr,
const char * message = nullptr,
const char * confirm_text = nullptr,
int icon = 0,
bool cancel_default = false )

Like WM_operator_confirm, but with more options and can't be used as an invoke directly.

Definition at line 1764 of file wm_operators.cc.

References C, data, IFACE_, OPERATOR_RUNNING_MODAL, wmOperator::ptr, wmOperator::type, UI_DEFAULT_TEXT_POINTS, UI_popup_block_ex(), UI_SCALE_FAC, UI_style_get(), wm_block_dialog_create(), wm_operator_ui_popup_cancel(), wm_operator_ui_popup_ok(), WM_operatortype_name(), WM_POPUP_POSITION_CENTER, WM_POPUP_POSITION_MOUSE, WM_POPUP_SIZE_LARGE, and WM_POPUP_SIZE_SMALL.

Referenced by actkeys_delete_invoke(), armature_delete_selected_invoke(), blender::ed::object::bake_simulation::bake_simulation_invoke(), blender::ed::sculpt_paint::brush_asset_delete_invoke(), clear_anim_v3d_invoke(), clear_anim_vse_invoke(), blender::ed::object::collection_exporter_remove_invoke(), delete_curve_invoke(), delete_invoke(), delete_key_v3d_invoke(), delete_key_vse_invoke(), delete_marker_invoke(), delete_metaelems_invoke(), delete_track_invoke(), ed_marker_delete_invoke(), file_delete_invoke(), file_directory_new_invoke(), graphkeys_delete_invoke(), blender::ed::object::modifier_apply_invoke(), nlaedit_make_single_user_invoke(), blender::ed::object::object_delete_invoke(), blender::ed::object::object_transform_apply_invoke(), pack_all_invoke(), blender::ed::animrig::pose_asset_delete_invoke(), preferences_extension_repo_remove_invoke(), blender::ed::sculpt_paint::dyntopo::sculpt_dynamic_topology_toggle_invoke(), text_reload_invoke(), text_unlink_invoke(), unpack_libraries_invoke(), WM_event_add(), wm_homefile_write_invoke(), WM_operator_confirm(), WM_operator_confirm_message(), WM_operator_confirm_message_ex(), WM_operator_confirm_or_exec(), wm_read_factory_settings_invoke(), wm_revert_mainfile_invoke(), and wm_userpref_read_invoke().

◆ WM_operator_confirm_message()

wmOperatorStatus WM_operator_confirm_message ( bContext * C,
wmOperator * op,
const char * message )

Definition at line 1239 of file wm_operators.cc.

References ALERT_ICON_NONE, C, IFACE_, and WM_operator_confirm_ex().

Referenced by WM_event_add().

◆ WM_operator_confirm_message_ex()

wmOperatorStatus WM_operator_confirm_message_ex ( bContext * C,
wmOperator * op,
const char * title,
int icon,
const char * message,
blender::wm::OpCallContext opcontext )

Can't be used as an invoke directly, needs message arg (can be NULL).

Definition at line 1211 of file wm_operators.cc.

References ALERT_ICON_ERROR, ALERT_ICON_INFO, ALERT_ICON_NONE, ALERT_ICON_QUESTION, ALERT_ICON_WARNING, C, IFACE_, and WM_operator_confirm_ex().

Referenced by WM_event_add().

◆ WM_operator_confirm_or_exec()

wmOperatorStatus WM_operator_confirm_or_exec ( bContext * C,
wmOperator * op,
const wmEvent * event )

◆ WM_operator_depends_on_cursor()

bool WM_operator_depends_on_cursor ( bContext & C,
wmOperatorType & ot,
PointerRNA * properties )

Check the OPTYPE_DEPENDS_ON_CURSOR flag and the callback.

Definition at line 633 of file wm_operator_type.cc.

References C, OPTYPE_DEPENDS_ON_CURSOR, and ot.

Referenced by WM_operator_name_call_ptr_with_depends_on_cursor().

◆ WM_operator_drop_load_path()

◆ WM_operator_filesel()

◆ WM_operator_filesel_ensure_ext_imtype()

◆ WM_operator_find_modal_by_type()

wmOperator * WM_operator_find_modal_by_type ( wmWindow * win,
const wmOperatorType * ot )

Return the first modal operator of type ot or NULL.

Definition at line 5167 of file wm_event_system.cc.

References LISTBASE_FOREACH, wmWindow::modalhandlers, wmEventHandler_Op::op, ot, wmOperator::type, and WM_HANDLER_TYPE_OP.

Referenced by blender::ed::transform::gizmo_modal().

◆ WM_operator_flag_only_pass_through_on_press()

wmOperatorStatus WM_operator_flag_only_pass_through_on_press ( wmOperatorStatus retval,
const wmEvent * event )

Indented for use in a selection (picking) operators wmOperatorType::invoke callback to implement click-drag, where the initial click selects and the drag action grabs or performs box-select (for example).

  • In this case, returning OPERATOR_FINISHED causes the PRESS event to be handled and prevents further CLICK (on release) or DRAG (on cursor motion) from being generated & handled.
  • Returning OPERATOR_FINISHED | OPERATOR_PASS_THROUGH allows for CLICK/DRAG but only makes sense if the event's value is PRESS. If the operator was already mapped to a CLICK/DRAG event, a single CLICK/DRAG could invoke multiple operators.

This function handles the details of checking the operator return value, clearing OPERATOR_PASS_THROUGH when the wmEvent::val is not KM_PRESS.

Note
Combining selection with other actions should only be used in situations where selecting doesn't change the visibility of other items. Since it means for example click-drag to box select could hide-show elements the user intended to box-select. In this case it's preferred to select on CLICK instead of PRESS (see the Outliner use of click-drag).

Definition at line 38 of file wm_operator_utils.cc.

References BLI_assert, KM_PRESS, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, and wmEvent::val.

Referenced by add_vertex_invoke(), animchannels_mouseclick_invoke(), armature_click_extrude_invoke(), edbm_dupli_extrude_cursor_invoke(), blender::ed::space_node::node_select_invoke(), select_invoke(), blender::ed::vse::sequencer_select_invoke(), uv_select_edge_ring_invoke(), uv_select_invoke(), uv_select_loop_invoke(), and view3d_select_invoke().

◆ WM_operator_free()

◆ WM_operator_free_all_after()

void WM_operator_free_all_after ( wmWindowManager * wm,
wmOperator * op )

◆ WM_operator_handlers_clear()

void WM_operator_handlers_clear ( wmWindowManager * wm,
wmOperatorType * ot )

This function is needed in the case when an addon id disabled while a modal operator it defined is running.

Definition at line 367 of file wm.cc.

References bScreen::areabase, ARRAY_SIZE, wmEventHandler::flag, wmEventHandler_Op::head, i, LISTBASE_FOREACH, SpaceFile::op, wmEventHandler_Op::op, ot, SPACE_FILE, wmOperator::type, wmWindowManager::windows, WM_HANDLER_DO_FREE, WM_HANDLER_TYPE_OP, WM_operator_free(), and WM_window_get_active_screen().

Referenced by WM_event_add().

◆ WM_operator_is_repeat()

bool WM_operator_is_repeat ( const bContext * C,
const wmOperator * op )

◆ WM_operator_last_properties_ensure()

void WM_operator_last_properties_ensure ( wmOperatorType * ot,
PointerRNA * ptr )

◆ WM_operator_last_properties_ensure_idprops()

IDProperty * WM_operator_last_properties_ensure_idprops ( wmOperatorType * ot)

Definition at line 1317 of file wm_operators.cc.

References blender::bke::idprop::create_group(), and ot.

Referenced by WM_event_add(), and WM_operator_last_properties_ensure().

◆ WM_operator_last_properties_init()

◆ WM_operator_last_properties_store()

◆ WM_operator_last_redo()

◆ WM_operator_name_call()

wmOperatorStatus WM_operator_name_call ( bContext * C,
const char * opstring,
blender::wm::OpCallContext context,
PointerRNA * properties,
const wmEvent * event )

◆ WM_operator_name_call_ptr()

wmOperatorStatus WM_operator_name_call_ptr ( bContext * C,
wmOperatorType * ot,
blender::wm::OpCallContext context,
PointerRNA * properties,
const wmEvent * event )

Invokes operator in context.

Parameters
eventOptionally pass in an event to use when context uses one of the WM_OP_INVOKE_* values. When left unset the wmWindow.eventstate will be used, this can cause problems for operators that read the events type - for example, storing the key that was pressed so as to be able to detect its release. In these cases it's necessary to forward the current event being handled.

Definition at line 1926 of file wm_event_system.cc.

References BLI_assert, C, ot, wm_operator_call_internal(), and WM_operatortype_find().

Referenced by add_driver_button_menu_exec(), bone_mouse_select_menu(), blender::ed::object::collection_exporter_export(), constraint_reorder(), doc_view_manual_ui_context_exec(), file_browse_invoke(), file_directory_enter_handle(), file_external_operation_exec(), ghost_event_proc(), blender::ed::outliner::id_remap_fn(), image_file_browse_invoke(), blender::ed::outliner::lib_relocate(), blender::ed::space_node::link_drag_search_exec_fn(), blender::ed::object::mode_set_ex(), blender::seq::modifier_reorder(), modifier_reorder(), blender::ed::vse::move_strips(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_swap_group_asset_invoke(), object_mouse_select_menu(), blender::ed::asset::shelf::AssetViewItem::on_activate(), blender::ed::asset::shelf::AssetDragController::on_drag_start(), operator_search_exec_fn(), blender::ed::outliner::outliner_id_relocate_invoke(), blender::ed::outliner::outliner_item_drag_drop_invoke(), preferences_extension_url_drop_invoke(), shaderfx_reorder(), blender::ed::transform::special_aftertrans_update__node(), toolsystem_ref_set_by_brush_type(), blender::ed::transform::transform_from_gizmo_invoke(), blender::ed::space_node::tree_path_handle_func(), ui_but_anim_decorate_cb(), ui_handler_wait_for_input(), view3d_interactive_add_modal(), wm_drop_import_file_exec(), WM_event_add(), WM_gizmo_operator_invoke(), WM_menu_name_call(), WM_operator_name_call(), WM_operator_name_call_ptr_with_depends_on_cursor(), WM_operator_name_call_with_properties(), wm_test_autorun_revert_action_exec(), and WM_toolsystem_ref_set_by_id_ex().

◆ WM_operator_name_call_ptr_with_depends_on_cursor()

◆ WM_operator_name_call_with_properties()

◆ WM_operator_name_poll()

bool WM_operator_name_poll ( bContext * C,
const char * opstring )

◆ WM_operator_poll()

◆ WM_operator_poll_context()

◆ WM_operator_poll_or_report_error()

bool WM_operator_poll_or_report_error ( bContext * C,
wmOperatorType * ot,
ReportList * reports )

Check poll succeeds or returns false & report an error.

This can be used from wmOperatorType::exec for operators that use the file-selector. It's needed in this case because the context can be changed once the file-selector has been activated.

Returns
true or false & report an error.
Note
It's best practice that ot->poll sets the "poll message", otherwise a generic (unhelpful) error will be used.

Definition at line 1117 of file wm_event_system.cc.

References BKE_reportf(), C, CTX_IFACE_, CTX_wm_operator_poll_msg_clear(), CTX_wm_operator_poll_msg_get(), IFACE_, MEM_freeN(), ot, RPT_ERROR, and WM_operator_poll().

Referenced by paste_from_file_exec(), and WM_event_add().

◆ WM_operator_properties_alloc()

void WM_operator_properties_alloc ( PointerRNA ** ptr,
IDProperty ** properties,
const char * opstring )

◆ WM_operator_properties_border()

◆ WM_operator_properties_border_to_bounds()

blender::Bounds< blender::int2 > WM_operator_properties_border_to_bounds ( wmOperator * op)

◆ WM_operator_properties_border_to_rctf()

◆ WM_operator_properties_border_to_rcti()

◆ WM_operator_properties_checker_interval()

void WM_operator_properties_checker_interval ( wmOperatorType * ot,
bool nth_can_disable )
Parameters
nth_can_disableEnable if we want to be able to select no interval at all.

Definition at line 651 of file wm_operator_props.cc.

References min_ii(), ot, and RNA_def_int().

Referenced by CURVE_OT_select_nth(), MESH_OT_select_nth(), path_select_properties(), and path_select_properties().

◆ WM_operator_properties_checker_interval_from_op()

◆ WM_operator_properties_checker_interval_test()

◆ WM_operator_properties_clear()

void WM_operator_properties_clear ( PointerRNA * ptr)

Definition at line 850 of file wm_operators.cc.

References IDP_ClearProperty(), and ptr.

Referenced by WM_event_add(), and wm_macro_modal().

◆ WM_operator_properties_confirm_or_exec()

◆ WM_operator_properties_create()

◆ WM_operator_properties_create_ptr()

void WM_operator_properties_create_ptr ( PointerRNA * ptr,
wmOperatorType * ot )

Definition at line 737 of file wm_operators.cc.

References G_MAIN, ot, ptr, and RNA_pointer_create_discrete().

Referenced by bone_mouse_select_menu(), constraint_reorder(), blender::ed::asset::shelf::create_asset_operator_params(), file_browse_invoke(), file_directory_enter_handle(), file_external_operation_exec(), ghost_event_proc(), blender::ed::outliner::id_remap_fn(), image_file_browse_invoke(), blender::ed::outliner::lib_relocate(), blender::ed::space_node::link_drag_search_exec_fn(), menu_item_enum_opname_menu_active(), blender::seq::modifier_reorder(), modifier_reorder(), blender::ed::vse::move_strips(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_swap_group_asset_invoke(), object_mouse_select_menu(), uiLayout::op_enum(), uiLayout::op_menu_enum(), blender::ed::outliner::outliner_id_relocate_invoke(), blender::ed::outliner::outliner_item_drag_drop_invoke(), preferences_extension_url_drop_invoke(), pyop_call(), shaderfx_reorder(), blender::ed::transform::special_aftertrans_update__node(), toolsystem_ref_set_by_brush_type(), blender::ed::transform::transform_from_gizmo_invoke(), blender::ed::space_node::tree_path_handle_func(), ui_but_anim_decorate_cb(), ui_but_extra_operator_icon_add_ptr(), UI_but_operator_ptr_ensure(), ui_handle_menu_letter_press_search(), ui_pie_menu_level_invoke(), ui_tooltip_data_from_tool(), view3d_interactive_add_modal(), wm_drop_import_file_exec(), wm_dropbox_item_update_ot(), WM_event_add(), WM_gizmo_operator_set(), wm_keymap_item_properties_update_ot(), WM_menu_name_call(), WM_operator_properties_create(), WM_operator_pystring_ex(), WM_operator_type_set(), WM_operator_ui_poll(), WM_operatortype_props_advanced_end(), wm_recover_auto_save_exec(), wm_recover_last_session_impl(), wm_test_autorun_revert_action_exec(), WM_toolsystem_ref_set_by_id_ex(), and WM_xr_actionmap_item_properties_update_ot().

◆ WM_operator_properties_default()

bool WM_operator_properties_default ( PointerRNA * ptr,
bool do_update )

Set all props to their default.

Parameters
do_updateOnly update un-initialized props.
Note
There's nothing specific to operators here. This could be made a general function.

Definition at line 806 of file wm_operators.cc.

References PROP_POINTER, ptr, RNA_property_is_set(), RNA_property_pointer_get(), RNA_property_pointer_type(), RNA_property_reset(), RNA_property_type(), RNA_STRUCT_BEGIN, RNA_STRUCT_END, and WM_operator_properties_default().

Referenced by WM_event_add(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), WM_operator_properties_default(), and WM_operator_type_set().

◆ WM_operator_properties_filesel()

void WM_operator_properties_filesel ( wmOperatorType * ot,
int filter,
short type,
eFileSel_Action action,
eFileSel_Flag flag,
short display,
short sort )

Default properties for file-select.

Definition at line 65 of file wm_operator_props.cc.

References FILE_DEFAULTDISPLAY, FILE_HORIZONTALDISPLAY, FILE_IMGDISPLAY, FILE_LOADLIB, FILE_MAX, FILE_SAVE, FILE_SPECIAL, FILE_TYPE_ALEMBIC, FILE_TYPE_ARCHIVE, FILE_TYPE_BLENDER, FILE_TYPE_BLENDER_BACKUP, FILE_TYPE_BLENDERLIB, FILE_TYPE_BTX, FILE_TYPE_FOLDER, FILE_TYPE_FTFONT, FILE_TYPE_IMAGE, FILE_TYPE_MOVIE, FILE_TYPE_OBJECT_IO, FILE_TYPE_PYSCRIPT, FILE_TYPE_SOUND, FILE_TYPE_TEXT, FILE_TYPE_USD, FILE_TYPE_VOLUME, FILE_VERTICALDISPLAY, filter, flag, ot, PROP_HIDDEN, PROP_SKIP_PRESET, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_collection_runtime(), RNA_def_enum(), RNA_def_enum_funcs(), RNA_def_int(), RNA_def_property_flag(), RNA_def_string_dir_path(), RNA_def_string_file_name(), RNA_def_string_file_path(), rna_enum_dummy_NULL_items, sort(), WM_FILESEL_DIRECTORY, WM_FILESEL_FILENAME, WM_FILESEL_FILEPATH, WM_FILESEL_FILES, WM_FILESEL_RELPATH, WM_FILESEL_SHOW_PROPS, and wm_operator_properties_filesel_sort_items_itemf().

Referenced by blender::ed::asset::ASSET_OT_bundle_install(), blender::ed::sculpt_paint::BRUSH_OT_asset_load_preview(), BUTTONS_OT_directory_browse(), BUTTONS_OT_file_browse(), CACHEFILE_OT_layer_add(), CACHEFILE_OT_open(), CLIP_OT_open(), ED_OT_lib_id_load_custom_preview(), FILE_OT_find_missing_files(), FONT_OT_open(), FONT_OT_text_paste_from_file(), GRAPH_OT_sound_to_samples(), IMAGE_OT_file_browse(), IMAGE_OT_open(), IMAGE_OT_replace(), IMAGE_OT_save_as(), blender::ed::space_node::NODE_OT_add_image(), blender::ed::object::OBJECT_OT_empty_image_add(), blender::ed::object::OBJECT_OT_multires_external_save(), blender::ed::object::OBJECT_OT_volume_import(), PREFERENCES_OT_asset_library_add(), RIGIDBODY_OT_world_export(), screen_screenshot_impl(), blender::ed::vse::SEQUENCER_OT_change_path(), blender::ed::vse::SEQUENCER_OT_export_subtitles(), blender::ed::vse::SEQUENCER_OT_image_strip_add(), blender::ed::vse::SEQUENCER_OT_movie_strip_add(), blender::ed::vse::SEQUENCER_OT_sound_strip_add(), SOUND_OT_mixdown(), SOUND_OT_open(), SOUND_OT_open_mono(), TEXT_OT_open(), TEXT_OT_save_as(), WM_OT_append(), WM_OT_id_linked_relocate(), WM_OT_lib_reload(), WM_OT_lib_relocate(), WM_OT_link(), WM_OT_open_mainfile(), WM_OT_recover_auto_save(), WM_OT_save_as_mainfile(), and WM_OT_save_mainfile().

◆ WM_operator_properties_free()

void WM_operator_properties_free ( PointerRNA * ptr)

Definition at line 859 of file wm_operators.cc.

References IDP_FreeProperty(), and ptr.

Referenced by bone_mouse_select_menu(), constraint_reorder(), doc_view_manual_ui_context_exec(), file_browse_invoke(), file_directory_enter_handle(), file_external_operation_exec(), file_smoothscroll_invoke(), ghost_event_proc(), blender::ed::outliner::id_remap_fn(), image_file_browse_invoke(), blender::ed::outliner::lib_relocate(), blender::ed::space_node::link_drag_search_exec_fn(), blender::seq::modifier_reorder(), modifier_reorder(), blender::ed::vse::move_strips(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_render_changed_exec(), blender::ed::space_node::node_swap_group_asset_invoke(), object_mouse_select_menu(), blender::ed::asset::shelf::AssetViewItem::on_activate(), blender::ed::asset::shelf::AssetDragController::on_drag_start(), blender::ed::outliner::outliner_id_relocate_invoke(), blender::ed::outliner::outliner_item_drag_drop_invoke(), preferences_extension_url_drop_invoke(), pyop_as_string(), pyop_call(), shaderfx_reorder(), blender::ed::transform::special_aftertrans_update__node(), toolsystem_ref_set_by_brush_type(), blender::ed::transform::transform_from_gizmo_invoke(), blender::ed::space_node::tree_path_handle_func(), ui_apply_but_funcs_after(), ui_but_anim_decorate_cb(), ui_but_extra_operator_icon_free(), ui_but_free(), ui_tooltip_data_from_tool(), view3d_interactive_add_modal(), wm_drop_import_file_exec(), wm_drop_item_free_data(), WM_event_add(), WM_gizmo_free(), WM_gizmo_operator_set(), wm_handler_operator_call(), wm_keymap_item_free_data(), WM_keymap_item_properties_reset(), WM_keymap_remove_item(), WM_menu_name_call(), WM_operator_pystring_ex(), WM_operator_type_set(), wm_operatortype_free_macro(), wm_test_autorun_revert_action_set(), WM_toolsystem_ref_set_by_id_ex(), wm_xr_actionmap_item_properties_free(), and MenuSearch_Item::OperatorData::~OperatorData().

◆ WM_operator_properties_generic_select()

void WM_operator_properties_generic_select ( wmOperatorType * ot)

Selecting and tweaking items are overlapping operations. Getting both to work without conflicts requires special care. See https://wiki.blender.org/wiki/Human_Interface_Guidelines/Selection#Select-tweaking for the desired behavior.

For default click selection (with no modifier keys held), the select operators can do the following:

  • On a mouse press on an unselected item, change selection and finish immediately after. This sends an undo push and allows transform to take over should a click-drag event be caught.
  • On a mouse press on a selected item, don't change selection state, but start modal execution of the operator. Idea is that we wait with deselecting other items until we know that the intention wasn't to tweak (mouse press+drag) all selected items.
  • If a click-drag is recognized before the release event happens, cancel the operator, so that transform can take over and no undo-push is sent.
  • If the release event occurs rather than a click-drag one, deselect all items but the one under the cursor, and finish the modal operator.

This utility, together with WM_generic_select_invoke() and WM_generic_select_modal() should help getting the wanted behavior to work. Most generic logic should be handled in these, so that the select operators only have to care for the case dependent handling.

Every select operator has slightly different requirements, e.g. sequencer strip selection also needs to account for handle selection. This should be the baseline behavior though.

Definition at line 504 of file wm_operator_props.cc.

References ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_int(), and RNA_def_property_flag().

Referenced by ACTION_OT_clickselect(), FILE_OT_select(), GRAPH_OT_clickselect(), MARKER_OT_select(), NLA_OT_click_select(), blender::ed::vse::SEQUENCER_OT_select(), blender::ed::vse::SEQUENCER_OT_select_handle(), and UI_OT_view_item_select().

◆ WM_operator_properties_gesture_box()

◆ WM_operator_properties_gesture_box_ex()

void WM_operator_properties_gesture_box_ex ( wmOperatorType * ot,
bool deselect,
bool extend )

◆ WM_operator_properties_gesture_box_select()

void WM_operator_properties_gesture_box_select ( wmOperatorType * ot)

◆ WM_operator_properties_gesture_box_zoom()

◆ WM_operator_properties_gesture_circle()

◆ WM_operator_properties_gesture_lasso()

◆ WM_operator_properties_gesture_polyline()

◆ WM_operator_properties_gesture_straightline()

◆ WM_operator_properties_id_lookup()

void WM_operator_properties_id_lookup ( wmOperatorType * ot,
const bool add_name_prop )

Adds "name" and "session_uid" properties so the caller can tell the operator which ID to act on. See WM_operator_properties_id_lookup_from_name_or_session_uid(). Both properties will be hidden in the UI and not be saved over consecutive operator calls.

Note
New operators should probably use "session_uid" only (set add_name_prop to false), since this works properly with linked data and/or library overrides (in both cases, multiple IDs with the same name and type may be present). The "name" property is only kept to not break compatibility with old scripts using some previously existing operators.

Definition at line 271 of file wm_operator_props.cc.

References INT32_MAX, INT32_MIN, MAX_ID_NAME, ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_int(), RNA_def_property_flag(), and RNA_def_string().

Referenced by blender::ed::geometry::GEOMETRY_OT_execute_node_group(), blender::ed::space_node::NODE_OT_add_collection(), blender::ed::space_node::NODE_OT_add_group(), blender::ed::space_node::NODE_OT_add_image(), blender::ed::space_node::NODE_OT_add_mask(), blender::ed::space_node::NODE_OT_add_material(), blender::ed::space_node::NODE_OT_add_object(), blender::ed::object::OBJECT_OT_add_named(), blender::ed::object::OBJECT_OT_collection_external_asset_drop(), blender::ed::object::OBJECT_OT_collection_instance_add(), blender::ed::object::OBJECT_OT_data_instance_add(), blender::ed::object::OBJECT_OT_drop_named_material(), blender::ed::object::OBJECT_OT_empty_image_add(), blender::ed::object::OBJECT_OT_modifier_add_node_group(), SCENE_OT_drop_scene_asset(), blender::ed::object::bake_simulation::single_bake_operator_props(), UI_OT_drop_material(), VIEW3D_OT_camera_background_image_add(), and VIEW3D_OT_drop_world().

◆ WM_operator_properties_id_lookup_from_name_or_session_uid()

ID * WM_operator_properties_id_lookup_from_name_or_session_uid ( Main * bmain,
PointerRNA * ptr,
enum ID_Type type )

Tries to find an ID in bmain. There needs to be either a "session_uid" int or "name" string property defined and set. The former has priority. See WM_operator_properties_id_lookup() for a helper to add the properties.

Definition at line 246 of file wm_operator_props.cc.

References BKE_libblock_find_name(), BKE_libblock_find_session_uid(), MAX_ID_NAME, name, ptr, RNA_property_int_get(), RNA_property_is_set(), RNA_property_string_get(), and RNA_struct_find_property().

Referenced by blender::ed::object::bake_simulation::bake_single_node_gather_bake_request(), blender::ed::object::collection_add_info_get_from_op(), blender::ed::object::bake_simulation::delete_single_bake_exec(), blender::ed::object::drop_named_material_invoke(), drop_scene_asset_exec(), drop_world_exec(), blender::ed::geometry::get_asset_or_local_node_group(), blender::ed::object::get_asset_or_local_node_group(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_material_exec(), blender::ed::space_node::node_add_object_exec(), blender::ed::object::object_add_named_exec(), blender::ed::object::object_data_instance_add_exec(), blender::ed::object::object_transform_to_mouse_exec(), blender::ed::object::bake_simulation::pack_single_bake_exec(), blender::ed::geometry::run_node_group_depends_on_cursor(), ui_drop_material_exec(), blender::ed::object::bake_simulation::unpack_single_bake_exec(), WM_drag_free_imported_drag_ID(), and WM_operator_drop_load_path().

◆ WM_operator_properties_id_lookup_is_set()

bool WM_operator_properties_id_lookup_is_set ( PointerRNA * ptr)

Check if either the "session_uid" or "name" property is set inside ptr. If this is the case the ID can be looked up by WM_operator_properties_id_lookup_from_name_or_session_uid().

Definition at line 266 of file wm_operator_props.cc.

References ptr, and RNA_struct_property_is_set().

Referenced by blender::ed::space_node::node_add_image_invoke(), blender::ed::object::object_image_add_invoke(), blender::ed::object::object_instance_add_invoke(), and WM_operator_drop_load_path().

◆ WM_operator_properties_id_lookup_set_from_id()

void WM_operator_properties_id_lookup_set_from_id ( PointerRNA * ptr,
const ID * id )

Tries to pass id to an operator via either a "session_uid" or a "name" property defined in the properties of ptr. The former is preferred, since it works properly with linking and library overrides (which may both result in multiple IDs with the same name and type).

Also see WM_operator_properties_id_lookup() and WM_operator_properties_id_lookup_from_name_or_session_uid()

Definition at line 230 of file wm_operator_props.cc.

References BLI_assert_unreachable, ID::name, ptr, RNA_int_set(), RNA_string_set(), RNA_struct_find_property(), and ID::session_uid.

Referenced by blender::ed::geometry::catalog_assets_draw_unassigned(), blender::nodes::draw_bake_button_row(), blender::ed::object::unassigned_assets_draw(), view3d_id_drop_copy(), view3d_id_drop_copy_with_type(), and view3d_id_path_drop_copy().

◆ WM_operator_properties_mouse_select()

◆ WM_operator_properties_reset()

◆ WM_operator_properties_sanitize()

◆ WM_operator_properties_select_action()

void WM_operator_properties_select_action ( wmOperatorType * ot,
int default_action,
bool hide_gui )

◆ WM_operator_properties_select_action_simple()

void WM_operator_properties_select_action_simple ( wmOperatorType * ot,
int default_action,
bool hide_gui )

Only for select/de-select.

Definition at line 324 of file wm_operator_props.cc.

References ot, SEL_DESELECT, SEL_SELECT, and wm_operator_properties_select_action_ex().

Referenced by WM_operator_properties_select_random().

◆ WM_operator_properties_select_all()

◆ WM_operator_properties_select_operation()

void WM_operator_properties_select_operation ( wmOperatorType * ot)

◆ WM_operator_properties_select_operation_simple()

◆ WM_operator_properties_select_random()

◆ WM_operator_properties_select_random_seed_increment_get()

◆ WM_operator_properties_select_walk_direction()

◆ WM_operator_properties_use_cursor_init()

void WM_operator_properties_use_cursor_init ( wmOperatorType * ot)

Disable using cursor position, use when view operators are initialized from buttons.

Definition at line 440 of file wm_operator_props.cc.

References ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), and RNA_def_property_flag().

Referenced by CLIP_OT_view_zoom(), IMAGE_OT_view_zoom(), VIEW2D_OT_zoom(), and view3d_operator_properties_common().

◆ WM_operator_props_dialog_popup()

wmOperatorStatus WM_operator_props_dialog_popup ( bContext * C,
wmOperator * op,
int width,
std::optional< std::string > title = std::nullopt,
std::optional< std::string > confirm_text = std::nullopt,
bool cancel_default = false,
std::optional< std::string > message = std::nullopt )

◆ WM_operator_props_popup()

◆ WM_operator_props_popup_call()

wmOperatorStatus WM_operator_props_popup_call ( bContext * C,
wmOperator * op,
const wmEvent * event )

Same as WM_operator_props_popup but call the operator first, This way - the button values correspond to the result of the operator. Without this, first access to a button will make the result jump, see #32452.

Definition at line 1875 of file wm_operators.cc.

References C, and wm_operator_props_popup_ex().

Referenced by UV_OT_pack_islands(), and WM_event_add().

◆ WM_operator_props_popup_confirm()

wmOperatorStatus WM_operator_props_popup_confirm ( bContext * C,
wmOperator * op,
const wmEvent * event )

Invoke callback, exec + redo popup.

Same as WM_operator_props_popup but don't use operator redo. just wraps WM_operator_props_dialog_popup.

Definition at line 1868 of file wm_operators.cc.

References C, and wm_operator_props_popup_ex().

Referenced by WM_event_add().

◆ WM_operator_props_popup_confirm_ex()

◆ WM_operator_py_idname()

size_t size_t WM_operator_py_idname ( char * dst,
const char * src )

Convert: SOME_OT_op -> some.op or leave as-is.

Returns
the length of dst.

References C, ot, and ptr.

◆ WM_operator_py_idname_ok_or_report()

size_t size_t bool WM_operator_py_idname_ok_or_report ( ReportList * reports,
const char * classname,
const char * idname )

Sanity check to ensure WM_operator_bl_idname won't fail.

Returns
true when there are no problems with idname, otherwise report an error.

Definition at line 198 of file wm_operators.cc.

References BKE_reportf(), dot(), i, OP_MAX_PY_IDNAME, and RPT_ERROR.

◆ WM_operator_pystring()

std::string WM_operator_pystring ( bContext * C,
wmOperator * op,
bool all_args,
bool macro_args )

◆ WM_operator_pystring_abbreviate()

std::string WM_operator_pystring_abbreviate ( std::string str,
int str_len_max )

Definition at line 333 of file wm_operators.cc.

References str.

Referenced by ui_tooltip_text_python_from_op().

◆ WM_operator_pystring_ex()

std::string WM_operator_pystring_ex ( bContext * C,
wmOperator * op,
bool all_args,
bool macro_args,
wmOperatorType * ot,
PointerRNA * opptr )

Operator as a Python command.

Return a string representation of the operator, with the arguments that it runs so Python can run it again.

When calling from an existing wmOperator, better to use simple version: WM_operator_pystring(C, op);

Note
Both op and opptr may be NULL (op is only used for macro operators).

Definition at line 255 of file wm_operators.cc.

References C, ListBase::first, wmOperatorType::idname, wmOperator::macro, wmOperator::next, OP_MAX_TYPENAME, ot, wmOperator::ptr, RNA_pointer_as_string_id(), RNA_pointer_as_string_keywords(), wmOperator::type, WM_operator_properties_create_ptr(), WM_operator_properties_free(), and WM_operator_py_idname().

Referenced by copy_python_command_button_exec(), pyop_as_string(), ui_but_copy_operator(), ui_layout_introspect_button(), ui_tooltip_text_python_from_op(), and WM_operator_pystring().

◆ WM_operator_redo_popup()

◆ WM_operator_region_active_win_set()

void WM_operator_region_active_win_set ( bContext * C)

Sets the active region for this space from the context.

See also
BKE_area_find_region_active_win

Definition at line 1177 of file wm_event_system.cc.

References BLI_findindex(), C, CTX_wm_area(), CTX_wm_region(), ScrArea::region_active_win, ScrArea::regionbase, ARegion::regiontype, and RGN_TYPE_WINDOW.

Referenced by wm_operator_finished().

◆ WM_operator_repeat()

wmOperatorStatus WM_operator_repeat ( bContext * C,
wmOperator * op )

Execute this operator again, put here so it can share above code

Definition at line 1447 of file wm_event_system.cc.

References C, wmOperator::flag, OP_IS_REPEAT, ret, and wm_operator_exec().

Referenced by ED_undo_operator_repeat(), repeat_history_exec(), wm_block_redo_cb(), and WM_event_add().

◆ WM_operator_repeat_check()

bool WM_operator_repeat_check ( const bContext * C,
wmOperator * op )
Returns
true if WM_operator_repeat can run. Simple check for now but may become more involved. To be sure the operator can run call WM_operator_poll(C, op->type) also, since this call checks if WM_operator_repeat() can run at all, not that it WILL run at any time.

Definition at line 1463 of file wm_event_system.cc.

References wmOperatorType::exec, LISTBASE_FOREACH, wmOperatorType::macro, wmOperator::opm, wmOperator::type, and WM_operatortype_find().

Referenced by ED_undo_operator_repeat(), last_redo_poll(), repeat_history_invoke(), template_operator_property_buts_draw_single(), uiTemplateOperatorRedoProperties(), and WM_event_add().

◆ WM_operator_repeat_last()

wmOperatorStatus WM_operator_repeat_last ( bContext * C,
wmOperator * op )

Definition at line 1455 of file wm_event_system.cc.

References C, wmOperator::flag, OP_IS_REPEAT_LAST, ret, and wm_operator_exec().

Referenced by repeat_last_exec(), and WM_event_add().

◆ WM_operator_smooth_viewtx_get()

◆ WM_operator_stack_clear()

◆ WM_operator_type_modal_from_exec_for_object_edit_coords()

void WM_operator_type_modal_from_exec_for_object_edit_coords ( wmOperatorType * ot)

Allow an operator with only and execute function to run modally, re-doing the action, using vertex coordinate store/restore instead of operator undo.

Definition at line 324 of file wm_operator_utils.cc.

References BLI_assert, op_generic_value_cancel(), op_generic_value_invoke(), op_generic_value_modal(), ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), and RNA_def_property_flag().

Referenced by MESH_OT_vertices_smooth(), and blender::ed::object::TRANSFORM_OT_vertex_random().

◆ WM_operator_type_set()

void WM_operator_type_set ( wmOperator * op,
wmOperatorType * ot )

Use with extreme care! Properties, custom-data etc - must be compatible.

Parameters
opOperator to assign the type to.
otOperator type to assign.

Definition at line 305 of file wm.cc.

References BLI_assert, IDP_SyncGroupTypes(), ot, wmOperator::properties, ptr, wmOperator::ptr, wmOperator::py_instance, PointerRNA::type, wmOperator::type, WM_operator_properties_create_ptr(), WM_operator_properties_default(), and WM_operator_properties_free().

Referenced by blender::ed::transform::transform_modal(), view3d_navigate_modal_fn(), and WM_event_add().

◆ WM_operator_ui_poll()

◆ WM_operator_ui_popup()

wmOperatorStatus WM_operator_ui_popup ( bContext * C,
wmOperator * op,
int width )

◆ WM_operator_view3d_unit_defaults()

◆ WM_operator_winactive()

◆ WM_operatortype_append()

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

Definition at line 149 of file wm_operator_type.cc.

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

Referenced by action_operatortypes(), buttons_operatortypes(), clip_operatortypes(), blender::ed::object::collection_exporter_register(), console_operatortypes(), ED_operatortypes_anim(), ED_operatortypes_animchannels(), ED_operatortypes_armature(), ED_operatortypes_curve(), blender::ed::curves::ED_operatortypes_curves_pen(), ED_operatortypes_edutils(), ED_operatortypes_gpencil_legacy(), ED_operatortypes_grease_pencil_bake_animation(), ED_operatortypes_grease_pencil_draw(), ED_operatortypes_grease_pencil_edit(), ED_operatortypes_grease_pencil_frames(), ED_operatortypes_grease_pencil_interpolate(), ED_operatortypes_grease_pencil_join(), ED_operatortypes_grease_pencil_layers(), ED_operatortypes_grease_pencil_lineart(), ED_operatortypes_grease_pencil_material(), ED_operatortypes_grease_pencil_modes(), ED_operatortypes_grease_pencil_pen(), ED_operatortypes_grease_pencil_primitives(), ED_operatortypes_grease_pencil_select(), ED_operatortypes_grease_pencil_trace(), ED_operatortypes_grease_pencil_vertex_paint(), ED_operatortypes_grease_pencil_weight_paint(), ED_operatortypes_io(), ED_operatortypes_lattice(), ED_operatortypes_marker(), ED_operatortypes_mask(), ED_operatortypes_mesh(), ED_operatortypes_metaball(), ED_operatortypes_paint(), ED_operatortypes_render(), ED_operatortypes_scene(), ED_operatortypes_screen(), 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(), blender::nodes::socket_items::ops::make_common_operators(), nla_operatortypes(), blender::nodes::node_geo_index_switch_cc::node_operators(), blender::ed::space_node::node_operatortypes(), blender::ed::object::object_modifier_add_asset_register(), blender::ed::asset::operatortypes_asset(), operatortypes_boids(), blender::ed::curves::operatortypes_curves(), operatortypes_dynamicpaint(), operatortypes_fluid(), blender::ed::geometry::operatortypes_geometry(), blender::ed::object::operatortypes_object(), operatortypes_particle(), operatortypes_pointcache(), blender::ed::pointcloud::operatortypes_pointcloud(), blender::ed::sculpt_paint::operatortypes_sculpt(), blender::ed::outliner::outliner_operatortypes(), script_operatortypes(), blender::ed::vse::sequencer_operatortypes(), blender::ed::spreadsheet::spreadsheet_operatortypes(), text_operatortypes(), blender::ed::transform::transform_operatortypes(), view3d_operatortypes(), wm_operatortypes_register(), and wm_xr_operatortypes_register().

◆ WM_operatortype_append_macro()

◆ WM_operatortype_append_macro_ptr()

◆ WM_operatortype_append_ptr()

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

◆ WM_operatortype_description()

std::string WM_operatortype_description ( bContext * C,
wmOperatorType * ot,
PointerRNA * properties )

◆ WM_operatortype_description_or_name()

std::string WM_operatortype_description_or_name ( bContext * C,
wmOperatorType * ot,
PointerRNA * properties )

Use when we want a label, preferring the description.

Definition at line 619 of file wm_operator_type.cc.

References C, 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 78 of file wm_operator_type.cc.

References CLOG_INFO, get_operators_map(), OP_MAX_TYPENAME, ot, WM_LOG_OPERATORS, and WM_operator_bl_idname().

Referenced by add_driver_button_menu_exec(), bone_mouse_select_menu(), blender::ed::geometry::catalog_assets_draw(), blender::ed::object::catalog_assets_draw(), blender::ed::geometry::catalog_assets_draw_unassigned(), blender::ed::object::collection_exporter_add_exec(), blender::ed::object::collection_exporter_export(), blender::ed::object::collection_exporter_menu_draw(), constraint_reorder(), blender::ed::asset::shelf::create_asset_operator_params(), doc_view_manual_ui_context_exec(), drop_import_file_poll_file_handlers(), drop_import_file_tooltip(), file_browse_invoke(), file_directory_enter_handle(), file_draw_invalid_asset_library_hint(), file_external_operation_exec(), file_os_operations_menu_draw(), ghost_event_proc(), blender::ed::transform::gizmo2d_resize_setup(), blender::ed::transform::gizmo2d_rotate_setup(), blender::ed::transform::gizmo2d_xform_setup(), blender::ed::transform::gizmo_mesh_extrude_setup(), gizmo_mesh_spin_init_setup(), gizmo_mesh_spin_redo_setup(), blender::ed::transform::gizmogroup_init_properties_from_twtype(), blender::ed::outliner::id_remap_fn(), image_file_browse_invoke(), is_brush_related_tool(), keymap_handler_log_kmi_op_str(), blender::ed::outliner::lib_reload_fn(), blender::ed::outliner::lib_relocate_fn(), blender::ed::space_node::link_drag_search_exec_fn(), menu_item_enum_opname_menu_active(), blender::ed::object::mode_compat_set(), blender::ed::object::mode_set_ex(), blender::seq::modifier_reorder(), modifier_reorder(), blender::ed::vse::move_strips(), blender::ed::object::move_to_collection_menu_draw(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_draw_basis(), blender::ed::space_node::node_swap_group_asset_invoke(), object_mouse_select_menu(), uiLayout::op(), uiLayout::op_enum(), uiLayout::op_menu_enum(), ot_lookup_from_py_string(), blender::ed::outliner::outliner_id_relocate_invoke(), blender::ed::outliner::outliner_item_drag_drop_invoke(), blender::ed::outliner::outliner_lib_relocate_invoke_do(), blender::ed::outliner::outliner_operator_menu(), panel_activate_state(), preferences_extension_url_drop_invoke(), pyop_as_string(), pyop_call(), pyop_poll(), PYOP_wrap_macro_define(), screen_user_menu_draw(), shaderfx_reorder(), blender::ed::transform::special_aftertrans_update__node(), template_operator_property_buts_draw_single(), toolsystem_ref_set_by_brush_type(), blender::ed::transform::transform_from_gizmo_invoke(), blender::ed::transform::transform_modal(), blender::ed::space_node::tree_path_handle_func(), 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_handle_menu_letter_press_search(), ui_popup_context_menu_for_button(), uiDefButO(), uiDefIconButO(), uiDefIconTextButO(), uiTemplateCollectionExporters(), uiTemplateEditModeSelection(), blender::ed::object::unassigned_assets_draw(), unpack_menu(), view3d_interactive_add_modal(), view3d_navigate_modal_fn(), view3d_panel_vgroup(), weight_sample_group_invoke(), WIDGETGROUP_light_target_setup(), WIDGETGROUP_navigate_setup(), WIDGETGROUP_navigate_setup(), WIDGETGROUP_ruler_setup(), blender::ed::transform::WIDGETGROUP_xform_cage_setup(), blender::ed::transform::WIDGETGROUP_xform_shear_setup(), wm_drop_import_file_exec(), wm_drop_import_file_invoke(), WM_dropbox_add(), wm_dropbox_item_update_ot(), 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_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_operator_ui_poll(), 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_idname_visit_for_search()

void WM_operatortype_idname_visit_for_search ( const bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
const char * edit_text,
blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn )

◆ WM_operatortype_last_properties_clear_all()

void WM_operatortype_last_properties_clear_all ( )

Remove memory of all previously executed tools.

Definition at line 264 of file wm_operator_type.cc.

References get_operators_map(), IDP_FreeProperty(), and ot.

Referenced by wm_file_read_post().

◆ WM_operatortype_macro_define()

◆ WM_operatortype_name()

◆ WM_operatortype_props_advanced_begin()

void WM_operatortype_props_advanced_begin ( wmOperatorType * ot)

Tag all operator-properties of ot defined after calling this, until the next WM_operatortype_props_advanced_end call (if available), with OP_PROP_TAG_ADVANCED. Previously defined ones properties not touched.

Calling this multiple times without a call to WM_operatortype_props_advanced_end, all calls after the first one are ignored. Meaning all proprieties defined after the first call are tagged as advanced.

This doesn't do the actual tagging, WM_operatortype_props_advanced_end does which is called for all operators during registration (see wm_operatortype_append__end).

Definition at line 233 of file wm_operator_type.cc.

References ot, ot_prop_basic_count, and RNA_struct_count_properties().

Referenced by MESH_OT_loopcut(), MESH_OT_mark_seam(), MESH_OT_merge(), MESH_OT_subdivide(), MESH_OT_vertices_smooth(), MESH_OT_vertices_smooth_laplacian(), blender::ed::transform::TRANSFORM_OT_bbone_resize(), blender::ed::transform::TRANSFORM_OT_bend(), blender::ed::transform::TRANSFORM_OT_create_orientation(), blender::ed::transform::TRANSFORM_OT_edge_bevelweight(), blender::ed::transform::TRANSFORM_OT_edge_crease(), blender::ed::transform::TRANSFORM_OT_edge_slide(), blender::ed::transform::TRANSFORM_OT_push_pull(), blender::ed::transform::TRANSFORM_OT_resize(), blender::ed::transform::TRANSFORM_OT_rotate(), blender::ed::transform::TRANSFORM_OT_seq_slide(), blender::ed::transform::TRANSFORM_OT_shear(), blender::ed::transform::TRANSFORM_OT_shrink_fatten(), blender::ed::transform::TRANSFORM_OT_skin_resize(), blender::ed::transform::TRANSFORM_OT_tilt(), blender::ed::transform::TRANSFORM_OT_tosphere(), blender::ed::transform::TRANSFORM_OT_trackball(), blender::ed::transform::TRANSFORM_OT_transform(), blender::ed::transform::TRANSFORM_OT_translate(), blender::ed::transform::TRANSFORM_OT_vert_crease(), and blender::ed::transform::TRANSFORM_OT_vert_slide().

◆ WM_operatortype_props_advanced_end()

void WM_operatortype_props_advanced_end ( 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 241 of file wm_operator_type.cc.

References 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 194 of file wm_operator_type.cc.

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

◆ WM_operatortype_remove_ptr()

◆ WM_operatortypes_registered_get()

blender::Span< wmOperatorType * > WM_operatortypes_registered_get ( )

◆ WM_paint_cursor_activate()

◆ WM_paint_cursor_end()

◆ WM_paint_cursor_remove_by_type()

void WM_paint_cursor_remove_by_type ( wmWindowManager * wm,
void * draw_fn,
void(* free )(void *) )

◆ WM_paint_cursor_tag_redraw()

◆ WM_paneltype_add()

◆ WM_paneltype_clear()

void WM_paneltype_clear ( )

Definition at line 74 of file wm_panel_type.cc.

References get_panel_type_map().

Referenced by WM_exit_ex().

◆ WM_paneltype_find()

◆ WM_paneltype_idname_visit_for_search()

void WM_paneltype_idname_visit_for_search ( const bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
const char * edit_text,
blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn )

◆ WM_paneltype_init()

void WM_paneltype_init ( )

Called on initialize WM_init().

Definition at line 68 of file wm_panel_type.cc.

References get_panel_type_map().

Referenced by WM_init().

◆ WM_paneltype_remove()

void WM_paneltype_remove ( PanelType * pt)

Definition at line 61 of file wm_panel_type.cc.

References BLI_assert, get_panel_type_map(), and UNUSED_VARS_NDEBUG.

◆ WM_platform_associate_set()

◆ WM_progress_clear()

void WM_progress_clear ( wmWindow * win)

Definition at line 2673 of file wm_window.cc.

References GHOST_EndProgressBar(), and wmWindow::ghostwin.

Referenced by redraw_timer_exec(), and wm_jobs_update_progress_bars().

◆ WM_progress_set()

void WM_progress_set ( wmWindow * win,
float progress )

Definition at line 2665 of file wm_window.cc.

References GHOST_SetProgressBar(), and wmWindow::ghostwin.

Referenced by redraw_timer_step(), and wm_jobs_update_progress_bars().

◆ WM_prop_pystring_assign()

std::optional< std::string > WM_prop_pystring_assign ( bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
int index )

◆ WM_redraw_windows()

void WM_redraw_windows ( bContext * C)

High level function to redraw windows.

Warning
this should be avoided by operators and low-level IO functionality because drawing relies on the event system & depsgraph preparing data for display. An explicit call to draw is error prone since it may attempt to show stale data.

With some rare exceptions which require a redraw (e.g. screen-shot & sample screen color) explicitly redrawing should be avoided, see: #92704, #93950, #97627 & #98462.

Definition at line 1695 of file wm_draw.cc.

References C, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_window(), CTX_wm_window_set(), and wm_draw_update().

Referenced by sample_color_exec(), sample_color_invoke(), and screenshot_data_create().

◆ WM_region_use_viewport()

bool WM_region_use_viewport ( ScrArea * area,
ARegion * region )

◆ WM_reinit_gizmomap_all()

◆ WM_report_banner_show()

◆ WM_report_banners_cancel()

void WM_report_banners_cancel ( Main * bmain)

Hide all currently displayed banners and abort their timer.

Definition at line 1010 of file wm_event_system.cc.

References BKE_reports_clear(), ListBase::first, wmWindowManager::runtime, Main::wm, and WM_event_timer_remove().

Referenced by fluid_bake_exec(), fluid_bake_invoke(), and fluid_free_exec().

◆ WM_reports_from_reports_move()

void WM_reports_from_reports_move ( wmWindowManager * wm,
ReportList * reports )

Move a whole list of reports to the WM ReportList, and show the banner.

Note
In case the given reports is a nullptr, or has its RPT_OP_HOLD flag set, this function does nothing.
The list of reports from given reports is moved into the list of WM's reports, so the given reports will be empty after calling this function. The reports ReportList data itself is not freed or cleared though, and remains fully usable after this call.

\params reports The ReportList from which to move reports to the WM one, may be nullptr. \params wm the WindowManager to add given reports to. If nullptr, the first WM of current G_MAIN will be used.

Definition at line 1024 of file wm_event_system.cc.

References BKE_reports_move_to_reports(), BLI_listbase_is_empty(), ReportList::flag, G_MAIN, ReportList::list, RPT_OP_HOLD, wmWindowManager::runtime, and WM_report_banner_show().

Referenced by handle_load_file(), blender::io::hydra::USDSceneDelegate::populate(), WM_global_report(), wm_handler_fileselect_do(), wm_handler_operator_call(), wm_jobs_reports_update(), and wm_operator_reports().

◆ WM_script_tag_reload()

void WM_script_tag_reload ( )

Needed for cases when operators are re-registered (when operator type pointers are stored).

Definition at line 703 of file wm_init_exit.cc.

References UI_interface_tag_script_reload(), and WM_gizmoconfig_update_tag_reinit_all().

◆ WM_stereo3d_enabled()

◆ WM_system_gpu_context_activate()

◆ WM_system_gpu_context_create()

◆ WM_system_gpu_context_dispose()

◆ WM_system_gpu_context_release()

◆ WM_tooltip_clear()

◆ WM_tooltip_immediate_init()

◆ WM_tooltip_init()

◆ WM_tooltip_refresh()

◆ WM_tooltip_time_closed()

double WM_tooltip_time_closed ( )

Definition at line 24 of file wm_tooltip.cc.

References g_tooltip_time_closed.

Referenced by button_activate_init().

◆ WM_tooltip_timer_clear()

◆ WM_tooltip_timer_init()

void WM_tooltip_timer_init ( bContext * C,
wmWindow * win,
ScrArea * area,
ARegion * region,
wmTooltipInitFn init )

Definition at line 64 of file wm_tooltip.cc.

References C, init(), UI_TOOLTIP_DELAY, and WM_tooltip_timer_init_ex().

Referenced by ui_searchbox_event(), and wm_handlers_do_gizmo_handler().

◆ WM_tooltip_timer_init_ex()

◆ WM_uilisttype_add()

◆ WM_uilisttype_find()

uiListType * WM_uilisttype_find ( blender::StringRef idname,
bool quiet )

◆ WM_uilisttype_free()

void WM_uilisttype_free ( )

Definition at line 141 of file wm_uilist_type.cc.

References get_list_type_map(), and MEM_freeN().

Referenced by WM_exit_ex().

◆ WM_uilisttype_init()

void WM_uilisttype_init ( )

Called on initialize WM_init()

Definition at line 136 of file wm_uilist_type.cc.

References get_list_type_map().

Referenced by WM_init().

◆ WM_uilisttype_list_id_get()

const char * WM_uilisttype_list_id_get ( const uiListType * ult,
uiList * list )

Get the "non-full" list-ID, see WM_uilisttype_to_full_list_id() for details.

Note
Assumes uiList.list_id was set using WM_uilisttype_to_full_list_id()!

Definition at line 161 of file wm_uilist_type.cc.

References BLI_assert, uiListType::idname, and uiList::list_id.

◆ WM_uilisttype_remove_ptr()

void WM_uilisttype_remove_ptr ( Main * bmain,
uiListType * ult )

◆ WM_uilisttype_to_full_list_id()

void WM_uilisttype_to_full_list_id ( const uiListType * ult,
const char * list_id,
char r_full_list_id[] )

The "full" list-ID is an internal name used for storing and identifying a list. It is built like this: {uiListType.idname}_{list_id}, whereby list_id is an optional parameter passed to UILayout.template_list(). If it is not set, the full list-ID is just {uiListType.idname}_.

Note that whenever the Python API refers to the list-ID, it's the short, "non-full" one it passed to UILayout.template_list(). C code can query that through WM_uilisttype_list_id_get().

Definition at line 153 of file wm_uilist_type.cc.

References BLI_snprintf_utf8(), uiListType::idname, and UI_MAX_NAME_STR.

Referenced by ui_list_ensure().

◆ WM_userdef_event_map()

int WM_userdef_event_map ( int kmitype)

Event map that takes preferences into account.

Definition at line 479 of file wm_event_query.cc.

References U, USER_WHEELZOOMDIR, WHEELDOWNMOUSE, WHEELINMOUSE, WHEELOUTMOUSE, and WHEELUPMOUSE.

Referenced by wm_eventmatch(), and WM_keymap_item_compare().

◆ WM_userdef_event_type_from_keymap_type()

◆ WM_window_cursor_keymap_status_get()

const char * WM_window_cursor_keymap_status_get ( const wmWindow * win,
int button_index,
int type_index )

Definition at line 6607 of file wm_event_system.cc.

References wmWindow::cursor_keymap_status, and CursorKeymapInfo::text.

Referenced by uiTemplateInputStatus().

◆ WM_window_cursor_keymap_status_refresh()

void WM_window_cursor_keymap_status_refresh ( bContext * C,
wmWindow * win )

◆ WM_window_decoration_style_apply()

void WM_window_decoration_style_apply ( const wmWindow * win,
const bScreen * screen = nullptr )

Apply the window decoration style using the current style flags and by parsing style settings from the current Blender theme. The screen parameter is optional, and can be passed for enhanced theme parsing.

Note
Avoid calling this function directly, prefer sending an NC_WINDOW notification when WM_CAPABILITY_WINDOW_DECORATION_STYLES is supported instead.

Definition at line 776 of file wm_window.cc.

References BLI_assert, GHOST_ApplyWindowDecorationStyle(), wmWindow::ghostwin, WM_capabilities_flag(), WM_CAPABILITY_WINDOW_DECORATION_STYLES, and wm_window_decoration_style_set_from_theme().

Referenced by ED_screen_do_listen(), and wm_window_ghostwindow_ensure().

◆ WM_window_decoration_style_flags_get()

eWM_WindowDecorationStyleFlag WM_window_decoration_style_flags_get ( const wmWindow * win)

◆ WM_window_decoration_style_flags_set()

◆ WM_window_dpi_get_scale()

float WM_window_dpi_get_scale ( const wmWindow * win)

Return the windows DPI as a scale, bypassing UI scale preference.

Note
Use for calculating cursor size which doesn't use the UI scale.

Definition at line 700 of file wm_window.cc.

References float, GHOST_GetDPIHint(), GHOST_GetNativePixelSize(), wmWindow::ghostwin, and OS_MAC.

Referenced by wm_cursor_size(), and wm_software_cursor_draw().

◆ WM_window_dpi_set_userdef()

◆ WM_window_ensure_active_view_layer()

void WM_window_ensure_active_view_layer ( wmWindow * win)

◆ WM_window_find_by_area()

wmWindow * WM_window_find_by_area ( wmWindowManager * wm,
const ScrArea * area )

Knowing the area, return its screen.

Note
This should typically be avoided, only use when the context is not available.

Definition at line 2777 of file wm_window.cc.

References bScreen::areabase, BLI_findindex(), LISTBASE_FOREACH, wmWindowManager::windows, and WM_window_get_active_screen().

Referenced by area_join_init(), area_join_update_data(), graph_init(), and nla_init().

◆ WM_window_find_under_cursor()

◆ WM_window_get_active_layout()

◆ WM_window_get_active_scene()

Scene * WM_window_get_active_scene ( const wmWindow * win)

Definition at line 3040 of file wm_window.cc.

References wmWindow::scene.

Referenced by buttons_context_path(), buttons_shading_context(), buttons_shading_new_context(), do_versions_after_linking_500(), ED_area_init(), ED_area_newspace(), ED_area_offscreen_create(), ED_editors_init_for_undo(), ED_scene_add(), ED_screen_exit(), ED_screen_scene_find_with_window(), ED_view3d_gizmo_ruler_remove_by_gpencil_layer(), find_area_showing_render_result(), graph_init(), image_listener(), nla_init(), blender::ed::object::object_delete_exec(), RE_FreeUnusedGPUResources(), screen_change_update(), screen_ctx_active_annotation_layer(), screen_ctx_active_bone(), screen_ctx_active_object(), screen_ctx_active_pose_bone(), screen_ctx_annotation_data(), screen_ctx_annotation_data_owner(), screen_ctx_edit_object(), screen_ctx_editable_objects(), screen_ctx_grease_pencil_data(), screen_ctx_image_paint_object(), screen_ctx_object(), screen_ctx_objects_in_mode(), screen_ctx_objects_in_mode_unique_data(), screen_ctx_particle_edit_object(), screen_ctx_pose_object(), screen_ctx_scene(), screen_ctx_sculpt_object(), screen_ctx_selectable_objects(), screen_ctx_selected_bones_(), screen_ctx_selected_editable_objects(), screen_ctx_selected_objects(), screen_ctx_selected_pose_bones(), screen_ctx_selected_pose_bones_from_active_object(), screen_ctx_vertex_paint_object(), screen_ctx_visible_objects(), screen_ctx_visible_or_editable_bones_(), screen_ctx_visible_pose_bones(), screen_ctx_weight_paint_object(), screen_global_area_refresh(), sound_jack_sync_callback(), blender::ed::vse::sync_active_scene_and_time_with_scene_strip(), toolsystem_brush_activate_from_toolref_for_object_paint(), toolsystem_brush_activate_from_toolref_for_object_particle(), toolsystem_brush_clear_paint_reference(), toolsystem_refresh_screen_from_active_tool(), blender::ed::outliner::tree_element_viewlayer_activate(), view3d_main_region_cursor(), wm_draw_area_offscreen(), wm_draw_region_test(), wm_draw_update_test_window(), wm_draw_window(), wm_draw_window_offscreen(), wm_event_do_depsgraph(), wm_event_do_handlers(), wm_event_do_notifiers(), WM_event_handler_region_marker_poll(), WM_event_handler_region_v2d_mask_no_marker_poll(), WM_stereo3d_enabled(), WM_toolsystem_do_msg_notify_tag_refresh(), WM_toolsystem_ref_sync_from_context(), WM_toolsystem_refresh_active(), WM_toolsystem_refresh_screen_window(), WM_toolsystem_reinit_all(), WM_window_cursor_keymap_status_refresh(), WM_window_ensure_active_view_layer(), WM_window_get_active_view_layer(), WM_window_open(), WM_window_pixels_read_from_offscreen(), WM_window_set_active_view_layer(), WM_windows_scene_data_sync(), WM_windows_scene_get_from_screen(), wm_xr_session_scene_and_depsgraph_get(), workspace_exit(), and workspace_scene_pinning_update().

◆ WM_window_get_active_screen()

bScreen * WM_window_get_active_screen ( const wmWindow * win)

Get the active screen of the active workspace in win.

Definition at line 3158 of file wm_window.cc.

References BKE_workspace_active_screen_get(), LIKELY, WM_window_get_active_workspace(), and wmWindow::workspace_hook.

Referenced by actionzone_area_poll(), area_docking_apply(), area_join_dock_cb_window(), area_join_modal(), bpy_rna_context_temp_override_enter(), bpy_rna_context_temp_override_enter_ok_or_error(), bpy_rna_context_temp_override_exit(), bpy_rna_context_temp_set_screen_for_window(), button_activate_init(), button_tooltip_timer_reset(), context_find_graph_editor(), ED_area_find_under_cursor(), ED_area_swapspace(), ED_area_type_hud_clear(), ED_area_update_region_sizes(), ED_areas_do_frame_follow(), ED_clip_update_frame(), ED_editors_init(), ED_fileselect_handler_area_find(), ED_fileselect_handler_area_find_any_with_op(), ED_info_stats_clear(), ED_region_do_draw(), ED_render_scene_update(), ED_render_view3d_update(), ED_screen_animation_no_scrub(), ED_screen_animation_playing(), ED_screen_draw_edges(), ED_screen_refresh(), ED_screen_scene_change(), ED_screen_scene_find_with_window(), ED_screen_set_active_region(), ED_screen_state_toggle(), ED_screen_window_find(), ED_space_image_paint_update(), ED_space_image_sync(), ED_view3d_gizmo_ruler_remove_by_gpencil_layer(), blender::ed::animrig::ensure_asset_ui_visible(), eyedropper_color_sample_fl(), eyedropper_cryptomatte_sample_fl(), eyedropper_win_area_find(), find_area_showing_render_result(), blender::ed::sculpt_paint::flush_update_done(), blender::ed::asset::list::foreach_visible_asset_browser_showing_library(), get_compositor_needed_outputs(), ghost_event_proc(), gizmo_mesh_spin_redo_setup(), blender::bke::compositor::is_viewport_compositor_used(), menu_items_from_ui_create(), RE_FreeUnusedGPUResources(), redraw_timer_step(), region_cursor_set(), region_cursor_set_ex(), render_image_restore_scene_and_layer(), render_image_update_pass_and_layer(), render_view_show_invoke(), screen_animation_step_invoke(), screen_cursor_set(), screen_geom_select_connected_edge(), screen_refresh_if_needed(), screen_state_to_nonnormal(), blender::ed::asset::shelf::show_catalog_in_visible_shelves(), blender::ed::vse::sync_active_scene_and_time_with_scene_strip(), toolsystem_refresh_screen_from_active_tool(), UI_but_tooltip_refresh(), UI_popup_block_close(), ui_popup_block_remove(), window_has_sequence_editor_open(), wm_drags_exit(), wm_draw_region_clear(), wm_draw_update_clear_window(), wm_draw_update_test_window(), wm_draw_window(), wm_draw_window_offscreen(), wm_draw_window_onscreen(), wm_dropbox_active(), wm_dropbox_invoke(), wm_event_do_depsgraph(), wm_event_do_handlers(), wm_event_do_notifiers(), wm_event_do_refresh_wm_and_depsgraph(), wm_event_drag_and_drop_test(), WM_exit_ex(), wm_file_read_setup_wm_init(), wm_file_read_setup_wm_keep_old(), wm_gesture_tag_redraw(), wm_handler_fileselect_do(), wm_handler_op_context_get_if_valid(), WM_keyconfig_update_ex(), WM_operator_handlers_clear(), wm_operator_winactive_normal(), wm_operator_winactive_not_full(), WM_paint_cursor_tag_redraw(), wm_paintcursor_draw(), wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(), WM_stereo3d_enabled(), wm_stereo3d_set_exec(), WM_toolsystem_do_msg_notify_tag_refresh(), WM_toolsystem_refresh_active(), WM_toolsystem_refresh_screen_window(), WM_toolsystem_reinit_all(), WM_tooltip_clear(), WM_tooltip_immediate_init(), WM_tooltip_init(), WM_tooltip_refresh(), WM_tooltip_timer_clear(), WM_tooltip_timer_init_ex(), wm_window_close(), WM_window_cursor_keymap_status_refresh(), WM_window_find_by_area(), WM_window_is_temp_screen(), WM_window_open(), WM_window_set_active_workspace(), WM_window_status_area_tag_redraw(), WM_window_title(), WM_windows_scene_get_from_screen(), WM_windows_view_layer_get_from_screen(), and WM_windows_workspace_get_from_screen().

◆ WM_window_get_active_view_layer()

ViewLayer * WM_window_get_active_view_layer ( const wmWindow * win)

Definition at line 3074 of file wm_window.cc.

References BKE_view_layer_default_view(), BKE_view_layer_find(), wmWindow::view_layer_name, WM_window_get_active_scene(), and WM_window_set_active_view_layer().

Referenced by buttons_context_path(), buttons_context_path_brush(), buttons_context_path_view_layer(), buttons_shading_context(), buttons_shading_new_context(), buttons_texture_users_from_context(), clean_viewport_memory(), ED_area_init(), ED_editors_init_for_undo(), ED_info_stats_clear(), ED_screen_scene_change(), ED_undo_object_editmode_validate_scene_from_windows(), image_listener(), screen_ctx_active_bone(), screen_ctx_active_object(), screen_ctx_active_pose_bone(), screen_ctx_edit_object(), screen_ctx_editable_objects(), screen_ctx_grease_pencil_data(), screen_ctx_image_paint_object(), screen_ctx_object(), screen_ctx_objects_in_mode(), screen_ctx_objects_in_mode_unique_data(), screen_ctx_particle_edit_object(), screen_ctx_pose_object(), screen_ctx_sculpt_object(), screen_ctx_selectable_objects(), screen_ctx_selected_bones_(), screen_ctx_selected_editable_objects(), screen_ctx_selected_objects(), screen_ctx_selected_pose_bones(), screen_ctx_selected_pose_bones_from_active_object(), screen_ctx_vertex_paint_object(), screen_ctx_visible_objects(), screen_ctx_visible_or_editable_bones_(), screen_ctx_visible_pose_bones(), screen_ctx_weight_paint_object(), sound_jack_sync_callback(), blender::ed::vse::sync_active_scene_and_time_with_scene_strip(), toolsystem_refresh_screen_from_active_tool(), blender::ed::outliner::tree_element_object_activate(), view3d_main_region_cursor(), view3d_main_region_listener(), view_layer_add_exec(), wm_draw_update_test_window(), wm_event_do_depsgraph(), WM_event_handler_region_marker_poll(), WM_event_handler_region_v2d_mask_no_marker_poll(), WM_toolsystem_do_msg_notify_tag_refresh(), WM_toolsystem_ref_sync_from_context(), WM_toolsystem_refresh_active(), WM_toolsystem_refresh_screen_window(), WM_toolsystem_reinit_all(), WM_window_cursor_keymap_status_refresh(), WM_window_set_active_scene(), WM_windows_view_layer_get_from_screen(), and wm_xr_session_scene_and_depsgraph_get().

◆ WM_window_get_active_workspace()

◆ WM_window_is_fullscreen()

bool WM_window_is_fullscreen ( const wmWindow * win)

Definition at line 2964 of file wm_window.cc.

References GHOST_kWindowStateFullScreen, and wmWindow::windowstate.

Referenced by area_azone_init(), and wm_stereo3d_set_exec().

◆ WM_window_is_main_top_level()

bool WM_window_is_main_top_level ( const wmWindow * win)

Return whether the window is a main/top-level window. In which case it is expected to contain global areas (top-bar/status-bar).

Definition at line 2974 of file wm_window.cc.

References BKE_workspace_active_screen_get(), wmWindow::parent, bScreen::temp, and wmWindow::workspace_hook.

Referenced by ED_screen_global_areas_refresh(), wm_window_close(), and wm_window_decoration_style_set_from_theme().

◆ WM_window_is_maximized()

bool WM_window_is_maximized ( const wmWindow * win)

◆ WM_window_is_temp_screen()

◆ WM_window_modal_keymap_status_draw()

◆ WM_window_native_pixel_coords()

void WM_window_native_pixel_coords ( const wmWindow * win,
int * x,
int * y )

Definition at line 2918 of file wm_window.cc.

References GHOST_GetNativePixelSize(), wmWindow::ghostwin, x, and y.

Referenced by area_docking_target().

◆ WM_window_native_pixel_size()

◆ WM_window_native_pixel_x()

int WM_window_native_pixel_x ( const wmWindow * win)

Support for native pixel size

Note
macOS retina opens window in size X, but it has up to 2 x more pixels.

Definition at line 2898 of file wm_window.cc.

References GHOST_GetNativePixelSize(), wmWindow::ghostwin, and wmWindow::sizex.

Referenced by area_azone_init(), blender::ed::asset::shelf::layout_width_units_clamped(), screen_draw_area_drag_tip(), ui_def_but_rna__menu(), ui_searchbox_region_layout_fn(), wm_block_splash_create(), and wm_stereo3d_mouse_offset_apply().

◆ WM_window_native_pixel_y()

int WM_window_native_pixel_y ( const wmWindow * win)

◆ WM_window_open()

wmWindow * WM_window_open ( bContext * C,
const char * title,
const rcti * rect_unscaled,
int space_type,
bool toplevel,
bool dialog,
bool temp,
eWindowAlignment alignment,
void(* area_setup_fn )(bScreen *screen, ScrArea *area, void *user_data),
void * area_setup_user_data )
Parameters
rectPosition & size of the window.
space_typeSPACE_VIEW3D, SPACE_INFO, ... (eSpace_Type).
toplevelNot a child owned by other windows. A peer of main window.
dialogwhether this should be made as a dialog-style window
tempwhether this is considered a short-lived window
alignmenthow this window is positioned relative to its parent
area_setup_fnAn optional callback which can be used to initialize the area before it's initialized. When set, space_type should be #SPACE_EMTPY, so the setup function can take a blank area and initialize it.
area_setup_user_dataUser data argument passed to area_setup_fn.
Returns
the window or NULL in case of failure.

References C.

◆ WM_window_open_temp()

◆ WM_window_pixels_read()

uint8_t * WM_window_pixels_read ( bContext * C,
wmWindow * win,
int r_size[2] )

Read from the screen.

Note
Use off-screen drawing when front-buffer reading is not supported.

Definition at line 1484 of file wm_draw.cc.

References C, CTX_wm_manager(), WM_capabilities_flag(), WM_CAPABILITY_GPU_FRONT_BUFFER_READ, WM_window_pixels_read_from_frontbuffer(), and WM_window_pixels_read_from_offscreen().

Referenced by screenshot_data_create(), and blender::ed::asset::take_screenshot_crop().

◆ WM_window_pixels_read_from_frontbuffer()

uint8_t * WM_window_pixels_read_from_frontbuffer ( const wmWindowManager * wm,
const wmWindow * win,
int r_size[2] )

Read pixels from the front-buffer (fast).

Note
Internally this depends on the front-buffer state, for a slower but more reliable method of reading pixels, use WM_window_pixels_read_from_offscreen. Fast pixel access may be preferred for file-save thumbnails.
Warning
Drawing (swap-buffers) immediately before calling this function causes the front-buffer state to be invalid under some EGL configurations.

Definition at line 1325 of file wm_draw.cc.

References GHOST_ActivateWindowDrawingContext(), wmWindow::ghostwin, GPU_context_active_set(), GPU_DATA_UBYTE, GPU_frontbuffer_read_color(), wmWindow::gpuctx, i, MEM_malloc_arrayN(), wmWindowManager::runtime, and WM_window_native_pixel_size().

Referenced by blend_file_thumb_from_screenshot(), and WM_window_pixels_read().

◆ WM_window_pixels_read_from_offscreen()

uint8_t * WM_window_pixels_read_from_offscreen ( bContext * C,
wmWindow * win,
int r_size[2] )

Draw the window & read pixels from an off-screen buffer (slower than WM_window_pixels_read_from_frontbuffer).

Note
This is needed because the state of the front-buffer may be damaged (see in-line code comments for details).

Definition at line 1403 of file wm_draw.cc.

References C, get_hdr_framebuffer_format(), GPU_DATA_UBYTE, GPU_offscreen_bind(), GPU_offscreen_create(), GPU_offscreen_free(), GPU_offscreen_read_color(), GPU_offscreen_unbind(), GPU_TEXTURE_USAGE_SHADER_READ, MEM_malloc_arrayN(), UNLIKELY, wm_draw_window_onscreen(), WM_window_get_active_scene(), and WM_window_native_pixel_size().

Referenced by WM_window_pixels_read().

◆ WM_window_pixels_read_sample()

bool WM_window_pixels_read_sample ( bContext * C,
wmWindow * win,
const int pos[2],
float r_col[3] )

Read a single pixel from the screen.

Note
Use off-screen drawing when front-buffer reading is not supported.

Definition at line 1492 of file wm_draw.cc.

References C, CTX_wm_manager(), pos, WM_capabilities_flag(), WM_CAPABILITY_GPU_FRONT_BUFFER_READ, WM_window_pixels_read_sample_from_frontbuffer(), and WM_window_pixels_read_sample_from_offscreen().

Referenced by eyedropper_color_sample_fl(), and paint_sample_color().

◆ WM_window_pixels_read_sample_from_frontbuffer()

◆ WM_window_pixels_read_sample_from_offscreen()

◆ WM_window_rect_calc()

void WM_window_rect_calc ( const wmWindow * win,
rcti * r_rect )

◆ WM_window_screen_rect_calc()

◆ WM_window_set_active_layout()

void WM_window_set_active_layout ( wmWindow * win,
WorkSpace * workspace,
WorkSpaceLayout * layout )

◆ WM_window_set_active_scene()

◆ WM_window_set_active_screen()

void WM_window_set_active_screen ( wmWindow * win,
WorkSpace * workspace,
bScreen * screen )

◆ WM_window_set_active_view_layer()

◆ WM_window_set_active_workspace()

◆ WM_window_status_area_find()

ScrArea * WM_window_status_area_find ( wmWindow * win,
bScreen * screen )

◆ WM_window_status_area_tag_redraw()

◆ WM_window_support_hdr_color()

bool WM_window_support_hdr_color ( const wmWindow * win)

◆ WM_window_title()

◆ WM_windows_scene_data_sync()

void WM_windows_scene_data_sync ( const ListBase * win_lb,
Scene * scene )

Some editor data may need to be synced with scene data (3D View camera and layers). This function ensures data is synced for editors in visible work-spaces and their visible layouts.

Definition at line 2999 of file wm_window.cc.

References ED_workspace_scene_data_sync(), LISTBASE_FOREACH, and WM_window_get_active_scene().

Referenced by blender::ed::outliner::tree_element_camera_activate().

◆ WM_windows_scene_get_from_screen()

Scene * WM_windows_scene_get_from_screen ( const wmWindowManager * wm,
const bScreen * screen )

◆ WM_windows_view_layer_get_from_screen()

ViewLayer * WM_windows_view_layer_get_from_screen ( const wmWindowManager * wm,
const bScreen * screen )

◆ WM_windows_workspace_get_from_screen()

WorkSpace * WM_windows_workspace_get_from_screen ( const wmWindowManager * wm,
const bScreen * screen )

◆ wmGetProjectionMatrix()

void wmGetProjectionMatrix ( float mat[4][4],
const rcti * winrct )

◆ wmOrtho2()

◆ wmOrtho2_pixelspace()

void wmOrtho2_pixelspace ( float x,
float y )

◆ wmOrtho2_region_pixelspace()

◆ wmPartialViewport()

void wmPartialViewport ( rcti * drawrct,
const rcti * winrct,
const rcti * partialrct )

◆ wmViewport()

◆ wmWindowViewport()

◆ wmWindowViewport_ex()

◆ write_crash_blend()

bool write_crash_blend ( )

Debugging only, convenience function to write on crash. Convenient to save a blend file from a debugger.

Definition at line 2078 of file wm_files.cc.

References BKE_main_blendfile_path_from_global(), BLI_path_extension_replace(), BLO_write_file(), FILE_MAX, G, G_MAIN, params, printf, and STRNCPY().