upload tizen2.0 source
[framework/uifw/xorg/proto/x11proto-gesture.git] / gestureproto.h
1
2 #ifndef _GESTUREPROTO_H_
3 #define _GESTUREPROTO_H_
4
5 #include <X11/extensions/gestureconst.h>
6 #include <X11/X.h>
7 #include <X11/Xmd.h>
8
9 #define Fixed       INT32
10
11 #define GESTURE_EXT_NAME "X Gesture Extension"
12
13 #define GESTURE_MAJOR   0       /* current version numbers */
14 #define GESTURE_MINOR   1
15 #define GESTURE_PATCH   0
16
17 // Requests
18 #define X_GestureQueryVersion           0
19 #define X_GestureSelectEvents           1
20 #define X_GestureGetSelectedEvents      2
21 #define X_GestureGrabEvent                      3
22 #define X_GestureUngrabEvent            4
23
24 //requests
25 typedef struct _GestureSelectEvents {
26     CARD8 reqType;                      /* always GestureReqCode */
27     CARD8 gestureReqType;       /* always X_GestureSelectEvents */
28     CARD16 length B16;
29     CARD32 window B32;
30     CARD32 mask B32;
31 } xGestureSelectEventsReq;
32 #define sz_xGestureSelectEventsReq      12
33
34 typedef struct _GestureGetSelectedEvents {
35     CARD8 reqType;                      /* always GestureReqCode */
36     CARD8 gestureReqType;       /* always X_GestureGetSelectedEvents */
37     CARD16 length B16;
38     CARD32 window B32;
39 } xGestureGetSelectedEventsReq;
40 #define sz_xGestureGetSelectedEventsReq 8
41
42 typedef struct _GestureGrabEvent {
43     CARD8 reqType;                      /* always GestureReqCode */
44     CARD8 gestureReqType;       /* always X_GestureGrabEvent */
45     CARD16 length B16;
46     CARD32 window B32;
47     CARD32 eventType B32;               /* gesture event type such as "GestureNotifyFlick" */
48     CARD8 num_finger;           /* number of fingers in a gesture event */
49     CARD8 pad1;
50     CARD16 pad2 B16;
51     Time time B32;                              /* client request timestamp */
52 } xGestureGrabEventReq;
53 #define sz_xGestureGrabEventReq 20
54
55 typedef struct _GestureUngrabEvent {
56     CARD8 reqType;                      /* always GestureReqCode */
57     CARD8 gestureReqType;       /* always X_GestureUngrabEvent */
58     CARD16 length B16;
59     CARD32 window B32;
60     CARD32 eventType B32;               /* gesture event type such as "GestureNotifyFlick" */
61     CARD8 num_finger;           /* number of fingers in a gesture event */
62     CARD8 pad1;
63     CARD16 pad2 B16;
64     Time time B32;                              /* client request timestamp */
65 } xGestureUngrabEventReq;
66 #define sz_xGestureUngrabEventReq       20
67
68 typedef struct _GestureQueryVersion {
69     CARD8 reqType;                      /* always GestureReqCode */
70     CARD8 gestureReqType;       /* always X_GestureQueryVersion */
71     CARD16 length B16;
72 } xGestureQueryVersionReq;
73 #define sz_xGestureQueryVersionReq      4
74
75 //replys for synchronous reqs
76 typedef struct {
77     BYTE type;                                  /* X_Reply */
78     BOOL pad1;
79     CARD16 sequenceNumber B16;
80     CARD32 length B32;
81     CARD32 mask;
82     CARD32 pad2 B32;
83     CARD32 pad3 B32;
84     CARD32 pad4 B32;
85     CARD32 pad5 B32;
86     CARD32 pad6 B32;
87 } xGestureGetSelectedEventsReply;
88 #define sz_xGestureGetSelectedEventsReply       32
89
90 typedef struct {
91     BYTE type;                                  /* X_Reply */
92     BYTE status;
93     CARD16 sequenceNumber B16;
94     CARD32 length B32;
95     CARD32 pad1 B32;
96     CARD32 pad2 B32;
97     CARD32 pad3 B32;
98     CARD32 pad4 B32;
99     CARD32 pad5 B32;
100     CARD32 pad6 B32;
101 } xGestureGrabEventReply;
102 #define sz_xGestureGrabEventReply       32
103
104 typedef struct {
105     BYTE type;                                  /* X_Reply */
106     BYTE status;
107     CARD16 sequenceNumber B16;
108     CARD32 length B32;
109     CARD32 pad1 B32;
110     CARD32 pad2 B32;
111     CARD32 pad3 B32;
112     CARD32 pad4 B32;
113     CARD32 pad5 B32;
114     CARD32 pad6 B32;
115 } xGestureUngrabEventReply;
116 #define sz_xGestureUngrabEventReply     32
117
118 typedef struct {
119     BYTE type;                                  /* X_Reply */
120     BOOL pad1;
121     CARD16 sequenceNumber B16;
122     CARD32 length B32;
123     CARD16 majorVersion B16;    /* major version of Gesture extension protocol */
124     CARD16 minorVersion B16;    /* minor version of Gesture extension protocol */
125     CARD32 patchVersion B32;     /* patch version of Gesture extension protocol */
126     CARD32 pad3 B32;
127     CARD32 pad4 B32;
128     CARD32 pad5 B32;
129     CARD32 pad6 B32;
130 } xGestureQueryVersionReply;
131 #define sz_xGestureQueryVersionReply    32
132
133 //events
134 typedef struct _GestureNotifyGroup {
135         BYTE type;                      /* always GestureEventBase + event type */
136         BYTE kind;                      /* subevent type : GestureNotifyGroup */
137         CARD16  sequenceNumber B16;
138         Window window B32;
139         Time time B32;          /* server timestamp when event happened */
140         CARD8 groupid;
141         CARD8 num_group;
142         CARD16 pad1 B16;
143         CARD32 pad2 B32;
144         CARD32 pad3 B32;
145         CARD32 pad4 B32;
146         CARD32 pad5 B32;
147 } xGestureNotifyGroupEvent;
148 #define sz_xGestureNotifyGroupEvent     32
149
150 typedef struct _GestureNotifyFlick {
151         BYTE type;                      /* always GestureEventBase + event type */
152         BYTE kind;                      /* subevent type : GestureNotifyFlick */
153         CARD16 sequenceNumber B16;
154         Window window B32;
155         Time time B32;          /* server timestamp when event happened */
156         CARD8 num_finger;
157         CARD8 direction;                /* 8 way direction (0 ~ 7) */
158         CARD16 distance B16;    /* distance between first point and last point (pixel) */
159         Time duration B32;      /* time difference between press and release (ms) */
160         Fixed angle B32;                /* angel difference between horizontal line and flick line (radian) */
161         CARD32 pad1 B32;
162         CARD32 pad2 B32;
163 } xGestureNotifyFlickEvent;
164 #define sz_xGestureNotifyFlickEvent     32
165
166 typedef struct _GestureNotifyPan {
167         BYTE type;                      /* always GestureEventBase + event type */
168         BYTE kind;                      /* subevent type : GestureNotifyPan */
169         CARD16  sequenceNumber B16;
170         Window window B32;
171         Time time B32;          /* server timestamp when event happened */
172         CARD8 num_finger;
173         CARD8 direction;                /* 8 way direction (0 ~ 7) */
174         CARD16 distance B16;    /* distance between first point and last point (pixel)*/
175         Time duration B32;      /* time difference between press and release (ms) */
176         CARD16 dx B16;          /* x coordinate delta */
177         CARD16 dy B16;          /* y coordinate delta */
178         CARD32 pad1 B32;
179         CARD32 pad2 B32;
180 } xGestureNotifyPanEvent;
181 #define sz_xGestureNotifyPanEvent       32
182
183 typedef struct _GestureNotifyPinchRotation {
184         BYTE type;                      /* always GestureEventBase + event type */
185         BYTE kind;                      /* subevent type : GestureNotifyPinchRotation */
186         CARD16 sequenceNumber B16;
187         Window window B32;
188         Time time B32;          /* server timestamp when event happened */
189         CARD8 num_finger;
190         CARD8 pad1;
191         CARD16 distance B16;    /* distance from center (pixel) */
192         CARD16 cx B16;          /* center x coordinate */
193         CARD16 cy B16;          /* center y coordinate */
194         Fixed zoom B32;         /* zoom factor (base : 1.0) */
195         Fixed angle B32;                /* angel difference between first line and current line (radian) */
196         CARD32  pad2 B32;
197 } xGestureNotifyPinchRotationEvent;
198 #define sz_xGestureNotifyPinchRotationEvent     32
199
200 typedef struct _GestureNotifyTap {
201         BYTE type;                      /* always GestureEventBase + event type */
202         BYTE kind;                      /* subevent type : GestureNotifyTap */
203         CARD16 sequenceNumber B16;
204         Window window B32;
205         Time time B32;          /* server timestamp when event happened */
206         CARD8 num_finger;
207         CARD8 pad1;
208         CARD16 cx B16;          /* center x coordinate */
209         CARD16 cy B16;          /* center y coordinate */
210         CARD8 tap_repeat;       /* tap repeats such as SINGLE_TAP, DBL_TAP and so on */
211         CARD8 pad2;
212         CARD32 interval;                /* time difference between tap and previous tap (ms) */
213         CARD32 pad3 B32;
214         CARD32 pad4 B32;
215 } xGestureNotifyTapEvent;
216 #define sz_xGestureNotifyTapEvent       32
217
218 typedef struct _GestureNotifyTapNHold {
219         BYTE type;                      /* always GestureEventBase + event type */
220         BYTE kind;                      /* subevent type : GestureNotifyTapNHold */
221         CARD16 sequenceNumber B16;
222         Window window B32;
223         Time time B32;          /* server timestamp when event happened */
224         CARD8 num_finger;
225         CARD8 pad1;
226         CARD16 cx B16;          /* center x coordinate */
227         CARD16 cy B16;          /* center y coordinate */
228         CARD16 pad2 B16;
229         Time interval B32;              /* time difference between tap and hold (ms) */
230         Time holdtime B32;      /* hold time (ms) */
231         CARD32 pad3 B32;
232 } xGestureNotifyTapNHoldEvent;
233 #define sz_xGestureNotifyTapNHoldEvent  32
234
235 typedef struct _GestureNotifyHold {
236         BYTE type;                      /* always GestureEventBase + event type */
237         BYTE kind;                      /* subevent type : GestureNotifyHold */
238         CARD16 sequenceNumber B16;
239         Window window B32;
240         Time time B32;          /* server timestamp when event happened */
241         CARD8 num_finger;
242         CARD8 pad1;
243         CARD16 cx B16;          /* center x coordinate */
244         CARD16 cy B16;          /* center y coordinate */
245         CARD16 pad2 B16;
246         Time holdtime B32;      /* hold time (ms) */
247         CARD32 pad3 B32;
248         CARD32 pad4 B32;
249 } xGestureNotifyHoldEvent;
250 #define sz_xGestureNotifyHoldEvent      32
251
252 union _xGestureCommonEvent {
253         struct {
254                 BYTE type;
255                 BYTE kind;
256                 CARD16  sequenceNumber B16;
257                 Window window B32;
258                 Time time B32;
259         } any;
260         xGestureNotifyGroupEvent gev;
261         xGestureNotifyFlickEvent fev;
262         xGestureNotifyPanEvent pev;
263         xGestureNotifyPinchRotationEvent pcrev;
264         xGestureNotifyTapEvent tev;
265         xGestureNotifyTapNHoldEvent thev;
266         xGestureNotifyHoldEvent hev;
267 };
268
269 typedef union _xGestureCommonEvent xGestureCommonEvent;
270
271 #endif//_GESTUREPROTO_H_
272