Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/windowmanager/WM_types.h
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/windowmanager/WM_types.h')
-rw-r--r--source/blender/windowmanager/WM_types.h925
1 files changed, 467 insertions, 458 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 0dfa24b8cda..7eee8da1ecf 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -124,100 +124,101 @@ struct wmWindowManager;
/* flag */
enum {
- OPTYPE_REGISTER = (1 << 0), /* register operators in stack after finishing */
- OPTYPE_UNDO = (1 << 1), /* do undo push after after */
- OPTYPE_BLOCKING = (1 << 2), /* let blender grab all input from the WM (X11) */
- OPTYPE_MACRO = (1 << 3),
- OPTYPE_GRAB_CURSOR = (1 << 4), /* grabs the cursor and optionally enables continuous cursor wrapping */
- OPTYPE_PRESET = (1 << 5), /* show preset menu */
-
- /* 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_INTERNAL = (1 << 6),
-
- OPTYPE_LOCK_BYPASS = (1 << 7), /* Allow operator to run when interface is locked */
- OPTYPE_UNDO_GROUPED = (1 << 8), /* Special type of undo which doesn't store itself multiple times */
- OPTYPE_USE_EVAL_DATA = (1 << 9), /* Need evaluated data (i.e. a valid, up-to-date depsgraph for current context) */
+ OPTYPE_REGISTER = (1 << 0), /* register operators in stack after finishing */
+ OPTYPE_UNDO = (1 << 1), /* do undo push after after */
+ OPTYPE_BLOCKING = (1 << 2), /* let blender grab all input from the WM (X11) */
+ OPTYPE_MACRO = (1 << 3),
+ OPTYPE_GRAB_CURSOR =
+ (1 << 4), /* grabs the cursor and optionally enables continuous cursor wrapping */
+ OPTYPE_PRESET = (1 << 5), /* show preset menu */
+
+ /* 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_INTERNAL = (1 << 6),
+
+ OPTYPE_LOCK_BYPASS = (1 << 7), /* Allow operator to run when interface is locked */
+ OPTYPE_UNDO_GROUPED =
+ (1 << 8), /* Special type of undo which doesn't store itself multiple times */
+ OPTYPE_USE_EVAL_DATA =
+ (1 << 9), /* Need evaluated data (i.e. a valid, up-to-date depsgraph for current context) */
};
/* context to call operator in for WM_operator_name_call */
/* rna_ui.c contains EnumPropertyItem's of these, keep in sync */
enum {
- /* if there's invoke, call it, otherwise exec */
- 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,
- /* only call exec */
- 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,
+ /* if there's invoke, call it, otherwise exec */
+ 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,
+ /* only call exec */
+ 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,
};
/* property tags for RNA_OperatorProperties */
typedef enum eOperatorPropTags {
- OP_PROP_TAG_ADVANCED = (1 << 0),
+ OP_PROP_TAG_ADVANCED = (1 << 0),
} eOperatorPropTags;
#define OP_PROP_TAG_ADVANCED ((eOperatorPropTags)OP_PROP_TAG_ADVANCED)
/* ************** wmKeyMap ************************ */
/* modifier */
-#define KM_SHIFT 1
-#define KM_CTRL 2
-#define KM_ALT 4
-#define KM_OSKEY 8
- /* means modifier should be pressed 2nd */
-#define KM_SHIFT2 16
-#define KM_CTRL2 32
-#define KM_ALT2 64
-#define KM_OSKEY2 128
+#define KM_SHIFT 1
+#define KM_CTRL 2
+#define KM_ALT 4
+#define KM_OSKEY 8
+/* means modifier should be pressed 2nd */
+#define KM_SHIFT2 16
+#define KM_CTRL2 32
+#define KM_ALT2 64
+#define KM_OSKEY2 128
/* KM_MOD_ flags for wmKeyMapItem and wmEvent.alt/shift/oskey/ctrl */
/* note that KM_ANY and KM_NOTHING are used with these defines too */
-#define KM_MOD_FIRST 1
+#define KM_MOD_FIRST 1
#define KM_MOD_SECOND 2
/* type: defined in wm_event_types.c */
-#define KM_TEXTINPUT -2
+#define KM_TEXTINPUT -2
/* val */
-#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 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
/* ************** UI Handler ***************** */
-#define WM_UI_HANDLER_CONTINUE 0
-#define WM_UI_HANDLER_BREAK 1
+#define WM_UI_HANDLER_CONTINUE 0
+#define WM_UI_HANDLER_BREAK 1
/* ************** Notifiers ****************** */
typedef struct wmNotifier {
- struct wmNotifier *next, *prev;
+ struct wmNotifier *next, *prev;
- struct wmWindowManager *wm;
- struct wmWindow *window;
+ struct wmWindowManager *wm;
+ struct wmWindow *window;
- unsigned int category, data, subtype, action;
+ unsigned int category, data, subtype, action;
- void *reference;
+ void *reference;
} wmNotifier;
-
/* 4 levels
*
* 0xFF000000; category
@@ -227,220 +228,221 @@ typedef struct wmNotifier {
*/
/* category */
-#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 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)
/* data type, 256 entries is enough, it can overlap */
-#define NOTE_DATA 0x00FF0000
-
- /* NC_WM windowmanager */
-#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)
-
- /* NC_SCREEN */
-#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)
-
- /* NC_SCENE Scene */
-#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)
-
- /* NC_OBJECT Object */
-#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 */
-
- /* NC_MATERIAL Material */
-#define ND_SHADING (30<<16)
-#define ND_SHADING_DRAW (31<<16)
-#define ND_SHADING_LINKS (32<<16)
-#define ND_SHADING_PREVIEW (33<<16)
-
- /* NC_LAMP Light */
-#define ND_LIGHTING (40<<16)
-#define ND_LIGHTING_DRAW (41<<16)
-#define ND_SKY (42<<16)
-
- /* NC_WORLD World */
-#define ND_WORLD_DRAW (45<<16)
-
- /* NC_TEXT Text */
-#define ND_CURSOR (50<<16)
-#define ND_DISPLAY (51<<16)
-
- /* NC_ANIMATION Animato */
-#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)
-
- /* NC_GPENCIL */
-#define ND_GPENCIL_EDITMODE (85<<16)
-
- /* NC_GEOM Geometry */
- /* Mesh, Curve, MetaBall, Armature, .. */
-#define ND_SELECT (90<<16)
-#define ND_DATA (91<<16)
-#define ND_VERTEX_GROUP (92<<16)
-
- /* NC_NODE Nodes */
-
- /* NC_SPACE */
-#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_NODE (7<<16)
-#define ND_SPACE_OUTLINER (8<<16)
-#define ND_SPACE_VIEW3D (9<<16)
-#define ND_SPACE_PROPERTIES (10<<16)
-#define ND_SPACE_TEXT (11<<16)
-#define ND_SPACE_TIME (12<<16)
-#define ND_SPACE_GRAPH (13<<16)
-#define ND_SPACE_DOPESHEET (14<<16)
-#define ND_SPACE_NLA (15<<16)
-#define ND_SPACE_SEQUENCER (16<<16)
-#define ND_SPACE_NODE_VIEW (17<<16)
-#define ND_SPACE_CHANGED (18<<16) /*sent to a new editor type after it's replaced an old one*/
-#define ND_SPACE_CLIP (19<<16)
-#define ND_SPACE_FILE_PREVIEW (20<<16)
+#define NOTE_DATA 0x00FF0000
+
+/* NC_WM windowmanager */
+#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)
+
+/* NC_SCREEN */
+#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)
+
+/* NC_SCENE Scene */
+#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)
+
+/* NC_OBJECT Object */
+#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 */
+
+/* NC_MATERIAL Material */
+#define ND_SHADING (30 << 16)
+#define ND_SHADING_DRAW (31 << 16)
+#define ND_SHADING_LINKS (32 << 16)
+#define ND_SHADING_PREVIEW (33 << 16)
+
+/* NC_LAMP Light */
+#define ND_LIGHTING (40 << 16)
+#define ND_LIGHTING_DRAW (41 << 16)
+#define ND_SKY (42 << 16)
+
+/* NC_WORLD World */
+#define ND_WORLD_DRAW (45 << 16)
+
+/* NC_TEXT Text */
+#define ND_CURSOR (50 << 16)
+#define ND_DISPLAY (51 << 16)
+
+/* NC_ANIMATION Animato */
+#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)
+
+/* NC_GPENCIL */
+#define ND_GPENCIL_EDITMODE (85 << 16)
+
+/* NC_GEOM Geometry */
+/* Mesh, Curve, MetaBall, Armature, .. */
+#define ND_SELECT (90 << 16)
+#define ND_DATA (91 << 16)
+#define ND_VERTEX_GROUP (92 << 16)
+
+/* NC_NODE Nodes */
+
+/* NC_SPACE */
+#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_NODE (7 << 16)
+#define ND_SPACE_OUTLINER (8 << 16)
+#define ND_SPACE_VIEW3D (9 << 16)
+#define ND_SPACE_PROPERTIES (10 << 16)
+#define ND_SPACE_TEXT (11 << 16)
+#define ND_SPACE_TIME (12 << 16)
+#define ND_SPACE_GRAPH (13 << 16)
+#define ND_SPACE_DOPESHEET (14 << 16)
+#define ND_SPACE_NLA (15 << 16)
+#define ND_SPACE_SEQUENCER (16 << 16)
+#define ND_SPACE_NODE_VIEW (17 << 16)
+#define ND_SPACE_CHANGED (18 << 16) /*sent to a new editor type after it's replaced an old one*/
+#define ND_SPACE_CLIP (19 << 16)
+#define ND_SPACE_FILE_PREVIEW (20 << 16)
/* subtype, 256 entries too */
-#define NOTE_SUBTYPE 0x0000FF00
+#define NOTE_SUBTYPE 0x0000FF00
/* subtype scene mode */
-#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_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)
/* subtype 3d view editing */
-#define NS_VIEW3D_GPU (16<<8)
+#define NS_VIEW3D_GPU (16 << 8)
/* action classification */
-#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_PAINTING 7
+#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_PAINTING 7
/* ************** Gesture Manager data ************** */
/* wmGesture->type */
-#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_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
/* wmGesture is registered to window listbase, handled by operator callbacks */
/* tweak gesture is builtin feature */
typedef struct wmGesture {
- struct wmGesture *next, *prev;
- int event_type; /* event->type */
- int type; /* gesture type define */
- rcti winrct; /* bounds of region to draw gesture within */
- int points; /* optional, amount of points stored */
- int points_alloc; /* optional, maximum amount of points stored */
- int modal_state;
-
- /* For modal operators which may be running idle, waiting for an event to activate the gesture.
- * Typically this is set when the user is click-dragging the gesture (border and circle select for eg). */
- uint is_active : 1;
- /* Previous value of is-active (use to detect first run & edge cases). */
- uint is_active_prev : 1;
- /* Use for gestures that support both immediate or delayed activation. */
- uint wait_for_input : 1;
-
- void *customdata;
- /* customdata for border is a recti */
- /* customdata for circle is recti, (xmin, ymin) is center, xmax radius */
- /* customdata for lasso is short array */
- /* customdata for straight line is a recti: (xmin,ymin) is start, (xmax, ymax) is end */
-
- /* free pointer to use for operator allocs (if set, its freed on exit)*/
- void *userdata;
- bool userdata_free;
+ struct wmGesture *next, *prev;
+ int event_type; /* event->type */
+ int type; /* gesture type define */
+ rcti winrct; /* bounds of region to draw gesture within */
+ int points; /* optional, amount of points stored */
+ int points_alloc; /* optional, maximum amount of points stored */
+ int modal_state;
+
+ /* For modal operators which may be running idle, waiting for an event to activate the gesture.
+ * Typically this is set when the user is click-dragging the gesture (border and circle select for eg). */
+ uint is_active : 1;
+ /* Previous value of is-active (use to detect first run & edge cases). */
+ uint is_active_prev : 1;
+ /* Use for gestures that support both immediate or delayed activation. */
+ uint wait_for_input : 1;
+
+ void *customdata;
+ /* customdata for border is a recti */
+ /* customdata for circle is recti, (xmin, ymin) is center, xmax radius */
+ /* customdata for lasso is short array */
+ /* customdata for straight line is a recti: (xmin,ymin) is start, (xmax, ymax) is end */
+
+ /* free pointer to use for operator allocs (if set, its freed on exit)*/
+ void *userdata;
+ bool userdata_free;
} wmGesture;
/* ************** wmEvent ************************ */
@@ -448,45 +450,45 @@ typedef struct wmGesture {
/* each event should have full modifier state */
/* event comes from eventmanager and from keymap */
typedef struct wmEvent {
- struct wmEvent *next, *prev;
-
- short type; /* event code itself (short, is also in keymap) */
- short val; /* press, release, scrollvalue */
- int x, y; /* mouse pointer position, screen coord */
- int mval[2]; /* region mouse position, name convention pre 2.5 :) */
- char utf8_buf[6]; /* from, ghost if utf8 is enabled for the platform,
- * BLI_str_utf8_size() must _always_ be valid, check
- * when assigning s we don't need to check on every access after */
- char ascii; /* from ghost, fallback if utf8 isn't set */
- char pad;
-
- /* previous state, used for double click and the 'click' */
- short prevtype;
- short prevval;
- int prevx, prevy;
- double prevclicktime;
- int prevclickx, prevclicky;
-
- /* modifier states */
- short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
- short keymodifier; /* rawkey modifier */
-
- /* set in case a KM_PRESS went by unhandled */
- char check_click;
- char check_drag;
- char is_motion_absolute;
-
- /* keymap item, set by handler (weak?) */
- const char *keymap_idname;
-
- /* tablet info, only use when the tablet is active */
- const struct wmTabletData *tablet_data;
-
- /* custom data */
- short custom; /* custom data type, stylus, 6dof, see wm_event_types.h */
- short customdatafree;
- int pad2;
- void *customdata; /* ascii, unicode, mouse coords, angles, vectors, dragdrop info */
+ struct wmEvent *next, *prev;
+
+ short type; /* event code itself (short, is also in keymap) */
+ short val; /* press, release, scrollvalue */
+ int x, y; /* mouse pointer position, screen coord */
+ int mval[2]; /* region mouse position, name convention pre 2.5 :) */
+ char utf8_buf[6]; /* from, ghost if utf8 is enabled for the platform,
+ * BLI_str_utf8_size() must _always_ be valid, check
+ * when assigning s we don't need to check on every access after */
+ char ascii; /* from ghost, fallback if utf8 isn't set */
+ char pad;
+
+ /* previous state, used for double click and the 'click' */
+ short prevtype;
+ short prevval;
+ int prevx, prevy;
+ double prevclicktime;
+ int prevclickx, prevclicky;
+
+ /* modifier states */
+ short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
+ short keymodifier; /* rawkey modifier */
+
+ /* set in case a KM_PRESS went by unhandled */
+ char check_click;
+ char check_drag;
+ char is_motion_absolute;
+
+ /* keymap item, set by handler (weak?) */
+ const char *keymap_idname;
+
+ /* tablet info, only use when the tablet is active */
+ const struct wmTabletData *tablet_data;
+
+ /* custom data */
+ short custom; /* custom data type, stylus, 6dof, see wm_event_types.h */
+ short customdatafree;
+ int pad2;
+ void *customdata; /* ascii, unicode, mouse coords, angles, vectors, dragdrop info */
} wmEvent;
@@ -506,134 +508,139 @@ typedef struct wmEvent {
/* ************** custom wmEvent data ************** */
typedef struct wmTabletData {
- int Active; /* 0=EVT_TABLET_NONE, 1=EVT_TABLET_STYLUS, 2=EVT_TABLET_ERASER */
- float Pressure; /* range 0.0 (not touching) to 1.0 (full pressure) */
- float Xtilt; /* range 0.0 (upright) to 1.0 (tilted fully against the tablet surface) */
- float Ytilt; /* as above */
+ int Active; /* 0=EVT_TABLET_NONE, 1=EVT_TABLET_STYLUS, 2=EVT_TABLET_ERASER */
+ float Pressure; /* range 0.0 (not touching) to 1.0 (full pressure) */
+ float Xtilt; /* range 0.0 (upright) to 1.0 (tilted fully against the tablet surface) */
+ float Ytilt; /* as above */
} wmTabletData;
-typedef enum { /* motion progress, for modal handlers */
- P_NOT_STARTED,
- P_STARTING, /* <-- */
- P_IN_PROGRESS, /* <-- only these are sent for NDOF motion*/
- P_FINISHING, /* <-- */
- P_FINISHED,
+typedef enum { /* motion progress, for modal handlers */
+ P_NOT_STARTED,
+ P_STARTING, /* <-- */
+ P_IN_PROGRESS, /* <-- only these are sent for NDOF motion*/
+ P_FINISHING, /* <-- */
+ P_FINISHED,
} wmProgress;
#ifdef WITH_INPUT_NDOF
typedef struct wmNDOFMotionData {
- /* awfully similar to GHOST_TEventNDOFMotionData... */
- /* Each component normally ranges from -1 to +1, but can exceed that.
- * These use blender standard view coordinates, with positive rotations being CCW about the axis. */
- float tvec[3]; /* translation */
- float rvec[3]; /* rotation: */
- /* axis = (rx,ry,rz).normalized */
- /* amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */
- float dt; /* time since previous NDOF Motion event */
- wmProgress progress; /* is this the first event, the last, or one of many in between? */
+ /* awfully similar to GHOST_TEventNDOFMotionData... */
+ /* Each component normally ranges from -1 to +1, but can exceed that.
+ * These use blender standard view coordinates, with positive rotations being CCW about the axis. */
+ float tvec[3]; /* translation */
+ float rvec[3]; /* rotation: */
+ /* axis = (rx,ry,rz).normalized */
+ /* amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */
+ float dt; /* time since previous NDOF Motion event */
+ wmProgress progress; /* is this the first event, the last, or one of many in between? */
} wmNDOFMotionData;
#endif /* WITH_INPUT_NDOF */
-typedef enum { /* Timer flags */
- WM_TIMER_NO_FREE_CUSTOM_DATA = 1 << 0, /* Do not attempt to free customdata pointer even if non-NULL. */
+typedef enum { /* Timer flags */
+ WM_TIMER_NO_FREE_CUSTOM_DATA =
+ 1 << 0, /* Do not attempt to free customdata pointer even if non-NULL. */
} wmTimerFlags;
typedef struct wmTimer {
- struct wmTimer *next, *prev;
+ struct wmTimer *next, *prev;
- struct wmWindow *win; /* window this timer is attached to (optional) */
+ struct wmWindow *win; /* window this timer is attached to (optional) */
- double timestep; /* set by timer user */
- int event_type; /* set by timer user, goes to event system */
- wmTimerFlags flags; /* Various flags controlling timer options, see below. */
- void *customdata; /* set by timer user, to allow custom values */
+ double timestep; /* set by timer user */
+ int event_type; /* set by timer user, goes to event system */
+ wmTimerFlags flags; /* Various flags controlling timer options, see below. */
+ void *customdata; /* set by timer user, to allow custom values */
- double duration; /* total running time in seconds */
- double delta; /* time since previous step in seconds */
+ double duration; /* total running time in seconds */
+ double delta; /* time since previous step in seconds */
- double ltime; /* internal, last time timer was activated */
- double ntime; /* internal, next time we want to activate the timer */
- double stime; /* internal, when the timer started */
- bool sleep; /* internal, put timers to sleep when needed */
+ double ltime; /* internal, last time timer was activated */
+ double ntime; /* internal, next time we want to activate the timer */
+ double stime; /* internal, when the timer started */
+ bool sleep; /* internal, put timers to sleep when needed */
} wmTimer;
typedef struct wmOperatorType {
- const char *name; /* text for ui, undo */
- const char *idname; /* unique identifier */
- const char *translation_context;
- const char *description; /* tooltips and python docs */
- const char *undo_group; /* identifier to group operators together */
-
- /* this callback executes the operator without any interactive input,
- * parameters may be provided through operator properties. cannot use
- * any interface code or input device state.
- * - see defines below for return values */
- int (*exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT;
-
- /* this callback executes on a running operator whenever as property
- * is changed. It can correct its own properties or report errors for
- * invalid settings in exceptional cases.
- * Boolean return value, True denotes a change has been made and to redraw */
- bool (*check)(struct bContext *, struct wmOperator *);
-
- /* for modal temporary operators, initially invoke is called. then
- * any further events are handled in modal. if the operation is
- * canceled due to some external reason, cancel is called
- * - see defines below for return values */
- int (*invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
-
- /* Called when a modal operator is canceled (not used often).
- * Internal cleanup can be done here if needed. */
- void (*cancel)(struct bContext *, struct wmOperator *);
-
- /* Modal is used for operators which continuously run, eg:
- * fly mode, knife tool, circle select are all examples of modal operators.
- * Modal operators can handle events which would normally access other operators,
- * they keep running until they don't return `OPERATOR_RUNNING_MODAL`. */
- int (*modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
-
- /* verify if the operator can be executed in the current context, note
- * that the operator might still fail to execute even if this return true */
- bool (*poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT;
-
- /* Use to check of properties should be displayed in auto-generated UI.
- * Use 'check' callback to enforce refreshing. */
- bool (*poll_property)(
- const struct bContext *C, struct wmOperator *op,
- const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT;
-
- /* optional panel for redo and repeat, autogenerated if not set */
- void (*ui)(struct bContext *, struct wmOperator *);
-
- /* rna for properties */
- struct StructRNA *srna;
-
- /* previous settings - for initializing on re-use */
- struct IDProperty *last_properties;
-
- /**
- * Default rna property to use for generic invoke functions.
- * menus, enum search... etc. Example: Enum 'type' for a Delete menu.
- *
- * When assigned a string/number property,
- * immediately edit the value when used in a popup. see: #UI_BUT_ACTIVATE_ON_INIT.
- */
- PropertyRNA *prop;
-
- /* struct wmOperatorTypeMacro */
- ListBase macro;
-
- /* pointer to modal keymap, do not free! */
- struct wmKeyMap *modalkeymap;
-
- /* python needs the operator type as well */
- bool (*pyop_poll)(struct bContext *, struct wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT;
-
- /* RNA integration */
- ExtensionRNA ext;
-
- /* Flag last for padding */
- short flag;
+ const char *name; /* text for ui, undo */
+ const char *idname; /* unique identifier */
+ const char *translation_context;
+ const char *description; /* tooltips and python docs */
+ const char *undo_group; /* identifier to group operators together */
+
+ /* this callback executes the operator without any interactive input,
+ * parameters may be provided through operator properties. cannot use
+ * any interface code or input device state.
+ * - see defines below for return values */
+ int (*exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT;
+
+ /* this callback executes on a running operator whenever as property
+ * is changed. It can correct its own properties or report errors for
+ * invalid settings in exceptional cases.
+ * Boolean return value, True denotes a change has been made and to redraw */
+ bool (*check)(struct bContext *, struct wmOperator *);
+
+ /* for modal temporary operators, initially invoke is called. then
+ * any further events are handled in modal. if the operation is
+ * canceled due to some external reason, cancel is called
+ * - see defines below for return values */
+ int (*invoke)(struct bContext *,
+ struct wmOperator *,
+ const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
+
+ /* Called when a modal operator is canceled (not used often).
+ * Internal cleanup can be done here if needed. */
+ void (*cancel)(struct bContext *, struct wmOperator *);
+
+ /* Modal is used for operators which continuously run, eg:
+ * fly mode, knife tool, circle select are all examples of modal operators.
+ * Modal operators can handle events which would normally access other operators,
+ * they keep running until they don't return `OPERATOR_RUNNING_MODAL`. */
+ int (*modal)(struct bContext *,
+ struct wmOperator *,
+ const struct wmEvent *) ATTR_WARN_UNUSED_RESULT;
+
+ /* verify if the operator can be executed in the current context, note
+ * that the operator might still fail to execute even if this return true */
+ bool (*poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT;
+
+ /* Use to check of properties should be displayed in auto-generated UI.
+ * Use 'check' callback to enforce refreshing. */
+ bool (*poll_property)(const struct bContext *C,
+ struct wmOperator *op,
+ const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT;
+
+ /* optional panel for redo and repeat, autogenerated if not set */
+ void (*ui)(struct bContext *, struct wmOperator *);
+
+ /* rna for properties */
+ struct StructRNA *srna;
+
+ /* previous settings - for initializing on re-use */
+ struct IDProperty *last_properties;
+
+ /**
+ * Default rna property to use for generic invoke functions.
+ * menus, enum search... etc. Example: Enum 'type' for a Delete menu.
+ *
+ * When assigned a string/number property,
+ * immediately edit the value when used in a popup. see: #UI_BUT_ACTIVATE_ON_INIT.
+ */
+ PropertyRNA *prop;
+
+ /* struct wmOperatorTypeMacro */
+ ListBase macro;
+
+ /* pointer to modal keymap, do not free! */
+ struct wmKeyMap *modalkeymap;
+
+ /* python needs the operator type as well */
+ bool (*pyop_poll)(struct bContext *, struct wmOperatorType *ot) ATTR_WARN_UNUSED_RESULT;
+
+ /* RNA integration */
+ ExtensionRNA ext;
+
+ /* Flag last for padding */
+ short flag;
} wmOperatorType;
@@ -642,16 +649,16 @@ typedef struct wmOperatorType {
/* similar to GHOST_TEventImeData */
typedef struct wmIMEData {
- size_t result_len, composite_len;
+ size_t result_len, composite_len;
- char *str_result; /* utf8 encoding */
- char *str_composite; /* utf8 encoding */
+ char *str_result; /* utf8 encoding */
+ char *str_composite; /* utf8 encoding */
- int cursor_pos; /* cursor position in the IME composition. */
- int sel_start; /* beginning of the selection */
- int sel_end; /* end of the selection */
+ int cursor_pos; /* cursor position in the IME composition. */
+ int sel_start; /* beginning of the selection */
+ int sel_end; /* end of the selection */
- bool is_ime_composing;
+ bool is_ime_composing;
} wmIMEData;
#endif
@@ -661,62 +668,63 @@ typedef void (*wmPaintCursorDraw)(struct bContext *C, int, int, void *customdata
/* *************** Drag and drop *************** */
-#define WM_DRAG_ID 0
-#define WM_DRAG_RNA 1
-#define WM_DRAG_PATH 2
-#define WM_DRAG_NAME 3
-#define WM_DRAG_VALUE 4
-#define WM_DRAG_COLOR 5
+#define WM_DRAG_ID 0
+#define WM_DRAG_RNA 1
+#define WM_DRAG_PATH 2
+#define WM_DRAG_NAME 3
+#define WM_DRAG_VALUE 4
+#define WM_DRAG_COLOR 5
typedef enum wmDragFlags {
- WM_DRAG_NOP = 0,
- WM_DRAG_FREE_DATA = 1,
+ WM_DRAG_NOP = 0,
+ WM_DRAG_FREE_DATA = 1,
} wmDragFlags;
/* note: structs need not exported? */
typedef struct wmDragID {
- struct wmDragID *next, *prev;
- struct ID *id;
- struct ID *from_parent;
+ struct wmDragID *next, *prev;
+ struct ID *id;
+ struct ID *from_parent;
} wmDragID;
typedef struct wmDrag {
- struct wmDrag *next, *prev;
+ struct wmDrag *next, *prev;
- int icon, type; /* type, see WM_DRAG defines above */
- void *poin;
- char path[1024]; /* FILE_MAX */
- double value;
+ int icon, type; /* type, see WM_DRAG defines above */
+ void *poin;
+ char path[1024]; /* FILE_MAX */
+ double value;
- struct ImBuf *imb; /* if no icon but imbuf should be drawn around cursor */
- float scale;
- int sx, sy;
+ struct ImBuf *imb; /* if no icon but imbuf should be drawn around cursor */
+ float scale;
+ int sx, sy;
- char opname[200]; /* if set, draws operator name*/
- unsigned int flags;
+ char opname[200]; /* if set, draws operator name*/
+ unsigned int flags;
- ListBase ids; /* List of wmDragIDs, all are guaranteed to have the same ID type. */
+ ListBase ids; /* List of wmDragIDs, all are guaranteed to have the same ID type. */
} wmDrag;
/* dropboxes are like keymaps, part of the screen/area/region definition */
/* allocation and free is on startup and exit */
typedef struct wmDropBox {
- struct wmDropBox *next, *prev;
+ struct wmDropBox *next, *prev;
- /* test if the dropbox is active, then can print optype name */
- bool (*poll)(struct bContext *, struct wmDrag *, const wmEvent *, const char **);
+ /* test if the dropbox is active, then can print optype name */
+ bool (*poll)(struct bContext *, struct wmDrag *, const wmEvent *, const char **);
- /* before exec, this copies drag info to wmDrop properties */
- void (*copy)(struct wmDrag *, struct wmDropBox *);
+ /* before exec, this copies drag info to wmDrop properties */
+ void (*copy)(struct wmDrag *, struct wmDropBox *);
- /* if poll survives, operator is called */
- wmOperatorType *ot; /* not saved in file, so can be pointer */
+ /* if poll survives, operator is called */
+ wmOperatorType *ot; /* not saved in file, so can be pointer */
- struct IDProperty *properties; /* operator properties, assigned to ptr->data and can be written to a file */
- struct PointerRNA *ptr; /* rna pointer to access properties */
+ struct IDProperty
+ *properties; /* operator properties, assigned to ptr->data and can be written to a file */
+ struct PointerRNA *ptr; /* rna pointer to access properties */
- short opcontext; /* default invoke */
+ short opcontext; /* default invoke */
} wmDropBox;
@@ -725,27 +733,29 @@ typedef struct wmDropBox {
* Allows UI code to call #WM_tooltip_timer_init without each user having to handle the timer.
*/
typedef struct wmTooltipState {
- /** Create tooltip on this event. */
- struct wmTimer *timer;
- /** The region the tooltip is created in. */
- struct ARegion *region_from;
- /** The tooltip region. */
- struct ARegion *region;
- /** Create the tooltip region (assign to 'region'). */
- struct ARegion *(*init)(
- struct bContext *C, struct ARegion *ar,
- int *pass, double *pass_delay, bool *r_exit_on_event);
- /** Exit on any event, not needed for buttons since their highlight state is used. */
- bool exit_on_event;
- /** Pass, use when we want multiple tips, count down to zero. */
- int pass;
+ /** Create tooltip on this event. */
+ struct wmTimer *timer;
+ /** The region the tooltip is created in. */
+ struct ARegion *region_from;
+ /** The tooltip region. */
+ struct ARegion *region;
+ /** Create the tooltip region (assign to 'region'). */
+ struct ARegion *(*init)(struct bContext *C,
+ struct ARegion *ar,
+ int *pass,
+ double *pass_delay,
+ bool *r_exit_on_event);
+ /** Exit on any event, not needed for buttons since their highlight state is used. */
+ bool exit_on_event;
+ /** Pass, use when we want multiple tips, count down to zero. */
+ int pass;
} wmTooltipState;
/* *************** migrated stuff, clean later? ************** */
typedef struct RecentFile {
- struct RecentFile *next, *prev;
- char *filepath;
+ struct RecentFile *next, *prev;
+ char *filepath;
} RecentFile;
/* Logging */
@@ -759,7 +769,6 @@ extern struct CLG_LogRef *WM_LOG_TOOLS;
extern struct CLG_LogRef *WM_LOG_MSGBUS_PUB;
extern struct CLG_LogRef *WM_LOG_MSGBUS_SUB;
-
#ifdef __cplusplus
}
#endif