13 #define DNA_DEPRECATED_ALLOW
76 if (win->workspace_hook !=
NULL) {
144 if (win->workspace_hook !=
NULL) {
150 win->workspace_hook->act_layout =
NULL;
151 win->workspace_hook->temp_workspace_store =
NULL;
152 win->workspace_hook->temp_layout_store =
NULL;
157 win->ghostwin =
NULL;
159 win->eventstate =
NULL;
160 win->event_last_handled =
NULL;
161 win->cursor_keymap_status =
NULL;
162 #if defined(WIN32) || defined(__APPLE__)
163 win->ime_data =
NULL;
175 win->modalcursor = 0;
177 win->addmousemove =
true;
178 win->event_queue_check_click = 0;
179 win->event_queue_check_drag = 0;
180 win->event_queue_check_drag_handled = 0;
185 if (win->stereo3d_format) {
238 if (win->workspace_hook) {
263 .name =
"WindowManager",
264 .name_plural =
"window_managers",
267 .asset_type_info =
NULL,
274 .foreach_cache =
NULL,
275 .foreach_path =
NULL,
281 .blend_read_expand =
NULL,
283 .blend_read_undo_preserve =
NULL,
285 .lib_override_apply_post =
NULL,
288 #define MAX_OP_REGISTERED 32
316 for (opm = op->
macro.
first; opm; opm = opmnext) {
404 ListBase *lb[2] = {&win->handlers, &win->modalhandlers};
560 #ifdef WITH_XR_OPENXR
610 while ((wm = wmlist->
first)) {
struct Scene * CTX_data_scene(const bContext *C)
bool CTX_py_init_get(bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm)
struct Main * CTX_data_main(const bContext *C)
void IDP_SyncGroupTypes(struct IDProperty *dest, const struct IDProperty *src, bool do_arraylen) ATTR_NONNULL()
void IDP_FreeProperty(struct IDProperty *prop)
@ IDTYPE_FLAGS_NO_ANIMDATA
@ IDTYPE_FLAGS_NO_LIBLINKING
void BKE_libblock_free_data(struct ID *id, bool do_id_user) ATTR_NONNULL()
void BKE_libblock_free_data_py(struct ID *id)
void * BKE_libblock_alloc(struct Main *bmain, short type, const char *name, int flag) ATTR_WARN_UNUSED_RESULT
void id_us_ensure_real(struct ID *id)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
bool BKE_lib_query_foreachid_iter_stop(struct LibraryForeachIDData *data)
void BKE_lib_query_foreachid_process(struct LibraryForeachIDData *data, struct ID **id_pp, int cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(_data, _func_call)
int BKE_lib_query_foreachid_process_flags_get(struct LibraryForeachIDData *data)
void BKE_reports_clear(ReportList *reports)
void BKE_reports_init(ReportList *reports, int flag)
void BKE_screen_foreach_id_screen_area(struct LibraryForeachIDData *data, struct ScrArea *area)
void BKE_screen_area_map_blend_write(struct BlendWriter *writer, struct ScrAreaMap *area_map)
bool BKE_screen_area_map_blend_read_data(struct BlendDataReader *reader, struct ScrAreaMap *area_map)
void BKE_screen_view3d_shading_blend_read_data(struct BlendDataReader *reader, struct View3DShading *shading)
void BKE_screen_area_blend_read_lib(struct BlendLibReader *reader, struct ID *parent_id, struct ScrArea *area)
void BKE_screen_view3d_shading_blend_write(struct BlendWriter *writer, struct View3DShading *shading)
void BKE_undosys_stack_destroy(UndoStack *ustack)
struct WorkSpace * BKE_workspace_active_get(struct WorkSpaceInstanceHook *hook) GETTER_ATTRS
struct bScreen * BKE_workspace_active_screen_get(const struct WorkSpaceInstanceHook *hook) GETTER_ATTRS
void BKE_workspace_active_layout_set(struct WorkSpaceInstanceHook *hook, int winid, struct WorkSpace *workspace, struct WorkSpaceLayout *layout) SETTER_ATTRS
Activate a layout.
void BKE_workspace_active_set(struct WorkSpaceInstanceHook *hook, struct WorkSpace *workspace) SETTER_ATTRS
struct WorkSpaceLayout * BKE_workspace_layout_find_global(const struct Main *bmain, const struct bScreen *screen, struct WorkSpace **r_workspace) ATTR_NONNULL(1
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void * BLI_pophead(ListBase *listbase) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
void BLO_read_data_globmap_add(BlendDataReader *reader, void *oldaddr, void *newaddr)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLT_I18NCONTEXT_ID_WINDOWMANAGER
void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr)
void BPY_callback_wm_free(struct wmWindowManager *wm)
bool BPY_run_string_eval(struct bContext *C, const char *imports[], const char *expr)
#define ID_IS_LINKED(_id)
struct wmWindowManager wmWindowManager
#define WM_KEYCONFIG_STR_DEFAULT
void ED_screens_init(struct Main *bmain, struct wmWindowManager *wm)
void ED_spacetypes_keymap(struct wmKeyConfig *keyconf)
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
#define ND_SPACE_INFO_REPORT
void(* MEM_freeN)(void *vmemh)
static void area(int d1, int d2, int e1, int e2, float weights[2])
struct wmTimer * reporttimer
Object * base_pose_object
struct View3DShading shading
struct ReportList * reports
struct wmOperatorType * type
struct wmMsgBus * message_bus
struct wmKeyConfig * defaultconf
struct ReportList reports
struct UndoStack * undo_stack
struct wmWindow * winactive
struct wmKeyConfig * userconf
struct wmTimer * autosavetimer
struct wmWindow * windrawable
struct wmKeyConfig * addonconf
struct WorkSpaceInstanceHook * workspace_hook
XrSessionSettings session_settings
struct wmXrRuntimeData * runtime
void WM_main(bContext *C)
void wm_close_and_free(bContext *C, wmWindowManager *wm)
void wm_clear_default_size(bContext *C)
void WM_operator_stack_clear(wmWindowManager *wm)
void wm_close_and_free_all(bContext *C, ListBase *wmlist)
static void lib_link_workspace_instance_hook(BlendLibReader *reader, WorkSpaceInstanceHook *hook, ID *id)
static void window_manager_blend_read_data(BlendDataReader *reader, ID *id)
static void window_manager_free_data(ID *id)
void WM_operator_type_set(wmOperator *op, wmOperatorType *ot)
void WM_operator_free_all_after(wmWindowManager *wm, struct wmOperator *op)
static void window_manager_blend_read_lib(BlendLibReader *reader, ID *id)
static void direct_link_wm_xr_data(BlendDataReader *reader, wmXrData *xr_data)
void WM_keyconfig_init(bContext *C)
void wm_operator_register(bContext *C, wmOperator *op)
static void wm_reports_free(wmWindowManager *wm)
void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot)
void WM_check(bContext *C)
void WM_keyconfig_reload(bContext *C)
static void window_manager_blend_write(BlendWriter *writer, ID *id, const void *id_address)
#define MAX_OP_REGISTERED
void wm_add_default(Main *bmain, bContext *C)
static void write_wm_xr_data(BlendWriter *writer, wmXrData *xr_data)
void WM_operator_free(wmOperator *op)
static void lib_link_wm_xr_data(BlendLibReader *reader, ID *parent_id, wmXrData *xr_data)
static void window_manager_foreach_id(ID *id, LibraryForeachIDData *data)
void WM_drag_free_list(ListBase *lb)
void wm_draw_update(bContext *C)
void wm_event_do_handlers(bContext *C)
void WM_main_add_notifier(unsigned int type, void *reference)
void wm_event_do_refresh_wm_and_depsgraph(bContext *C)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void wm_event_do_notifiers(bContext *C)
void WM_file_autosave_init(wmWindowManager *wm)
void wm_autosave_timer_end(wmWindowManager *wm)
void WM_keyconfig_update(wmWindowManager *wm)
void WM_keyconfig_free(wmKeyConfig *keyconf)
wmKeyConfig * WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined)
void WM_keyconfig_update_tag(wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_msgbus_destroy(struct wmMsgBus *mbus)
struct wmMsgBus * WM_msgbus_create(void)
void wm_window_keymap(wmKeyConfig *keyconf)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
bool WM_operator_properties_default(PointerRNA *ptr, const bool do_update)
void WM_operator_properties_free(PointerRNA *ptr)
void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *timer)
wmWindow * wm_window_new(const Main *bmain, wmWindowManager *wm, wmWindow *parent, bool dialog)
void wm_window_process_events(const bContext *C)
void wm_window_make_drawable(wmWindowManager *wm, wmWindow *win)
void wm_window_free(bContext *C, wmWindowManager *wm, wmWindow *win)
void wm_window_ghostwindows_ensure(wmWindowManager *wm)
void wm_xr_exit(wmWindowManager *wm)