1/*
2 * Copyright 2001-2016, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 * DarkWyrm <bpmagic@columbus.rr.com>
7 * Jérôme Duval, jerome.duval@free.fr
8 * Axel Dörfler, axeld@pinc-software.de
9 * Andrej Spielmann, <andrej.spielmann@seh.ox.ac.uk>
10 * Julian Harnath, <julian.harnath@rwth-aachen.de>
11 */
12#ifndef APP_SERVER_PROTOCOL_H
13#define APP_SERVER_PROTOCOL_H
14
15
16#include <SupportDefs.h>
17
18
19#ifdef HAIKU_TARGET_PLATFORM_LIBBE_TEST
20# define SERVER_PORT_NAME "haiku-test:app_server"
21#endif
22
23#if TEST_MODE
24# define SERVER_INPUT_PORT "haiku-test:input port"
25#endif
26
27#define AS_PROTOCOL_VERSION 1
28
29#define AS_REQUEST_COLOR_KEY 0x00010000
30 // additional option for AS_VIEW_SET_VIEW_BITMAP
31
32enum {
33 // NOTE: all defines have to start with "AS_" to let the "code_to_name"
34 // utility work correctly
35
36 AS_GET_DESKTOP,
37 AS_REGISTER_INPUT_SERVER = 1,
38 AS_EVENT_STREAM_CLOSED,
39 // Notification of event stream closing to restart input_server
40
41 // Desktop definitions (through the ServerApp, though)
42 AS_GET_WINDOW_LIST,
43 AS_GET_WINDOW_INFO,
44 AS_MINIMIZE_TEAM,
45 AS_BRING_TEAM_TO_FRONT,
46 AS_WINDOW_ACTION,
47 AS_GET_APPLICATION_ORDER,
48 AS_GET_WINDOW_ORDER,
49
50 // Application definitions
51 AS_CREATE_APP,
52 AS_DELETE_APP,
53 AS_QUIT_APP,
54 AS_ACTIVATE_APP,
55 AS_APP_CRASHED,
56
57 AS_CREATE_WINDOW,
58 AS_CREATE_OFFSCREEN_WINDOW,
59 AS_DELETE_WINDOW,
60 AS_CREATE_BITMAP,
61 AS_DELETE_BITMAP,
62 AS_GET_BITMAP_OVERLAY_RESTRICTIONS,
63 AS_GET_BITMAP_SUPPORT_FLAGS,
64 AS_RECONNECT_BITMAP,
65
66 // Cursor commands
67 AS_SET_CURSOR,
68 AS_SET_VIEW_CURSOR,
69
70 AS_SHOW_CURSOR,
71 AS_HIDE_CURSOR,
72 AS_OBSCURE_CURSOR,
73 AS_QUERY_CURSOR_HIDDEN,
74
75 AS_CREATE_CURSOR,
76 AS_CREATE_CURSOR_BITMAP,
77 AS_REFERENCE_CURSOR,
78 AS_DELETE_CURSOR,
79
80 AS_BEGIN_RECT_TRACKING,
81 AS_END_RECT_TRACKING,
82
83 AS_GET_CURSOR_POSITION,
84 AS_GET_CURSOR_BITMAP,
85
86 // Window definitions
87 AS_SHOW_OR_HIDE_WINDOW,
88 AS_INTERNAL_HIDE_WINDOW,
89 AS_MINIMIZE_WINDOW,
90 AS_QUIT_WINDOW,
91 AS_SEND_BEHIND,
92 AS_SET_LOOK,
93 AS_SET_FEEL,
94 AS_SET_FLAGS,
95 AS_DISABLE_UPDATES,
96 AS_ENABLE_UPDATES,
97 AS_BEGIN_UPDATE,
98 AS_END_UPDATE,
99 AS_NEEDS_UPDATE,
100 AS_SET_WINDOW_TITLE,
101 AS_ADD_TO_SUBSET,
102 AS_REMOVE_FROM_SUBSET,
103 AS_SET_ALIGNMENT,
104 AS_GET_ALIGNMENT,
105 AS_GET_WORKSPACES,
106 AS_SET_WORKSPACES,
107 AS_WINDOW_RESIZE,
108 AS_WINDOW_MOVE,
109 AS_SET_SIZE_LIMITS,
110 AS_ACTIVATE_WINDOW,
111 AS_IS_FRONT_WINDOW,
112
113 // BPicture definitions
114 AS_CREATE_PICTURE,
115 AS_DELETE_PICTURE,
116 AS_CLONE_PICTURE,
117 AS_DOWNLOAD_PICTURE,
118
119 // Font-related server communications
120 AS_SET_SYSTEM_FONT,
121 AS_GET_SYSTEM_FONTS,
122 AS_GET_SYSTEM_DEFAULT_FONT,
123 AS_SYSTEM_FONT_CHANGED,
124
125 AS_GET_FONT_LIST_REVISION,
126 AS_GET_FAMILY_AND_STYLES,
127
128 AS_GET_FAMILY_AND_STYLE,
129 AS_GET_FAMILY_AND_STYLE_IDS,
130 AS_GET_FONT_BOUNDING_BOX,
131 AS_GET_TUNED_COUNT,
132 AS_GET_TUNED_INFO,
133 AS_GET_FONT_HEIGHT,
134 AS_GET_FONT_FILE_FORMAT,
135 AS_GET_EXTRA_FONT_FLAGS,
136
137 AS_GET_STRING_WIDTHS,
138 AS_GET_EDGES,
139 AS_GET_ESCAPEMENTS,
140 AS_GET_ESCAPEMENTS_AS_FLOATS,
141 AS_GET_BOUNDINGBOXES_CHARS,
142 AS_GET_BOUNDINGBOXES_STRING,
143 AS_GET_BOUNDINGBOXES_STRINGS,
144 AS_GET_HAS_GLYPHS,
145 AS_GET_GLYPH_SHAPES,
146 AS_GET_TRUNCATED_STRINGS,
147 AS_GET_UNICODE_BLOCKS,
148 AS_GET_HAS_UNICODE_BLOCK,
149
150 // Screen methods
151 AS_VALID_SCREEN_ID,
152 AS_GET_NEXT_SCREEN_ID,
153 AS_SCREEN_GET_MODE,
154 AS_SCREEN_SET_MODE,
155 AS_PROPOSE_MODE,
156 AS_GET_MODE_LIST,
157 AS_GET_SCREEN_FRAME,
158
159 AS_GET_PIXEL_CLOCK_LIMITS,
160 AS_GET_TIMING_CONSTRAINTS,
161
162 AS_SCREEN_GET_COLORMAP,
163 AS_GET_DESKTOP_COLOR,
164 AS_SET_DESKTOP_COLOR,
165 AS_GET_SCREEN_ID_FROM_WINDOW,
166
167 AS_READ_BITMAP,
168
169 AS_GET_RETRACE_SEMAPHORE,
170 AS_GET_ACCELERANT_INFO,
171 AS_GET_MONITOR_INFO,
172 AS_GET_FRAME_BUFFER_CONFIG,
173
174 AS_SET_DPMS,
175 AS_GET_DPMS_STATE,
176 AS_GET_DPMS_CAPABILITIES,
177
178 AS_SCREEN_SET_BRIGHTNESS,
179 AS_SCREEN_GET_BRIGHTNESS,
180
181 // Misc stuff
182 AS_GET_ACCELERANT_PATH,
183 AS_GET_DRIVER_PATH,
184
185 // Global function call defs
186 AS_SET_UI_COLORS,
187 AS_SET_UI_COLOR,
188 AS_SET_DECORATOR,
189 AS_GET_DECORATOR,
190 AS_R5_SET_DECORATOR,
191 AS_COUNT_DECORATORS,
192 AS_GET_DECORATOR_NAME,
193 AS_SET_CONTROL_LOOK,
194 AS_GET_CONTROL_LOOK,
195
196 AS_COUNT_WORKSPACES,
197 AS_CURRENT_WORKSPACE,
198 AS_ACTIVATE_WORKSPACE,
199 AS_SET_WORKSPACE_LAYOUT,
200 AS_GET_WORKSPACE_LAYOUT,
201 AS_GET_SCROLLBAR_INFO,
202 AS_SET_SCROLLBAR_INFO,
203 AS_GET_MENU_INFO,
204 AS_SET_MENU_INFO,
205 AS_IDLE_TIME,
206 AS_SET_MOUSE_MODE,
207 AS_GET_MOUSE_MODE,
208 AS_SET_FOCUS_FOLLOWS_MOUSE_MODE,
209 AS_GET_FOCUS_FOLLOWS_MOUSE_MODE,
210 AS_SET_ACCEPT_FIRST_CLICK,
211 AS_GET_ACCEPT_FIRST_CLICK,
212 AS_GET_MOUSE,
213 AS_SET_DECORATOR_SETTINGS,
214 AS_GET_DECORATOR_SETTINGS,
215 AS_GET_SHOW_ALL_DRAGGERS,
216 AS_SET_SHOW_ALL_DRAGGERS,
217
218 // Subpixel antialiasing & hinting
219 AS_SET_SUBPIXEL_ANTIALIASING,
220 AS_GET_SUBPIXEL_ANTIALIASING,
221 AS_SET_HINTING,
222 AS_GET_HINTING,
223 AS_SET_SUBPIXEL_AVERAGE_WEIGHT,
224 AS_GET_SUBPIXEL_AVERAGE_WEIGHT,
225 AS_SET_SUBPIXEL_ORDERING,
226 AS_GET_SUBPIXEL_ORDERING,
227
228 // Graphics calls
229 AS_SET_HIGH_COLOR,
230 AS_SET_LOW_COLOR,
231 AS_SET_VIEW_COLOR,
232
233 AS_STROKE_ARC,
234 AS_STROKE_BEZIER,
235 AS_STROKE_ELLIPSE,
236 AS_STROKE_LINE,
237 AS_STROKE_LINEARRAY,
238 AS_STROKE_POLYGON,
239 AS_STROKE_RECT,
240 AS_STROKE_ROUNDRECT,
241 AS_STROKE_SHAPE,
242 AS_STROKE_TRIANGLE,
243
244 AS_FILL_ARC,
245 AS_FILL_ARC_GRADIENT,
246 AS_FILL_BEZIER,
247 AS_FILL_BEZIER_GRADIENT,
248 AS_FILL_ELLIPSE,
249 AS_FILL_ELLIPSE_GRADIENT,
250 AS_FILL_POLYGON,
251 AS_FILL_POLYGON_GRADIENT,
252 AS_FILL_RECT,
253 AS_FILL_RECT_GRADIENT,
254 AS_FILL_REGION,
255 AS_FILL_REGION_GRADIENT,
256 AS_FILL_ROUNDRECT,
257 AS_FILL_ROUNDRECT_GRADIENT,
258 AS_FILL_SHAPE,
259 AS_FILL_SHAPE_GRADIENT,
260 AS_FILL_TRIANGLE,
261 AS_FILL_TRIANGLE_GRADIENT,
262
263 AS_DRAW_STRING,
264 AS_DRAW_STRING_WITH_DELTA,
265 AS_DRAW_STRING_WITH_OFFSETS,
266
267 AS_SYNC,
268
269 AS_VIEW_CREATE,
270 AS_VIEW_DELETE,
271 AS_VIEW_CREATE_ROOT,
272 AS_VIEW_SHOW,
273 AS_VIEW_HIDE,
274 AS_VIEW_MOVE,
275 AS_VIEW_RESIZE,
276 AS_VIEW_DRAW,
277
278 // View/Layer definitions
279 AS_VIEW_GET_COORD,
280 AS_VIEW_SET_FLAGS,
281 AS_VIEW_SET_ORIGIN,
282 AS_VIEW_GET_ORIGIN,
283 AS_VIEW_RESIZE_MODE,
284 AS_VIEW_BEGIN_RECT_TRACK,
285 AS_VIEW_END_RECT_TRACK,
286 AS_VIEW_DRAG_RECT,
287 AS_VIEW_DRAG_IMAGE,
288 AS_VIEW_SCROLL,
289 AS_VIEW_SET_LINE_MODE,
290 AS_VIEW_GET_LINE_MODE,
291 AS_VIEW_PUSH_STATE,
292 AS_VIEW_POP_STATE,
293 AS_VIEW_SET_SCALE,
294 AS_VIEW_GET_SCALE,
295 AS_VIEW_SET_DRAWING_MODE,
296 AS_VIEW_GET_DRAWING_MODE,
297 AS_VIEW_SET_BLENDING_MODE,
298 AS_VIEW_GET_BLENDING_MODE,
299 AS_VIEW_SET_PEN_LOC,
300 AS_VIEW_GET_PEN_LOC,
301 AS_VIEW_SET_PEN_SIZE,
302 AS_VIEW_GET_PEN_SIZE,
303 AS_VIEW_SET_HIGH_COLOR,
304 AS_VIEW_SET_HIGH_UI_COLOR,
305 AS_VIEW_SET_LOW_COLOR,
306 AS_VIEW_SET_LOW_UI_COLOR,
307 AS_VIEW_SET_VIEW_COLOR,
308 AS_VIEW_SET_VIEW_UI_COLOR,
309 AS_VIEW_GET_HIGH_COLOR,
310 AS_VIEW_GET_HIGH_UI_COLOR,
311 AS_VIEW_GET_LOW_COLOR,
312 AS_VIEW_GET_LOW_UI_COLOR,
313 AS_VIEW_GET_VIEW_COLOR,
314 AS_VIEW_GET_VIEW_UI_COLOR,
315
316 AS_VIEW_PRINT_ALIASING,
317 AS_VIEW_CLIP_TO_PICTURE,
318 AS_VIEW_GET_CLIP_REGION,
319 AS_VIEW_DRAW_BITMAP,
320 AS_VIEW_SET_EVENT_MASK,
321 AS_VIEW_SET_MOUSE_EVENT_MASK,
322
323 AS_VIEW_DRAW_STRING,
324 AS_VIEW_SET_CLIP_REGION,
325 AS_VIEW_LINE_ARRAY,
326 AS_VIEW_BEGIN_PICTURE,
327 AS_VIEW_APPEND_TO_PICTURE,
328 AS_VIEW_END_PICTURE,
329 AS_VIEW_COPY_BITS,
330 AS_VIEW_DRAW_PICTURE,
331 AS_VIEW_INVALIDATE_RECT,
332 AS_VIEW_DELAYED_INVALIDATE_RECT,
333 AS_VIEW_INVALIDATE_REGION,
334 AS_VIEW_INVERT_RECT,
335 AS_VIEW_MOVE_TO,
336 AS_VIEW_RESIZE_TO,
337 AS_VIEW_SET_STATE,
338 AS_VIEW_SET_FONT_STATE,
339 AS_VIEW_GET_STATE,
340 AS_VIEW_SET_VIEW_BITMAP,
341 AS_VIEW_SET_PATTERN,
342 AS_SET_CURRENT_VIEW,
343 AS_VIEW_BEGIN_LAYER,
344 AS_VIEW_END_LAYER,
345
346 // BDirectWindow/BWindowScreen codes
347 AS_DIRECT_WINDOW_GET_SYNC_DATA,
348 AS_DIRECT_WINDOW_SET_FULLSCREEN,
349 AS_DIRECT_SCREEN_LOCK,
350
351 // desktop listener communications
352 AS_TALK_TO_DESKTOP_LISTENER,
353
354 // debugging helper
355 AS_DUMP_ALLOCATOR,
356 AS_DUMP_BITMAPS,
357
358 // transformation in addition to origin/scale
359 AS_VIEW_SET_TRANSFORM,
360 AS_VIEW_GET_TRANSFORM,
361
362 AS_VIEW_AFFINE_TRANSLATE,
363 AS_VIEW_AFFINE_SCALE,
364 AS_VIEW_AFFINE_ROTATE,
365
366 // Polygon filling rules
367 AS_VIEW_SET_FILL_RULE,
368 AS_VIEW_GET_FILL_RULE,
369
370 // New clipping: cumulative, transformed
371 AS_VIEW_CLIP_TO_RECT,
372 AS_VIEW_CLIP_TO_SHAPE,
373
374 // Internal messages
375 AS_COLOR_MAP_UPDATED,
376
377 AS_LAST_CODE
378};
379
380// TODO: move this into a private app header, together with the rest of the
381// private message definitions in AppDefs.h
382enum {
383 kMsgDeleteServerMemoryArea = '_DSA',
384};
385
386// bitmap allocation flags
387enum {
388 kAllocator = 0x1,
389 kFramebuffer = 0x2,
390 kHeap = 0x4,
391 kNewAllocatorArea = 0x8,
392};
393
394#endif // APP_SERVER_PROTOCOL_H