Fix quirks in CMake build on Mac and Windows
[WebKit-https.git] / Source / WebCore / platform / win / WindowsTouch.h
1 /*
2  * Copyright (C) 2009 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #ifndef WindowsTouch_h
27 #define WindowsTouch_h
28
29 /*
30  * The following constants are used to determine multitouch and gesture behavior
31  * for Windows 7. For more information, see:
32  * http://msdn.microsoft.com/en-us/library/dd562197(VS.85).aspx
33  */
34
35 // Value used in WebViewWndProc for Gestures
36 #define WM_GESTURE 0x0119
37 #define WM_GESTURENOTIFY 0x011A
38
39 // Gesture Information Flags
40 #define GF_BEGIN 0x00000001
41 #define GF_INERTIA 0x00000002
42 #define GF_END 0x00000004
43
44 // Gesture IDs
45 #define GID_BEGIN 1
46 #define GID_END 2
47 #define GID_ZOOM 3
48 #define GID_PAN 4
49 #define GID_ROTATE 5
50 #define GID_TWOFINGERTAP 6
51 #define GID_PRESSANDTAP 7
52 #define GID_ROLLOVER GID_PRESSANDTAP
53
54 // Zoom Gesture Confiration Flags
55 #define GC_ZOOM 0x00000001
56
57 // Pan Gesture Configuration Flags
58 #define GC_PAN 0x00000001
59 #define GC_PAN_WITH_SINGLE_FINGER_VERTICALLY 0x00000002
60 #define GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY 0x00000004
61 #define GC_PAN_WITH_GUTTER 0x00000008
62 #define GC_PAN_WITH_INERTIA 0x00000010
63
64 // Rotate Gesture Configuration Flags
65 #define GC_ROTATE 0x00000001
66
67 // Two finger tap configuration flags
68 #define GC_TWOFINGERTAP 0x00000001
69
70 // Press and tap Configuration Flags
71 #define GC_PRESSANDTAP 0x00000001
72 #define GC_ROLLOVER GC_PRESSANDTAP
73
74 // When building with CMake, we have the correct WINVER, so we do not need these definitions to soft link with user32.dll.
75 #if !defined(BUILDING_WITH_CMAKE)
76
77 // GESTUREINFO struct definition
78 typedef struct tagGESTUREINFO {
79     UINT cbSize;                    // size, in bytes, of this structure (including variable length Args field)
80     DWORD dwFlags;                  // see GF_* flags
81     DWORD dwID;                     // gesture ID, see GID_* defines
82     HWND hwndTarget;                // handle to window targeted by this gesture
83     POINTS ptsLocation;             // current location of this gesture
84     DWORD dwInstanceID;             // internally used
85     DWORD dwSequenceID;             // internally used
86     ULONGLONG ullArguments;         // arguments for gestures whose arguments fit in 8 BYTES
87     UINT cbExtraArgs;               // size, in bytes, of extra arguments, if any, that accompany this gesture
88 } GESTUREINFO, *PGESTUREINFO;
89 typedef GESTUREINFO const * PCGESTUREINFO;
90
91 // GESTURECONFIG struct defintion
92 typedef struct tagGESTURECONFIG {
93     DWORD dwID;                     // gesture ID
94     DWORD dwWant;                   // settings related to gesture ID that are to be turned on
95     DWORD dwBlock;                  // settings related to gesture ID that are to be turned off
96 } GESTURECONFIG, *PGESTURECONFIG;
97
98 /*
99  * Gesture notification structure
100  *   - The WM_GESTURENOTIFY message lParam contains a pointer to this structure.
101  *   - The WM_GESTURENOTIFY message notifies a window that gesture recognition is
102  *     in progress and a gesture will be generated if one is recognized under the
103  *     current gesture settings.
104  */
105 typedef struct tagGESTURENOTIFYSTRUCT {
106     UINT cbSize;                    // size, in bytes, of this structure
107     DWORD dwFlags;                  // unused
108     HWND hwndTarget;                // handle to window targeted by the gesture
109     POINTS ptsLocation;             // starting location
110     DWORD dwInstanceID;             // internally used
111 } GESTURENOTIFYSTRUCT, *PGESTURENOTIFYSTRUCT;
112
113 DECLARE_HANDLE(HGESTUREINFO);
114
115 #endif
116
117 #endif