Blender  V3.3
Macros | Functions | Variables
wm.c File Reference
#include <stddef.h>
#include <string.h>
#include "BLI_sys_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_screen.h"
#include "BKE_workspace.h"
#include "WM_api.h"
#include "WM_message.h"
#include "WM_types.h"
#include "wm.h"
#include "wm_draw.h"
#include "wm_event_system.h"
#include "wm_window.h"
#include "BKE_undo_system.h"
#include "ED_screen.h"
#include "BLO_read_write.h"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW
 
#define MAX_OP_REGISTERED   32
 

Functions

static void window_manager_free_data (ID *id)
 
static void window_manager_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void write_wm_xr_data (BlendWriter *writer, wmXrData *xr_data)
 
static void window_manager_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void direct_link_wm_xr_data (BlendDataReader *reader, wmXrData *xr_data)
 
static void window_manager_blend_read_data (BlendDataReader *reader, ID *id)
 
static void lib_link_wm_xr_data (BlendLibReader *reader, ID *parent_id, wmXrData *xr_data)
 
static void lib_link_workspace_instance_hook (BlendLibReader *reader, WorkSpaceInstanceHook *hook, ID *id)
 
static void window_manager_blend_read_lib (BlendLibReader *reader, ID *id)
 
void WM_operator_free (wmOperator *op)
 
void WM_operator_free_all_after (wmWindowManager *wm, struct wmOperator *op)
 
void WM_operator_type_set (wmOperator *op, wmOperatorType *ot)
 
static void wm_reports_free (wmWindowManager *wm)
 
void wm_operator_register (bContext *C, wmOperator *op)
 
void WM_operator_stack_clear (wmWindowManager *wm)
 
void WM_operator_handlers_clear (wmWindowManager *wm, wmOperatorType *ot)
 
void WM_keyconfig_reload (bContext *C)
 
void WM_keyconfig_init (bContext *C)
 
void WM_check (bContext *C)
 
void wm_clear_default_size (bContext *C)
 
void wm_add_default (Main *bmain, bContext *C)
 
void wm_close_and_free (bContext *C, wmWindowManager *wm)
 
void wm_close_and_free_all (bContext *C, ListBase *wmlist)
 
void WM_main (bContext *C)
 

Variables

IDTypeInfo IDType_ID_WM
 

Detailed Description

Internal functions for managing UI registerable types (operator, UI and menu types).

Also Blender's main event loop (WM_main).

Definition in file wm.c.

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 13 of file wm.c.

◆ MAX_OP_REGISTERED

#define MAX_OP_REGISTERED   32

Definition at line 288 of file wm.c.

Function Documentation

◆ direct_link_wm_xr_data()

static void direct_link_wm_xr_data ( BlendDataReader reader,
wmXrData xr_data 
)
static

◆ lib_link_wm_xr_data()

static void lib_link_wm_xr_data ( BlendLibReader reader,
ID parent_id,
wmXrData xr_data 
)
static

◆ lib_link_workspace_instance_hook()

static void lib_link_workspace_instance_hook ( BlendLibReader reader,
WorkSpaceInstanceHook hook,
ID id 
)
static

◆ window_manager_blend_read_data()

static void window_manager_blend_read_data ( BlendDataReader reader,
ID id 
)
static

◆ window_manager_blend_read_lib()

static void window_manager_blend_read_lib ( BlendLibReader reader,
ID id 
)
static

◆ window_manager_blend_write()

static void window_manager_blend_write ( BlendWriter writer,
ID id,
const void id_address 
)
static

◆ window_manager_foreach_id()

static void window_manager_foreach_id ( ID id,
LibraryForeachIDData data 
)
static

◆ window_manager_free_data()

static void window_manager_free_data ( ID id)
static

Definition at line 63 of file wm.c.

References NULL, and wm_close_and_free().

◆ wm_add_default()

void wm_add_default ( struct Main bmain,
bContext C 
)

◆ WM_check()

void WM_check ( bContext C)

◆ wm_clear_default_size()

void wm_clear_default_size ( bContext C)

◆ wm_close_and_free()

void wm_close_and_free ( bContext C,
wmWindowManager wm 
)

◆ wm_close_and_free_all()

void wm_close_and_free_all ( bContext C,
ListBase wmlist 
)

◆ WM_keyconfig_init()

void WM_keyconfig_init ( bContext C)

◆ WM_keyconfig_reload()

void WM_keyconfig_reload ( bContext C)

Definition at line 424 of file wm.c.

References BPY_run_string_eval(), C, CTX_py_init_get(), G, and NULL.

Referenced by WM_keyconfig_init(), and wm_userpref_update_when_changed().

◆ WM_main()

void WM_main ( bContext C)

◆ WM_operator_free()

void WM_operator_free ( wmOperator op)

◆ WM_operator_free_all_after()

void WM_operator_free_all_after ( wmWindowManager wm,
struct wmOperator op 
)

◆ WM_operator_handlers_clear()

void WM_operator_handlers_clear ( wmWindowManager wm,
struct 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 401 of file wm.c.

References ARRAY_SIZE, wmEventHandler::flag, wmEventHandler_Op::head, LISTBASE_FOREACH, NULL, wmEventHandler_Op::op, ot, wmOperator::type, wmWindowManager::windows, WM_HANDLER_DO_FREE, WM_HANDLER_TYPE_OP, and WM_operator_free().

◆ wm_operator_register()

void wm_operator_register ( bContext C,
wmOperator op 
)

Called on event handling by event_system.c.

All operations get registered in the windowmanager here.

Definition at line 365 of file wm.c.

References BLI_addtail(), BLI_remlink(), C, CTX_wm_manager(), wmOperatorType::flag, MAX_OP_REGISTERED, NC_SPACE, NC_WM, ND_HISTORY, ND_SPACE_INFO_REPORT, NULL, wmWindowManager::operators, OPTYPE_REGISTER, wmOperator::prev, wmOperator::type, WM_event_add_notifier(), and WM_operator_free().

Referenced by wm_block_redo_cb(), and wm_operator_finished().

◆ WM_operator_stack_clear()

void WM_operator_stack_clear ( wmWindowManager wm)

◆ WM_operator_type_set()

void WM_operator_type_set ( struct wmOperator op,
struct 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 336 of file wm.c.

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

Referenced by transform_modal().

◆ wm_reports_free()

static void wm_reports_free ( wmWindowManager wm)
static

◆ write_wm_xr_data()

static void write_wm_xr_data ( BlendWriter writer,
wmXrData xr_data 
)
static

Variable Documentation

◆ IDType_ID_WM

IDTypeInfo IDType_ID_WM
Initial value:
= {
.id_code = ID_WM,
.id_filter = FILTER_ID_WM,
.main_listbase_index = INDEX_ID_WM,
.struct_size = sizeof(wmWindowManager),
.name = "WindowManager",
.name_plural = "window_managers",
.translation_context = BLT_I18NCONTEXT_ID_WINDOWMANAGER,
.asset_type_info = NULL,
.copy_data = NULL,
.make_local = NULL,
.foreach_cache = NULL,
.foreach_path = NULL,
.owner_get = NULL,
.blend_read_data = window_manager_blend_read_data,
.blend_read_lib = window_manager_blend_read_lib,
.blend_read_expand = NULL,
.blend_read_undo_preserve = NULL,
.lib_override_apply_post = NULL,
}
@ IDTYPE_FLAGS_NO_ANIMDATA
Definition: BKE_idtype.h:41
@ IDTYPE_FLAGS_NO_COPY
Definition: BKE_idtype.h:30
@ IDTYPE_FLAGS_NO_LIBLINKING
Definition: BKE_idtype.h:32
#define BLT_I18NCONTEXT_ID_WINDOWMANAGER
#define FILTER_ID_WM
Definition: DNA_ID.h:936
@ INDEX_ID_WM
Definition: DNA_ID.h:1054
@ ID_WM
Definition: DNA_ID_enums.h:72
struct wmWindowManager wmWindowManager
static void init_data(ModifierData *md)
static void window_manager_blend_read_data(BlendDataReader *reader, ID *id)
Definition: wm.c:130
static void window_manager_free_data(ID *id)
Definition: wm.c:63
static void window_manager_blend_read_lib(BlendLibReader *reader, ID *id)
Definition: wm.c:233
static void window_manager_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition: wm.c:102
static void window_manager_foreach_id(ID *id, LibraryForeachIDData *data)
Definition: wm.c:68

Definition at line 258 of file wm.c.