widget/windows/touchinjection_sdk80.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef touchinjection_sdk80_h
     6 #define touchinjection_sdk80_h
     8 // Note, this isn't inclusive of all touch injection header info.
     9 // You may need to add more to expand on current apis. 
    11 #ifndef TOUCH_FEEDBACK_DEFAULT
    13 #define TOUCH_FEEDBACK_DEFAULT 0x1
    14 #define TOUCH_FEEDBACK_INDIRECT 0x2
    15 #define TOUCH_FEEDBACK_NONE 0x3
    17 enum {
    18   PT_POINTER  = 0x00000001,   // Generic pointer
    19   PT_TOUCH    = 0x00000002,   // Touch
    20   PT_PEN      = 0x00000003,   // Pen
    21   PT_MOUSE    = 0x00000004,   // Mouse
    22 };
    24 typedef DWORD POINTER_INPUT_TYPE;
    25 typedef UINT32 POINTER_FLAGS;
    27 typedef enum {
    28   POINTER_CHANGE_NONE,
    29   POINTER_CHANGE_FIRSTBUTTON_DOWN,
    30   POINTER_CHANGE_FIRSTBUTTON_UP,
    31   POINTER_CHANGE_SECONDBUTTON_DOWN,
    32   POINTER_CHANGE_SECONDBUTTON_UP,
    33   POINTER_CHANGE_THIRDBUTTON_DOWN,
    34   POINTER_CHANGE_THIRDBUTTON_UP,
    35   POINTER_CHANGE_FOURTHBUTTON_DOWN,
    36   POINTER_CHANGE_FOURTHBUTTON_UP,
    37   POINTER_CHANGE_FIFTHBUTTON_DOWN,
    38   POINTER_CHANGE_FIFTHBUTTON_UP,
    39 } POINTER_BUTTON_CHANGE_TYPE;
    41 typedef struct {
    42   POINTER_INPUT_TYPE    pointerType;
    43   UINT32          pointerId;
    44   UINT32          frameId;
    45   POINTER_FLAGS   pointerFlags;
    46   HANDLE          sourceDevice;
    47   HWND            hwndTarget;
    48   POINT           ptPixelLocation;
    49   POINT           ptHimetricLocation;
    50   POINT           ptPixelLocationRaw;
    51   POINT           ptHimetricLocationRaw;
    52   DWORD           dwTime;
    53   UINT32          historyCount;
    54   INT32           InputData;
    55   DWORD           dwKeyStates;
    56   UINT64          PerformanceCount;
    57   POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
    58 } POINTER_INFO;
    60 typedef UINT32 TOUCH_FLAGS;
    61 typedef UINT32 TOUCH_MASK;
    63 typedef struct {
    64   POINTER_INFO    pointerInfo;
    65   TOUCH_FLAGS     touchFlags;
    66   TOUCH_MASK      touchMask;
    67   RECT            rcContact;
    68   RECT            rcContactRaw;
    69   UINT32          orientation;
    70   UINT32          pressure;
    71 } POINTER_TOUCH_INFO;
    73 #define TOUCH_FLAG_NONE                 0x00000000 // Default
    75 #define TOUCH_MASK_NONE                 0x00000000 // Default - none of the optional fields are valid
    76 #define TOUCH_MASK_CONTACTAREA          0x00000001 // The rcContact field is valid
    77 #define TOUCH_MASK_ORIENTATION          0x00000002 // The orientation field is valid
    78 #define TOUCH_MASK_PRESSURE             0x00000004 // The pressure field is valid
    80 #define POINTER_FLAG_NONE               0x00000000 // Default
    81 #define POINTER_FLAG_NEW                0x00000001 // New pointer
    82 #define POINTER_FLAG_INRANGE            0x00000002 // Pointer has not departed
    83 #define POINTER_FLAG_INCONTACT          0x00000004 // Pointer is in contact
    84 #define POINTER_FLAG_FIRSTBUTTON        0x00000010 // Primary action
    85 #define POINTER_FLAG_SECONDBUTTON       0x00000020 // Secondary action
    86 #define POINTER_FLAG_THIRDBUTTON        0x00000040 // Third button
    87 #define POINTER_FLAG_FOURTHBUTTON       0x00000080 // Fourth button
    88 #define POINTER_FLAG_FIFTHBUTTON        0x00000100 // Fifth button
    89 #define POINTER_FLAG_PRIMARY            0x00002000 // Pointer is primary
    90 #define POINTER_FLAG_CONFIDENCE         0x00004000 // Pointer is considered unlikely to be accidental
    91 #define POINTER_FLAG_CANCELED           0x00008000 // Pointer is departing in an abnormal manner
    92 #define POINTER_FLAG_DOWN               0x00010000 // Pointer transitioned to down state (made contact)
    93 #define POINTER_FLAG_UPDATE             0x00020000 // Pointer update
    94 #define POINTER_FLAG_UP                 0x00040000 // Pointer transitioned from down state (broke contact)
    95 #define POINTER_FLAG_WHEEL              0x00080000 // Vertical wheel
    96 #define POINTER_FLAG_HWHEEL             0x00100000 // Horizontal wheel
    97 #define POINTER_FLAG_CAPTURECHANGED     0x00200000 // Lost capture
    99 #endif // TOUCH_FEEDBACK_DEFAULT
   101 #define TOUCH_FLAGS_CONTACTUPDATE (POINTER_FLAG_UPDATE|POINTER_FLAG_INRANGE|POINTER_FLAG_INCONTACT)
   102 #define TOUCH_FLAGS_CONTACTDOWN (POINTER_FLAG_DOWN|POINTER_FLAG_INRANGE|POINTER_FLAG_INCONTACT)
   104 typedef BOOL (WINAPI* InitializeTouchInjectionPtr)(UINT32 maxCount, DWORD dwMode);
   105 typedef BOOL (WINAPI* InjectTouchInputPtr)(UINT32 count, CONST POINTER_TOUCH_INFO *info);
   107 #endif // touchinjection_sdk80_h

mercurial