Blender  V2.93
WM_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2007 Blender Foundation.
17  * All rights reserved.
18  */
19 
109 #pragma once
110 
111 struct ID;
112 struct ImBuf;
113 struct bContext;
114 struct wmEvent;
115 struct wmOperator;
116 struct wmWindowManager;
117 
118 #include "BLI_compiler_attrs.h"
119 #include "DNA_listBase.h"
120 #include "DNA_vec_types.h"
121 #include "RNA_types.h"
122 
123 /* exported types for WM */
124 #include "gizmo/WM_gizmo_types.h"
125 #include "wm_cursors.h"
126 #include "wm_event_types.h"
127 
128 /* Include external gizmo API's */
129 #include "gizmo/WM_gizmo_api.h"
130 
131 #ifdef __cplusplus
132 extern "C" {
133 #endif
134 
135 typedef struct wmGenericUserData {
136  void *data;
138  void (*free_fn)(void *data);
139  bool use_free;
141 
142 typedef struct wmGenericCallback {
143  void (*exec)(struct bContext *C, void *user_data);
144  void *user_data;
145  void (*free_user_data)(void *user_data);
147 
148 /* ************** wmOperatorType ************************ */
149 
151 enum {
153  OPTYPE_REGISTER = (1 << 0),
155  OPTYPE_UNDO = (1 << 1),
157  OPTYPE_BLOCKING = (1 << 2),
158  OPTYPE_MACRO = (1 << 3),
159 
166 
168  OPTYPE_PRESET = (1 << 7),
169 
175  OPTYPE_INTERNAL = (1 << 8),
176 
178  OPTYPE_LOCK_BYPASS = (1 << 9),
180  OPTYPE_UNDO_GROUPED = (1 << 10),
181 };
182 
184 enum {
189 };
190 
195 enum {
196  /* if there's invoke, call it, otherwise exec */
203  /* only call exec */
210 };
211 
212 /* property tags for RNA_OperatorProperties */
213 typedef enum eOperatorPropTags {
216 #define OP_PROP_TAG_ADVANCED ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)
217 
218 /* ************** wmKeyMap ************************ */
219 
220 /* modifier */
221 #define KM_SHIFT 1
222 #define KM_CTRL 2
223 #define KM_ALT 4
224 #define KM_OSKEY 8
225 /* means modifier should be pressed 2nd */
226 #define KM_SHIFT2 16
227 #define KM_CTRL2 32
228 #define KM_ALT2 64
229 #define KM_OSKEY2 128
230 
231 /* KM_MOD_ flags for wmKeyMapItem and wmEvent.alt/shift/oskey/ctrl */
232 /* note that KM_ANY and KM_NOTHING are used with these defines too */
233 #define KM_MOD_FIRST 1
234 #define KM_MOD_SECOND 2
235 
236 /* type: defined in wm_event_types.c */
237 #define KM_TEXTINPUT -2
238 
239 /* val */
240 #define KM_ANY -1
241 #define KM_NOTHING 0
242 #define KM_PRESS 1
243 #define KM_RELEASE 2
244 #define KM_CLICK 3
245 #define KM_DBL_CLICK 4
246 #define KM_CLICK_DRAG 5
247 
248 /* ************** UI Handler ***************** */
249 
250 #define WM_UI_HANDLER_CONTINUE 0
251 #define WM_UI_HANDLER_BREAK 1
252 
253 /* ************** Notifiers ****************** */
254 
255 typedef struct wmNotifier {
256  struct wmNotifier *next, *prev;
257 
258  const struct wmWindow *window;
259 
260  unsigned int category, data, subtype, action;
261 
262  void *reference;
263 
265 
266 /* 4 levels
267  *
268  * 0xFF000000; category
269  * 0x00FF0000; data
270  * 0x0000FF00; data subtype (unused?)
271  * 0x000000FF; action
272  */
273 
274 /* category */
275 #define NOTE_CATEGORY 0xFF000000
276 #define NC_WM (1 << 24)
277 #define NC_WINDOW (2 << 24)
278 #define NC_SCREEN (3 << 24)
279 #define NC_SCENE (4 << 24)
280 #define NC_OBJECT (5 << 24)
281 #define NC_MATERIAL (6 << 24)
282 #define NC_TEXTURE (7 << 24)
283 #define NC_LAMP (8 << 24)
284 #define NC_GROUP (9 << 24)
285 #define NC_IMAGE (10 << 24)
286 #define NC_BRUSH (11 << 24)
287 #define NC_TEXT (12 << 24)
288 #define NC_WORLD (13 << 24)
289 #define NC_ANIMATION (14 << 24)
290 /* When passing a space as reference data with this (e.g. `WM_event_add_notifier(..., space)`),
291  * the notifier will only be sent to this space. That avoids unnecessary updates for unrelated
292  * spaces. */
293 #define NC_SPACE (15 << 24)
294 #define NC_GEOM (16 << 24)
295 #define NC_NODE (17 << 24)
296 #define NC_ID (18 << 24)
297 #define NC_PAINTCURVE (19 << 24)
298 #define NC_MOVIECLIP (20 << 24)
299 #define NC_MASK (21 << 24)
300 #define NC_GPENCIL (22 << 24)
301 #define NC_LINESTYLE (23 << 24)
302 #define NC_CAMERA (24 << 24)
303 #define NC_LIGHTPROBE (25 << 24)
304 /* Changes to asset data in the current .blend. */
305 #define NC_ASSET (26 << 24)
306 
307 /* data type, 256 entries is enough, it can overlap */
308 #define NOTE_DATA 0x00FF0000
309 
310 /* NC_WM windowmanager */
311 #define ND_FILEREAD (1 << 16)
312 #define ND_FILESAVE (2 << 16)
313 #define ND_DATACHANGED (3 << 16)
314 #define ND_HISTORY (4 << 16)
315 #define ND_JOB (5 << 16)
316 #define ND_UNDO (6 << 16)
317 #define ND_XR_DATA_CHANGED (7 << 16)
318 #define ND_LIB_OVERRIDE_CHANGED (8 << 16)
319 
320 /* NC_SCREEN */
321 #define ND_LAYOUTBROWSE (1 << 16)
322 #define ND_LAYOUTDELETE (2 << 16)
323 #define ND_ANIMPLAY (4 << 16)
324 #define ND_GPENCIL (5 << 16)
325 #define ND_EDITOR_CHANGED (6 << 16) /*sent to new editors after switching to them*/
326 #define ND_LAYOUTSET (7 << 16)
327 #define ND_SKETCH (8 << 16)
328 #define ND_WORKSPACE_SET (9 << 16)
329 #define ND_WORKSPACE_DELETE (10 << 16)
330 
331 /* NC_SCENE Scene */
332 #define ND_SCENEBROWSE (1 << 16)
333 #define ND_MARKERS (2 << 16)
334 #define ND_FRAME (3 << 16)
335 #define ND_RENDER_OPTIONS (4 << 16)
336 #define ND_NODES (5 << 16)
337 #define ND_SEQUENCER (6 << 16)
338 /* Note: If an object was added, removed, merged/joined, ..., it is not enough to notify with
339  * this. This affects the layer so also send a layer change notifier (e.g. ND_LAYER_CONTENT)! */
340 #define ND_OB_ACTIVE (7 << 16)
341 /* See comment on ND_OB_ACTIVE. */
342 #define ND_OB_SELECT (8 << 16)
343 #define ND_OB_VISIBLE (9 << 16)
344 #define ND_OB_RENDER (10 << 16)
345 #define ND_MODE (11 << 16)
346 #define ND_RENDER_RESULT (12 << 16)
347 #define ND_COMPO_RESULT (13 << 16)
348 #define ND_KEYINGSET (14 << 16)
349 #define ND_TOOLSETTINGS (15 << 16)
350 #define ND_LAYER (16 << 16)
351 #define ND_FRAME_RANGE (17 << 16)
352 #define ND_TRANSFORM_DONE (18 << 16)
353 #define ND_WORLD (92 << 16)
354 #define ND_LAYER_CONTENT (101 << 16)
355 
356 /* NC_OBJECT Object */
357 #define ND_TRANSFORM (18 << 16)
358 #define ND_OB_SHADING (19 << 16)
359 #define ND_POSE (20 << 16)
360 #define ND_BONE_ACTIVE (21 << 16)
361 #define ND_BONE_SELECT (22 << 16)
362 #define ND_DRAW (23 << 16)
363 #define ND_MODIFIER (24 << 16)
364 #define ND_KEYS (25 << 16)
365 #define ND_CONSTRAINT (26 << 16)
366 #define ND_PARTICLE (27 << 16)
367 #define ND_POINTCACHE (28 << 16)
368 #define ND_PARENT (29 << 16)
369 #define ND_LOD (30 << 16)
370 #define ND_DRAW_RENDER_VIEWPORT \
371  (31 << 16) /* for camera & sequencer viewport update, also /w NC_SCENE */
372 #define ND_SHADERFX (32 << 16)
373 /* For updating motion paths in 3dview. */
374 #define ND_DRAW_ANIMVIZ (33 << 16)
375 
376 /* NC_MATERIAL Material */
377 #define ND_SHADING (30 << 16)
378 #define ND_SHADING_DRAW (31 << 16)
379 #define ND_SHADING_LINKS (32 << 16)
380 #define ND_SHADING_PREVIEW (33 << 16)
381 
382 /* NC_LAMP Light */
383 #define ND_LIGHTING (40 << 16)
384 #define ND_LIGHTING_DRAW (41 << 16)
385 
386 /* NC_WORLD World */
387 #define ND_WORLD_DRAW (45 << 16)
388 
389 /* NC_TEXT Text */
390 #define ND_CURSOR (50 << 16)
391 #define ND_DISPLAY (51 << 16)
392 
393 /* NC_ANIMATION Animato */
394 #define ND_KEYFRAME (70 << 16)
395 #define ND_KEYFRAME_PROP (71 << 16)
396 #define ND_ANIMCHAN (72 << 16)
397 #define ND_NLA (73 << 16)
398 #define ND_NLA_ACTCHANGE (74 << 16)
399 #define ND_FCURVES_ORDER (75 << 16)
400 #define ND_NLA_ORDER (76 << 16)
401 
402 /* NC_GPENCIL */
403 #define ND_GPENCIL_EDITMODE (85 << 16)
404 
405 /* NC_GEOM Geometry */
406 /* Mesh, Curve, MetaBall, Armature, .. */
407 #define ND_SELECT (90 << 16)
408 #define ND_DATA (91 << 16)
409 #define ND_VERTEX_GROUP (92 << 16)
410 
411 /* NC_NODE Nodes */
412 
413 /* NC_SPACE */
414 #define ND_SPACE_CONSOLE (1 << 16) /* general redraw */
415 #define ND_SPACE_INFO_REPORT (2 << 16) /* update for reports, could specify type */
416 #define ND_SPACE_INFO (3 << 16)
417 #define ND_SPACE_IMAGE (4 << 16)
418 #define ND_SPACE_FILE_PARAMS (5 << 16)
419 #define ND_SPACE_FILE_LIST (6 << 16)
420 #define ND_SPACE_ASSET_PARAMS (7 << 16)
421 #define ND_SPACE_NODE (8 << 16)
422 #define ND_SPACE_OUTLINER (9 << 16)
423 #define ND_SPACE_VIEW3D (10 << 16)
424 #define ND_SPACE_PROPERTIES (11 << 16)
425 #define ND_SPACE_TEXT (12 << 16)
426 #define ND_SPACE_TIME (13 << 16)
427 #define ND_SPACE_GRAPH (14 << 16)
428 #define ND_SPACE_DOPESHEET (15 << 16)
429 #define ND_SPACE_NLA (16 << 16)
430 #define ND_SPACE_SEQUENCER (17 << 16)
431 #define ND_SPACE_NODE_VIEW (18 << 16)
432 #define ND_SPACE_CHANGED (19 << 16) /*sent to a new editor type after it's replaced an old one*/
433 #define ND_SPACE_CLIP (20 << 16)
434 #define ND_SPACE_FILE_PREVIEW (21 << 16)
435 #define ND_SPACE_SPREADSHEET (22 << 16)
436 
437 /* subtype, 256 entries too */
438 #define NOTE_SUBTYPE 0x0000FF00
439 
440 /* subtype scene mode */
441 #define NS_MODE_OBJECT (1 << 8)
442 
443 #define NS_EDITMODE_MESH (2 << 8)
444 #define NS_EDITMODE_CURVE (3 << 8)
445 #define NS_EDITMODE_SURFACE (4 << 8)
446 #define NS_EDITMODE_TEXT (5 << 8)
447 #define NS_EDITMODE_MBALL (6 << 8)
448 #define NS_EDITMODE_LATTICE (7 << 8)
449 #define NS_EDITMODE_ARMATURE (8 << 8)
450 #define NS_MODE_POSE (9 << 8)
451 #define NS_MODE_PARTICLE (10 << 8)
452 
453 /* subtype 3d view editing */
454 #define NS_VIEW3D_GPU (16 << 8)
455 #define NS_VIEW3D_SHADING (17 << 8)
456 
457 /* subtype layer editing */
458 #define NS_LAYER_COLLECTION (24 << 8)
459 
460 /* action classification */
461 #define NOTE_ACTION (0x000000FF)
462 #define NA_EDITED 1
463 #define NA_EVALUATED 2
464 #define NA_ADDED 3
465 #define NA_REMOVED 4
466 #define NA_RENAME 5
467 #define NA_SELECTED 6
468 #define NA_ACTIVATED 7
469 #define NA_PAINTING 8
470 #define NA_JOB_FINISHED 9
471 
472 /* ************** Gesture Manager data ************** */
473 
474 /* wmGesture->type */
475 #define WM_GESTURE_TWEAK 0
476 #define WM_GESTURE_LINES 1
477 #define WM_GESTURE_RECT 2
478 #define WM_GESTURE_CROSS_RECT 3
479 #define WM_GESTURE_LASSO 4
480 #define WM_GESTURE_CIRCLE 5
481 #define WM_GESTURE_STRAIGHTLINE 6
482 
487 typedef struct wmGesture {
488  struct wmGesture *next, *prev;
492  int type;
496  int points;
502 
514  uint move : 1;
521 
529  void *customdata;
530 
534 
535 /* ************** wmEvent ************************ */
536 
537 typedef struct wmTabletData {
539  int active;
541  float pressure;
543  float x_tilt;
545  float y_tilt;
549 
573 typedef struct wmEvent {
574  struct wmEvent *next, *prev;
575 
577  short type;
579  short val;
581  int x, y;
583  int mval[2];
589  char utf8_buf[6];
591  char ascii;
592 
599  char is_repeat;
600 
602  short prevtype;
604  short prevval;
614  int prevx, prevy;
615 
618  short shift, ctrl, alt, oskey;
620  short keymodifier;
621 
624 
625  /* Custom data. */
627  short custom;
629  int pad2;
631  void *customdata;
632 
640 
648 #define WM_EVENT_CURSOR_MOTION_THRESHOLD ((float)U.move_threshold * U.dpi_fac)
649 
651 typedef enum {
653  P_STARTING, /* <-- */
654  P_IN_PROGRESS, /* <-- only these are sent for NDOF motion. */
655  P_FINISHING, /* <-- */
657 } wmProgress;
658 
659 #ifdef WITH_INPUT_NDOF
660 typedef struct wmNDOFMotionData {
661  /* awfully similar to GHOST_TEventNDOFMotionData... */
668  float tvec[3];
675  float rvec[3];
677  float dt;
679  wmProgress progress;
680 } wmNDOFMotionData;
681 #endif /* WITH_INPUT_NDOF */
682 
684 typedef enum {
687 } wmTimerFlags;
688 
689 typedef struct wmTimer {
690  struct wmTimer *next, *prev;
691 
693  struct wmWindow *win;
694 
696  double timestep;
702  void *customdata;
703 
705  double duration;
707  double delta;
708 
710  double ltime;
712  double ntime;
714  double stime;
716  bool sleep;
718 
719 typedef struct wmOperatorType {
721  const char *name;
723  const char *idname;
724  const char *translation_context;
726  const char *description;
728  const char *undo_group;
729 
736  int (*exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT;
737 
744  bool (*check)(struct bContext *, struct wmOperator *);
745 
752  int (*invoke)(struct bContext *,
753  struct wmOperator *,
754  const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
755 
760  void (*cancel)(struct bContext *, struct wmOperator *);
761 
768  int (*modal)(struct bContext *,
769  struct wmOperator *,
770  const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
771 
777 
782  bool (*poll_property)(const struct bContext *C,
783  struct wmOperator *op,
785 
787  void (*ui)(struct bContext *, struct wmOperator *);
788 
793  const char *(*get_name)(struct wmOperatorType *, struct PointerRNA *);
794 
799  char *(*get_description)(struct bContext *C, struct wmOperatorType *, struct PointerRNA *);
800 
802  struct StructRNA *srna;
803 
806 
815 
818 
821 
824 
827 
829  short flag;
830 
832 
837 typedef struct wmOperatorCallParams {
839  struct PointerRNA *opptr;
840  short opcontext;
842 
843 #ifdef WITH_INPUT_IME
844 /* *********** Input Method Editor (IME) *********** */
848 typedef struct wmIMEData {
849  size_t result_len, composite_len;
850 
852  char *str_result;
854  char *str_composite;
855 
857  int cursor_pos;
859  int sel_start;
861  int sel_end;
862 
863  bool is_ime_composing;
864 } wmIMEData;
865 #endif
866 
867 /* **************** Paint Cursor ******************* */
868 
869 typedef void (*wmPaintCursorDraw)(struct bContext *C, int, int, void *customdata);
870 
871 /* *************** Drag and drop *************** */
872 
873 #define WM_DRAG_ID 0
874 #define WM_DRAG_ASSET 1
875 #define WM_DRAG_RNA 2
876 #define WM_DRAG_PATH 3
877 #define WM_DRAG_NAME 4
878 #define WM_DRAG_VALUE 5
879 #define WM_DRAG_COLOR 6
880 #define WM_DRAG_DATASTACK 7
881 
882 typedef enum wmDragFlags {
886 
887 /* note: structs need not exported? */
888 
889 typedef struct wmDragID {
890  struct wmDragID *next, *prev;
891  struct ID *id;
892  struct ID *from_parent;
894 
895 typedef struct wmDragAsset {
896  char name[64]; /* MAX_NAME */
897  /* Always freed. */
898  const char *path;
899  int id_type;
901 
902 typedef struct wmDrag {
903  struct wmDrag *next, *prev;
904 
905  int icon;
907  int type;
908  void *poin;
909  char path[1024]; /* FILE_MAX */
910  double value;
911 
913  struct ImBuf *imb;
914  float scale;
915  int sx, sy;
916 
918  char opname[200];
919  unsigned int flags;
920 
924 
929 typedef struct wmDropBox {
930  struct wmDropBox *next, *prev;
931 
933  bool (*poll)(struct bContext *, struct wmDrag *, const wmEvent *, const char **);
934 
936  void (*copy)(struct wmDrag *, struct wmDropBox *);
937 
942  void (*cancel)(struct Main *, struct wmDrag *, struct wmDropBox *);
943 
949 
953  struct PointerRNA *ptr;
954 
956  short opcontext;
957 
959 
964 typedef struct wmTooltipState {
966  struct wmTimer *timer;
972  struct ARegion *region;
974  struct ARegion *(*init)(struct bContext *C,
975  struct ARegion *region,
976  int *pass,
977  double *pass_delay,
978  bool *r_exit_on_event);
982  int event_xy[2];
984  int pass;
986 
987 /* *************** migrated stuff, clean later? ************** */
988 
989 typedef struct RecentFile {
990  struct RecentFile *next, *prev;
991  char *filepath;
993 
994 /* Logging */
995 struct CLG_LogRef;
996 /* wm_init_exit.c */
997 extern struct CLG_LogRef *WM_LOG_OPERATORS;
998 extern struct CLG_LogRef *WM_LOG_HANDLERS;
999 extern struct CLG_LogRef *WM_LOG_EVENTS;
1000 extern struct CLG_LogRef *WM_LOG_KEYMAPS;
1001 extern struct CLG_LogRef *WM_LOG_TOOLS;
1002 extern struct CLG_LogRef *WM_LOG_MSGBUS_PUB;
1003 extern struct CLG_LogRef *WM_LOG_MSGBUS_SUB;
1004 
1005 #ifdef __cplusplus
1006 }
1007 #endif
void BLI_kdtree_nd_() int BLI_kdtree_nd_() int BLI_kdtree_nd_() int BLI_kdtree_nd_() ATTR_WARN_UNUSED_RESULT
unsigned int uint
Definition: BLI_sys_types.h:83
These structs are the foundation for all linked lists in the library system.
#define C
Definition: RandGen.cpp:39
struct CLG_LogRef * WM_LOG_TOOLS
struct CLG_LogRef * WM_LOG_MSGBUS_SUB
struct wmTabletData wmTabletData
struct CLG_LogRef * WM_LOG_EVENTS
struct CLG_LogRef * WM_LOG_HANDLERS
struct wmDrag wmDrag
struct wmOperatorType wmOperatorType
@ OPTYPE_PRESET
Definition: WM_types.h:168
@ OPTYPE_INTERNAL
Definition: WM_types.h:175
@ OPTYPE_MACRO
Definition: WM_types.h:158
@ OPTYPE_BLOCKING
Definition: WM_types.h:157
@ OPTYPE_LOCK_BYPASS
Definition: WM_types.h:178
@ OPTYPE_UNDO_GROUPED
Definition: WM_types.h:180
@ OPTYPE_UNDO
Definition: WM_types.h:155
@ OPTYPE_GRAB_CURSOR_XY
Definition: WM_types.h:161
@ OPTYPE_REGISTER
Definition: WM_types.h:153
@ OPTYPE_GRAB_CURSOR_X
Definition: WM_types.h:163
@ OPTYPE_GRAB_CURSOR_Y
Definition: WM_types.h:165
void(* wmPaintCursorDraw)(struct bContext *C, int, int, void *customdata)
Definition: WM_types.h:869
struct wmOperatorCallParams wmOperatorCallParams
struct RecentFile RecentFile
struct wmGesture wmGesture
struct wmEvent wmEvent
@ WM_OP_INVOKE_REGION_WIN
Definition: WM_types.h:198
@ WM_OP_EXEC_REGION_WIN
Definition: WM_types.h:205
@ WM_OP_INVOKE_SCREEN
Definition: WM_types.h:202
@ WM_OP_INVOKE_AREA
Definition: WM_types.h:201
@ WM_OP_EXEC_REGION_PREVIEW
Definition: WM_types.h:207
@ WM_OP_EXEC_SCREEN
Definition: WM_types.h:209
@ WM_OP_INVOKE_REGION_PREVIEW
Definition: WM_types.h:200
@ WM_OP_INVOKE_DEFAULT
Definition: WM_types.h:197
@ WM_OP_EXEC_REGION_CHANNELS
Definition: WM_types.h:206
@ WM_OP_INVOKE_REGION_CHANNELS
Definition: WM_types.h:199
@ WM_OP_EXEC_DEFAULT
Definition: WM_types.h:204
@ WM_OP_EXEC_AREA
Definition: WM_types.h:208
wmDragFlags
Definition: WM_types.h:882
@ WM_DRAG_NOP
Definition: WM_types.h:883
@ WM_DRAG_FREE_DATA
Definition: WM_types.h:884
struct wmNotifier wmNotifier
struct CLG_LogRef * WM_LOG_KEYMAPS
struct wmGenericCallback wmGenericCallback
struct wmTooltipState wmTooltipState
#define OP_PROP_TAG_ADVANCED
Definition: WM_types.h:216
@ WM_CURSOR_WRAP_X
Definition: WM_types.h:186
@ WM_CURSOR_WRAP_XY
Definition: WM_types.h:188
@ WM_CURSOR_WRAP_Y
Definition: WM_types.h:187
@ WM_CURSOR_WRAP_NONE
Definition: WM_types.h:185
struct wmGenericUserData wmGenericUserData
struct CLG_LogRef * WM_LOG_MSGBUS_PUB
struct wmDragAsset wmDragAsset
struct wmDragID wmDragID
eOperatorPropTags
Definition: WM_types.h:213
wmTimerFlags
Definition: WM_types.h:684
@ WM_TIMER_NO_FREE_CUSTOM_DATA
Definition: WM_types.h:686
struct CLG_LogRef * WM_LOG_OPERATORS
wmProgress
Definition: WM_types.h:651
@ P_IN_PROGRESS
Definition: WM_types.h:654
@ P_STARTING
Definition: WM_types.h:653
@ P_FINISHED
Definition: WM_types.h:656
@ P_NOT_STARTED
Definition: WM_types.h:652
@ P_FINISHING
Definition: WM_types.h:655
struct wmDropBox wmDropBox
struct wmTimer wmTimer
Definition: DNA_ID.h:273
Definition: BKE_main.h:116
struct RecentFile * next
Definition: WM_types.h:990
char * filepath
Definition: WM_types.h:991
struct RecentFile * prev
Definition: WM_types.h:990
const char * path
Definition: WM_types.h:898
char name[64]
Definition: WM_types.h:896
int id_type
Definition: WM_types.h:899
struct ID * id
Definition: WM_types.h:891
struct ID * from_parent
Definition: WM_types.h:892
struct wmDragID * next
Definition: WM_types.h:890
struct wmDragID * prev
Definition: WM_types.h:890
unsigned int flags
Definition: WM_types.h:919
struct wmDrag * prev
Definition: WM_types.h:903
char opname[200]
Definition: WM_types.h:918
char path[1024]
Definition: WM_types.h:909
void * poin
Definition: WM_types.h:908
int icon
Definition: WM_types.h:905
double value
Definition: WM_types.h:910
float scale
Definition: WM_types.h:914
ListBase ids
Definition: WM_types.h:922
int sx
Definition: WM_types.h:915
struct ImBuf * imb
Definition: WM_types.h:913
struct wmDrag * next
Definition: WM_types.h:903
int type
Definition: WM_types.h:907
int sy
Definition: WM_types.h:915
short opcontext
Definition: WM_types.h:956
struct wmDropBox * next
Definition: WM_types.h:930
wmOperatorType * ot
Definition: WM_types.h:948
bool(* poll)(struct bContext *, struct wmDrag *, const wmEvent *, const char **)
Definition: WM_types.h:933
void(* copy)(struct wmDrag *, struct wmDropBox *)
Definition: WM_types.h:936
struct wmDropBox * prev
Definition: WM_types.h:930
void(* cancel)(struct Main *, struct wmDrag *, struct wmDropBox *)
Definition: WM_types.h:942
struct IDProperty * properties
Definition: WM_types.h:951
struct PointerRNA * ptr
Definition: WM_types.h:953
int prevclickx
Definition: WM_types.h:608
int pad2
Definition: WM_types.h:629
int y
Definition: WM_types.h:581
short custom
Definition: WM_types.h:627
short shift
Definition: WM_types.h:618
short ctrl
Definition: WM_types.h:618
short val
Definition: WM_types.h:579
struct wmEvent * next
Definition: WM_types.h:574
int prevclicky
Definition: WM_types.h:608
double prevclicktime
Definition: WM_types.h:606
char is_direction_inverted
Definition: WM_types.h:638
short oskey
Definition: WM_types.h:618
short customdatafree
Definition: WM_types.h:628
char utf8_buf[6]
Definition: WM_types.h:589
int mval[2]
Definition: WM_types.h:583
short keymodifier
Definition: WM_types.h:620
short prevtype
Definition: WM_types.h:602
int prevy
Definition: WM_types.h:614
wmTabletData tablet
Definition: WM_types.h:623
int x
Definition: WM_types.h:581
short prevval
Definition: WM_types.h:604
short alt
Definition: WM_types.h:618
struct wmEvent * prev
Definition: WM_types.h:574
int prevx
Definition: WM_types.h:614
short type
Definition: WM_types.h:577
char ascii
Definition: WM_types.h:591
char is_repeat
Definition: WM_types.h:599
void * customdata
Definition: WM_types.h:631
void(* exec)(struct bContext *C, void *user_data)
Definition: WM_types.h:143
void(* free_user_data)(void *user_data)
Definition: WM_types.h:145
void * user_data
Definition: WM_types.h:144
void(* free_fn)(void *data)
Definition: WM_types.h:138
uint wait_for_input
Definition: WM_types.h:512
uint use_snap
Definition: WM_types.h:517
int event_type
Definition: WM_types.h:490
uint is_active_prev
Definition: WM_types.h:510
int modal_state
Definition: WM_types.h:499
void * customdata
Definition: WM_types.h:529
int points_alloc
Definition: WM_types.h:498
wmGenericUserData user_data
Definition: WM_types.h:532
uint move
Definition: WM_types.h:514
struct wmGesture * next
Definition: WM_types.h:488
int type
Definition: WM_types.h:492
bool draw_active_side
Definition: WM_types.h:501
uint use_flip
Definition: WM_types.h:520
uint is_active
Definition: WM_types.h:508
rcti winrct
Definition: WM_types.h:494
struct wmGesture * prev
Definition: WM_types.h:488
int points
Definition: WM_types.h:496
unsigned int data
Definition: WM_types.h:260
unsigned int action
Definition: WM_types.h:260
struct wmNotifier * prev
Definition: WM_types.h:256
unsigned int category
Definition: WM_types.h:260
const struct wmWindow * window
Definition: WM_types.h:258
unsigned int subtype
Definition: WM_types.h:260
void * reference
Definition: WM_types.h:262
struct wmNotifier * next
Definition: WM_types.h:256
struct wmOperatorType * optype
Definition: WM_types.h:838
struct PointerRNA * opptr
Definition: WM_types.h:839
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:752
const char * name
Definition: WM_types.h:721
struct wmKeyMap * modalkeymap
Definition: WM_types.h:820
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:768
struct IDProperty * last_properties
Definition: WM_types.h:805
const char * idname
Definition: WM_types.h:723
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:776
bool(* poll_property)(const struct bContext *C, struct wmOperator *op, const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:782
void(* cancel)(struct bContext *, struct wmOperator *)
Definition: WM_types.h:760
struct StructRNA * srna
Definition: WM_types.h:802
ExtensionRNA rna_ext
Definition: WM_types.h:826
const char * translation_context
Definition: WM_types.h:724
const char * description
Definition: WM_types.h:726
void(* ui)(struct bContext *, struct wmOperator *)
Definition: WM_types.h:787
bool(* check)(struct bContext *, struct wmOperator *)
Definition: WM_types.h:744
bool(* pyop_poll)(struct bContext *, struct wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:823
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
Definition: WM_types.h:736
PropertyRNA * prop
Definition: WM_types.h:814
const char * undo_group
Definition: WM_types.h:728
ListBase macro
Definition: WM_types.h:817
char is_motion_absolute
Definition: WM_types.h:547
float pressure
Definition: WM_types.h:541
float x_tilt
Definition: WM_types.h:543
float y_tilt
Definition: WM_types.h:545
double timestep
Definition: WM_types.h:696
double stime
Definition: WM_types.h:714
int event_type
Definition: WM_types.h:698
double ltime
Definition: WM_types.h:710
wmTimerFlags flags
Definition: WM_types.h:700
bool sleep
Definition: WM_types.h:716
void * customdata
Definition: WM_types.h:702
struct wmTimer * prev
Definition: WM_types.h:690
struct wmTimer * next
Definition: WM_types.h:690
struct wmWindow * win
Definition: WM_types.h:693
double delta
Definition: WM_types.h:707
double ntime
Definition: WM_types.h:712
double duration
Definition: WM_types.h:705
bool exit_on_event
Definition: WM_types.h:980
struct ScrArea * area_from
Definition: WM_types.h:968
struct ARegion * region_from
Definition: WM_types.h:970
struct wmTimer * timer
Definition: WM_types.h:966
int event_xy[2]
Definition: WM_types.h:982
struct ARegion * region
Definition: WM_types.h:972
wmOperatorType * ot
Definition: wm_files.c:3156