29 #define DNA_DEPRECATED_ALLOW
92 if (win->workspace_hook !=
NULL) {
153 if (win->workspace_hook !=
NULL) {
159 win->workspace_hook->act_layout =
NULL;
160 win->workspace_hook->temp_workspace_store =
NULL;
161 win->workspace_hook->temp_layout_store =
NULL;
166 win->ghostwin =
NULL;
168 win->eventstate =
NULL;
169 win->cursor_keymap_status =
NULL;
172 win->ime_data =
NULL;
184 win->modalcursor = 0;
186 win->addmousemove =
true;
187 win->event_queue_check_click = 0;
188 win->event_queue_check_drag = 0;
189 win->event_queue_check_drag_handled = 0;
194 if (win->stereo3d_format) {
246 if (win->workspace_hook) {
266 .name =
"WindowManager",
267 .name_plural =
"window_managers",
277 .foreach_cache =
NULL,
283 .blend_read_expand =
NULL,
285 .blend_read_undo_preserve =
NULL,
287 .lib_override_apply_post =
NULL,
290 #define MAX_OP_REGISTERED 32
318 for (opm = op->
macro.
first; opm; opm = opmnext) {
419 ListBase *lb[2] = {&win->handlers, &win->modalhandlers};
577 #ifdef WITH_XR_OPENXR
627 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_FreeProperty(struct IDProperty *prop)
void IDP_SyncGroupTypes(struct IDProperty *dest, const struct IDProperty *src, const bool do_arraylen) ATTR_NONNULL()
@ IDTYPE_FLAGS_NO_MAKELOCAL
@ IDTYPE_FLAGS_NO_ANIMDATA
@ IDTYPE_FLAGS_NO_LIBLINKING
void BKE_libblock_free_data_py(struct ID *id)
void BKE_libblock_free_data(struct ID *id, const bool do_id_user) ATTR_NONNULL()
void * BKE_libblock_alloc(struct Main *bmain, short type, const char *name, const 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)
#define BKE_LIB_FOREACHID_PROCESS(_data, _id_super, _cb_flag)
int BKE_lib_query_foreachid_process_flags_get(struct LibraryForeachIDData *data)
#define BKE_LIB_FOREACHID_PROCESS_ID(_data, _id, _cb_flag)
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)
void BKE_workspace_active_layout_set(struct WorkSpaceInstanceHook *hook, const int winid, struct WorkSpace *workspace, struct WorkSpaceLayout *layout) SETTER_ATTRS
Activate a layout.
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_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)
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 wmKeyConfig * userconf
struct wmTimer * autosavetimer
struct wmWindow * windrawable
struct wmKeyConfig * addonconf
struct wmWindow * winactive
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(struct 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_autosave_timer_end(wmWindowManager *wm)
void WM_autosave_init(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)