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