Imported Upstream version 1.15.1
[deb_xorg-server.git] / dix / BuiltInAtoms
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.