diff options
Diffstat (limited to 'source/blender/windowmanager/WM_types.h')
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 81018348ca0..929617aab04 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -200,6 +200,7 @@ typedef enum eOperatorPropTags { #define KM_RELEASE 2 #define KM_CLICK 3 #define KM_DBL_CLICK 4 +#define KM_CLICK_DRAG 5 /* ************** UI Handler ***************** */ @@ -211,14 +212,14 @@ typedef enum eOperatorPropTags { typedef struct wmNotifier { struct wmNotifier *next, *prev; - + struct wmWindowManager *wm; struct wmWindow *window; - + unsigned int category, data, subtype, action; - + void *reference; - + } wmNotifier; @@ -335,7 +336,7 @@ typedef struct wmNotifier { /* 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) @@ -433,7 +434,7 @@ typedef struct wmGesture { uint is_active : 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 */ @@ -451,7 +452,7 @@ typedef struct wmGesture { /* 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 */ @@ -468,13 +469,14 @@ typedef struct wmEvent { 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?) */ @@ -488,7 +490,7 @@ typedef struct wmEvent { short customdatafree; int pad2; void *customdata; /* ascii, unicode, mouse coords, angles, vectors, dragdrop info */ - + } wmEvent; /* ************** custom wmEvent data ************** */ @@ -527,17 +529,17 @@ typedef enum { /* Timer flags */ typedef struct wmTimer { struct wmTimer *next, *prev; - + 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 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 */ @@ -653,16 +655,16 @@ typedef enum wmDragFlags { typedef struct wmDrag { struct wmDrag *next, *prev; - + 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; - + char opname[200]; /* if set, draws operator name*/ unsigned int flags; } wmDrag; @@ -671,13 +673,13 @@ typedef struct wmDrag { /* allocation and free is on startup and exit */ typedef struct wmDropBox { struct wmDropBox *next, *prev; - + /* test if the dropbox is active, then can print optype name */ int (*poll)(struct bContext *, struct wmDrag *, const wmEvent *); /* 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 */ |