File: .../x11/server/dix/BuiltInAtoms This file is of a fixed format and is used to generate both the file include/XAtom.h and dix/initatoms.c. Neither of those files should be edited directly. Changing the atoms in this file, or even the order in which they occur, is equivalent to forcing a new (minor) version number on the server. Take care. The format of the file is that each built in atom starts in column 1 with no text, other than spaces and tabs, on that line other than a mandatory trailing "@" at the end of the line. For each atom (Foo) below the defines will be of the form #define XA_Foo and the string value of the atom will be "Foo". The comment lines in this file are not guaranteed to be accurate. To see the current truth, look at the Xlib documentation as well as the protocol spec. Atoms occur in five distinct name spaces within the protocol. Any particular atom may or may not have some client interpretation within each of the name spaces. For each of the built in atoms, the intended semantics and the space within which it is defined is indicated. Those name spaces are Property names Property types Selections Font properties Type of a ClientMessage event (none built into server) For the font properties mentioned here, see the spec for more information. -- Selections -- PRIMARY @ Selection. SECONDARY @ Selection. -- Property types and names -- ARC @ Property type: x, y: INT16 width, height: CARD16, angle1, angle2: INT16 ATOM @ Property type: atom: ATOM BITMAP @ Property type: bitmap: PIXMAP This is asserted to be of depth 1. CARDINAL @ Property type: card: CARD32 or CARD16 or CARD8 the datum size is dependent on the property format COLORMAP @ Property type: colormap: COLORMAP CURSOR @ Property type: cursor: CURSOR CUT_BUFFER0 @ CUT_BUFFER1 @ CUT_BUFFER2 @ CUT_BUFFER3 @ CUT_BUFFER4 @ CUT_BUFFER5 @ CUT_BUFFER6 @ CUT_BUFFER7 @ Property name: (type: STRING) Used to implement cut buffer ring, in particular Andrew uses this mechanism. Anyone else using this sort of IPC mechanism should use these properties. Data is normally fetched and stored out of CUT_BUFFER0; the RotateProperties request is used to rotate these buffers. DRAWABLE @ Property type: drawable: DRAWABLE FONT @ Property type: font: FONT INTEGER @ Property type: card: INT32 or INT16 or INT8 the datum size is dependent on the property format PIXMAP @ Property type: pixmap: PIXMAP POINT @ Property type: x, y: INT16 RECTANGLE @ Property type: x, y: INT16 width, height: CARD16 RESOURCE_MANAGER @ Property name: (type: STRING) Contents of the user's resource manager data base. RGB_COLOR_MAP @ Property type: colormap: COLORMAP red-max: CARD32 red-mult: CARD32 green-max: CARD32 green-mult: CARD32 blue-max: CARD32 blue-mult: CARD32 base-pixel: CARD32 The fields `red_max', `green_max', and `blue_max' give the maximum red, green, and blue values, respectively. Each color coefficient ranges from 0 to its max, inclusive. For example, a common colormap allocation is 3/3/2: 3 planes for red, 3 planes for green, and 2 planes for blue. Such a colormap would have red_max == 7, green_max = 7, and blue_max = 3. An alternate allocation that uses only 216 colors is red_max = 5, green_max = 5, and blue_max = 5. The fields `red_mult', `green_mult', and `blue_mult' give the scale factors used to compose a full pixel value. (See next paragraph.) For a 3/3/2 allocation red_mult might be 32, green_mult might be 4, and blue_mult might be 1. For a 6-colors-each allocation, red_mult might be 36, green_mult might be 6, and blue_mult might be 1. The field `base_pixel' gives the base pixel value used to compose a full pixel value. Normally base_pixel is obtained from a call to XAllocColorPlanes(). Given integer red, green, and blue coefficients in their appropriate ranges, one can compute a corresponding pixel value with the expression: r * red_mult + g * green_mult + b * blue_mult + base_pixel For gray-scale colormaps, only the colormap, red_max, red_mult, and base_pixel fields are defined; the other fields are ignored. To compute a gray-scale pixel value, use: gray * red_mult + base_pixel This is provided to allow applications to share color maps. RGB_BEST_MAP @ RGB_BLUE_MAP @ RGB_DEFAULT_MAP @ RGB_GRAY_MAP @ RGB_GREEN_MAP @ RGB_RED_MAP @ Property name: (type: RGB_COLOR_MAP) The needs of most applications can be met with five colormaps. Polite applications may need only a small RGB space, and can use a portion of the default color map. Applications doing high-quality RGB rendering will need an entire colormap, filled with as large an RGB space as possible, e.g. 332. For color separations, an application may need maximum device resolution for each of red, green, and blue, even if this requires three renderings with three colormaps. Each of the above five names would be used for sharing color maps. STRING @ Property type: sequence of Bytes VISUALID @ Property type: visual: VISUALID WINDOW @ Property type: window: WINDOW WM_COMMAND @ Property name: (type: STRING) Command line arguments used to invoke this application. The arguments are delimited by null characters (ASCII 0). WM_HINTS @ Property type: flags: CARD32 input: BOOL32 initial-state: CARD32 icon-pixmap: PIXMAP icon-window: WINDOW icon_mask: BITMAP icon-x, icon-y: INT32 flags contains the following bits 0x00000001 input hint 0x00000002 state hint 0x00000004 icon pixmap hint 0x00000008 icon window hint 0x00000010 icon position hint values for initial-state 0 unspecified -> application does not care and WM should pick one. 1 normal 2 zoomed 3 iconic 4 inactive -> application believes itself to be seldomly used. WM may wish to place it on an inactive menu. This type is potentially extensible. The order is critical; append to the end only. Property name: (type: WM_HINTS) Additional hints set by the client for use by the window manager. WM_CLIENT_MACHINE @ Property name: (type: STRING) used to communicate with the window manager. The host name of the machine the client is running on may be set here. WM_ICON_NAME @ Property name: (type: STRING) what the application would like the label to be for the iconic form of the window. WM_ICON_SIZE @ Property type: minWidth, min-height: CARD32 maxWidth, max-height: CARD32 widthInc, height-inc: CARD32 Property name: (type: ICON_SIZE) The window manager may set this property on the root window to specify the icon sizes it allows. WM_NAME @ Property name: (type: STRING) used to communicate with the window manager. This is what the application would like the label for the window. WM_NORMAL_HINTS @ Property name: (type: SIZE_HINTS) used to communicate with the window manager. This is size hints for a window in its "normal" state. WM_SIZE_HINTS @ Property type: flags: CARD32 x, y: INT32 width, height: CARD32 min-width, min-height: CARD32 max-width, max-height: CARD32 width-inc, height-inc: CARD32 min-aspect-x, min-aspect-y: CARD32 max-aspect-x, max-aspect-y: CARD32 flags contains the following bits 0x00000001 user specified x and y 0x00000002 user specified width and height 0x00000004 program specified position 0x00000008 program specified size 0x00000010 program specified minimum size 0x00000020 program specified maximum size 0x00000040 program specified resize increment 0x00000080 program specified aspect ratio This type is potentially extensible. The order is critical; append to the end only. WM_ZOOM_HINTS @ Property name: (type: SIZE_HINTS) used to communicate with the window manager. This is size hints for a window in its "zoomed" state. -- Font properties -- MIN_SPACE @ Font property: CARD32 NORM_SPACE @ Font property: CARD32 MAX_SPACE @ Font property: CARD32 END_SPACE @ Font property: CARD32 SUPERSCRIPT_X @ Font property: INT32 SUPERSCRIPT_Y @ Font property: INT32 SUBSCRIPT_X @ Font property: INT32 SUBSCRIPT_Y @ Font property: INT32 UNDERLINE_POSITION @ Font property: INT32 UNDERLINE_THICKNESS @ Font property: CARD32 STRIKEOUT_ASCENT @ Font property: INT32 STRIKEOUT_DESCENT @ Font property: INT32 ITALIC_ANGLE @ Font property: INT32 X_HEIGHT @ Font property: INT32 QUAD_WIDTH @ Font property: INT32 WEIGHT @ Font property: CARD32 POINT_SIZE @ Font property: CARD32 RESOLUTION @ Font property: CARD32 The following optional properties on fonts have values that are atoms. The atom print name is the useful information. COPYRIGHT @ of the font distribution NOTICE @ trademark/copyright of the character shapes FONT_NAME @ name of this particular instance of a font FAMILY_NAME @ name of the 'font family' to which it belongs FULL_NAME @ full text name of the font The following aren't in order but putting them at the end avoids encoding changes. CAP_HEIGHT @ Font property: CARD32 WM_CLASS @ Property name: (type: STRING) Used (possibly by some window managers; definitely by session managers) to look up resources in the resource data base on behalf of the client who set this property. There are 2 elements: {char *resource_name; char *resource_class;} delimited by a null character (ascii 0) WM_TRANSIENT_FOR @ Property name: (type: WINDOW) Used by transient top-level windows, such as dialog boxes, to point to their logical "parents". The window manager can then take down the dialog boxes when the "parent" gets iconified, for instance.