Blender  V2.93
Classes | Macros | Typedefs | Enumerations | Variables
WM_types.h File Reference
#include "BLI_compiler_attrs.h"
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
#include "RNA_types.h"
#include "gizmo/WM_gizmo_types.h"
#include "wm_cursors.h"
#include "wm_event_types.h"
#include "gizmo/WM_gizmo_api.h"

Go to the source code of this file.

Classes

struct  wmGenericUserData
 
struct  wmGenericCallback
 
struct  wmNotifier
 
struct  wmGesture
 
struct  wmTabletData
 
struct  wmEvent
 
struct  wmTimer
 
struct  wmOperatorType
 
struct  wmOperatorCallParams
 
struct  wmDragID
 
struct  wmDragAsset
 
struct  wmDrag
 
struct  wmDropBox
 
struct  wmTooltipState
 
struct  RecentFile
 

Macros

#define OP_PROP_TAG_ADVANCED   ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)
 
#define KM_SHIFT   1
 
#define KM_CTRL   2
 
#define KM_ALT   4
 
#define KM_OSKEY   8
 
#define KM_SHIFT2   16
 
#define KM_CTRL2   32
 
#define KM_ALT2   64
 
#define KM_OSKEY2   128
 
#define KM_MOD_FIRST   1
 
#define KM_MOD_SECOND   2
 
#define KM_TEXTINPUT   -2
 
#define KM_ANY   -1
 
#define KM_NOTHING   0
 
#define KM_PRESS   1
 
#define KM_RELEASE   2
 
#define KM_CLICK   3
 
#define KM_DBL_CLICK   4
 
#define KM_CLICK_DRAG   5
 
#define WM_UI_HANDLER_CONTINUE   0
 
#define WM_UI_HANDLER_BREAK   1
 
#define NOTE_CATEGORY   0xFF000000
 
#define NC_WM   (1 << 24)
 
#define NC_WINDOW   (2 << 24)
 
#define NC_SCREEN   (3 << 24)
 
#define NC_SCENE   (4 << 24)
 
#define NC_OBJECT   (5 << 24)
 
#define NC_MATERIAL   (6 << 24)
 
#define NC_TEXTURE   (7 << 24)
 
#define NC_LAMP   (8 << 24)
 
#define NC_GROUP   (9 << 24)
 
#define NC_IMAGE   (10 << 24)
 
#define NC_BRUSH   (11 << 24)
 
#define NC_TEXT   (12 << 24)
 
#define NC_WORLD   (13 << 24)
 
#define NC_ANIMATION   (14 << 24)
 
#define NC_SPACE   (15 << 24)
 
#define NC_GEOM   (16 << 24)
 
#define NC_NODE   (17 << 24)
 
#define NC_ID   (18 << 24)
 
#define NC_PAINTCURVE   (19 << 24)
 
#define NC_MOVIECLIP   (20 << 24)
 
#define NC_MASK   (21 << 24)
 
#define NC_GPENCIL   (22 << 24)
 
#define NC_LINESTYLE   (23 << 24)
 
#define NC_CAMERA   (24 << 24)
 
#define NC_LIGHTPROBE   (25 << 24)
 
#define NC_ASSET   (26 << 24)
 
#define NOTE_DATA   0x00FF0000
 
#define ND_FILEREAD   (1 << 16)
 
#define ND_FILESAVE   (2 << 16)
 
#define ND_DATACHANGED   (3 << 16)
 
#define ND_HISTORY   (4 << 16)
 
#define ND_JOB   (5 << 16)
 
#define ND_UNDO   (6 << 16)
 
#define ND_XR_DATA_CHANGED   (7 << 16)
 
#define ND_LIB_OVERRIDE_CHANGED   (8 << 16)
 
#define ND_LAYOUTBROWSE   (1 << 16)
 
#define ND_LAYOUTDELETE   (2 << 16)
 
#define ND_ANIMPLAY   (4 << 16)
 
#define ND_GPENCIL   (5 << 16)
 
#define ND_EDITOR_CHANGED   (6 << 16) /*sent to new editors after switching to them*/
 
#define ND_LAYOUTSET   (7 << 16)
 
#define ND_SKETCH   (8 << 16)
 
#define ND_WORKSPACE_SET   (9 << 16)
 
#define ND_WORKSPACE_DELETE   (10 << 16)
 
#define ND_SCENEBROWSE   (1 << 16)
 
#define ND_MARKERS   (2 << 16)
 
#define ND_FRAME   (3 << 16)
 
#define ND_RENDER_OPTIONS   (4 << 16)
 
#define ND_NODES   (5 << 16)
 
#define ND_SEQUENCER   (6 << 16)
 
#define ND_OB_ACTIVE   (7 << 16)
 
#define ND_OB_SELECT   (8 << 16)
 
#define ND_OB_VISIBLE   (9 << 16)
 
#define ND_OB_RENDER   (10 << 16)
 
#define ND_MODE   (11 << 16)
 
#define ND_RENDER_RESULT   (12 << 16)
 
#define ND_COMPO_RESULT   (13 << 16)
 
#define ND_KEYINGSET   (14 << 16)
 
#define ND_TOOLSETTINGS   (15 << 16)
 
#define ND_LAYER   (16 << 16)
 
#define ND_FRAME_RANGE   (17 << 16)
 
#define ND_TRANSFORM_DONE   (18 << 16)
 
#define ND_WORLD   (92 << 16)
 
#define ND_LAYER_CONTENT   (101 << 16)
 
#define ND_TRANSFORM   (18 << 16)
 
#define ND_OB_SHADING   (19 << 16)
 
#define ND_POSE   (20 << 16)
 
#define ND_BONE_ACTIVE   (21 << 16)
 
#define ND_BONE_SELECT   (22 << 16)
 
#define ND_DRAW   (23 << 16)
 
#define ND_MODIFIER   (24 << 16)
 
#define ND_KEYS   (25 << 16)
 
#define ND_CONSTRAINT   (26 << 16)
 
#define ND_PARTICLE   (27 << 16)
 
#define ND_POINTCACHE   (28 << 16)
 
#define ND_PARENT   (29 << 16)
 
#define ND_LOD   (30 << 16)
 
#define ND_DRAW_RENDER_VIEWPORT    (31 << 16) /* for camera & sequencer viewport update, also /w NC_SCENE */
 
#define ND_SHADERFX   (32 << 16)
 
#define ND_DRAW_ANIMVIZ   (33 << 16)
 
#define ND_SHADING   (30 << 16)
 
#define ND_SHADING_DRAW   (31 << 16)
 
#define ND_SHADING_LINKS   (32 << 16)
 
#define ND_SHADING_PREVIEW   (33 << 16)
 
#define ND_LIGHTING   (40 << 16)
 
#define ND_LIGHTING_DRAW   (41 << 16)
 
#define ND_WORLD_DRAW   (45 << 16)
 
#define ND_CURSOR   (50 << 16)
 
#define ND_DISPLAY   (51 << 16)
 
#define ND_KEYFRAME   (70 << 16)
 
#define ND_KEYFRAME_PROP   (71 << 16)
 
#define ND_ANIMCHAN   (72 << 16)
 
#define ND_NLA   (73 << 16)
 
#define ND_NLA_ACTCHANGE   (74 << 16)
 
#define ND_FCURVES_ORDER   (75 << 16)
 
#define ND_NLA_ORDER   (76 << 16)
 
#define ND_GPENCIL_EDITMODE   (85 << 16)
 
#define ND_SELECT   (90 << 16)
 
#define ND_DATA   (91 << 16)
 
#define ND_VERTEX_GROUP   (92 << 16)
 
#define ND_SPACE_CONSOLE   (1 << 16) /* general redraw */
 
#define ND_SPACE_INFO_REPORT   (2 << 16) /* update for reports, could specify type */
 
#define ND_SPACE_INFO   (3 << 16)
 
#define ND_SPACE_IMAGE   (4 << 16)
 
#define ND_SPACE_FILE_PARAMS   (5 << 16)
 
#define ND_SPACE_FILE_LIST   (6 << 16)
 
#define ND_SPACE_ASSET_PARAMS   (7 << 16)
 
#define ND_SPACE_NODE   (8 << 16)
 
#define ND_SPACE_OUTLINER   (9 << 16)
 
#define ND_SPACE_VIEW3D   (10 << 16)
 
#define ND_SPACE_PROPERTIES   (11 << 16)
 
#define ND_SPACE_TEXT   (12 << 16)
 
#define ND_SPACE_TIME   (13 << 16)
 
#define ND_SPACE_GRAPH   (14 << 16)
 
#define ND_SPACE_DOPESHEET   (15 << 16)
 
#define ND_SPACE_NLA   (16 << 16)
 
#define ND_SPACE_SEQUENCER   (17 << 16)
 
#define ND_SPACE_NODE_VIEW   (18 << 16)
 
#define ND_SPACE_CHANGED   (19 << 16) /*sent to a new editor type after it's replaced an old one*/
 
#define ND_SPACE_CLIP   (20 << 16)
 
#define ND_SPACE_FILE_PREVIEW   (21 << 16)
 
#define ND_SPACE_SPREADSHEET   (22 << 16)
 
#define NOTE_SUBTYPE   0x0000FF00
 
#define NS_MODE_OBJECT   (1 << 8)
 
#define NS_EDITMODE_MESH   (2 << 8)
 
#define NS_EDITMODE_CURVE   (3 << 8)
 
#define NS_EDITMODE_SURFACE   (4 << 8)
 
#define NS_EDITMODE_TEXT   (5 << 8)
 
#define NS_EDITMODE_MBALL   (6 << 8)
 
#define NS_EDITMODE_LATTICE   (7 << 8)
 
#define NS_EDITMODE_ARMATURE   (8 << 8)
 
#define NS_MODE_POSE   (9 << 8)
 
#define NS_MODE_PARTICLE   (10 << 8)
 
#define NS_VIEW3D_GPU   (16 << 8)
 
#define NS_VIEW3D_SHADING   (17 << 8)
 
#define NS_LAYER_COLLECTION   (24 << 8)
 
#define NOTE_ACTION   (0x000000FF)
 
#define NA_EDITED   1
 
#define NA_EVALUATED   2
 
#define NA_ADDED   3
 
#define NA_REMOVED   4
 
#define NA_RENAME   5
 
#define NA_SELECTED   6
 
#define NA_ACTIVATED   7
 
#define NA_PAINTING   8
 
#define NA_JOB_FINISHED   9
 
#define WM_GESTURE_TWEAK   0
 
#define WM_GESTURE_LINES   1
 
#define WM_GESTURE_RECT   2
 
#define WM_GESTURE_CROSS_RECT   3
 
#define WM_GESTURE_LASSO   4
 
#define WM_GESTURE_CIRCLE   5
 
#define WM_GESTURE_STRAIGHTLINE   6
 
#define WM_EVENT_CURSOR_MOTION_THRESHOLD   ((float)U.move_threshold * U.dpi_fac)
 
#define WM_DRAG_ID   0
 
#define WM_DRAG_ASSET   1
 
#define WM_DRAG_RNA   2
 
#define WM_DRAG_PATH   3
 
#define WM_DRAG_NAME   4
 
#define WM_DRAG_VALUE   5
 
#define WM_DRAG_COLOR   6
 
#define WM_DRAG_DATASTACK   7
 

Typedefs

typedef struct wmGenericUserData wmGenericUserData
 
typedef struct wmGenericCallback wmGenericCallback
 
typedef enum eOperatorPropTags eOperatorPropTags
 
typedef struct wmNotifier wmNotifier
 
typedef struct wmGesture wmGesture
 
typedef struct wmTabletData wmTabletData
 
typedef struct wmEvent wmEvent
 
typedef struct wmTimer wmTimer
 
typedef struct wmOperatorType wmOperatorType
 
typedef struct wmOperatorCallParams wmOperatorCallParams
 
typedef void(* wmPaintCursorDraw) (struct bContext *C, int, int, void *customdata)
 
typedef enum wmDragFlags wmDragFlags
 
typedef struct wmDragID wmDragID
 
typedef struct wmDragAsset wmDragAsset
 
typedef struct wmDrag wmDrag
 
typedef struct wmDropBox wmDropBox
 
typedef struct wmTooltipState wmTooltipState
 
typedef struct RecentFile RecentFile
 

Enumerations

enum  {
  OPTYPE_REGISTER = (1 << 0) , OPTYPE_UNDO = (1 << 1) , OPTYPE_BLOCKING = (1 << 2) , OPTYPE_MACRO = (1 << 3) ,
  OPTYPE_GRAB_CURSOR_XY = (1 << 4) , OPTYPE_GRAB_CURSOR_X = (1 << 5) , OPTYPE_GRAB_CURSOR_Y = (1 << 6) , OPTYPE_PRESET = (1 << 7) ,
  OPTYPE_INTERNAL = (1 << 8) , OPTYPE_LOCK_BYPASS = (1 << 9) , OPTYPE_UNDO_GROUPED = (1 << 10)
}
 
enum  { WM_CURSOR_WRAP_NONE = 0 , WM_CURSOR_WRAP_X , WM_CURSOR_WRAP_Y , WM_CURSOR_WRAP_XY }
 
enum  {
  WM_OP_INVOKE_DEFAULT , WM_OP_INVOKE_REGION_WIN , WM_OP_INVOKE_REGION_CHANNELS , WM_OP_INVOKE_REGION_PREVIEW ,
  WM_OP_INVOKE_AREA , WM_OP_INVOKE_SCREEN , WM_OP_EXEC_DEFAULT , WM_OP_EXEC_REGION_WIN ,
  WM_OP_EXEC_REGION_CHANNELS , WM_OP_EXEC_REGION_PREVIEW , WM_OP_EXEC_AREA , WM_OP_EXEC_SCREEN
}
 
enum  eOperatorPropTags { OP_PROP_TAG_ADVANCED = (1 << 0) }
 
enum  wmProgress {
  P_NOT_STARTED , P_STARTING , P_IN_PROGRESS , P_FINISHING ,
  P_FINISHED
}
 
enum  wmTimerFlags { WM_TIMER_NO_FREE_CUSTOM_DATA = 1 << 0 }
 
enum  wmDragFlags { WM_DRAG_NOP = 0 , WM_DRAG_FREE_DATA = 1 }
 

Variables

struct CLG_LogRefWM_LOG_OPERATORS
 
struct CLG_LogRefWM_LOG_HANDLERS
 
struct CLG_LogRefWM_LOG_EVENTS
 
struct CLG_LogRefWM_LOG_KEYMAPS
 
struct CLG_LogRefWM_LOG_TOOLS
 
struct CLG_LogRefWM_LOG_MSGBUS_PUB
 
struct CLG_LogRefWM_LOG_MSGBUS_SUB
 

Detailed Description

Overview of WM structs

Window Layout

wmWindow -> bScreen
+----------------------------------------------------------+
|+-----------------------------------------+-------------+ |
||ScrArea (links to 3D view)               |ScrArea      | |
||+-------++----------+-------------------+|(links to    | |
|||ARegion||          |ARegion (quad view)|| properties) | |
|||(tools)||          |                   ||             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
|||       |+----------+-------------------+|             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
|||       ||          |                   ||             | |
||+-------++----------+-------------------+|             | |
|+-----------------------------------------+-------------+ |
+----------------------------------------------------------+

S<h1>pace Data

ScrArea's store a list of space data (SpaceLinks), each of unique type.
The first one is the displayed in the UI, others are added as needed.

+----------------------------+  <-- area->spacedata.first;
|                            |
|                            |---+  <-- other inactive SpaceLink's stored.
|                            |   |
|                            |   |---+
|                            |   |   |
|                            |   |   |
|                            |   |   |
|                            |   |   |
+----------------------------+   |   |
   |                             |   |
   +-----------------------------+   |
      |                              |
      +------------------------------+

A common way to get the space from the ScrArea:

if (area->spacetype == SPACE_VIEW3D) {
View3D *v3d = area->spacedata.first;
...
}
@ SPACE_VIEW3D
static void area(int d1, int d2, int e1, int e2, float weights[2])

Definition in file WM_types.h.

Macro Definition Documentation

◆ KM_ALT

#define KM_ALT   4

Definition at line 223 of file WM_types.h.

◆ KM_ALT2

#define KM_ALT2   64

Definition at line 228 of file WM_types.h.

◆ KM_ANY

#define KM_ANY   -1

Definition at line 240 of file WM_types.h.

◆ KM_CLICK

#define KM_CLICK   3

Definition at line 244 of file WM_types.h.

◆ KM_CLICK_DRAG

#define KM_CLICK_DRAG   5

Definition at line 246 of file WM_types.h.

◆ KM_CTRL

#define KM_CTRL   2

Definition at line 222 of file WM_types.h.

◆ KM_CTRL2

#define KM_CTRL2   32

Definition at line 227 of file WM_types.h.

◆ KM_DBL_CLICK

#define KM_DBL_CLICK   4

Definition at line 245 of file WM_types.h.

◆ KM_MOD_FIRST

#define KM_MOD_FIRST   1

Definition at line 233 of file WM_types.h.

◆ KM_MOD_SECOND

#define KM_MOD_SECOND   2

Definition at line 234 of file WM_types.h.

◆ KM_NOTHING

#define KM_NOTHING   0

Definition at line 241 of file WM_types.h.

◆ KM_OSKEY

#define KM_OSKEY   8

Definition at line 224 of file WM_types.h.

◆ KM_OSKEY2

#define KM_OSKEY2   128

Definition at line 229 of file WM_types.h.

◆ KM_PRESS

#define KM_PRESS   1

Definition at line 242 of file WM_types.h.

◆ KM_RELEASE

#define KM_RELEASE   2

Definition at line 243 of file WM_types.h.

◆ KM_SHIFT

#define KM_SHIFT   1

Definition at line 221 of file WM_types.h.

◆ KM_SHIFT2

#define KM_SHIFT2   16

Definition at line 226 of file WM_types.h.

◆ KM_TEXTINPUT

#define KM_TEXTINPUT   -2

Definition at line 237 of file WM_types.h.

◆ NA_ACTIVATED

#define NA_ACTIVATED   7

Definition at line 468 of file WM_types.h.

◆ NA_ADDED

#define NA_ADDED   3

Definition at line 464 of file WM_types.h.

◆ NA_EDITED

#define NA_EDITED   1

Definition at line 462 of file WM_types.h.

◆ NA_EVALUATED

#define NA_EVALUATED   2

Definition at line 463 of file WM_types.h.

◆ NA_JOB_FINISHED

#define NA_JOB_FINISHED   9

Definition at line 470 of file WM_types.h.

◆ NA_PAINTING

#define NA_PAINTING   8

Definition at line 469 of file WM_types.h.

◆ NA_REMOVED

#define NA_REMOVED   4

Definition at line 465 of file WM_types.h.

◆ NA_RENAME

#define NA_RENAME   5

Definition at line 466 of file WM_types.h.

◆ NA_SELECTED

#define NA_SELECTED   6

Definition at line 467 of file WM_types.h.

◆ NC_ANIMATION

#define NC_ANIMATION   (14 << 24)

Definition at line 289 of file WM_types.h.

◆ NC_ASSET

#define NC_ASSET   (26 << 24)

Definition at line 305 of file WM_types.h.

◆ NC_BRUSH

#define NC_BRUSH   (11 << 24)

Definition at line 286 of file WM_types.h.

◆ NC_CAMERA

#define NC_CAMERA   (24 << 24)

Definition at line 302 of file WM_types.h.

◆ NC_GEOM

#define NC_GEOM   (16 << 24)

Definition at line 294 of file WM_types.h.

◆ NC_GPENCIL

#define NC_GPENCIL   (22 << 24)

Definition at line 300 of file WM_types.h.

◆ NC_GROUP

#define NC_GROUP   (9 << 24)

Definition at line 284 of file WM_types.h.

◆ NC_ID

#define NC_ID   (18 << 24)

Definition at line 296 of file WM_types.h.

◆ NC_IMAGE

#define NC_IMAGE   (10 << 24)

Definition at line 285 of file WM_types.h.

◆ NC_LAMP

#define NC_LAMP   (8 << 24)

Definition at line 283 of file WM_types.h.

◆ NC_LIGHTPROBE

#define NC_LIGHTPROBE   (25 << 24)

Definition at line 303 of file WM_types.h.

◆ NC_LINESTYLE

#define NC_LINESTYLE   (23 << 24)

Definition at line 301 of file WM_types.h.

◆ NC_MASK

#define NC_MASK   (21 << 24)

Definition at line 299 of file WM_types.h.

◆ NC_MATERIAL

#define NC_MATERIAL   (6 << 24)

Definition at line 281 of file WM_types.h.

◆ NC_MOVIECLIP

#define NC_MOVIECLIP   (20 << 24)

Definition at line 298 of file WM_types.h.

◆ NC_NODE

#define NC_NODE   (17 << 24)

Definition at line 295 of file WM_types.h.

◆ NC_OBJECT

#define NC_OBJECT   (5 << 24)

Definition at line 280 of file WM_types.h.

◆ NC_PAINTCURVE

#define NC_PAINTCURVE   (19 << 24)

Definition at line 297 of file WM_types.h.

◆ NC_SCENE

#define NC_SCENE   (4 << 24)

Definition at line 279 of file WM_types.h.

◆ NC_SCREEN

#define NC_SCREEN   (3 << 24)

Definition at line 278 of file WM_types.h.

◆ NC_SPACE

#define NC_SPACE   (15 << 24)

Definition at line 293 of file WM_types.h.

◆ NC_TEXT

#define NC_TEXT   (12 << 24)

Definition at line 287 of file WM_types.h.

◆ NC_TEXTURE

#define NC_TEXTURE   (7 << 24)

Definition at line 282 of file WM_types.h.

◆ NC_WINDOW

#define NC_WINDOW   (2 << 24)

Definition at line 277 of file WM_types.h.

◆ NC_WM

#define NC_WM   (1 << 24)

Definition at line 276 of file WM_types.h.

◆ NC_WORLD

#define NC_WORLD   (13 << 24)

Definition at line 288 of file WM_types.h.

◆ ND_ANIMCHAN

#define ND_ANIMCHAN   (72 << 16)

Definition at line 396 of file WM_types.h.

◆ ND_ANIMPLAY

#define ND_ANIMPLAY   (4 << 16)

Definition at line 323 of file WM_types.h.

◆ ND_BONE_ACTIVE

#define ND_BONE_ACTIVE   (21 << 16)

Definition at line 360 of file WM_types.h.

◆ ND_BONE_SELECT

#define ND_BONE_SELECT   (22 << 16)

Definition at line 361 of file WM_types.h.

◆ ND_COMPO_RESULT

#define ND_COMPO_RESULT   (13 << 16)

Definition at line 347 of file WM_types.h.

◆ ND_CONSTRAINT

#define ND_CONSTRAINT   (26 << 16)

Definition at line 365 of file WM_types.h.

◆ ND_CURSOR

#define ND_CURSOR   (50 << 16)

Definition at line 390 of file WM_types.h.

◆ ND_DATA

#define ND_DATA   (91 << 16)

Definition at line 408 of file WM_types.h.

◆ ND_DATACHANGED

#define ND_DATACHANGED   (3 << 16)

Definition at line 313 of file WM_types.h.

◆ ND_DISPLAY

#define ND_DISPLAY   (51 << 16)

Definition at line 391 of file WM_types.h.

◆ ND_DRAW

#define ND_DRAW   (23 << 16)

Definition at line 362 of file WM_types.h.

◆ ND_DRAW_ANIMVIZ

#define ND_DRAW_ANIMVIZ   (33 << 16)

Definition at line 374 of file WM_types.h.

◆ ND_DRAW_RENDER_VIEWPORT

#define ND_DRAW_RENDER_VIEWPORT    (31 << 16) /* for camera & sequencer viewport update, also /w NC_SCENE */

Definition at line 370 of file WM_types.h.

◆ ND_EDITOR_CHANGED

#define ND_EDITOR_CHANGED   (6 << 16) /*sent to new editors after switching to them*/

Definition at line 325 of file WM_types.h.

◆ ND_FCURVES_ORDER

#define ND_FCURVES_ORDER   (75 << 16)

Definition at line 399 of file WM_types.h.

◆ ND_FILEREAD

#define ND_FILEREAD   (1 << 16)

Definition at line 311 of file WM_types.h.

◆ ND_FILESAVE

#define ND_FILESAVE   (2 << 16)

Definition at line 312 of file WM_types.h.

◆ ND_FRAME

#define ND_FRAME   (3 << 16)

Definition at line 334 of file WM_types.h.

◆ ND_FRAME_RANGE

#define ND_FRAME_RANGE   (17 << 16)

Definition at line 351 of file WM_types.h.

◆ ND_GPENCIL

#define ND_GPENCIL   (5 << 16)

Definition at line 324 of file WM_types.h.

◆ ND_GPENCIL_EDITMODE

#define ND_GPENCIL_EDITMODE   (85 << 16)

Definition at line 403 of file WM_types.h.

◆ ND_HISTORY

#define ND_HISTORY   (4 << 16)

Definition at line 314 of file WM_types.h.

◆ ND_JOB

#define ND_JOB   (5 << 16)

Definition at line 315 of file WM_types.h.

◆ ND_KEYFRAME

#define ND_KEYFRAME   (70 << 16)

Definition at line 394 of file WM_types.h.

◆ ND_KEYFRAME_PROP

#define ND_KEYFRAME_PROP   (71 << 16)

Definition at line 395 of file WM_types.h.

◆ ND_KEYINGSET

#define ND_KEYINGSET   (14 << 16)

Definition at line 348 of file WM_types.h.

◆ ND_KEYS

#define ND_KEYS   (25 << 16)

Definition at line 364 of file WM_types.h.

◆ ND_LAYER

#define ND_LAYER   (16 << 16)

Definition at line 350 of file WM_types.h.

◆ ND_LAYER_CONTENT

#define ND_LAYER_CONTENT   (101 << 16)

Definition at line 354 of file WM_types.h.

◆ ND_LAYOUTBROWSE

#define ND_LAYOUTBROWSE   (1 << 16)

Definition at line 321 of file WM_types.h.

◆ ND_LAYOUTDELETE

#define ND_LAYOUTDELETE   (2 << 16)

Definition at line 322 of file WM_types.h.

◆ ND_LAYOUTSET

#define ND_LAYOUTSET   (7 << 16)

Definition at line 326 of file WM_types.h.

◆ ND_LIB_OVERRIDE_CHANGED

#define ND_LIB_OVERRIDE_CHANGED   (8 << 16)

Definition at line 318 of file WM_types.h.

◆ ND_LIGHTING

#define ND_LIGHTING   (40 << 16)

Definition at line 383 of file WM_types.h.

◆ ND_LIGHTING_DRAW

#define ND_LIGHTING_DRAW   (41 << 16)

Definition at line 384 of file WM_types.h.

◆ ND_LOD

#define ND_LOD   (30 << 16)

Definition at line 369 of file WM_types.h.

◆ ND_MARKERS

#define ND_MARKERS   (2 << 16)

Definition at line 333 of file WM_types.h.

◆ ND_MODE

#define ND_MODE   (11 << 16)

Definition at line 345 of file WM_types.h.

◆ ND_MODIFIER

#define ND_MODIFIER   (24 << 16)

Definition at line 363 of file WM_types.h.

◆ ND_NLA

#define ND_NLA   (73 << 16)

Definition at line 397 of file WM_types.h.

◆ ND_NLA_ACTCHANGE

#define ND_NLA_ACTCHANGE   (74 << 16)

Definition at line 398 of file WM_types.h.

◆ ND_NLA_ORDER

#define ND_NLA_ORDER   (76 << 16)

Definition at line 400 of file WM_types.h.

◆ ND_NODES

#define ND_NODES   (5 << 16)

Definition at line 336 of file WM_types.h.

◆ ND_OB_ACTIVE

#define ND_OB_ACTIVE   (7 << 16)

Definition at line 340 of file WM_types.h.

◆ ND_OB_RENDER

#define ND_OB_RENDER   (10 << 16)

Definition at line 344 of file WM_types.h.

◆ ND_OB_SELECT

#define ND_OB_SELECT   (8 << 16)

Definition at line 342 of file WM_types.h.

◆ ND_OB_SHADING

#define ND_OB_SHADING   (19 << 16)

Definition at line 358 of file WM_types.h.

◆ ND_OB_VISIBLE

#define ND_OB_VISIBLE   (9 << 16)

Definition at line 343 of file WM_types.h.

◆ ND_PARENT

#define ND_PARENT   (29 << 16)

Definition at line 368 of file WM_types.h.

◆ ND_PARTICLE

#define ND_PARTICLE   (27 << 16)

Definition at line 366 of file WM_types.h.

◆ ND_POINTCACHE

#define ND_POINTCACHE   (28 << 16)

Definition at line 367 of file WM_types.h.

◆ ND_POSE

#define ND_POSE   (20 << 16)

Definition at line 359 of file WM_types.h.

◆ ND_RENDER_OPTIONS

#define ND_RENDER_OPTIONS   (4 << 16)

Definition at line 335 of file WM_types.h.

◆ ND_RENDER_RESULT

#define ND_RENDER_RESULT   (12 << 16)

Definition at line 346 of file WM_types.h.

◆ ND_SCENEBROWSE

#define ND_SCENEBROWSE   (1 << 16)

Definition at line 332 of file WM_types.h.

◆ ND_SELECT

#define ND_SELECT   (90 << 16)

Definition at line 407 of file WM_types.h.

◆ ND_SEQUENCER

#define ND_SEQUENCER   (6 << 16)

Definition at line 337 of file WM_types.h.

◆ ND_SHADERFX

#define ND_SHADERFX   (32 << 16)

Definition at line 372 of file WM_types.h.

◆ ND_SHADING

#define ND_SHADING   (30 << 16)

Definition at line 377 of file WM_types.h.

◆ ND_SHADING_DRAW

#define ND_SHADING_DRAW   (31 << 16)

Definition at line 378 of file WM_types.h.

◆ ND_SHADING_LINKS

#define ND_SHADING_LINKS   (32 << 16)

Definition at line 379 of file WM_types.h.

◆ ND_SHADING_PREVIEW

#define ND_SHADING_PREVIEW   (33 << 16)

Definition at line 380 of file WM_types.h.

◆ ND_SKETCH

#define ND_SKETCH   (8 << 16)

Definition at line 327 of file WM_types.h.

◆ ND_SPACE_ASSET_PARAMS

#define ND_SPACE_ASSET_PARAMS   (7 << 16)

Definition at line 420 of file WM_types.h.

◆ ND_SPACE_CHANGED

#define ND_SPACE_CHANGED   (19 << 16) /*sent to a new editor type after it's replaced an old one*/

Definition at line 432 of file WM_types.h.

◆ ND_SPACE_CLIP

#define ND_SPACE_CLIP   (20 << 16)

Definition at line 433 of file WM_types.h.

◆ ND_SPACE_CONSOLE

#define ND_SPACE_CONSOLE   (1 << 16) /* general redraw */

Definition at line 414 of file WM_types.h.

◆ ND_SPACE_DOPESHEET

#define ND_SPACE_DOPESHEET   (15 << 16)

Definition at line 428 of file WM_types.h.

◆ ND_SPACE_FILE_LIST

#define ND_SPACE_FILE_LIST   (6 << 16)

Definition at line 419 of file WM_types.h.

◆ ND_SPACE_FILE_PARAMS

#define ND_SPACE_FILE_PARAMS   (5 << 16)

Definition at line 418 of file WM_types.h.

◆ ND_SPACE_FILE_PREVIEW

#define ND_SPACE_FILE_PREVIEW   (21 << 16)

Definition at line 434 of file WM_types.h.

◆ ND_SPACE_GRAPH

#define ND_SPACE_GRAPH   (14 << 16)

Definition at line 427 of file WM_types.h.

◆ ND_SPACE_IMAGE

#define ND_SPACE_IMAGE   (4 << 16)

Definition at line 417 of file WM_types.h.

◆ ND_SPACE_INFO

#define ND_SPACE_INFO   (3 << 16)

Definition at line 416 of file WM_types.h.

◆ ND_SPACE_INFO_REPORT

#define ND_SPACE_INFO_REPORT   (2 << 16) /* update for reports, could specify type */

Definition at line 415 of file WM_types.h.

◆ ND_SPACE_NLA

#define ND_SPACE_NLA   (16 << 16)

Definition at line 429 of file WM_types.h.

◆ ND_SPACE_NODE

#define ND_SPACE_NODE   (8 << 16)

Definition at line 421 of file WM_types.h.

◆ ND_SPACE_NODE_VIEW

#define ND_SPACE_NODE_VIEW   (18 << 16)

Definition at line 431 of file WM_types.h.

◆ ND_SPACE_OUTLINER

#define ND_SPACE_OUTLINER   (9 << 16)

Definition at line 422 of file WM_types.h.

◆ ND_SPACE_PROPERTIES

#define ND_SPACE_PROPERTIES   (11 << 16)

Definition at line 424 of file WM_types.h.

◆ ND_SPACE_SEQUENCER

#define ND_SPACE_SEQUENCER   (17 << 16)

Definition at line 430 of file WM_types.h.

◆ ND_SPACE_SPREADSHEET

#define ND_SPACE_SPREADSHEET   (22 << 16)

Definition at line 435 of file WM_types.h.

◆ ND_SPACE_TEXT

#define ND_SPACE_TEXT   (12 << 16)

Definition at line 425 of file WM_types.h.

◆ ND_SPACE_TIME

#define ND_SPACE_TIME   (13 << 16)

Definition at line 426 of file WM_types.h.

◆ ND_SPACE_VIEW3D

#define ND_SPACE_VIEW3D   (10 << 16)

Definition at line 423 of file WM_types.h.

◆ ND_TOOLSETTINGS

#define ND_TOOLSETTINGS   (15 << 16)

Definition at line 349 of file WM_types.h.

◆ ND_TRANSFORM

#define ND_TRANSFORM   (18 << 16)

Definition at line 357 of file WM_types.h.

◆ ND_TRANSFORM_DONE

#define ND_TRANSFORM_DONE   (18 << 16)

Definition at line 352 of file WM_types.h.

◆ ND_UNDO

#define ND_UNDO   (6 << 16)

Definition at line 316 of file WM_types.h.

◆ ND_VERTEX_GROUP

#define ND_VERTEX_GROUP   (92 << 16)

Definition at line 409 of file WM_types.h.

◆ ND_WORKSPACE_DELETE

#define ND_WORKSPACE_DELETE   (10 << 16)

Definition at line 329 of file WM_types.h.

◆ ND_WORKSPACE_SET

#define ND_WORKSPACE_SET   (9 << 16)

Definition at line 328 of file WM_types.h.

◆ ND_WORLD

#define ND_WORLD   (92 << 16)

Definition at line 353 of file WM_types.h.

◆ ND_WORLD_DRAW

#define ND_WORLD_DRAW   (45 << 16)

Definition at line 387 of file WM_types.h.

◆ ND_XR_DATA_CHANGED

#define ND_XR_DATA_CHANGED   (7 << 16)

Definition at line 317 of file WM_types.h.

◆ NOTE_ACTION

#define NOTE_ACTION   (0x000000FF)

Definition at line 461 of file WM_types.h.

◆ NOTE_CATEGORY

#define NOTE_CATEGORY   0xFF000000

Definition at line 275 of file WM_types.h.

◆ NOTE_DATA

#define NOTE_DATA   0x00FF0000

Definition at line 308 of file WM_types.h.

◆ NOTE_SUBTYPE

#define NOTE_SUBTYPE   0x0000FF00

Definition at line 438 of file WM_types.h.

◆ NS_EDITMODE_ARMATURE

#define NS_EDITMODE_ARMATURE   (8 << 8)

Definition at line 449 of file WM_types.h.

◆ NS_EDITMODE_CURVE

#define NS_EDITMODE_CURVE   (3 << 8)

Definition at line 444 of file WM_types.h.

◆ NS_EDITMODE_LATTICE

#define NS_EDITMODE_LATTICE   (7 << 8)

Definition at line 448 of file WM_types.h.

◆ NS_EDITMODE_MBALL

#define NS_EDITMODE_MBALL   (6 << 8)

Definition at line 447 of file WM_types.h.

◆ NS_EDITMODE_MESH

#define NS_EDITMODE_MESH   (2 << 8)

Definition at line 443 of file WM_types.h.

◆ NS_EDITMODE_SURFACE

#define NS_EDITMODE_SURFACE   (4 << 8)

Definition at line 445 of file WM_types.h.

◆ NS_EDITMODE_TEXT

#define NS_EDITMODE_TEXT   (5 << 8)

Definition at line 446 of file WM_types.h.

◆ NS_LAYER_COLLECTION

#define NS_LAYER_COLLECTION   (24 << 8)

Definition at line 458 of file WM_types.h.

◆ NS_MODE_OBJECT

#define NS_MODE_OBJECT   (1 << 8)

Definition at line 441 of file WM_types.h.

◆ NS_MODE_PARTICLE

#define NS_MODE_PARTICLE   (10 << 8)

Definition at line 451 of file WM_types.h.

◆ NS_MODE_POSE

#define NS_MODE_POSE   (9 << 8)

Definition at line 450 of file WM_types.h.

◆ NS_VIEW3D_GPU

#define NS_VIEW3D_GPU   (16 << 8)

Definition at line 454 of file WM_types.h.

◆ NS_VIEW3D_SHADING

#define NS_VIEW3D_SHADING   (17 << 8)

Definition at line 455 of file WM_types.h.

◆ OP_PROP_TAG_ADVANCED

#define OP_PROP_TAG_ADVANCED   ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)

Definition at line 216 of file WM_types.h.

◆ WM_DRAG_ASSET

#define WM_DRAG_ASSET   1

Definition at line 874 of file WM_types.h.

◆ WM_DRAG_COLOR

#define WM_DRAG_COLOR   6

Definition at line 879 of file WM_types.h.

◆ WM_DRAG_DATASTACK

#define WM_DRAG_DATASTACK   7

Definition at line 880 of file WM_types.h.

◆ WM_DRAG_ID

#define WM_DRAG_ID   0

Definition at line 873 of file WM_types.h.

◆ WM_DRAG_NAME

#define WM_DRAG_NAME   4

Definition at line 877 of file WM_types.h.

◆ WM_DRAG_PATH

#define WM_DRAG_PATH   3

Definition at line 876 of file WM_types.h.

◆ WM_DRAG_RNA

#define WM_DRAG_RNA   2

Definition at line 875 of file WM_types.h.

◆ WM_DRAG_VALUE

#define WM_DRAG_VALUE   5

Definition at line 878 of file WM_types.h.

◆ WM_EVENT_CURSOR_MOTION_THRESHOLD

#define WM_EVENT_CURSOR_MOTION_THRESHOLD   ((float)U.move_threshold * U.dpi_fac)

Values below are ignored when detecting if the user intentionally moved the cursor. Keep this very small since it's used for selection cycling for eg, where we want intended adjustments to pass this threshold and select new items.

Always check for <= this value since it may be zero.

Definition at line 648 of file WM_types.h.

◆ WM_GESTURE_CIRCLE

#define WM_GESTURE_CIRCLE   5

Definition at line 480 of file WM_types.h.

◆ WM_GESTURE_CROSS_RECT

#define WM_GESTURE_CROSS_RECT   3

Definition at line 478 of file WM_types.h.

◆ WM_GESTURE_LASSO

#define WM_GESTURE_LASSO   4

Definition at line 479 of file WM_types.h.

◆ WM_GESTURE_LINES

#define WM_GESTURE_LINES   1

Definition at line 476 of file WM_types.h.

◆ WM_GESTURE_RECT

#define WM_GESTURE_RECT   2

Definition at line 477 of file WM_types.h.

◆ WM_GESTURE_STRAIGHTLINE

#define WM_GESTURE_STRAIGHTLINE   6

Definition at line 481 of file WM_types.h.

◆ WM_GESTURE_TWEAK

#define WM_GESTURE_TWEAK   0

Definition at line 475 of file WM_types.h.

◆ WM_UI_HANDLER_BREAK

#define WM_UI_HANDLER_BREAK   1

Definition at line 251 of file WM_types.h.

◆ WM_UI_HANDLER_CONTINUE

#define WM_UI_HANDLER_CONTINUE   0

Definition at line 250 of file WM_types.h.

Typedef Documentation

◆ eOperatorPropTags

◆ RecentFile

typedef struct RecentFile RecentFile

◆ wmDrag

typedef struct wmDrag wmDrag

◆ wmDragAsset

typedef struct wmDragAsset wmDragAsset

◆ wmDragFlags

typedef enum wmDragFlags wmDragFlags

◆ wmDragID

typedef struct wmDragID wmDragID

◆ wmDropBox

typedef struct wmDropBox wmDropBox

Dropboxes are like keymaps, part of the screen/area/region definition. Allocation and free is on startup and exit.

◆ wmEvent

typedef struct wmEvent wmEvent

Each event should have full modifier state. event comes from event manager and from keymap.

Previous State

Events hold information about the previous event, this is used for detecting click and double-click events (the timer is needed for double-click). See wm_event_add_ghostevent for implementation details.

Notes:

  • The previous values are only set for mouse button and keyboard events. See: ISMOUSE_BUTTON & ISKEYBOARD macros.
  • Previous x/y are exceptions: wmEvent.prevx & wmEvent.prevy these are set on mouse motion, see MOUSEMOVE & track-pad events.
  • Modal key-map handling sets prevval & prevtype to val & type, this allows modal keys-maps to check the original values (needed in some cases).

◆ wmGenericCallback

◆ wmGenericUserData

◆ wmGesture

typedef struct wmGesture wmGesture

wmGesture is registered to wmWindow.gesture, handled by operator callbacks. Tweak gesture is builtin feature.

◆ wmNotifier

typedef struct wmNotifier wmNotifier

◆ wmOperatorCallParams

Wrapper to reference a wmOperatorType together with some set properties and other relevant information to invoke the operator in a customizable way.

◆ wmOperatorType

◆ wmPaintCursorDraw

typedef void(* wmPaintCursorDraw) (struct bContext *C, int, int, void *customdata)

Definition at line 869 of file WM_types.h.

◆ wmTabletData

typedef struct wmTabletData wmTabletData

◆ wmTimer

typedef struct wmTimer wmTimer

◆ wmTooltipState

Struct to store tool-tip timer and possible creation if the time is reached. Allows UI code to call WM_tooltip_timer_init without each user having to handle the timer.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

wmOperatorType.flag

Enumerator
OPTYPE_REGISTER 

Register operators in stack after finishing (needed for redo).

OPTYPE_UNDO 

Do an undo push after the operator runs.

OPTYPE_BLOCKING 

Let Blender grab all input from the WM (X11).

OPTYPE_MACRO 
OPTYPE_GRAB_CURSOR_XY 

Grabs the cursor and optionally enables continuous cursor wrapping.

OPTYPE_GRAB_CURSOR_X 

Only warp on the X axis.

OPTYPE_GRAB_CURSOR_Y 

Only warp on the Y axis.

OPTYPE_PRESET 

Show preset menu.

OPTYPE_INTERNAL 

Some operators are mainly for internal use and don't make sense to be accessed from the search menu, even if poll() returns true. Currently only used for the search toolbox.

OPTYPE_LOCK_BYPASS 

Allow operator to run when interface is locked.

OPTYPE_UNDO_GROUPED 

Special type of undo which doesn't store itself multiple times.

Definition at line 151 of file WM_types.h.

◆ anonymous enum

anonymous enum

For WM_cursor_grab_enable wrap axis.

Enumerator
WM_CURSOR_WRAP_NONE 
WM_CURSOR_WRAP_X 
WM_CURSOR_WRAP_Y 
WM_CURSOR_WRAP_XY 

Definition at line 184 of file WM_types.h.

◆ anonymous enum

anonymous enum

Context to call operator in for WM_operator_name_call. rna_ui.c contains EnumPropertyItem's of these, keep in sync.

Enumerator
WM_OP_INVOKE_DEFAULT 
WM_OP_INVOKE_REGION_WIN 
WM_OP_INVOKE_REGION_CHANNELS 
WM_OP_INVOKE_REGION_PREVIEW 
WM_OP_INVOKE_AREA 
WM_OP_INVOKE_SCREEN 
WM_OP_EXEC_DEFAULT 
WM_OP_EXEC_REGION_WIN 
WM_OP_EXEC_REGION_CHANNELS 
WM_OP_EXEC_REGION_PREVIEW 
WM_OP_EXEC_AREA 
WM_OP_EXEC_SCREEN 

Definition at line 195 of file WM_types.h.

◆ eOperatorPropTags

Enumerator
OP_PROP_TAG_ADVANCED 

Definition at line 213 of file WM_types.h.

◆ wmDragFlags

Enumerator
WM_DRAG_NOP 
WM_DRAG_FREE_DATA 

Definition at line 882 of file WM_types.h.

◆ wmProgress

enum wmProgress

Motion progress, for modal handlers.

Enumerator
P_NOT_STARTED 
P_STARTING 
P_IN_PROGRESS 
P_FINISHING 
P_FINISHED 

Definition at line 651 of file WM_types.h.

◆ wmTimerFlags

Timer flags.

Enumerator
WM_TIMER_NO_FREE_CUSTOM_DATA 

Do not attempt to free customdata pointer even if non-NULL.

Definition at line 684 of file WM_types.h.

Variable Documentation

◆ WM_LOG_EVENTS

struct CLG_LogRef* WM_LOG_EVENTS
extern

Referenced by wm_event_add_ghostevent().

◆ WM_LOG_HANDLERS

struct CLG_LogRef* WM_LOG_HANDLERS
extern

◆ WM_LOG_KEYMAPS

struct CLG_LogRef* WM_LOG_KEYMAPS
extern

◆ WM_LOG_MSGBUS_PUB

struct CLG_LogRef* WM_LOG_MSGBUS_PUB
extern

◆ WM_LOG_MSGBUS_SUB

struct CLG_LogRef* WM_LOG_MSGBUS_SUB
extern

◆ WM_LOG_OPERATORS

struct CLG_LogRef* WM_LOG_OPERATORS
extern

◆ WM_LOG_TOOLS

struct CLG_LogRef* WM_LOG_TOOLS
extern

Referenced by toolsystem_ref_link().