| 1 | File: .../x11/server/dix/BuiltInAtoms |
| 2 | |
| 3 | This file is of a fixed format and is used to generate both the file |
| 4 | include/XAtom.h and dix/initatoms.c. Neither of those files should be |
| 5 | edited directly. Changing the atoms in this file, or even the order in |
| 6 | which they occur, is equivalent to forcing a new (minor) version number |
| 7 | on the server. Take care. |
| 8 | |
| 9 | The format of the file is that each built in atom starts in column 1 |
| 10 | with no text, other than spaces and tabs, on that line other than a |
| 11 | mandatory trailing "@" at the end of the line. For each atom (Foo) |
| 12 | below the defines will be of the form |
| 13 | #define XA_Foo <n> |
| 14 | and the string value of the atom will be "Foo". |
| 15 | |
| 16 | The comment lines in this file are not guaranteed to be accurate. To see the |
| 17 | current truth, look at the Xlib documentation as well as the protocol spec. |
| 18 | |
| 19 | Atoms occur in five distinct name spaces within the protocol. Any particular |
| 20 | atom may or may not have some client interpretation within each of the name |
| 21 | spaces. For each of the built in atoms, the intended semantics and the space |
| 22 | within which it is defined is indicated. |
| 23 | |
| 24 | Those 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 | |
| 31 | For the font properties mentioned here, see the spec for more information. |
| 32 | |
| 33 | -- Selections -- |
| 34 | |
| 35 | PRIMARY @ |
| 36 | Selection. |
| 37 | SECONDARY @ |
| 38 | Selection. |
| 39 | |
| 40 | -- Property types and names -- |
| 41 | |
| 42 | ARC @ |
| 43 | Property type: |
| 44 | x, y: INT16 |
| 45 | width, height: CARD16, |
| 46 | angle1, angle2: INT16 |
| 47 | ATOM @ |
| 48 | Property type: |
| 49 | atom: ATOM |
| 50 | BITMAP @ |
| 51 | Property type: |
| 52 | bitmap: PIXMAP |
| 53 | This is asserted to be of depth 1. |
| 54 | CARDINAL @ |
| 55 | Property type: |
| 56 | card: CARD32 or CARD16 or CARD8 |
| 57 | the datum size is dependent on the property format |
| 58 | COLORMAP @ |
| 59 | Property type: |
| 60 | colormap: COLORMAP |
| 61 | CURSOR @ |
| 62 | Property type: |
| 63 | cursor: CURSOR |
| 64 | CUT_BUFFER0 @ |
| 65 | CUT_BUFFER1 @ |
| 66 | CUT_BUFFER2 @ |
| 67 | CUT_BUFFER3 @ |
| 68 | CUT_BUFFER4 @ |
| 69 | CUT_BUFFER5 @ |
| 70 | CUT_BUFFER6 @ |
| 71 | CUT_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. |
| 79 | DRAWABLE @ |
| 80 | Property type: |
| 81 | drawable: DRAWABLE |
| 82 | FONT @ |
| 83 | Property type: |
| 84 | font: FONT |
| 85 | INTEGER @ |
| 86 | Property type: |
| 87 | card: INT32 or INT16 or INT8 |
| 88 | the datum size is dependent on the property format |
| 89 | PIXMAP @ |
| 90 | Property type: |
| 91 | pixmap: PIXMAP |
| 92 | POINT @ |
| 93 | Property type: |
| 94 | x, y: INT16 |
| 95 | RECTANGLE @ |
| 96 | Property type: |
| 97 | x, y: INT16 |
| 98 | width, height: CARD16 |
| 99 | RESOURCE_MANAGER @ |
| 100 | Property name: (type: STRING) |
| 101 | Contents of the user's resource manager data base. |
| 102 | RGB_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 | |
| 145 | RGB_BEST_MAP @ |
| 146 | RGB_BLUE_MAP @ |
| 147 | RGB_DEFAULT_MAP @ |
| 148 | RGB_GRAY_MAP @ |
| 149 | RGB_GREEN_MAP @ |
| 150 | RGB_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. |
| 163 | STRING @ |
| 164 | Property type: |
| 165 | sequence of Bytes |
| 166 | VISUALID @ |
| 167 | Property type: |
| 168 | visual: VISUALID |
| 169 | WINDOW @ |
| 170 | Property type: |
| 171 | window: WINDOW |
| 172 | WM_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). |
| 176 | WM_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. |
| 205 | WM_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. |
| 209 | WM_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. |
| 213 | WM_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. |
| 221 | WM_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. |
| 225 | WM_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. |
| 229 | WM_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. |
| 250 | WM_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 | |
| 257 | MIN_SPACE @ |
| 258 | Font property: CARD32 |
| 259 | NORM_SPACE @ |
| 260 | Font property: CARD32 |
| 261 | MAX_SPACE @ |
| 262 | Font property: CARD32 |
| 263 | END_SPACE @ |
| 264 | Font property: CARD32 |
| 265 | SUPERSCRIPT_X @ |
| 266 | Font property: INT32 |
| 267 | SUPERSCRIPT_Y @ |
| 268 | Font property: INT32 |
| 269 | SUBSCRIPT_X @ |
| 270 | Font property: INT32 |
| 271 | SUBSCRIPT_Y @ |
| 272 | Font property: INT32 |
| 273 | UNDERLINE_POSITION @ |
| 274 | Font property: INT32 |
| 275 | UNDERLINE_THICKNESS @ |
| 276 | Font property: CARD32 |
| 277 | STRIKEOUT_ASCENT @ |
| 278 | Font property: INT32 |
| 279 | STRIKEOUT_DESCENT @ |
| 280 | Font property: INT32 |
| 281 | ITALIC_ANGLE @ |
| 282 | Font property: INT32 |
| 283 | X_HEIGHT @ |
| 284 | Font property: INT32 |
| 285 | QUAD_WIDTH @ |
| 286 | Font property: INT32 |
| 287 | WEIGHT @ |
| 288 | Font property: CARD32 |
| 289 | POINT_SIZE @ |
| 290 | Font property: CARD32 |
| 291 | RESOLUTION @ |
| 292 | Font property: CARD32 |
| 293 | |
| 294 | The following optional properties on fonts have values that are atoms. The |
| 295 | atom print name is the useful information. |
| 296 | |
| 297 | COPYRIGHT @ |
| 298 | of the font distribution |
| 299 | NOTICE @ |
| 300 | trademark/copyright of the character shapes |
| 301 | FONT_NAME @ |
| 302 | name of this particular instance of a font |
| 303 | FAMILY_NAME @ |
| 304 | name of the 'font family' to which it belongs |
| 305 | FULL_NAME @ |
| 306 | full text name of the font |
| 307 | |
| 308 | The following aren't in order but putting them at the end avoids encoding |
| 309 | changes. |
| 310 | |
| 311 | CAP_HEIGHT @ |
| 312 | Font property: CARD32 |
| 313 | |
| 314 | |
| 315 | WM_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 | |
| 324 | WM_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. |