Blender V5.0
WM_types.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
93
94#pragma once
95
96struct ID;
97struct ImBuf;
98struct bContext;
99struct bContextStore;
100struct GreasePencil;
102struct ReportList;
103struct wmDrag;
104struct wmDropBox;
105struct wmEvent;
106struct wmOperator;
107struct wmWindowManager;
108
109#include <memory>
110#include <string>
111
112#include "BLI_compiler_attrs.h"
113#include "BLI_utildefines.h"
114#include "BLI_vector.hh"
115
116#include "DNA_listBase.h"
117#include "DNA_uuid_types.h"
118#include "DNA_vec_types.h"
119#include "DNA_xr_types.h"
120
121#include "BKE_wm_runtime.hh" // IWYU pragma: export
122
123#include "RNA_types.hh"
124
125/* Exported types for WM. */
126#include "gizmo/WM_gizmo_types.hh" // IWYU pragma: export
127#include "wm_cursors.hh" // IWYU pragma: export
128#include "wm_event_types.hh" // IWYU pragma: export
129
130/* Include external gizmo API's. */
131#include "gizmo/WM_gizmo_api.hh" // IWYU pragma: export
132
133namespace blender::asset_system {
135}
137
138using wmGenericUserDataFreeFn = void (*)(void *data);
139
146
147using wmGenericCallbackFn = void (*)(bContext *C, void *user_data);
148
154
155/* ************** wmOperatorType ************************ */
156
158enum {
180 OPTYPE_REGISTER = (1 << 0),
182 OPTYPE_UNDO = (1 << 1),
184 OPTYPE_BLOCKING = (1 << 2),
185 OPTYPE_MACRO = (1 << 3),
186
193
195 OPTYPE_PRESET = (1 << 7),
196
202 OPTYPE_INTERNAL = (1 << 8),
203
208
219
222};
223
231
236namespace blender::wm {
253}
254
255#define WM_OP_CONTEXT_HAS_AREA(type) \
256 (CHECK_TYPE_INLINE(type, blender::wm::OpCallContext), \
257 !ELEM(type, blender::wm::OpCallContext::InvokeScreen, blender::wm::OpCallContext::ExecScreen))
258#define WM_OP_CONTEXT_HAS_REGION(type) \
259 (WM_OP_CONTEXT_HAS_AREA(type) && \
260 !ELEM(type, blender::wm::OpCallContext::InvokeArea, blender::wm::OpCallContext::ExecArea))
261
266#define OP_PROP_TAG_ADVANCED ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)
267
268/* -------------------------------------------------------------------- */
271
277enum wmEventModifierFlag : uint8_t {
278 KM_SHIFT = (1 << 0),
279 KM_CTRL = (1 << 1),
280 KM_ALT = (1 << 2),
282 KM_OSKEY = (1 << 3),
292 KM_HYPER = (1 << 4),
293};
295
297#define KM_MOD_NUM 5
298
303enum {
305};
306
308enum {
309 KM_ANY = -1,
320};
326#define KM_MOD_HELD 1
327
333enum {
342};
343
345
346/* ************** UI Handler ***************** */
347
348#define WM_UI_HANDLER_CONTINUE 0
349#define WM_UI_HANDLER_BREAK 1
350
351/* ************** Notifiers ****************** */
352
355
357
358 unsigned int category, data, subtype, action;
359
361};
362
363/* 4 levels
364 *
365 * 0xFF000000; category
366 * 0x00FF0000; data
367 * 0x0000FF00; data subtype (unused?)
368 * 0x000000FF; action
369 */
370
371/* Category. */
372#define NOTE_CATEGORY 0xFF000000
373#define NOTE_CATEGORY_TAG_CLEARED NOTE_CATEGORY
374#define NC_WM (1 << 24)
375#define NC_WINDOW (2 << 24)
376#define NC_WORKSPACE (3 << 24)
377#define NC_SCREEN (4 << 24)
378#define NC_SCENE (5 << 24)
379#define NC_OBJECT (6 << 24)
380#define NC_MATERIAL (7 << 24)
381#define NC_TEXTURE (8 << 24)
382#define NC_LAMP (9 << 24)
383#define NC_GROUP (10 << 24)
384#define NC_IMAGE (11 << 24)
385#define NC_BRUSH (12 << 24)
386#define NC_TEXT (13 << 24)
387#define NC_WORLD (14 << 24)
388#define NC_ANIMATION (15 << 24)
389/* When passing a space as reference data with this (e.g. `WM_event_add_notifier(..., space)`),
390 * the notifier will only be sent to this space. That avoids unnecessary updates for unrelated
391 * spaces. */
392#define NC_SPACE (16 << 24)
393#define NC_GEOM (17 << 24)
394#define NC_NODE (18 << 24)
395#define NC_ID (19 << 24)
396#define NC_PAINTCURVE (20 << 24)
397#define NC_MOVIECLIP (21 << 24)
398#define NC_MASK (22 << 24)
399#define NC_GPENCIL (23 << 24)
400#define NC_LINESTYLE (24 << 24)
401#define NC_CAMERA (25 << 24)
402#define NC_LIGHTPROBE (26 << 24)
403/* Changes to asset data in the current .blend. */
404#define NC_ASSET (27 << 24)
405/* Changes to the active viewer path. */
406#define NC_VIEWER_PATH (28 << 24)
407
408/* Data type, 256 entries is enough, it can overlap. */
409#define NOTE_DATA 0x00FF0000
410
411/* NC_WM (window-manager). */
412#define ND_FILEREAD (1 << 16)
413#define ND_FILESAVE (2 << 16)
414#define ND_DATACHANGED (3 << 16)
415#define ND_HISTORY (4 << 16)
416#define ND_JOB (5 << 16)
417#define ND_UNDO (6 << 16)
418#define ND_XR_DATA_CHANGED (7 << 16)
419#define ND_LIB_OVERRIDE_CHANGED (8 << 16)
420
421/* NC_SCREEN. */
422#define ND_LAYOUTBROWSE (1 << 16)
423#define ND_LAYOUTDELETE (2 << 16)
424#define ND_ANIMPLAY (4 << 16)
425#define ND_GPENCIL (5 << 16)
426#define ND_LAYOUTSET (6 << 16)
427#define ND_SKETCH (7 << 16)
428#define ND_WORKSPACE_SET (8 << 16)
429#define ND_WORKSPACE_DELETE (9 << 16)
430
431/* NC_SCENE Scene. */
432#define ND_SCENEBROWSE (1 << 16)
433#define ND_MARKERS (2 << 16)
434#define ND_FRAME (3 << 16)
435#define ND_RENDER_OPTIONS (4 << 16)
436#define ND_NODES (5 << 16)
437#define ND_SEQUENCER (6 << 16)
438/* NOTE: If an object was added, removed, merged/joined, ..., it is not enough to notify with
439 * this. This affects the layer so also send a layer change notifier (e.g. ND_LAYER_CONTENT)! */
440#define ND_OB_ACTIVE (7 << 16)
441/* See comment on ND_OB_ACTIVE. */
442#define ND_OB_SELECT (8 << 16)
443#define ND_OB_VISIBLE (9 << 16)
444#define ND_OB_RENDER (10 << 16)
445#define ND_MODE (11 << 16)
446#define ND_RENDER_RESULT (12 << 16)
447#define ND_COMPO_RESULT (13 << 16)
448#define ND_KEYINGSET (14 << 16)
449#define ND_TOOLSETTINGS (15 << 16)
450#define ND_LAYER (16 << 16)
451#define ND_FRAME_RANGE (17 << 16)
452#define ND_WORLD (92 << 16)
453#define ND_LAYER_CONTENT (101 << 16)
454
455/* NC_OBJECT Object. */
456#define ND_TRANSFORM (18 << 16)
457#define ND_OB_SHADING (19 << 16)
458#define ND_POSE (20 << 16)
459#define ND_BONE_ACTIVE (21 << 16)
460#define ND_BONE_SELECT (22 << 16)
461#define ND_DRAW (23 << 16)
462#define ND_MODIFIER (24 << 16)
463#define ND_KEYS (25 << 16)
464#define ND_CONSTRAINT (26 << 16)
465#define ND_PARTICLE (27 << 16)
466#define ND_POINTCACHE (28 << 16)
467#define ND_PARENT (29 << 16)
468#define ND_LOD (30 << 16)
470#define ND_DRAW_RENDER_VIEWPORT (31 << 16)
471#define ND_SHADERFX (32 << 16)
472/* For updating motion paths in 3dview. */
473#define ND_DRAW_ANIMVIZ (33 << 16)
474#define ND_BONE_COLLECTION (34 << 16)
475
476/* NC_MATERIAL Material. */
477#define ND_SHADING (30 << 16)
478#define ND_SHADING_DRAW (31 << 16)
479#define ND_SHADING_LINKS (32 << 16)
480#define ND_SHADING_PREVIEW (33 << 16)
481
482/* NC_LAMP Light. */
483#define ND_LIGHTING (40 << 16)
484#define ND_LIGHTING_DRAW (41 << 16)
485
486/* NC_WORLD World. */
487#define ND_WORLD_DRAW (45 << 16)
488
489/* NC_TEXT Text. */
490#define ND_CURSOR (50 << 16)
491#define ND_DISPLAY (51 << 16)
492
493/* NC_ANIMATION Animato. */
494#define ND_KEYFRAME (70 << 16)
495#define ND_KEYFRAME_PROP (71 << 16)
496#define ND_ANIMCHAN (72 << 16)
497#define ND_NLA (73 << 16)
498#define ND_NLA_ACTCHANGE (74 << 16)
499#define ND_FCURVES_ORDER (75 << 16)
500#define ND_NLA_ORDER (76 << 16)
501#define ND_KEYFRAME_AUTO (77 << 16)
502
503/* NC_GPENCIL. */
504#define ND_GPENCIL_EDITMODE (85 << 16)
505
506/* NC_GEOM Geometry. */
507/* Mesh, Curve, MetaBall, Armature, etc. */
508#define ND_SELECT (90 << 16)
509#define ND_DATA (91 << 16)
510#define ND_VERTEX_GROUP (92 << 16)
511
512/* NC_NODE Nodes. */
513
514/* Influences which menus node assets are included in. */
515#define ND_NODE_ASSET_DATA (1 << 16)
516#define ND_NODE_GIZMO (2 << 16)
517
518/* NC_SPACE. */
519#define ND_SPACE_CONSOLE (1 << 16) /* General redraw. */
520#define ND_SPACE_INFO_REPORT (2 << 16) /* Update for reports, could specify type. */
521#define ND_SPACE_INFO (3 << 16)
522#define ND_SPACE_IMAGE (4 << 16)
523#define ND_SPACE_FILE_PARAMS (5 << 16)
524#define ND_SPACE_FILE_LIST (6 << 16)
525#define ND_SPACE_ASSET_PARAMS (7 << 16)
526#define ND_SPACE_NODE (8 << 16)
527#define ND_SPACE_OUTLINER (9 << 16)
528#define ND_SPACE_VIEW3D (10 << 16)
529#define ND_SPACE_PROPERTIES (11 << 16)
530#define ND_SPACE_TEXT (12 << 16)
531#define ND_SPACE_TIME (13 << 16)
532#define ND_SPACE_GRAPH (14 << 16)
533#define ND_SPACE_DOPESHEET (15 << 16)
534#define ND_SPACE_NLA (16 << 16)
535#define ND_SPACE_SEQUENCER (17 << 16)
536#define ND_SPACE_NODE_VIEW (18 << 16)
537/* Sent to a new editor type after it's replaced an old one. */
538#define ND_SPACE_CHANGED (19 << 16)
539#define ND_SPACE_CLIP (20 << 16)
540#define ND_SPACE_FILE_PREVIEW (21 << 16)
541#define ND_SPACE_SPREADSHEET (22 << 16)
542/* Not a space itself, but a part of another space. */
543#define ND_REGIONS_ASSET_SHELF (23 << 16)
544
545/* NC_ASSET. */
546/* Denotes that the AssetList is done reading some previews. NOT that the preview generation of
547 * assets is done. */
548#define ND_ASSET_LIST (1 << 16)
549#define ND_ASSET_LIST_PREVIEW (2 << 16)
550#define ND_ASSET_LIST_READING (3 << 16)
551/* Catalog data changed, requiring a redraw of catalog UIs. Note that this doesn't denote a
552 * reloading of asset libraries & their catalogs should happen. That only happens on explicit user
553 * action. */
554#define ND_ASSET_CATALOGS (4 << 16)
555
556/* Subtype, 256 entries too. */
557#define NOTE_SUBTYPE 0x0000FF00
558
559/* Subtype scene mode. */
560#define NS_MODE_OBJECT (1 << 8)
561
562#define NS_EDITMODE_MESH (2 << 8)
563#define NS_EDITMODE_CURVE (3 << 8)
564#define NS_EDITMODE_SURFACE (4 << 8)
565#define NS_EDITMODE_TEXT (5 << 8)
566#define NS_EDITMODE_MBALL (6 << 8)
567#define NS_EDITMODE_LATTICE (7 << 8)
568#define NS_EDITMODE_ARMATURE (8 << 8)
569#define NS_MODE_POSE (9 << 8)
570#define NS_MODE_PARTICLE (10 << 8)
571#define NS_EDITMODE_CURVES (11 << 8)
572#define NS_EDITMODE_GREASE_PENCIL (12 << 8)
573#define NS_EDITMODE_POINTCLOUD (13 << 8)
574
575/* Subtype 3d view editing. */
576#define NS_VIEW3D_GPU (16 << 8)
577#define NS_VIEW3D_SHADING (17 << 8)
578
579/* Subtype layer editing. */
580#define NS_LAYER_COLLECTION (24 << 8)
581
582/* Action classification. */
583#define NOTE_ACTION (0x000000FF)
584#define NA_EDITED 1
585#define NA_EVALUATED 2
586#define NA_ADDED 3
587#define NA_REMOVED 4
588#define NA_RENAME 5
589#define NA_SELECTED 6
590#define NA_ACTIVATED 7
591#define NA_PAINTING 8
592#define NA_JOB_FINISHED 9
593
594/* ************** Gesture Manager data ************** */
595
597constexpr float POLYLINE_CLICK_RADIUS = 15.0f;
598}
599
601#define WM_GESTURE_LINES 1
602#define WM_GESTURE_RECT 2
603#define WM_GESTURE_CROSS_RECT 3
604#define WM_GESTURE_LASSO 4
605#define WM_GESTURE_CIRCLE 5
606#define WM_GESTURE_STRAIGHTLINE 6
607#define WM_GESTURE_POLYLINE 7
608
668
669/* ************** wmEvent ************************ */
670
700
714
753struct wmEvent {
755
759 short val;
761 int xy[2];
763 int mval[2];
771 char utf8_buf[6];
772
775
777 int8_t direction;
778
784
787
789
790 /* Custom data. */
791
793 short custom;
808
809 /* Previous State. */
810
814 short prev_val;
820 int prev_xy[2];
821
822 /* Previous Press State (when `val == KM_PRESS`). */
823
835};
836
844#define WM_EVENT_CURSOR_MOTION_THRESHOLD ((float)U.move_threshold * UI_SCALE_FAC)
845
852 P_STARTING, /* <-- */
853 P_IN_PROGRESS, /* <-- only these are sent for NDOF motion. */
854 P_FINISHING, /* <-- */
856};
857
858#ifdef WITH_INPUT_NDOF
859struct wmNDOFMotionData {
860 /* Awfully similar to #GHOST_TEventNDOFMotionData. */
867 float tvec[3];
874 float rvec[3];
881 float time_delta;
883 wmProgress progress;
884};
885#endif /* WITH_INPUT_NDOF */
886
887#ifdef WITH_XR_OPENXR
888/* Similar to GHOST_XrPose. */
889struct wmXrPose {
890 float position[3];
891 /* Blender convention (w, x, y, z). */
892 float orientation_quat[4];
893};
894
895struct wmXrActionState {
896 union {
897 bool state_boolean;
898 float state_float;
899 float state_vector2f[2];
900 wmXrPose state_pose;
901 };
902 int type; /* #eXrActionType. */
903};
904
905struct wmXrActionData {
907 char action_set[64];
909 char action[64];
911 char user_path[64];
913 char user_path_other[64];
915 eXrActionType type;
917 float state[2];
919 float state_other[2];
920
922 float float_threshold;
923
925 float controller_loc[3];
926 float controller_rot[4];
928 float controller_loc_other[3];
929 float controller_rot_other[4];
930
932 wmOperatorType *ot;
933 IDProperty *op_properties;
934
936 bool bimanual;
937};
938#endif
939
944
945 /* Internal flags, should not be used outside of WM code. */
949};
951
981
986
991
1012
1019 bool stop;
1020
1023
1029};
1030
1159
1169
1170#ifdef WITH_INPUT_IME
1171/* *********** Input Method Editor (IME) *********** */
1176struct wmIMEData {
1178 std::string result;
1180 std::string composite;
1181
1183 int cursor_pos;
1185 int sel_start;
1187 int sel_end;
1188};
1189#endif
1190
1191/* **************** Paint Cursor ******************* */
1192
1193using wmPaintCursorDraw = void (*)(bContext *C,
1194 const blender::int2 &xy,
1195 const blender::float2 &tilt,
1196 void *customdata);
1197
1198/* *************** Drag and drop *************** */
1199
1227
1233
1234/* NOTE: structs need not exported? */
1235
1241
1246
1250
1269
1272 /* File type of each path in #paths. */
1273 blender::Vector<int> file_types; /* #eFileSel_File_Types. */
1274 /* Bit flag of file types in #paths. */
1275 int file_types_bit_flag; /* #eFileSel_File_Types. */
1276 std::string tooltip;
1277};
1278
1283
1284using WMDropboxTooltipFunc = std::string (*)(bContext *C,
1285 wmDrag *drag,
1286 const int xy[2],
1287 wmDropBox *drop);
1288
1326
1349
1361
1363 bool (*poll)(bContext *C, wmDrag *drag, const wmEvent *event);
1364
1368 void (*on_drag_start)(bContext *C, wmDrag *drag);
1369
1371 void (*on_enter)(wmDropBox *drop, wmDrag *drag);
1372
1375 void (*on_exit)(wmDropBox *drop, wmDrag *drag);
1376
1378 void (*copy)(bContext *C, wmDrag *drag, wmDropBox *drop);
1379
1384 void (*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop);
1385
1391 void (*draw_droptip)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1392
1399 void (*draw_in_view)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1400
1403
1406
1415 char opname[64];
1416
1421};
1422
1437 ARegion *(*init)(
1438 bContext *C, ARegion *region, int *pass, double *pass_delay, bool *r_exit_on_event);
1442 int event_xy[2];
1444 int pass;
1445};
1446
1447/* *************** migrated stuff, clean later? ************** */
1448
1453
1454/* Logging. */
1455struct CLG_LogRef;
1456/* `wm_init_exit.cc`. */
1457
#define ATTR_WARN_UNUSED_RESULT
unsigned int uint
#define ENUM_OPERATORS(_type, _max)
struct IDProperty IDProperty
These structs are the foundation for all linked lists in the library system.
struct AssetRepresentationHandle AssetRepresentationHandle
eXrActionType
#define C
Definition RandGen.cpp:29
CLG_LogRef * WM_LOG_MSGBUS_PUB
wmEventModifierFlag
Definition WM_types.hh:277
@ KM_CTRL
Definition WM_types.hh:279
@ KM_ALT
Definition WM_types.hh:280
@ KM_HYPER
Definition WM_types.hh:292
@ KM_OSKEY
Definition WM_types.hh:282
@ KM_SHIFT
Definition WM_types.hh:278
eWM_EventFlag
Definition WM_types.hh:671
@ WM_EVENT_FORCE_DRAG_THRESHOLD
Definition WM_types.hh:697
@ WM_EVENT_SCROLL_INVERT
Definition WM_types.hh:677
@ WM_EVENT_IS_CONSECUTIVE
Definition WM_types.hh:692
@ WM_EVENT_IS_REPEAT
Definition WM_types.hh:684
CLG_LogRef * WM_LOG_OPERATORS
std::string(*)(bContext *C, wmDrag *drag, const int xy[2], wmDropBox *drop) WMDropboxTooltipFunc
Definition WM_types.hh:1284
@ KM_TEXTINPUT
Definition WM_types.hh:304
eWM_DragFlags
Definition WM_types.hh:1228
@ WM_DRAG_NOP
Definition WM_types.hh:1229
@ WM_DRAG_FREE_DATA
Definition WM_types.hh:1230
@ KM_NOTHING
Definition WM_types.hh:310
@ KM_ANY
Definition WM_types.hh:309
@ KM_PRESS
Definition WM_types.hh:311
@ KM_DBL_CLICK
Definition WM_types.hh:314
@ KM_PRESS_DRAG
Definition WM_types.hh:319
@ KM_RELEASE
Definition WM_types.hh:312
@ KM_CLICK
Definition WM_types.hh:313
eWM_DragDataType
Definition WM_types.hh:1200
@ WM_DRAG_RNA
Definition WM_types.hh:1207
@ WM_DRAG_DATASTACK
Definition WM_types.hh:1219
@ WM_DRAG_PATH
Definition WM_types.hh:1208
@ WM_DRAG_ASSET_LIST
Definition WM_types.hh:1206
@ WM_DRAG_GREASE_PENCIL_LAYER
Definition WM_types.hh:1221
@ WM_DRAG_BONE_COLLECTION
Definition WM_types.hh:1224
@ WM_DRAG_GREASE_PENCIL_GROUP
Definition WM_types.hh:1222
@ WM_DRAG_STRING
Definition WM_types.hh:1217
@ WM_DRAG_COLOR
Definition WM_types.hh:1218
@ WM_DRAG_ASSET_CATALOG
Definition WM_types.hh:1220
@ WM_DRAG_SHAPE_KEY
Definition WM_types.hh:1225
@ WM_DRAG_NAME
Definition WM_types.hh:1209
@ WM_DRAG_NODE_TREE_INTERFACE
Definition WM_types.hh:1223
@ WM_DRAG_ASSET
Definition WM_types.hh:1202
@ WM_DRAG_ID
Definition WM_types.hh:1201
CLG_LogRef * WM_LOG_EVENTS
@ OPTYPE_PRESET
Definition WM_types.hh:195
@ OPTYPE_INTERNAL
Definition WM_types.hh:202
@ OPTYPE_MACRO
Definition WM_types.hh:185
@ OPTYPE_BLOCKING
Definition WM_types.hh:184
@ OPTYPE_LOCK_BYPASS
Definition WM_types.hh:205
@ OPTYPE_MODAL_PRIORITY
Definition WM_types.hh:221
@ OPTYPE_UNDO_GROUPED
Definition WM_types.hh:207
@ OPTYPE_DEPENDS_ON_CURSOR
Definition WM_types.hh:218
@ OPTYPE_UNDO
Definition WM_types.hh:182
@ OPTYPE_GRAB_CURSOR_XY
Definition WM_types.hh:188
@ OPTYPE_REGISTER
Definition WM_types.hh:180
@ OPTYPE_GRAB_CURSOR_X
Definition WM_types.hh:190
@ OPTYPE_GRAB_CURSOR_Y
Definition WM_types.hh:192
blender::asset_system::AssetRepresentation AssetRepresentationHandle
Definition WM_types.hh:136
wmPopupSize
Definition WM_types.hh:982
@ WM_POPUP_SIZE_LARGE
Definition WM_types.hh:984
@ WM_POPUP_SIZE_SMALL
Definition WM_types.hh:983
#define OP_PROP_TAG_ADVANCED
Definition WM_types.hh:266
void(*)(void *data) wmGenericUserDataFreeFn
Definition WM_types.hh:138
void(*)(bContext *C, const blender::int2 &xy, const blender::float2 &tilt, void *customdata) wmPaintCursorDraw
Definition WM_types.hh:1193
void(*)(bContext *C, void *user_data) wmGenericCallbackFn
Definition WM_types.hh:147
CLG_LogRef * WM_LOG_TOOL_GIZMO
@ KM_DIRECTION_NW
Definition WM_types.hh:341
@ KM_DIRECTION_N
Definition WM_types.hh:334
@ KM_DIRECTION_SW
Definition WM_types.hh:339
@ KM_DIRECTION_NE
Definition WM_types.hh:335
@ KM_DIRECTION_E
Definition WM_types.hh:336
@ KM_DIRECTION_W
Definition WM_types.hh:340
@ KM_DIRECTION_SE
Definition WM_types.hh:337
@ KM_DIRECTION_S
Definition WM_types.hh:338
eOperatorPropTags
Definition WM_types.hh:263
wmPopupPosition
Definition WM_types.hh:987
@ WM_POPUP_POSITION_MOUSE
Definition WM_types.hh:988
@ WM_POPUP_POSITION_CENTER
Definition WM_types.hh:989
wmTimerFlags
Definition WM_types.hh:941
@ WM_TIMER_TAGGED_FOR_REMOVAL
Definition WM_types.hh:948
@ WM_TIMER_NO_FREE_CUSTOM_DATA
Definition WM_types.hh:943
CLG_LogRef * WM_LOG_MSGBUS_SUB
wmProgress
Definition WM_types.hh:850
@ P_IN_PROGRESS
Definition WM_types.hh:853
@ P_STARTING
Definition WM_types.hh:852
@ P_FINISHED
Definition WM_types.hh:855
@ P_NOT_STARTED
Definition WM_types.hh:851
@ P_FINISHING
Definition WM_types.hh:854
eWM_CursorWrapAxis
Definition WM_types.hh:225
@ WM_CURSOR_WRAP_X
Definition WM_types.hh:227
@ WM_CURSOR_WRAP_XY
Definition WM_types.hh:229
@ WM_CURSOR_WRAP_Y
Definition WM_types.hh:228
@ WM_CURSOR_WRAP_NONE
Definition WM_types.hh:226
BMesh const char void * data
static ulong state[N]
constexpr float POLYLINE_CLICK_RADIUS
Definition WM_types.hh:597
VecBase< int32_t, 2 > int2
VecBase< float, 2 > float2
Definition DNA_ID.h:414
RecentFile * prev
Definition WM_types.hh:1450
RecentFile * next
Definition WM_types.hh:1450
char * filepath
Definition WM_types.hh:1451
Universally Unique Identifier according to RFC4122.
const char * disabled_info
Definition WM_types.hh:1321
std::unique_ptr< bContextStore > ui_context
Definition WM_types.hh:1314
wmDropBox * active_dropbox
Definition WM_types.hh:1297
wmDragAsset * external_info
Definition WM_types.hh:1264
wmDragAssetListItem * prev
Definition WM_types.hh:1260
union wmDragAssetListItem::@356367110101130017201161164010115362272120017131 asset_data
wmDragAssetListItem * next
Definition WM_types.hh:1260
const AssetRepresentationHandle * asset
Definition WM_types.hh:1243
AssetImportSettings import_settings
Definition WM_types.hh:1244
GreasePencil * grease_pencil
Definition WM_types.hh:1280
GreasePencilLayerTreeNode * node
Definition WM_types.hh:1281
wmDragID * next
Definition WM_types.hh:1237
wmDragID * prev
Definition WM_types.hh:1237
ID * from_parent
Definition WM_types.hh:1239
int file_types_bit_flag
Definition WM_types.hh:1275
blender::Vector< int > file_types
Definition WM_types.hh:1273
blender::Vector< std::string > paths
Definition WM_types.hh:1271
std::string tooltip
Definition WM_types.hh:1276
float imbuf_scale
Definition WM_types.hh:1336
eWM_DragDataType type
Definition WM_types.hh:1331
wmDrag * prev
Definition WM_types.hh:1328
const ImBuf * imb
Definition WM_types.hh:1335
void * poin
Definition WM_types.hh:1332
int preview_icon_id
Definition WM_types.hh:1338
int icon
Definition WM_types.hh:1330
ListBase ids
Definition WM_types.hh:1345
ListBase asset_items
Definition WM_types.hh:1347
wmDragActiveDropState drop_state
Definition WM_types.hh:1340
wmDrag * next
Definition WM_types.hh:1328
eWM_DragFlags flags
Definition WM_types.hh:1342
WMDropboxTooltipFunc tooltip
Definition WM_types.hh:1405
IDProperty * properties
Definition WM_types.hh:1418
void * draw_data
Definition WM_types.hh:1402
bool(* poll)(bContext *C, wmDrag *drag, const wmEvent *event)
Definition WM_types.hh:1363
wmDropBox * prev
Definition WM_types.hh:1360
void(* on_drag_start)(bContext *C, wmDrag *drag)
Definition WM_types.hh:1368
PointerRNA * ptr
Definition WM_types.hh:1420
wmOperatorType * ot
Definition WM_types.hh:1413
void(* on_exit)(wmDropBox *drop, wmDrag *drag)
Definition WM_types.hh:1375
void(* on_enter)(wmDropBox *drop, wmDrag *drag)
Definition WM_types.hh:1371
void(* cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop)
Definition WM_types.hh:1384
char opname[64]
Definition WM_types.hh:1415
wmDropBox * next
Definition WM_types.hh:1360
void(* draw_in_view)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
Definition WM_types.hh:1399
void(* draw_droptip)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
Definition WM_types.hh:1391
void(* copy)(bContext *C, wmDrag *drag, wmDropBox *drop)
Definition WM_types.hh:1378
wmEventType prev_type
Definition WM_types.hh:812
wmEvent * prev
Definition WM_types.hh:754
short customdata_free
Definition WM_types.hh:794
wmEventModifierFlag modifier
Definition WM_types.hh:774
wmEventType type
Definition WM_types.hh:757
short custom
Definition WM_types.hh:793
wmEventType prev_press_type
Definition WM_types.hh:825
wmEvent * next
Definition WM_types.hh:754
short val
Definition WM_types.hh:759
int xy[2]
Definition WM_types.hh:761
wmEventType prev_press_keymodifier
Definition WM_types.hh:834
char utf8_buf[6]
Definition WM_types.hh:771
int mval[2]
Definition WM_types.hh:763
int prev_xy[2]
Definition WM_types.hh:820
wmEventModifierFlag prev_press_modifier
Definition WM_types.hh:832
wmTabletData tablet
Definition WM_types.hh:786
eWM_EventFlag flag
Definition WM_types.hh:788
short prev_val
Definition WM_types.hh:814
int prev_press_xy[2]
Definition WM_types.hh:830
wmEventType keymodifier
Definition WM_types.hh:783
int8_t direction
Definition WM_types.hh:777
void * customdata
Definition WM_types.hh:807
wmGenericCallbackFn exec
Definition WM_types.hh:150
wmGenericUserDataFreeFn free_user_data
Definition WM_types.hh:152
wmGenericUserDataFreeFn free_fn
Definition WM_types.hh:143
uint wait_for_input
Definition WM_types.hh:643
uint use_snap
Definition WM_types.hh:648
int event_type
Definition WM_types.hh:615
uint is_active_prev
Definition WM_types.hh:641
int modal_state
Definition WM_types.hh:628
void * customdata
Definition WM_types.hh:663
int points_alloc
Definition WM_types.hh:627
wmGenericUserData user_data
Definition WM_types.hh:666
uint move
Definition WM_types.hh:645
bool draw_active_side
Definition WM_types.hh:630
uint use_flip
Definition WM_types.hh:651
uint is_active
Definition WM_types.hh:639
short event_keymodifier
Definition WM_types.hh:619
wmGesture * prev
Definition WM_types.hh:613
uint8_t event_modifier
Definition WM_types.hh:617
wmGesture * next
Definition WM_types.hh:613
rcti winrct
Definition WM_types.hh:623
uint use_smooth
Definition WM_types.hh:654
blender::int2 mval
Definition WM_types.hh:632
ReportList * reports
Definition WM_types.hh:1028
wmNotifier * next
Definition WM_types.hh:354
unsigned int data
Definition WM_types.hh:358
unsigned int action
Definition WM_types.hh:358
const wmWindow * window
Definition WM_types.hh:356
unsigned int category
Definition WM_types.hh:358
unsigned int subtype
Definition WM_types.hh:358
void * reference
Definition WM_types.hh:360
wmNotifier * prev
Definition WM_types.hh:354
blender::wm::OpCallContext opcontext
Definition WM_types.hh:1167
wmOperatorType * optype
Definition WM_types.hh:1165
PointerRNA * opptr
Definition WM_types.hh:1166
const char * name
Definition WM_types.hh:1033
bool(* poll_property)(const bContext *C, wmOperator *op, const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1095
wmOperatorStatus(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1049
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1089
std::string(* get_description)(bContext *C, wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1121
bool(* depends_on_cursor)(bContext &C, wmOperatorType &ot, PointerRNA *ptr)
Definition WM_types.hh:1124
const char * idname
Definition WM_types.hh:1035
bool(* check)(bContext *C, wmOperator *op)
Definition WM_types.hh:1057
wmKeyMap * modalkeymap
Definition WM_types.hh:1145
bool(* pyop_poll)(bContext *C, wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1148
std::string(* get_name)(wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1115
bool(* ui_poll)(wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1105
ExtensionRNA rna_ext
Definition WM_types.hh:1151
const char * translation_context
Definition WM_types.hh:1037
const char * description
Definition WM_types.hh:1039
IDProperty * last_properties
Definition WM_types.hh:1130
wmOperatorStatus(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1065
void(* ui)(bContext *C, wmOperator *op)
Definition WM_types.hh:1100
PropertyRNA * prop
Definition WM_types.hh:1139
const char * undo_group
Definition WM_types.hh:1041
ListBase macro
Definition WM_types.hh:1142
StructRNA * srna
Definition WM_types.hh:1127
wmOperatorStatus(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1081
void(* cancel)(bContext *C, wmOperator *op)
Definition WM_types.hh:1073
char is_motion_absolute
Definition WM_types.hh:712
float pressure
Definition WM_types.hh:705
blender::float2 tilt
Definition WM_types.hh:710
double time_delta
Definition WM_types.hh:970
wmTimerFlags flags
Definition WM_types.hh:963
bool sleep
Definition WM_types.hh:979
double time_next
Definition WM_types.hh:975
wmTimer * next
Definition WM_types.hh:953
void * customdata
Definition WM_types.hh:965
wmTimer * prev
Definition WM_types.hh:953
wmWindow * win
Definition WM_types.hh:956
double time_start
Definition WM_types.hh:977
double time_duration
Definition WM_types.hh:968
double time_step
Definition WM_types.hh:959
double time_last
Definition WM_types.hh:973
wmEventType event_type
Definition WM_types.hh:961
ARegion * region
Definition WM_types.hh:1435
ARegion * region_from
Definition WM_types.hh:1433
ScrArea * area_from
Definition WM_types.hh:1431
wmTimer * timer
Definition WM_types.hh:1429
int xy[2]
Definition wm_draw.cc:178
wmEventType
PointerRNA * ptr
Definition wm_files.cc:4238
wmOperatorType * ot
Definition wm_files.cc:4237