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