Blender V4.3
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
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"
122
123#include "RNA_types.hh"
124
125/* Exported types for WM. */
127#include "wm_cursors.hh"
128#include "wm_event_types.hh"
129
130/* Include external gizmo API's. */
131#include "gizmo/WM_gizmo_api.hh"
132
133namespace blender::asset_system {
134class AssetRepresentation;
135}
137
138using wmGenericUserDataFreeFn = void (*)(void *data);
139
146
147using wmGenericCallbackFn = void (*)(bContext *C, void *user_data);
148
154
155/* ************** wmOperatorType ************************ */
156
158enum {
160 OPTYPE_REGISTER = (1 << 0),
162 OPTYPE_UNDO = (1 << 1),
164 OPTYPE_BLOCKING = (1 << 2),
165 OPTYPE_MACRO = (1 << 3),
166
173
175 OPTYPE_PRESET = (1 << 7),
176
182 OPTYPE_INTERNAL = (1 << 8),
183
188
199
202};
203
211
232
233#define WM_OP_CONTEXT_HAS_AREA(type) \
234 (CHECK_TYPE_INLINE(type, wmOperatorCallContext), \
235 !ELEM(type, WM_OP_INVOKE_SCREEN, WM_OP_EXEC_SCREEN))
236#define WM_OP_CONTEXT_HAS_REGION(type) \
237 (WM_OP_CONTEXT_HAS_AREA(type) && !ELEM(type, WM_OP_INVOKE_AREA, WM_OP_EXEC_AREA))
238
243#define OP_PROP_TAG_ADVANCED ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)
244
245/* -------------------------------------------------------------------- */
254enum {
255 KM_SHIFT = (1 << 0),
256 KM_CTRL = (1 << 1),
257 KM_ALT = (1 << 2),
259 KM_OSKEY = (1 << 3),
260
261 /* Used for key-map item creation function arguments. */
262 KM_SHIFT_ANY = (1 << 4),
263 KM_CTRL_ANY = (1 << 5),
264 KM_ALT_ANY = (1 << 6),
265 KM_OSKEY_ANY = (1 << 7),
266};
267
268/* `KM_MOD_*` flags for #wmKeyMapItem and `wmEvent.alt/shift/oskey/ctrl`. */
269/* Note that #KM_ANY and #KM_NOTHING are used with these defines too. */
270#define KM_MOD_HELD 1
271
276enum {
278};
279
281enum {
282 KM_ANY = -1,
293};
294
300enum {
309};
310
313/* ************** UI Handler ***************** */
314
315#define WM_UI_HANDLER_CONTINUE 0
316#define WM_UI_HANDLER_BREAK 1
317
318/* ************** Notifiers ****************** */
319
322
324
325 unsigned int category, data, subtype, action;
326
328};
329
330/* 4 levels
331 *
332 * 0xFF000000; category
333 * 0x00FF0000; data
334 * 0x0000FF00; data subtype (unused?)
335 * 0x000000FF; action
336 */
337
338/* Category. */
339#define NOTE_CATEGORY 0xFF000000
340#define NOTE_CATEGORY_TAG_CLEARED NOTE_CATEGORY
341#define NC_WM (1 << 24)
342#define NC_WINDOW (2 << 24)
343#define NC_WORKSPACE (3 << 24)
344#define NC_SCREEN (4 << 24)
345#define NC_SCENE (5 << 24)
346#define NC_OBJECT (6 << 24)
347#define NC_MATERIAL (7 << 24)
348#define NC_TEXTURE (8 << 24)
349#define NC_LAMP (9 << 24)
350#define NC_GROUP (10 << 24)
351#define NC_IMAGE (11 << 24)
352#define NC_BRUSH (12 << 24)
353#define NC_TEXT (13 << 24)
354#define NC_WORLD (14 << 24)
355#define NC_ANIMATION (15 << 24)
356/* When passing a space as reference data with this (e.g. `WM_event_add_notifier(..., space)`),
357 * the notifier will only be sent to this space. That avoids unnecessary updates for unrelated
358 * spaces. */
359#define NC_SPACE (16 << 24)
360#define NC_GEOM (17 << 24)
361#define NC_NODE (18 << 24)
362#define NC_ID (19 << 24)
363#define NC_PAINTCURVE (20 << 24)
364#define NC_MOVIECLIP (21 << 24)
365#define NC_MASK (22 << 24)
366#define NC_GPENCIL (23 << 24)
367#define NC_LINESTYLE (24 << 24)
368#define NC_CAMERA (25 << 24)
369#define NC_LIGHTPROBE (26 << 24)
370/* Changes to asset data in the current .blend. */
371#define NC_ASSET (27 << 24)
372/* Changes to the active viewer path. */
373#define NC_VIEWER_PATH (28 << 24)
374
375/* Data type, 256 entries is enough, it can overlap. */
376#define NOTE_DATA 0x00FF0000
377
378/* NC_WM (window-manager). */
379#define ND_FILEREAD (1 << 16)
380#define ND_FILESAVE (2 << 16)
381#define ND_DATACHANGED (3 << 16)
382#define ND_HISTORY (4 << 16)
383#define ND_JOB (5 << 16)
384#define ND_UNDO (6 << 16)
385#define ND_XR_DATA_CHANGED (7 << 16)
386#define ND_LIB_OVERRIDE_CHANGED (8 << 16)
387
388/* NC_SCREEN. */
389#define ND_LAYOUTBROWSE (1 << 16)
390#define ND_LAYOUTDELETE (2 << 16)
391#define ND_ANIMPLAY (4 << 16)
392#define ND_GPENCIL (5 << 16)
393#define ND_LAYOUTSET (6 << 16)
394#define ND_SKETCH (7 << 16)
395#define ND_WORKSPACE_SET (8 << 16)
396#define ND_WORKSPACE_DELETE (9 << 16)
397
398/* NC_SCENE Scene. */
399#define ND_SCENEBROWSE (1 << 16)
400#define ND_MARKERS (2 << 16)
401#define ND_FRAME (3 << 16)
402#define ND_RENDER_OPTIONS (4 << 16)
403#define ND_NODES (5 << 16)
404#define ND_SEQUENCER (6 << 16)
405/* NOTE: If an object was added, removed, merged/joined, ..., it is not enough to notify with
406 * this. This affects the layer so also send a layer change notifier (e.g. ND_LAYER_CONTENT)! */
407#define ND_OB_ACTIVE (7 << 16)
408/* See comment on ND_OB_ACTIVE. */
409#define ND_OB_SELECT (8 << 16)
410#define ND_OB_VISIBLE (9 << 16)
411#define ND_OB_RENDER (10 << 16)
412#define ND_MODE (11 << 16)
413#define ND_RENDER_RESULT (12 << 16)
414#define ND_COMPO_RESULT (13 << 16)
415#define ND_KEYINGSET (14 << 16)
416#define ND_TOOLSETTINGS (15 << 16)
417#define ND_LAYER (16 << 16)
418#define ND_FRAME_RANGE (17 << 16)
419#define ND_WORLD (92 << 16)
420#define ND_LAYER_CONTENT (101 << 16)
421
422/* NC_OBJECT Object. */
423#define ND_TRANSFORM (18 << 16)
424#define ND_OB_SHADING (19 << 16)
425#define ND_POSE (20 << 16)
426#define ND_BONE_ACTIVE (21 << 16)
427#define ND_BONE_SELECT (22 << 16)
428#define ND_DRAW (23 << 16)
429#define ND_MODIFIER (24 << 16)
430#define ND_KEYS (25 << 16)
431#define ND_CONSTRAINT (26 << 16)
432#define ND_PARTICLE (27 << 16)
433#define ND_POINTCACHE (28 << 16)
434#define ND_PARENT (29 << 16)
435#define ND_LOD (30 << 16)
437#define ND_DRAW_RENDER_VIEWPORT (31 << 16)
438#define ND_SHADERFX (32 << 16)
439/* For updating motion paths in 3dview. */
440#define ND_DRAW_ANIMVIZ (33 << 16)
441#define ND_BONE_COLLECTION (34 << 16)
442
443/* NC_MATERIAL Material. */
444#define ND_SHADING (30 << 16)
445#define ND_SHADING_DRAW (31 << 16)
446#define ND_SHADING_LINKS (32 << 16)
447#define ND_SHADING_PREVIEW (33 << 16)
448
449/* NC_LAMP Light. */
450#define ND_LIGHTING (40 << 16)
451#define ND_LIGHTING_DRAW (41 << 16)
452
453/* NC_WORLD World. */
454#define ND_WORLD_DRAW (45 << 16)
455
456/* NC_TEXT Text. */
457#define ND_CURSOR (50 << 16)
458#define ND_DISPLAY (51 << 16)
459
460/* NC_ANIMATION Animato. */
461#define ND_KEYFRAME (70 << 16)
462#define ND_KEYFRAME_PROP (71 << 16)
463#define ND_ANIMCHAN (72 << 16)
464#define ND_NLA (73 << 16)
465#define ND_NLA_ACTCHANGE (74 << 16)
466#define ND_FCURVES_ORDER (75 << 16)
467#define ND_NLA_ORDER (76 << 16)
468
469/* NC_GPENCIL. */
470#define ND_GPENCIL_EDITMODE (85 << 16)
471
472/* NC_GEOM Geometry. */
473/* Mesh, Curve, MetaBall, Armature, etc. */
474#define ND_SELECT (90 << 16)
475#define ND_DATA (91 << 16)
476#define ND_VERTEX_GROUP (92 << 16)
477
478/* NC_NODE Nodes. */
479
480/* Influences which menus node assets are included in. */
481#define ND_NODE_ASSET_DATA (1 << 16)
482#define ND_NODE_GIZMO (2 << 16)
483
484/* NC_SPACE. */
485#define ND_SPACE_CONSOLE (1 << 16) /* General redraw. */
486#define ND_SPACE_INFO_REPORT (2 << 16) /* Update for reports, could specify type. */
487#define ND_SPACE_INFO (3 << 16)
488#define ND_SPACE_IMAGE (4 << 16)
489#define ND_SPACE_FILE_PARAMS (5 << 16)
490#define ND_SPACE_FILE_LIST (6 << 16)
491#define ND_SPACE_ASSET_PARAMS (7 << 16)
492#define ND_SPACE_NODE (8 << 16)
493#define ND_SPACE_OUTLINER (9 << 16)
494#define ND_SPACE_VIEW3D (10 << 16)
495#define ND_SPACE_PROPERTIES (11 << 16)
496#define ND_SPACE_TEXT (12 << 16)
497#define ND_SPACE_TIME (13 << 16)
498#define ND_SPACE_GRAPH (14 << 16)
499#define ND_SPACE_DOPESHEET (15 << 16)
500#define ND_SPACE_NLA (16 << 16)
501#define ND_SPACE_SEQUENCER (17 << 16)
502#define ND_SPACE_NODE_VIEW (18 << 16)
503/* Sent to a new editor type after it's replaced an old one. */
504#define ND_SPACE_CHANGED (19 << 16)
505#define ND_SPACE_CLIP (20 << 16)
506#define ND_SPACE_FILE_PREVIEW (21 << 16)
507#define ND_SPACE_SPREADSHEET (22 << 16)
508/* Not a space itself, but a part of another space. */
509#define ND_REGIONS_ASSET_SHELF (23 << 16)
510
511/* NC_ASSET. */
512/* Denotes that the AssetList is done reading some previews. NOT that the preview generation of
513 * assets is done. */
514#define ND_ASSET_LIST (1 << 16)
515#define ND_ASSET_LIST_PREVIEW (2 << 16)
516#define ND_ASSET_LIST_READING (3 << 16)
517/* Catalog data changed, requiring a redraw of catalog UIs. Note that this doesn't denote a
518 * reloading of asset libraries & their catalogs should happen. That only happens on explicit user
519 * action. */
520#define ND_ASSET_CATALOGS (4 << 16)
521
522/* Subtype, 256 entries too. */
523#define NOTE_SUBTYPE 0x0000FF00
524
525/* Subtype scene mode. */
526#define NS_MODE_OBJECT (1 << 8)
527
528#define NS_EDITMODE_MESH (2 << 8)
529#define NS_EDITMODE_CURVE (3 << 8)
530#define NS_EDITMODE_SURFACE (4 << 8)
531#define NS_EDITMODE_TEXT (5 << 8)
532#define NS_EDITMODE_MBALL (6 << 8)
533#define NS_EDITMODE_LATTICE (7 << 8)
534#define NS_EDITMODE_ARMATURE (8 << 8)
535#define NS_MODE_POSE (9 << 8)
536#define NS_MODE_PARTICLE (10 << 8)
537#define NS_EDITMODE_CURVES (11 << 8)
538#define NS_EDITMODE_GREASE_PENCIL (12 << 8)
539#define NS_EDITMODE_POINT_CLOUD (13 << 8)
540
541/* Subtype 3d view editing. */
542#define NS_VIEW3D_GPU (16 << 8)
543#define NS_VIEW3D_SHADING (17 << 8)
544
545/* Subtype layer editing. */
546#define NS_LAYER_COLLECTION (24 << 8)
547
548/* Action classification. */
549#define NOTE_ACTION (0x000000FF)
550#define NA_EDITED 1
551#define NA_EVALUATED 2
552#define NA_ADDED 3
553#define NA_REMOVED 4
554#define NA_RENAME 5
555#define NA_SELECTED 6
556#define NA_ACTIVATED 7
557#define NA_PAINTING 8
558#define NA_JOB_FINISHED 9
559
560/* ************** Gesture Manager data ************** */
561
563constexpr float POLYLINE_CLICK_RADIUS = 15.0f;
564}
565
567#define WM_GESTURE_LINES 1
568#define WM_GESTURE_RECT 2
569#define WM_GESTURE_CROSS_RECT 3
570#define WM_GESTURE_LASSO 4
571#define WM_GESTURE_CIRCLE 5
572#define WM_GESTURE_STRAIGHTLINE 6
573#define WM_GESTURE_POLYLINE 7
574
634
635/* ************** wmEvent ************************ */
636
666
679
718struct wmEvent {
720
722 short type;
724 short val;
726 int xy[2];
728 int mval[2];
736 char utf8_buf[6];
737
740
743
749
752
754
755 /* Custom data. */
756
758 short custom;
773
774 /* Previous State. */
775
779 short prev_val;
785 int prev_xy[2];
786
787 /* Previous Press State (when `val == KM_PRESS`). */
788
800};
801
809#define WM_EVENT_CURSOR_MOTION_THRESHOLD ((float)U.move_threshold * UI_SCALE_FAC)
810
814 P_STARTING, /* <-- */
815 P_IN_PROGRESS, /* <-- only these are sent for NDOF motion. */
816 P_FINISHING, /* <-- */
818};
819
820#ifdef WITH_INPUT_NDOF
821struct wmNDOFMotionData {
822 /* Awfully similar to #GHOST_TEventNDOFMotionData. */
829 float tvec[3];
836 float rvec[3];
838 float dt;
840 wmProgress progress;
841};
842#endif /* WITH_INPUT_NDOF */
843
844#ifdef WITH_XR_OPENXR
845/* Similar to GHOST_XrPose. */
846struct wmXrPose {
847 float position[3];
848 /* Blender convention (w, x, y, z). */
849 float orientation_quat[4];
850};
851
852struct wmXrActionState {
853 union {
854 bool state_boolean;
855 float state_float;
856 float state_vector2f[2];
857 wmXrPose state_pose;
858 };
859 int type; /* #eXrActionType. */
860};
861
862struct wmXrActionData {
864 char action_set[64];
866 char action[64];
868 char user_path[64];
870 char user_path_other[64];
872 eXrActionType type;
874 float state[2];
876 float state_other[2];
877
879 float float_threshold;
880
882 float controller_loc[3];
883 float controller_rot[4];
885 float controller_loc_other[3];
886 float controller_rot_other[4];
887
890 IDProperty *op_properties;
891
893 bool bimanual;
894};
895#endif
896
901
902 /* Internal flags, should not be used outside of WM code. */
906};
908
909struct wmTimer {
910 wmTimer *next, *prev;
911
914
916 double time_step;
923
928
930 double time_last;
932 double time_next;
936 bool sleep;
937};
938
943
948
969
976 bool stop;
977
979 float progress;
980
986};
987
1112
1122
1123#ifdef WITH_INPUT_IME
1124/* *********** Input Method Editor (IME) *********** */
1129struct wmIMEData {
1130 size_t result_len, composite_len;
1131
1133 char *str_result;
1135 char *str_composite;
1136
1138 int cursor_pos;
1140 int sel_start;
1142 int sel_end;
1143};
1144#endif
1145
1146/* **************** Paint Cursor ******************* */
1147
1148using wmPaintCursorDraw = void (*)(bContext *C, int, int, void *customdata);
1149
1150/* *************** Drag and drop *************** */
1151
1178
1184
1185/* NOTE: structs need not exported? */
1186
1192
1194 int import_method; /* #eAssetImportMethod. */
1196};
1197
1201
1220
1223 /* File type of each path in #paths. */
1224 blender::Vector<int> file_types; /* #eFileSel_File_Types. */
1225 /* Bit flag of file types in #paths. */
1226 int file_types_bit_flag; /* #eFileSel_File_Types. */
1227 std::string tooltip;
1228};
1229
1234
1235using WMDropboxTooltipFunc = std::string (*)(bContext *C,
1236 wmDrag *drag,
1237 const int xy[2],
1238 wmDropBox *drop);
1239
1277
1298
1309
1311 bool (*poll)(bContext *C, wmDrag *drag, const wmEvent *event);
1312
1316 void (*on_drag_start)(bContext *C, wmDrag *drag);
1317
1319 void (*on_enter)(wmDropBox *drop, wmDrag *drag);
1320
1323 void (*on_exit)(wmDropBox *drop, wmDrag *drag);
1324
1326 void (*copy)(bContext *C, wmDrag *drag, wmDropBox *drop);
1327
1332 void (*cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop);
1333
1339 void (*draw_droptip)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1340
1347 void (*draw_in_view)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2]);
1348
1351
1354
1363 char opname[64];
1364
1369};
1370
1385 ARegion *(*init)(
1386 bContext *C, ARegion *region, int *pass, double *pass_delay, bool *r_exit_on_event);
1390 int event_xy[2];
1392 int pass;
1393};
1394
1395/* *************** migrated stuff, clean later? ************** */
1396
1401
1402/* Logging. */
1403struct CLG_LogRef;
1404/* `wm_init_exit.cc`. */
1405
1410extern CLG_LogRef *WM_LOG_TOOLS;
#define ATTR_WARN_UNUSED_RESULT
unsigned int uint
#define ENUM_OPERATORS(_type, _max)
These structs are the foundation for all linked lists in the library system.
struct AssetRepresentationHandle AssetRepresentationHandle
eXrActionType
#define C
Definition RandGen.cpp:29
@ OPTYPE_PRESET
Definition WM_types.hh:175
@ OPTYPE_INTERNAL
Definition WM_types.hh:182
@ OPTYPE_MACRO
Definition WM_types.hh:165
@ OPTYPE_BLOCKING
Definition WM_types.hh:164
@ OPTYPE_LOCK_BYPASS
Definition WM_types.hh:185
@ OPTYPE_MODAL_PRIORITY
Definition WM_types.hh:201
@ OPTYPE_UNDO_GROUPED
Definition WM_types.hh:187
@ OPTYPE_DEPENDS_ON_CURSOR
Definition WM_types.hh:198
@ OPTYPE_UNDO
Definition WM_types.hh:162
@ OPTYPE_GRAB_CURSOR_XY
Definition WM_types.hh:168
@ OPTYPE_REGISTER
Definition WM_types.hh:160
@ OPTYPE_GRAB_CURSOR_X
Definition WM_types.hh:170
@ OPTYPE_GRAB_CURSOR_Y
Definition WM_types.hh:172
CLG_LogRef * WM_LOG_MSGBUS_PUB
eWM_EventFlag
Definition WM_types.hh:637
@ WM_EVENT_FORCE_DRAG_THRESHOLD
Definition WM_types.hh:663
@ WM_EVENT_SCROLL_INVERT
Definition WM_types.hh:643
@ WM_EVENT_IS_CONSECUTIVE
Definition WM_types.hh:658
@ WM_EVENT_IS_REPEAT
Definition WM_types.hh:650
CLG_LogRef * WM_LOG_OPERATORS
CLG_LogRef * WM_LOG_HANDLERS
eWM_DragFlags
Definition WM_types.hh:1179
@ WM_DRAG_NOP
Definition WM_types.hh:1180
@ WM_DRAG_FREE_DATA
Definition WM_types.hh:1181
@ KM_NOTHING
Definition WM_types.hh:283
@ KM_ANY
Definition WM_types.hh:282
@ KM_PRESS
Definition WM_types.hh:284
@ KM_CLICK_DRAG
Definition WM_types.hh:292
@ KM_DBL_CLICK
Definition WM_types.hh:287
@ KM_RELEASE
Definition WM_types.hh:285
@ KM_CLICK
Definition WM_types.hh:286
CLG_LogRef * WM_LOG_EVENTS
wmPopupSize
Definition WM_types.hh:939
@ WM_POPUP_SIZE_LARGE
Definition WM_types.hh:941
@ WM_POPUP_SIZE_SMALL
Definition WM_types.hh:940
#define OP_PROP_TAG_ADVANCED
Definition WM_types.hh:243
CLG_LogRef * WM_LOG_TOOLS
@ KM_DIRECTION_NW
Definition WM_types.hh:308
@ KM_DIRECTION_N
Definition WM_types.hh:301
@ KM_DIRECTION_SW
Definition WM_types.hh:306
@ KM_DIRECTION_NE
Definition WM_types.hh:302
@ KM_DIRECTION_E
Definition WM_types.hh:303
@ KM_DIRECTION_W
Definition WM_types.hh:307
@ KM_DIRECTION_SE
Definition WM_types.hh:304
@ KM_DIRECTION_S
Definition WM_types.hh:305
void(*)(bContext *C, int, int, void *customdata) wmPaintCursorDraw
Definition WM_types.hh:1148
void(*)(void *data) wmGenericUserDataFreeFn
Definition WM_types.hh:138
wmOperatorCallContext
Definition WM_types.hh:216
@ WM_OP_INVOKE_REGION_WIN
Definition WM_types.hh:219
@ WM_OP_EXEC_REGION_WIN
Definition WM_types.hh:226
@ WM_OP_INVOKE_SCREEN
Definition WM_types.hh:223
@ WM_OP_INVOKE_AREA
Definition WM_types.hh:222
@ WM_OP_EXEC_REGION_PREVIEW
Definition WM_types.hh:228
@ WM_OP_EXEC_SCREEN
Definition WM_types.hh:230
@ WM_OP_INVOKE_REGION_PREVIEW
Definition WM_types.hh:221
@ WM_OP_INVOKE_DEFAULT
Definition WM_types.hh:218
@ WM_OP_EXEC_REGION_CHANNELS
Definition WM_types.hh:227
@ WM_OP_INVOKE_REGION_CHANNELS
Definition WM_types.hh:220
@ WM_OP_EXEC_DEFAULT
Definition WM_types.hh:225
@ WM_OP_EXEC_AREA
Definition WM_types.hh:229
eWM_DragDataType
Definition WM_types.hh:1152
@ WM_DRAG_RNA
Definition WM_types.hh:1159
@ WM_DRAG_DATASTACK
Definition WM_types.hh:1171
@ WM_DRAG_PATH
Definition WM_types.hh:1160
@ WM_DRAG_ASSET_LIST
Definition WM_types.hh:1158
@ WM_DRAG_GREASE_PENCIL_LAYER
Definition WM_types.hh:1173
@ WM_DRAG_BONE_COLLECTION
Definition WM_types.hh:1176
@ WM_DRAG_GREASE_PENCIL_GROUP
Definition WM_types.hh:1174
@ WM_DRAG_STRING
Definition WM_types.hh:1169
@ WM_DRAG_COLOR
Definition WM_types.hh:1170
@ WM_DRAG_ASSET_CATALOG
Definition WM_types.hh:1172
@ WM_DRAG_NAME
Definition WM_types.hh:1161
@ WM_DRAG_NODE_TREE_INTERFACE
Definition WM_types.hh:1175
@ WM_DRAG_ASSET
Definition WM_types.hh:1154
@ WM_DRAG_ID
Definition WM_types.hh:1153
@ KM_CTRL
Definition WM_types.hh:256
@ KM_ALT
Definition WM_types.hh:257
@ KM_ALT_ANY
Definition WM_types.hh:264
@ KM_OSKEY_ANY
Definition WM_types.hh:265
@ KM_SHIFT_ANY
Definition WM_types.hh:262
@ KM_OSKEY
Definition WM_types.hh:259
@ KM_CTRL_ANY
Definition WM_types.hh:263
@ KM_SHIFT
Definition WM_types.hh:255
void(*)(bContext *C, void *user_data) wmGenericCallbackFn
Definition WM_types.hh:147
@ KM_TEXTINPUT
Definition WM_types.hh:277
eOperatorPropTags
Definition WM_types.hh:240
wmPopupPosition
Definition WM_types.hh:944
@ WM_POPUP_POSITION_MOUSE
Definition WM_types.hh:945
@ WM_POPUP_POSITION_CENTER
Definition WM_types.hh:946
wmTimerFlags
Definition WM_types.hh:898
@ WM_TIMER_TAGGED_FOR_REMOVAL
Definition WM_types.hh:905
@ WM_TIMER_NO_FREE_CUSTOM_DATA
Definition WM_types.hh:900
std::string(*)(bContext *C, wmDrag *drag, const int xy[2], wmDropBox *drop) WMDropboxTooltipFunc
Definition WM_types.hh:1235
CLG_LogRef * WM_LOG_MSGBUS_SUB
wmProgress
Definition WM_types.hh:812
@ P_IN_PROGRESS
Definition WM_types.hh:815
@ P_STARTING
Definition WM_types.hh:814
@ P_FINISHED
Definition WM_types.hh:817
@ P_NOT_STARTED
Definition WM_types.hh:813
@ P_FINISHING
Definition WM_types.hh:816
CLG_LogRef * WM_LOG_KEYMAPS
eWM_CursorWrapAxis
Definition WM_types.hh:205
@ WM_CURSOR_WRAP_X
Definition WM_types.hh:207
@ WM_CURSOR_WRAP_XY
Definition WM_types.hh:209
@ WM_CURSOR_WRAP_Y
Definition WM_types.hh:208
@ WM_CURSOR_WRAP_NONE
Definition WM_types.hh:206
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
static ulong state[N]
constexpr float POLYLINE_CLICK_RADIUS
Definition WM_types.hh:563
unsigned char uint8_t
Definition stdint.h:78
signed char int8_t
Definition stdint.h:75
Definition DNA_ID.h:413
RecentFile * prev
Definition WM_types.hh:1398
RecentFile * next
Definition WM_types.hh:1398
char * filepath
Definition WM_types.hh:1399
Universally Unique Identifier according to RFC4122.
const char * disabled_info
Definition WM_types.hh:1272
std::unique_ptr< bContextStore > ui_context
Definition WM_types.hh:1265
wmDropBox * active_dropbox
Definition WM_types.hh:1248
wmDragAsset * external_info
Definition WM_types.hh:1215
wmDragAssetListItem * prev
Definition WM_types.hh:1211
union wmDragAssetListItem::@1405 asset_data
wmDragAssetListItem * next
Definition WM_types.hh:1211
const AssetRepresentationHandle * asset
Definition WM_types.hh:1195
int import_method
Definition WM_types.hh:1194
GreasePencil * grease_pencil
Definition WM_types.hh:1231
GreasePencilLayerTreeNode * node
Definition WM_types.hh:1232
wmDragID * next
Definition WM_types.hh:1188
ID * from_parent
Definition WM_types.hh:1190
int file_types_bit_flag
Definition WM_types.hh:1226
blender::Vector< int > file_types
Definition WM_types.hh:1224
blender::Vector< std::string > paths
Definition WM_types.hh:1222
std::string tooltip
Definition WM_types.hh:1227
float imbuf_scale
Definition WM_types.hh:1287
eWM_DragDataType type
Definition WM_types.hh:1282
wmDrag * prev
Definition WM_types.hh:1279
const ImBuf * imb
Definition WM_types.hh:1286
void * poin
Definition WM_types.hh:1283
int icon
Definition WM_types.hh:1281
ListBase ids
Definition WM_types.hh:1294
ListBase asset_items
Definition WM_types.hh:1296
wmDragActiveDropState drop_state
Definition WM_types.hh:1289
wmDrag * next
Definition WM_types.hh:1279
eWM_DragFlags flags
Definition WM_types.hh:1291
WMDropboxTooltipFunc tooltip
Definition WM_types.hh:1353
IDProperty * properties
Definition WM_types.hh:1366
void * draw_data
Definition WM_types.hh:1350
bool(* poll)(bContext *C, wmDrag *drag, const wmEvent *event)
Definition WM_types.hh:1311
wmDropBox * prev
Definition WM_types.hh:1308
void(* on_drag_start)(bContext *C, wmDrag *drag)
Definition WM_types.hh:1316
PointerRNA * ptr
Definition WM_types.hh:1368
wmOperatorType * ot
Definition WM_types.hh:1361
void(* on_exit)(wmDropBox *drop, wmDrag *drag)
Definition WM_types.hh:1323
void(* on_enter)(wmDropBox *drop, wmDrag *drag)
Definition WM_types.hh:1319
void(* cancel)(Main *bmain, wmDrag *drag, wmDropBox *drop)
Definition WM_types.hh:1332
char opname[64]
Definition WM_types.hh:1363
wmDropBox * next
Definition WM_types.hh:1308
void(* draw_in_view)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
Definition WM_types.hh:1347
void(* draw_droptip)(bContext *C, wmWindow *win, wmDrag *drag, const int xy[2])
Definition WM_types.hh:1339
void(* copy)(bContext *C, wmDrag *drag, wmDropBox *drop)
Definition WM_types.hh:1326
wmEvent * prev
Definition WM_types.hh:719
short customdata_free
Definition WM_types.hh:759
short custom
Definition WM_types.hh:758
wmEvent * next
Definition WM_types.hh:719
short prev_press_keymodifier
Definition WM_types.hh:799
short val
Definition WM_types.hh:724
short prev_type
Definition WM_types.hh:777
int xy[2]
Definition WM_types.hh:726
uint8_t prev_press_modifier
Definition WM_types.hh:797
char utf8_buf[6]
Definition WM_types.hh:736
int mval[2]
Definition WM_types.hh:728
int prev_xy[2]
Definition WM_types.hh:785
short keymodifier
Definition WM_types.hh:748
uint8_t modifier
Definition WM_types.hh:739
wmTabletData tablet
Definition WM_types.hh:751
eWM_EventFlag flag
Definition WM_types.hh:753
short prev_val
Definition WM_types.hh:779
int prev_press_xy[2]
Definition WM_types.hh:795
short type
Definition WM_types.hh:722
int8_t direction
Definition WM_types.hh:742
short prev_press_type
Definition WM_types.hh:790
void * customdata
Definition WM_types.hh:772
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:609
uint use_snap
Definition WM_types.hh:614
int event_type
Definition WM_types.hh:581
uint is_active_prev
Definition WM_types.hh:607
int modal_state
Definition WM_types.hh:594
void * customdata
Definition WM_types.hh:629
int points_alloc
Definition WM_types.hh:593
wmGenericUserData user_data
Definition WM_types.hh:632
uint move
Definition WM_types.hh:611
bool draw_active_side
Definition WM_types.hh:596
uint use_flip
Definition WM_types.hh:617
uint is_active
Definition WM_types.hh:605
short event_keymodifier
Definition WM_types.hh:585
wmGesture * prev
Definition WM_types.hh:579
uint8_t event_modifier
Definition WM_types.hh:583
wmGesture * next
Definition WM_types.hh:579
rcti winrct
Definition WM_types.hh:589
uint use_smooth
Definition WM_types.hh:620
blender::int2 mval
Definition WM_types.hh:598
ReportList * reports
Definition WM_types.hh:985
wmNotifier * next
Definition WM_types.hh:321
unsigned int data
Definition WM_types.hh:325
unsigned int action
Definition WM_types.hh:325
const wmWindow * window
Definition WM_types.hh:323
unsigned int category
Definition WM_types.hh:325
unsigned int subtype
Definition WM_types.hh:325
void * reference
Definition WM_types.hh:327
wmNotifier * prev
Definition WM_types.hh:321
wmOperatorType * optype
Definition WM_types.hh:1118
wmOperatorCallContext opcontext
Definition WM_types.hh:1120
PointerRNA * opptr
Definition WM_types.hh:1119
const char * name
Definition WM_types.hh:990
bool(* poll_property)(const bContext *C, wmOperator *op, const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1048
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1042
std::string(* get_description)(bContext *C, wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1074
bool(* depends_on_cursor)(bContext &C, wmOperatorType &ot, PointerRNA *ptr)
Definition WM_types.hh:1077
const char * idname
Definition WM_types.hh:992
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1036
bool(* check)(bContext *C, wmOperator *op)
Definition WM_types.hh:1014
wmKeyMap * modalkeymap
Definition WM_types.hh:1098
bool(* pyop_poll)(bContext *C, wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1101
std::string(* get_name)(wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1068
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1022
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
Definition WM_types.hh:1006
bool(* ui_poll)(wmOperatorType *ot, PointerRNA *ptr)
Definition WM_types.hh:1058
ExtensionRNA rna_ext
Definition WM_types.hh:1104
const char * translation_context
Definition WM_types.hh:994
const char * description
Definition WM_types.hh:996
IDProperty * last_properties
Definition WM_types.hh:1083
void(* ui)(bContext *C, wmOperator *op)
Definition WM_types.hh:1053
PropertyRNA * prop
Definition WM_types.hh:1092
const char * undo_group
Definition WM_types.hh:998
ListBase macro
Definition WM_types.hh:1095
StructRNA * srna
Definition WM_types.hh:1080
void(* cancel)(bContext *C, wmOperator *op)
Definition WM_types.hh:1028
char is_motion_absolute
Definition WM_types.hh:677
float pressure
Definition WM_types.hh:671
int event_type
Definition WM_types.hh:918
double time_delta
Definition WM_types.hh:927
wmTimerFlags flags
Definition WM_types.hh:920
bool sleep
Definition WM_types.hh:936
double time_next
Definition WM_types.hh:932
wmTimer * next
Definition WM_types.hh:910
void * customdata
Definition WM_types.hh:922
wmWindow * win
Definition WM_types.hh:913
double time_start
Definition WM_types.hh:934
double time_duration
Definition WM_types.hh:925
double time_step
Definition WM_types.hh:916
double time_last
Definition WM_types.hh:930
ARegion * region
Definition WM_types.hh:1383
ARegion * region_from
Definition WM_types.hh:1381
ScrArea * area_from
Definition WM_types.hh:1379
wmTimer * timer
Definition WM_types.hh:1377
int xy[2]
Definition wm_draw.cc:170
PointerRNA * ptr
Definition wm_files.cc:4126
wmOperatorType * ot
Definition wm_files.cc:4125