1File: .../x11/server/dix/BuiltInAtoms 2 3This file is of a fixed format and is used to generate both the file 4include/XAtom.h and dix/initatoms.c. Neither of those files should be 5edited directly. Changing the atoms in this file, or even the order in 6which they occur, is equivalent to forcing a new (minor) version number 7on the server. Take care. 8 9The format of the file is that each built in atom starts in column 1 10with no text, other than spaces and tabs, on that line other than a 11mandatory trailing "@" at the end of the line. For each atom (Foo) 12below the defines will be of the form 13 #define XA_Foo <n> 14and the string value of the atom will be "Foo". 15 16The comment lines in this file are not guaranteed to be accurate. To see the 17current truth, look at the Xlib documentation as well as the protocol spec. 18 19Atoms occur in five distinct name spaces within the protocol. Any particular 20atom may or may not have some client interpretation within each of the name 21spaces. For each of the built in atoms, the intended semantics and the space 22within which it is defined is indicated. 23 24Those name spaces are 25 Property names 26 Property types 27 Selections 28 Font properties 29 Type of a ClientMessage event (none built into server) 30 31For the font properties mentioned here, see the spec for more information. 32 33 -- Selections -- 34 35PRIMARY @ 36 Selection. 37SECONDARY @ 38 Selection. 39 40 -- Property types and names -- 41 42ARC @ 43 Property type: 44 x, y: INT16 45 width, height: CARD16, 46 angle1, angle2: INT16 47ATOM @ 48 Property type: 49 atom: ATOM 50BITMAP @ 51 Property type: 52 bitmap: PIXMAP 53 This is asserted to be of depth 1. 54CARDINAL @ 55 Property type: 56 card: CARD32 or CARD16 or CARD8 57 the datum size is dependent on the property format 58COLORMAP @ 59 Property type: 60 colormap: COLORMAP 61CURSOR @ 62 Property type: 63 cursor: CURSOR 64CUT_BUFFER0 @ 65CUT_BUFFER1 @ 66CUT_BUFFER2 @ 67CUT_BUFFER3 @ 68CUT_BUFFER4 @ 69CUT_BUFFER5 @ 70CUT_BUFFER6 @ 71CUT_BUFFER7 @ 72 Property name: (type: STRING) 73 Used to implement cut buffer ring, in particular Andrew uses 74 this mechanism. Anyone else using this sort of IPC mechanism 75 should use these properties. 76 77 Data is normally fetched and stored out of CUT_BUFFER0; the 78 RotateProperties request is used to rotate these buffers. 79DRAWABLE @ 80 Property type: 81 drawable: DRAWABLE 82FONT @ 83 Property type: 84 font: FONT 85INTEGER @ 86 Property type: 87 card: INT32 or INT16 or INT8 88 the datum size is dependent on the property format 89PIXMAP @ 90 Property type: 91 pixmap: PIXMAP 92POINT @ 93 Property type: 94 x, y: INT16 95RECTANGLE @ 96 Property type: 97 x, y: INT16 98 width, height: CARD16 99RESOURCE_MANAGER @ 100 Property name: (type: STRING) 101 Contents of the user's resource manager data base. 102RGB_COLOR_MAP @ 103 Property type: 104 colormap: COLORMAP 105 red-max: CARD32 106 red-mult: CARD32 107 green-max: CARD32 108 green-mult: CARD32 109 blue-max: CARD32 110 blue-mult: CARD32 111 base-pixel: CARD32 112 113 The fields `red_max', `green_max', and `blue_max' give the maximum 114 red, green, and blue values, respectively. Each color 115 coefficient ranges from 0 to its max, inclusive. For example, 116 a common colormap allocation is 3/3/2: 3 planes for red, 3 117 planes for green, and 2 planes for blue. Such a colormap would 118 have red_max == 7, green_max = 7, and blue_max = 3. An alternate 119 allocation that uses only 216 colors is red_max = 5, green_max = 120 5, and blue_max = 5. 121 122 The fields `red_mult', `green_mult', and `blue_mult' give the 123 scale factors used to compose a full pixel value. (See next 124 paragraph.) For a 3/3/2 allocation red_mult might be 32, 125 green_mult might be 4, and blue_mult might be 1. For a 126 6-colors-each allocation, red_mult might be 36, green_mult might 127 be 6, and blue_mult might be 1. 128 129 The field `base_pixel' gives the base pixel value used to 130 compose a full pixel value. Normally base_pixel is obtained 131 from a call to XAllocColorPlanes(). Given integer red, green, 132 and blue coefficients in their appropriate ranges, one can 133 compute a corresponding pixel value with the expression: 134 135 r * red_mult + g * green_mult + b * blue_mult + base_pixel 136 137 For gray-scale colormaps, only the colormap, red_max, red_mult, 138 and base_pixel fields are defined; the other fields are 139 ignored. To compute a gray-scale pixel value, use: 140 141 gray * red_mult + base_pixel 142 143 This is provided to allow applications to share color maps. 144 145RGB_BEST_MAP @ 146RGB_BLUE_MAP @ 147RGB_DEFAULT_MAP @ 148RGB_GRAY_MAP @ 149RGB_GREEN_MAP @ 150RGB_RED_MAP @ 151 Property name: (type: RGB_COLOR_MAP) 152 The needs of most applications can be met with five colormaps. 153 Polite applications may need only a small RGB space, and can 154 use a portion of the default color map. Applications doing 155 high-quality RGB rendering will need an entire colormap, 156 filled with as large an RGB space as possible, e.g. 332. For 157 color separations, an application may need maximum device 158 resolution for each of red, green, and blue, even if this 159 requires three renderings with three colormaps. 160 161 Each of the above five names would be used for sharing color 162 maps. 163STRING @ 164 Property type: 165 sequence of Bytes 166VISUALID @ 167 Property type: 168 visual: VISUALID 169WINDOW @ 170 Property type: 171 window: WINDOW 172WM_COMMAND @ 173 Property name: (type: STRING) 174 Command line arguments used to invoke this application. The 175 arguments are delimited by null characters (ASCII 0). 176WM_HINTS @ 177 Property type: 178 flags: CARD32 179 input: BOOL32 180 initial-state: CARD32 181 icon-pixmap: PIXMAP 182 icon-window: WINDOW 183 icon_mask: BITMAP 184 icon-x, icon-y: INT32 185 flags contains the following bits 186 0x00000001 input hint 187 0x00000002 state hint 188 0x00000004 icon pixmap hint 189 0x00000008 icon window hint 190 0x00000010 icon position hint 191 values for initial-state 192 0 unspecified -> application does not 193 care and WM should pick one. 194 1 normal 195 2 zoomed 196 3 iconic 197 4 inactive -> application believes 198 itself to be seldomly used. WM may wish to 199 place it on an inactive menu. 200 This type is potentially extensible. The order is critical; 201 append to the end only. 202 Property name: (type: WM_HINTS) 203 Additional hints set by the client for use by the window 204 manager. 205WM_CLIENT_MACHINE @ 206 Property name: (type: STRING) 207 used to communicate with the window manager. The host name 208 of the machine the client is running on may be set here. 209WM_ICON_NAME @ 210 Property name: (type: STRING) 211 what the application would like the label to be for 212 the iconic form of the window. 213WM_ICON_SIZE @ 214 Property type: 215 minWidth, min-height: CARD32 216 maxWidth, max-height: CARD32 217 widthInc, height-inc: CARD32 218 Property name: (type: ICON_SIZE) 219 The window manager may set this property on the root window 220 to specify the icon sizes it allows. 221WM_NAME @ 222 Property name: (type: STRING) 223 used to communicate with the window manager. This is 224 what the application would like the label for the window. 225WM_NORMAL_HINTS @ 226 Property name: (type: SIZE_HINTS) 227 used to communicate with the window manager. This is size 228 hints for a window in its "normal" state. 229WM_SIZE_HINTS @ 230 Property type: 231 flags: CARD32 232 x, y: INT32 233 width, height: CARD32 234 min-width, min-height: CARD32 235 max-width, max-height: CARD32 236 width-inc, height-inc: CARD32 237 min-aspect-x, min-aspect-y: CARD32 238 max-aspect-x, max-aspect-y: CARD32 239 flags contains the following bits 240 0x00000001 user specified x and y 241 0x00000002 user specified width and height 242 0x00000004 program specified position 243 0x00000008 program specified size 244 0x00000010 program specified minimum size 245 0x00000020 program specified maximum size 246 0x00000040 program specified resize increment 247 0x00000080 program specified aspect ratio 248 This type is potentially extensible. The order is critical; 249 append to the end only. 250WM_ZOOM_HINTS @ 251 Property name: (type: SIZE_HINTS) 252 used to communicate with the window manager. This is size 253 hints for a window in its "zoomed" state. 254 255 -- Font properties -- 256 257MIN_SPACE @ 258 Font property: CARD32 259NORM_SPACE @ 260 Font property: CARD32 261MAX_SPACE @ 262 Font property: CARD32 263END_SPACE @ 264 Font property: CARD32 265SUPERSCRIPT_X @ 266 Font property: INT32 267SUPERSCRIPT_Y @ 268 Font property: INT32 269SUBSCRIPT_X @ 270 Font property: INT32 271SUBSCRIPT_Y @ 272 Font property: INT32 273UNDERLINE_POSITION @ 274 Font property: INT32 275UNDERLINE_THICKNESS @ 276 Font property: CARD32 277STRIKEOUT_ASCENT @ 278 Font property: INT32 279STRIKEOUT_DESCENT @ 280 Font property: INT32 281ITALIC_ANGLE @ 282 Font property: INT32 283X_HEIGHT @ 284 Font property: INT32 285QUAD_WIDTH @ 286 Font property: INT32 287WEIGHT @ 288 Font property: CARD32 289POINT_SIZE @ 290 Font property: CARD32 291RESOLUTION @ 292 Font property: CARD32 293 294The following optional properties on fonts have values that are atoms. The 295atom print name is the useful information. 296 297COPYRIGHT @ 298 of the font distribution 299NOTICE @ 300 trademark/copyright of the character shapes 301FONT_NAME @ 302 name of this particular instance of a font 303FAMILY_NAME @ 304 name of the 'font family' to which it belongs 305FULL_NAME @ 306 full text name of the font 307 308The following aren't in order but putting them at the end avoids encoding 309changes. 310 311CAP_HEIGHT @ 312 Font property: CARD32 313 314 315WM_CLASS @ 316 Property name: (type: STRING) 317 Used (possibly by some window managers; definitely by 318 session managers) to look up resources in the resource 319 data base on behalf of the client who set this property. 320 There are 2 elements: 321 {char *resource_name; char *resource_class;} 322 delimited by a null character (ascii 0) 323 324WM_TRANSIENT_FOR @ 325 Property name: (type: WINDOW) 326 Used by transient top-level windows, such as dialog 327 boxes, to point to their logical "parents". The window 328 manager can then take down the dialog boxes when the 329 "parent" gets iconified, for instance. 330