]> Pileus Git - ~andy/gtk/blob - gdk/broadway/broadway-protocol.h
1b524b4429bcc75c6b3dd7c69893bfa9af3d4d80
[~andy/gtk] / gdk / broadway / broadway-protocol.h
1 #ifndef __BROADWAY_PROTOCOL_H__
2 #define __BROADWAY_PROTOCOL_H__
3
4 #include <glib.h>
5
6 typedef struct  {
7     gint32 x, y;
8     gint32 width, height;
9 } BroadwayRect;
10
11 typedef enum {
12   BROADWAY_EVENT_ENTER = 'e',
13   BROADWAY_EVENT_LEAVE = 'l',
14   BROADWAY_EVENT_POINTER_MOVE = 'm',
15   BROADWAY_EVENT_BUTTON_PRESS = 'b',
16   BROADWAY_EVENT_BUTTON_RELEASE = 'B',
17   BROADWAY_EVENT_SCROLL = 's',
18   BROADWAY_EVENT_KEY_PRESS = 'k',
19   BROADWAY_EVENT_KEY_RELEASE = 'K',
20   BROADWAY_EVENT_GRAB_NOTIFY = 'g',
21   BROADWAY_EVENT_UNGRAB_NOTIFY = 'u',
22   BROADWAY_EVENT_CONFIGURE_NOTIFY = 'w',
23   BROADWAY_EVENT_DELETE_NOTIFY = 'W',
24   BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 'd'
25 } BroadwayEventType;
26
27 typedef enum {
28   BROADWAY_OP_COPY_RECTANGLES = 'b',
29   BROADWAY_OP_GRAB_POINTER = 'g',
30   BROADWAY_OP_UNGRAB_POINTER = 'u',
31   BROADWAY_OP_NEW_SURFACE = 's',
32   BROADWAY_OP_SHOW_SURFACE = 'S',
33   BROADWAY_OP_HIDE_SURFACE = 'H',
34   BROADWAY_OP_DESTROY_SURFACE = 'd',
35   BROADWAY_OP_MOVE_RESIZE = 'm',
36   BROADWAY_OP_SET_TRANSIENT_FOR = 'p',
37   BROADWAY_OP_PUT_RGB = 'i',
38   BROADWAY_OP_FLUSH = 'f',
39 } BroadwayOpType;
40
41 typedef struct {
42   guint8 type;
43   guint32 serial;
44   guint64 time;
45 } BroadwayInputBaseMsg;
46
47 typedef struct {
48   BroadwayInputBaseMsg base;
49   guint32 mouse_window_id; /* The real window, not taking grabs into account */
50   guint32 event_window_id;
51   gint32 root_x;
52   gint32 root_y;
53   gint32 win_x;
54   gint32 win_y;
55   guint32 state;
56 } BroadwayInputPointerMsg;
57
58 typedef struct {
59   BroadwayInputPointerMsg pointer;
60   guint32 mode;
61 } BroadwayInputCrossingMsg;
62
63 typedef struct {
64   BroadwayInputPointerMsg pointer;
65   guint32 button;
66 } BroadwayInputButtonMsg;
67
68 typedef struct {
69   BroadwayInputPointerMsg pointer;
70   gint32 dir;
71 } BroadwayInputScrollMsg;
72
73 typedef struct {
74   BroadwayInputBaseMsg base;
75   guint32 mouse_window_id; /* The real window, not taking grabs into account */
76   guint32 state;
77   gint32 key;
78 } BroadwayInputKeyMsg;
79
80 typedef struct {
81   BroadwayInputBaseMsg base;
82   gint32 res;
83 } BroadwayInputGrabReply;
84
85 typedef struct {
86   BroadwayInputBaseMsg base;
87   gint32 id;
88   gint32 x;
89   gint32 y;
90   gint32 width;
91   gint32 height;
92 } BroadwayInputConfigureNotify;
93
94 typedef struct {
95   BroadwayInputBaseMsg base;
96   gint32 width;
97   gint32 height;
98 } BroadwayInputScreenResizeNotify;
99
100 typedef struct {
101   BroadwayInputBaseMsg base;
102   gint32 id;
103 } BroadwayInputDeleteNotify;
104
105 typedef union {
106   BroadwayInputBaseMsg base;
107   BroadwayInputPointerMsg pointer;
108   BroadwayInputCrossingMsg crossing;
109   BroadwayInputButtonMsg button;
110   BroadwayInputScrollMsg scroll;
111   BroadwayInputKeyMsg key;
112   BroadwayInputGrabReply grab_reply;
113   BroadwayInputConfigureNotify configure_notify;
114   BroadwayInputDeleteNotify delete_notify;
115   BroadwayInputScreenResizeNotify screen_resize_notify;
116 } BroadwayInputMsg;
117
118 typedef enum {
119   BROADWAY_REQUEST_NEW_WINDOW,
120   BROADWAY_REQUEST_FLUSH,
121   BROADWAY_REQUEST_SYNC,
122   BROADWAY_REQUEST_QUERY_MOUSE,
123   BROADWAY_REQUEST_DESTROY_WINDOW,
124   BROADWAY_REQUEST_SHOW_WINDOW,
125   BROADWAY_REQUEST_HIDE_WINDOW,
126   BROADWAY_REQUEST_SET_TRANSIENT_FOR,
127   BROADWAY_REQUEST_TRANSLATE,
128   BROADWAY_REQUEST_UPDATE,
129   BROADWAY_REQUEST_MOVE_RESIZE,
130   BROADWAY_REQUEST_GRAB_POINTER,
131   BROADWAY_REQUEST_UNGRAB_POINTER
132 } BroadwayRequestType;
133
134 typedef struct {
135   guint32 size;
136   guint32 serial;
137   guint32 type;
138 } BroadwayRequestBase, BroadwayRequestFlush, BroadwayRequestSync, BroadwayRequestQueryMouse;
139
140 typedef struct {
141   BroadwayRequestBase base;
142   guint32 id;
143 } BroadwayRequestDestroyWindow, BroadwayRequestShowWindow, BroadwayRequestHideWindow;
144
145 typedef struct {
146   BroadwayRequestBase base;
147   guint32 id;
148   guint32 parent;
149 } BroadwayRequestSetTransientFor;
150
151 typedef struct {
152   BroadwayRequestBase base;
153   guint32 id;
154   gint32 dx;
155   gint32 dy;
156   guint32 n_rects;
157   BroadwayRect rects[1];
158 } BroadwayRequestTranslate;
159
160 typedef struct {
161   BroadwayRequestBase base;
162   guint32 id;
163   char name[34];
164   guint32 width;
165   guint32 height;
166 } BroadwayRequestUpdate;
167
168 typedef struct {
169   BroadwayRequestBase base;
170   guint32 id;
171   guint32 owner_events;
172   guint32 event_mask;
173   guint32 time_;
174 } BroadwayRequestGrabPointer;
175
176 typedef struct {
177   BroadwayRequestBase base;
178   guint32 time_;
179 } BroadwayRequestUngrabPointer;
180
181 typedef struct {
182   BroadwayRequestBase base;
183   gint32 x;
184   gint32 y;
185   guint32 width;
186   guint32 height;
187   guint32 is_temp;
188 } BroadwayRequestNewWindow;
189
190 typedef struct {
191   BroadwayRequestBase base;
192   guint32 id;
193   gint32 x;
194   gint32 y;
195   guint32 width;
196   guint32 height;
197 } BroadwayRequestMoveResize;
198
199 typedef union {
200   BroadwayRequestBase base;
201   BroadwayRequestNewWindow new_window;
202   BroadwayRequestFlush flush;
203   BroadwayRequestSync sync;
204   BroadwayRequestQueryMouse query_mouse;
205   BroadwayRequestDestroyWindow destroy_window;
206   BroadwayRequestShowWindow show_window;
207   BroadwayRequestHideWindow hide_window;
208   BroadwayRequestSetTransientFor set_transient_for;
209   BroadwayRequestUpdate update;
210   BroadwayRequestMoveResize move_resize;
211   BroadwayRequestGrabPointer grab_pointer;
212   BroadwayRequestUngrabPointer ungrab_pointer;
213   BroadwayRequestTranslate translate;
214 } BroadwayRequest;
215
216 typedef enum {
217   BROADWAY_REPLY_EVENT,
218   BROADWAY_REPLY_SYNC,
219   BROADWAY_REPLY_QUERY_MOUSE,
220   BROADWAY_REPLY_NEW_WINDOW,
221   BROADWAY_REPLY_GRAB_POINTER,
222   BROADWAY_REPLY_UNGRAB_POINTER
223 } BroadwayReplyType;
224
225 typedef struct {
226   guint32 size;
227   guint32 in_reply_to;
228   guint32 type;
229 } BroadwayReplyBase, BroadwayReplySync;
230
231 typedef struct {
232   BroadwayReplyBase base;
233   guint32 id;
234 } BroadwayReplyNewWindow;
235
236 typedef struct {
237   BroadwayReplyBase base;
238   guint32 status;
239 } BroadwayReplyGrabPointer, BroadwayReplyUngrabPointer;
240
241 typedef struct {
242   BroadwayReplyBase base;
243   guint32 toplevel;
244   gint32 root_x;
245   gint32 root_y;
246   guint32 mask;
247 } BroadwayReplyQueryMouse;
248
249 typedef struct {
250   BroadwayReplyBase base;
251   BroadwayInputMsg msg;
252 } BroadwayReplyEvent;
253
254 typedef union {
255   BroadwayReplyBase base;
256   BroadwayReplyEvent event;
257   BroadwayReplyQueryMouse query_mouse;
258   BroadwayReplyNewWindow new_window;
259   BroadwayReplyGrabPointer grab_pointer;
260   BroadwayReplyUngrabPointer ungrab_pointer;
261 } BroadwayReply;
262
263 #endif /* __BROADWAY_PROTOCOL_H__ */