haiku/headers/private/app/ServerProtocol.h
Axel Dörfler 0a3f410f30 * Added a Desktop::BroadcastToAllWindows() method that sends all ServerWindows
a message.
* The DesktopSettings class is now using that to send the new
  AS_SYSTEM_FONT_CHANGED message to all windows.
* The ServerWindow now propagates font changes to its decorator, causing it
  to update its drawing. That means changing the bold font in the "Fonts"
  preferences application will instantly change all window titles.
* Factored out a _RebuildAndRedrawAfterWindowChange() out of several Desktop
  methods, simplifying some code.
* The DefaultDecorator no longer calls _DoLayout() twice (through SetLook()),
  but instead calls the new _UpdateFont() method now also called by
  FontsChanged(), and SetLook().
* BWindow::GetDecoratorSettings() now also includes "tab frame" BRect with the
  exact footprint of the tab, allowing apps to know the size of the tab to
  position itself accordingly.
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-16 21:59:05 +00:00

345 lines
6.9 KiB
C

/*
* Copyright 2001-2008, Haiku.
* Distributed under the terms of the MIT License.
*
* Authors:
* DarkWyrm <bpmagic@columbus.rr.com>
* Jérôme Duval, jerome.duval@free.fr
* Axel Dörfler, axeld@pinc-software.de
* Andrej Spielmann, <andrej.spielmann@seh.ox.ac.uk>
*/
#ifndef APP_SERVER_PROTOCOL_H
#define APP_SERVER_PROTOCOL_H
#include <SupportDefs.h>
// Server port names. The input port is the port which is used to receive
// input messages from the Input Server. The other is the "main" port for
// the server and is utilized mostly by BApplication objects.
#define SERVER_PORT_NAME "haiku app_server"
#if TEST_MODE
# define SERVER_INPUT_PORT "haiku input port"
#endif
#define AS_REQUEST_COLOR_KEY 0x00010000
// additional option for AS_VIEW_SET_VIEW_BITMAP
enum {
// NOTE: all defines have to start with "AS_" to let the "code_to_name"
// utility work correctly
AS_GET_DESKTOP,
AS_REGISTER_INPUT_SERVER = 1,
AS_EVENT_STREAM_CLOSED,
// Notification of event stream closing to restart input_server
// Desktop definitions (through the ServerApp, though)
AS_GET_WINDOW_LIST,
AS_GET_WINDOW_INFO,
AS_MINIMIZE_TEAM,
AS_BRING_TEAM_TO_FRONT,
AS_WINDOW_ACTION,
AS_GET_APPLICATION_ORDER,
AS_GET_WINDOW_ORDER,
// Application definitions
AS_CREATE_APP,
AS_DELETE_APP,
AS_QUIT_APP,
AS_ACTIVATE_APP,
AS_APP_CRASHED,
AS_CREATE_WINDOW,
AS_CREATE_OFFSCREEN_WINDOW,
AS_DELETE_WINDOW,
AS_CREATE_BITMAP,
AS_DELETE_BITMAP,
AS_GET_BITMAP_OVERLAY_RESTRICTIONS,
AS_GET_BITMAP_SUPPORT_FLAGS,
// Cursor commands
AS_SET_CURSOR,
AS_SHOW_CURSOR,
AS_HIDE_CURSOR,
AS_OBSCURE_CURSOR,
AS_QUERY_CURSOR_HIDDEN,
AS_CREATE_CURSOR,
AS_DELETE_CURSOR,
AS_BEGIN_RECT_TRACKING,
AS_END_RECT_TRACKING,
// Window definitions
AS_SHOW_WINDOW,
AS_HIDE_WINDOW,
AS_MINIMIZE_WINDOW,
AS_QUIT_WINDOW,
AS_SEND_BEHIND,
AS_SET_LOOK,
AS_SET_FEEL,
AS_SET_FLAGS,
AS_DISABLE_UPDATES,
AS_ENABLE_UPDATES,
AS_BEGIN_UPDATE,
AS_END_UPDATE,
AS_NEEDS_UPDATE,
AS_SET_WINDOW_TITLE,
AS_ADD_TO_SUBSET,
AS_REMOVE_FROM_SUBSET,
AS_SET_ALIGNMENT,
AS_GET_ALIGNMENT,
AS_GET_WORKSPACES,
AS_SET_WORKSPACES,
AS_WINDOW_RESIZE,
AS_WINDOW_MOVE,
AS_SET_SIZE_LIMITS,
AS_ACTIVATE_WINDOW,
AS_IS_FRONT_WINDOW,
// BPicture definitions
AS_CREATE_PICTURE,
AS_DELETE_PICTURE,
AS_CLONE_PICTURE,
AS_DOWNLOAD_PICTURE,
// Font-related server communications
AS_SET_SYSTEM_FONT,
AS_GET_SYSTEM_FONTS,
AS_GET_SYSTEM_DEFAULT_FONT,
AS_SYSTEM_FONT_CHANGED,
AS_GET_FONT_LIST_REVISION,
AS_GET_FAMILY_AND_STYLES,
AS_GET_FAMILY_AND_STYLE,
AS_GET_FAMILY_AND_STYLE_IDS,
AS_GET_FONT_BOUNDING_BOX,
AS_GET_TUNED_COUNT,
AS_GET_TUNED_INFO,
AS_GET_FONT_HEIGHT,
AS_GET_FONT_FILE_FORMAT,
AS_GET_EXTRA_FONT_FLAGS,
AS_GET_STRING_WIDTHS,
AS_GET_EDGES,
AS_GET_ESCAPEMENTS,
AS_GET_ESCAPEMENTS_AS_FLOATS,
AS_GET_BOUNDINGBOXES_CHARS,
AS_GET_BOUNDINGBOXES_STRING,
AS_GET_BOUNDINGBOXES_STRINGS,
AS_GET_HAS_GLYPHS,
AS_GET_GLYPH_SHAPES,
AS_GET_TRUNCATED_STRINGS,
// Screen methods
AS_VALID_SCREEN_ID,
AS_GET_NEXT_SCREEN_ID,
AS_SCREEN_GET_MODE,
AS_SCREEN_SET_MODE,
AS_PROPOSE_MODE,
AS_GET_MODE_LIST,
AS_GET_PIXEL_CLOCK_LIMITS,
AS_GET_TIMING_CONSTRAINTS,
AS_SCREEN_GET_COLORMAP,
AS_GET_DESKTOP_COLOR,
AS_SET_DESKTOP_COLOR,
AS_GET_SCREEN_ID_FROM_WINDOW,
AS_READ_BITMAP,
AS_GET_RETRACE_SEMAPHORE,
AS_GET_ACCELERANT_INFO,
AS_GET_MONITOR_INFO,
AS_GET_FRAME_BUFFER_CONFIG,
AS_SET_DPMS,
AS_GET_DPMS_STATE,
AS_GET_DPMS_CAPABILITIES,
// Misc stuff
AS_GET_ACCELERANT_PATH,
AS_GET_DRIVER_PATH,
// Global function call defs
AS_SET_UI_COLORS,
AS_SET_UI_COLOR,
AS_SET_DECORATOR,
AS_GET_DECORATOR,
AS_R5_SET_DECORATOR,
AS_COUNT_DECORATORS,
AS_GET_DECORATOR_NAME,
AS_COUNT_WORKSPACES,
AS_SET_WORKSPACE_COUNT,
AS_CURRENT_WORKSPACE,
AS_ACTIVATE_WORKSPACE,
AS_GET_SCROLLBAR_INFO,
AS_SET_SCROLLBAR_INFO,
AS_GET_MENU_INFO,
AS_SET_MENU_INFO,
AS_IDLE_TIME,
AS_SET_MOUSE_MODE,
AS_GET_MOUSE_MODE,
AS_GET_MOUSE,
AS_SET_DECORATOR_SETTINGS,
AS_GET_DECORATOR_SETTINGS,
AS_GET_SHOW_ALL_DRAGGERS,
AS_SET_SHOW_ALL_DRAGGERS,
// Subpixel antialiasing & hinting
AS_SET_SUBPIXEL_ANTIALIASING,
AS_GET_SUBPIXEL_ANTIALIASING,
AS_SET_HINTING,
AS_GET_HINTING,
AS_SET_SUBPIXEL_AVERAGE_WEIGHT,
AS_GET_SUBPIXEL_AVERAGE_WEIGHT,
AS_SET_SUBPIXEL_ORDERING,
AS_GET_SUBPIXEL_ORDERING,
// Graphics calls
AS_SET_HIGH_COLOR,
AS_SET_LOW_COLOR,
AS_SET_VIEW_COLOR,
AS_STROKE_ARC,
AS_STROKE_BEZIER,
AS_STROKE_ELLIPSE,
AS_STROKE_LINE,
AS_STROKE_LINEARRAY,
AS_STROKE_POLYGON,
AS_STROKE_RECT,
AS_STROKE_ROUNDRECT,
AS_STROKE_SHAPE,
AS_STROKE_TRIANGLE,
AS_FILL_ARC,
AS_FILL_ARC_GRADIENT,
AS_FILL_BEZIER,
AS_FILL_BEZIER_GRADIENT,
AS_FILL_ELLIPSE,
AS_FILL_ELLIPSE_GRADIENT,
AS_FILL_POLYGON,
AS_FILL_POLYGON_GRADIENT,
AS_FILL_RECT,
AS_FILL_RECT_GRADIENT,
AS_FILL_REGION,
AS_FILL_REGION_GRADIENT,
AS_FILL_ROUNDRECT,
AS_FILL_ROUNDRECT_GRADIENT,
AS_FILL_SHAPE,
AS_FILL_SHAPE_GRADIENT,
AS_FILL_TRIANGLE,
AS_FILL_TRIANGLE_GRADIENT,
AS_DRAW_STRING,
AS_DRAW_STRING_WITH_DELTA,
AS_SYNC,
AS_VIEW_CREATE,
AS_VIEW_DELETE,
AS_VIEW_CREATE_ROOT,
AS_VIEW_SHOW,
AS_VIEW_HIDE,
AS_VIEW_MOVE,
AS_VIEW_RESIZE,
AS_VIEW_DRAW,
// View/Layer definitions
AS_VIEW_GET_COORD,
AS_VIEW_SET_FLAGS,
AS_VIEW_SET_ORIGIN,
AS_VIEW_GET_ORIGIN,
AS_VIEW_RESIZE_MODE,
AS_VIEW_SET_CURSOR,
AS_VIEW_BEGIN_RECT_TRACK,
AS_VIEW_END_RECT_TRACK,
AS_VIEW_DRAG_RECT,
AS_VIEW_DRAG_IMAGE,
AS_VIEW_SCROLL,
AS_VIEW_SET_LINE_MODE,
AS_VIEW_GET_LINE_MODE,
AS_VIEW_PUSH_STATE,
AS_VIEW_POP_STATE,
AS_VIEW_SET_SCALE,
AS_VIEW_GET_SCALE,
AS_VIEW_SET_DRAWING_MODE,
AS_VIEW_GET_DRAWING_MODE,
AS_VIEW_SET_BLENDING_MODE,
AS_VIEW_GET_BLENDING_MODE,
AS_VIEW_SET_PEN_LOC,
AS_VIEW_GET_PEN_LOC,
AS_VIEW_SET_PEN_SIZE,
AS_VIEW_GET_PEN_SIZE,
AS_VIEW_SET_HIGH_COLOR,
AS_VIEW_SET_LOW_COLOR,
AS_VIEW_SET_VIEW_COLOR,
AS_VIEW_GET_HIGH_COLOR,
AS_VIEW_GET_LOW_COLOR,
AS_VIEW_GET_VIEW_COLOR,
AS_VIEW_PRINT_ALIASING,
AS_VIEW_CLIP_TO_PICTURE,
AS_VIEW_GET_CLIP_REGION,
AS_VIEW_DRAW_BITMAP,
AS_VIEW_SET_EVENT_MASK,
AS_VIEW_SET_MOUSE_EVENT_MASK,
AS_VIEW_DRAW_STRING,
AS_VIEW_SET_CLIP_REGION,
AS_VIEW_LINE_ARRAY,
AS_VIEW_BEGIN_PICTURE,
AS_VIEW_APPEND_TO_PICTURE,
AS_VIEW_END_PICTURE,
AS_VIEW_COPY_BITS,
AS_VIEW_DRAW_PICTURE,
AS_VIEW_INVALIDATE_RECT,
AS_VIEW_INVALIDATE_REGION,
AS_VIEW_INVERT_RECT,
AS_VIEW_MOVE_TO,
AS_VIEW_RESIZE_TO,
AS_VIEW_SET_STATE,
AS_VIEW_SET_FONT_STATE,
AS_VIEW_GET_STATE,
AS_VIEW_SET_VIEW_BITMAP,
AS_VIEW_SET_PATTERN,
AS_SET_CURRENT_VIEW,
// BDirectWindow codes
AS_DIRECT_WINDOW_GET_SYNC_DATA,
AS_DIRECT_WINDOW_SET_FULLSCREEN,
AS_LAST_CODE
};
// Cursor types, currently they are all private besides the first two
enum cursor_which {
B_CURSOR_DEFAULT = 1,
B_CURSOR_TEXT,
B_CURSOR_MOVE,
B_CURSOR_DRAG,
B_CURSOR_RESIZE,
B_CURSOR_RESIZE_NWSE,
B_CURSOR_RESIZE_NESW,
B_CURSOR_RESIZE_NS,
B_CURSOR_RESIZE_EW,
B_CURSOR_OTHER,
B_CURSOR_APP,
B_CURSOR_INVALID
};
// bitmap allocation flags
enum {
kAllocator = 0x1,
kFramebuffer = 0x2,
kHeap = 0x4,
kNewAllocatorArea = 0x8,
};
#endif // APP_SERVER_PROTOCOL_H