BuiltInAtoms revision 1.1 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