Blender  V3.3
DNA_windowmanager_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2007 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
10 #include "DNA_listBase.h"
11 #include "DNA_screen_types.h" /* for #ScrAreaMap */
12 #include "DNA_xr_types.h" /* for #XrSessionSettings */
13 
14 #include "DNA_ID.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* Defined here: */
21 
22 struct wmWindow;
23 struct wmWindowManager;
24 
25 struct wmEvent;
26 struct wmGesture;
27 struct wmKeyConfig;
28 struct wmKeyMap;
29 struct wmMsgBus;
30 struct wmOperator;
31 struct wmOperatorType;
32 
33 /* Forward declarations: */
34 
35 struct PointerRNA;
36 struct Report;
37 struct ReportList;
38 struct Stereo3dFormat;
39 struct bContext;
40 struct bScreen;
41 struct uiLayout;
42 struct wmTimer;
43 
44 #define OP_MAX_TYPENAME 64
45 #define KMAP_MAX_NAME 64
46 
48 typedef enum eReportType {
49  RPT_DEBUG = (1 << 0),
50  RPT_INFO = (1 << 1),
51  RPT_OPERATOR = (1 << 2),
52  RPT_PROPERTY = (1 << 3),
53  RPT_WARNING = (1 << 4),
54  RPT_ERROR = (1 << 5),
59 
60 #define RPT_DEBUG_ALL (RPT_DEBUG)
61 #define RPT_INFO_ALL (RPT_INFO)
62 #define RPT_OPERATOR_ALL (RPT_OPERATOR)
63 #define RPT_PROPERTY_ALL (RPT_PROPERTY)
64 #define RPT_WARNING_ALL (RPT_WARNING)
65 #define RPT_ERROR_ALL \
66  (RPT_ERROR | RPT_ERROR_INVALID_INPUT | RPT_ERROR_INVALID_CONTEXT | RPT_ERROR_OUT_OF_MEMORY)
67 
69  RPT_PRINT = (1 << 0),
70  RPT_STORE = (1 << 1),
71  RPT_FREE = (1 << 2),
72  RPT_OP_HOLD = (1 << 3), /* don't move them into the operator global list (caller will use) */
73 };
74 
75 /* These two Lines with # tell makesdna this struct can be excluded. */
76 #
77 #
78 typedef struct Report {
79  struct Report *next, *prev;
81  short type;
82  short flag;
84  int len;
85  const char *typestr;
86  const char *message;
88 
92 typedef struct ReportList {
98  int flag;
99  char _pad[4];
102 
103 /* timer customdata to control reports display */
104 /* These two Lines with # tell makesdna this struct can be excluded. */
105 #
106 #
107 typedef struct ReportTimerInfo {
108  float col[4];
109  float widthfac;
111 
112 //#ifdef WITH_XR_OPENXR
113 typedef struct wmXrData {
120 //#endif
121 
122 /* reports need to be before wmWindowManager */
123 
125 typedef struct wmWindowManager {
127 
138 
140  short initialized;
142  short file_saved;
145 
148 
151 
154 
156  struct ReportList reports;
157 
160 
163 
166 
175 
180 
183 
186  char _pad[7];
187 
189 
190  //#ifdef WITH_XR_OPENXR
192  //#endif
194 
196 enum {
197  WM_WINDOW_IS_INIT = (1 << 0),
199 };
200 
202 enum {
207 };
208 
209 #define WM_OUTLINER_SYNC_SELECT_FROM_ALL \
210  (WM_OUTLINER_SYNC_SELECT_FROM_OBJECT | WM_OUTLINER_SYNC_SELECT_FROM_EDIT_BONE | \
211  WM_OUTLINER_SYNC_SELECT_FROM_POSE_BONE | WM_OUTLINER_SYNC_SELECT_FROM_SEQUENCE)
212 
213 #define WM_KEYCONFIG_STR_DEFAULT "Blender"
214 
215 /* IME is win32 and apple only! */
216 #if !(defined(WIN32) || defined(__APPLE__)) && !defined(DNA_DEPRECATED)
217 # ifdef __GNUC__
218 # define ime_data ime_data __attribute__((deprecated))
219 # endif
220 #endif
221 
225 typedef struct wmWindow {
226  struct wmWindow *next, *prev;
227 
229  void *ghostwin;
231  void *gpuctx;
232 
234  struct wmWindow *parent;
235 
237  struct Scene *scene;
239  struct Scene *new_scene;
241  char view_layer_name[64];
245 
247 
251 
252  struct bScreen *screen DNA_DEPRECATED;
253 
255  int winid;
257  short posx, posy, sizex, sizey;
261  char active;
263  short cursor;
265  short lastcursor;
267  short modalcursor;
269  short grabcursor;
274 
275  /* Track the state of the event queue,
276  * these store the state that needs to be kept between handling events in the queue. */
287 
288  char _pad0[1];
289 
297 
302 
303  /* Input Method Editor data - complex character input (especially for Asian character input)
304  * Currently WIN32 and APPLE, runtime-only data. */
305  struct wmIMEData *ime_data;
306 
313 
316 
319 
320  /* custom drawing callbacks */
322 
323  /* Private runtime info to show text in the status bar. */
326 
327 #ifdef ime_data
328 # undef ime_data
329 #endif
330 
331 /* These two Lines with # tell makesdna this struct can be excluded. */
332 /* should be something like DNA_EXCLUDE
333  * but the preprocessor first removes all comments, spaces etc */
334 #
335 #
336 typedef struct wmOperatorTypeMacro {
338 
339  /* operator id */
340  char idname[64];
341  /* rna pointer to access properties, like keymap */
344  struct PointerRNA *ptr;
346 
350 typedef struct wmKeyMapItem {
351  struct wmKeyMapItem *next, *prev;
352 
353  /* operator */
355  char idname[64];
358 
359  /* modal */
361  char propvalue_str[64];
363  short propvalue;
364 
365  /* event */
367  short type;
373  short shift, ctrl, alt, oskey;
375  short keymodifier;
376 
377  /* flag: inactive, expanded */
378  short flag;
379 
380  /* runtime */
382  short maptype;
384  short id;
385  char _pad[2];
392  struct PointerRNA *ptr;
394 
396 typedef struct wmKeyMapDiffItem {
398 
402 
404 enum {
405  KMI_INACTIVE = (1 << 0),
406  KMI_EXPANDED = (1 << 1),
407  KMI_USER_MODIFIED = (1 << 2),
408  KMI_UPDATE = (1 << 3),
422  KMI_REPEAT_IGNORE = (1 << 4),
423 };
424 
426 enum {
429  /* 2 is deprecated, was tweak. */
433 };
434 
438 typedef struct wmKeyMap {
439  struct wmKeyMap *next, *prev;
440 
443 
445  char idname[64];
447  short spaceid;
449  short regionid;
451  char owner_id[64];
452 
454  short flag;
456  short kmi_id;
457 
458  /* runtime */
460  bool (*poll)(struct bContext *);
461  bool (*poll_modal_item)(const struct wmOperator *op, int value);
462 
464  const void *modal_items;
466 
468 enum {
470  KEYMAP_MODAL = (1 << 0),
472  KEYMAP_USER = (1 << 1),
473  KEYMAP_EXPANDED = (1 << 2),
476  KEYMAP_DIFF = (1 << 4),
479  KEYMAP_UPDATE = (1 << 6),
481  KEYMAP_TOOL = (1 << 7),
482 };
483 
491 typedef struct wmKeyConfigPref {
494  char idname[64];
497 
498 typedef struct wmKeyConfig {
499  struct wmKeyConfig *next, *prev;
500 
502  char idname[64];
504  char basename[64];
505 
508  short flag;
509  char _pad0[2];
511 
513 enum {
514  KEYCONF_USER = (1 << 1), /* And what about (1 << 0)? */
515  KEYCONF_INIT_DEFAULT = (1 << 2), /* Has default keymap been initialized? */
516 };
517 
522 typedef struct wmOperator {
523  struct wmOperator *next, *prev;
524 
525  /* saved */
527  char idname[64];
530 
531  /* runtime */
535  void *customdata;
537  void *py_instance;
538 
540  struct PointerRNA *ptr;
543 
547  struct wmOperator *opm;
549  struct uiLayout *layout;
550  short flag;
551  char _pad[6];
553 
557 enum {
559  OPERATOR_CANCELLED = (1 << 1),
560  OPERATOR_FINISHED = (1 << 2),
564  OPERATOR_HANDLED = (1 << 4),
569  OPERATOR_INTERFACE = (1 << 5),
570 };
571 #define OPERATOR_FLAGS_ALL \
572  (OPERATOR_RUNNING_MODAL | OPERATOR_CANCELLED | OPERATOR_FINISHED | OPERATOR_PASS_THROUGH | \
573  OPERATOR_HANDLED | OPERATOR_INTERFACE | 0)
574 
575 /* sanity checks for debug mode only */
576 #define OPERATOR_RETVAL_CHECK(ret) \
577  (void)ret, BLI_assert(ret != 0 && (ret & OPERATOR_FLAGS_ALL) == ret)
578 
580 enum {
585  OP_IS_INVOKE = (1 << 0),
587  OP_IS_REPEAT = (1 << 1),
596  OP_IS_REPEAT_LAST = (1 << 1),
597 
600 
606 };
607 
608 #ifdef __cplusplus
609 }
610 #endif
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
@ KEYCONF_INIT_DEFAULT
struct wmKeyConfig wmKeyConfig
@ KMI_TYPE_TEXTINPUT
@ KMI_TYPE_KEYBOARD
struct wmOperatorTypeMacro wmOperatorTypeMacro
struct wmKeyMapDiffItem wmKeyMapDiffItem
struct wmXrData wmXrData
struct wmOperator wmOperator
@ OPERATOR_CANCELLED
@ OPERATOR_INTERFACE
@ OPERATOR_FINISHED
@ OPERATOR_RUNNING_MODAL
@ OPERATOR_HANDLED
@ OPERATOR_PASS_THROUGH
@ OP_IS_REPEAT_LAST
@ OP_IS_MODAL_CURSOR_REGION
@ OP_IS_MODAL_GRAB_CURSOR
@ KMI_REPEAT_IGNORE
@ KMI_USER_MODIFIED
struct Report Report
struct wmWindowManager wmWindowManager
@ WM_KEYCONFIG_IS_INIT
@ WM_WINDOW_IS_INIT
struct wmKeyMap wmKeyMap
struct ReportTimerInfo ReportTimerInfo
@ WM_OUTLINER_SYNC_SELECT_FROM_SEQUENCE
@ WM_OUTLINER_SYNC_SELECT_FROM_OBJECT
@ WM_OUTLINER_SYNC_SELECT_FROM_EDIT_BONE
@ WM_OUTLINER_SYNC_SELECT_FROM_POSE_BONE
@ KEYMAP_USER_MODIFIED
@ KEYMAP_CHILDREN_EXPANDED
struct wmKeyMapItem wmKeyMapItem
struct wmKeyConfigPref wmKeyConfigPref
struct wmWindow wmWindow
@ RPT_ERROR_OUT_OF_MEMORY
@ RPT_ERROR_INVALID_INPUT
@ RPT_ERROR_INVALID_CONTEXT
struct ReportList ReportList
signed char int8_t
Definition: stdint.h:75
Definition: DNA_ID.h:368
struct wmTimer * reporttimer
struct Report * next
struct Report * prev
const char * typestr
const char * message
struct wmKeyConfigPref * next
struct wmKeyConfigPref * prev
struct wmKeyConfig * prev
struct wmKeyConfig * next
struct wmKeyMapDiffItem * next
struct wmKeyMapDiffItem * prev
struct PointerRNA * ptr
struct wmKeyMapItem * next
struct wmKeyMapItem * prev
struct wmKeyMap * prev
bool(* poll_modal_item)(const struct wmOperator *op, int value)
bool(* poll)(struct bContext *)
struct wmKeyMap * next
const void * modal_items
struct wmOperatorTypeMacro * prev
struct wmOperatorTypeMacro * next
struct IDProperty * properties
struct ReportList * reports
IDProperty * properties
struct uiLayout * layout
struct wmOperator * next
struct wmOperator * prev
struct wmOperatorType * type
struct PointerRNA * ptr
struct wmOperator * opm
struct wmMsgBus * message_bus
struct wmKeyConfig * defaultconf
struct ReportList reports
struct UndoStack * undo_stack
struct wmWindow * winactive
struct wmKeyConfig * userconf
struct wmTimer * autosavetimer
struct wmWindow * windrawable
struct wmKeyConfig * addonconf
struct wmWindow * parent
struct wmEvent * eventstate
struct wmEvent * event_last_handled
struct Scene * scene
struct wmWindow * prev
struct bScreen *screen DNA_DEPRECATED
struct wmIMEData * ime_data
struct Scene * unpinned_scene
char event_queue_check_drag_handled
char view_layer_name[64]
struct wmWindow * next
ScrAreaMap global_areas
struct WorkSpaceInstanceHook * workspace_hook
struct Scene * new_scene
struct Stereo3dFormat * stereo3d_format
XrSessionSettings session_settings
struct wmXrRuntimeData * runtime