|
|
1.1 root 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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.