1706f2543SmrgFile: .../x11/server/dix/BuiltInAtoms
2706f2543Smrg
3706f2543SmrgThis file is of a fixed format and is used to generate both the file
4706f2543Smrginclude/XAtom.h and dix/initatoms.c. Neither of those files should be
5706f2543Smrgedited directly. Changing the atoms in this file, or even the order in
6706f2543Smrgwhich they occur, is equivalent to forcing a new (minor) version number
7706f2543Smrgon the server. Take care.
8706f2543Smrg
9706f2543SmrgThe format of the file is that each built in atom starts in column 1
10706f2543Smrgwith no text, other than spaces and tabs, on that line other than a
11706f2543Smrgmandatory trailing "@" at the end of the line. For each atom (Foo)
12706f2543Smrgbelow the defines will be of the form
13706f2543Smrg	#define XA_Foo <n>
14706f2543Smrgand the string value of the atom will be "Foo".
15706f2543Smrg
16706f2543SmrgThe comment lines in this file are not guaranteed to be accurate. To see the
17706f2543Smrgcurrent truth, look at the Xlib documentation as well as the protocol spec.
18706f2543Smrg
19706f2543SmrgAtoms occur in five distinct name spaces within the protocol. Any particular
20706f2543Smrgatom may or may not have some client interpretation within each of the name
21706f2543Smrgspaces. For each of the built in atoms, the intended semantics and the space
22706f2543Smrgwithin which it is defined is indicated.
23706f2543Smrg
24706f2543SmrgThose name spaces are
25706f2543Smrg	Property names
26706f2543Smrg	Property types
27706f2543Smrg	Selections
28706f2543Smrg	Font properties
29706f2543Smrg	Type of a ClientMessage event	(none built into server)
30706f2543Smrg
31706f2543SmrgFor the font properties mentioned here, see the spec for more information.
32706f2543Smrg
33706f2543Smrg				-- Selections --
34706f2543Smrg
35706f2543SmrgPRIMARY									      @
36706f2543Smrg	Selection.
37706f2543SmrgSECONDARY								      @
38706f2543Smrg	Selection.
39706f2543Smrg
40706f2543Smrg			-- Property types and names --
41706f2543Smrg
42706f2543SmrgARC									      @
43706f2543Smrg	Property type:
44706f2543Smrg		x, y: INT16
45706f2543Smrg		width, height: CARD16,
46706f2543Smrg		angle1, angle2: INT16
47706f2543SmrgATOM									      @
48706f2543Smrg	Property type:
49706f2543Smrg		atom: ATOM
50706f2543SmrgBITMAP									      @
51706f2543Smrg	Property type:
52706f2543Smrg		bitmap: PIXMAP
53706f2543Smrg			This is asserted to be of depth 1.
54706f2543SmrgCARDINAL								      @
55706f2543Smrg	Property type:
56706f2543Smrg		card: CARD32 or CARD16 or CARD8
57706f2543Smrg		the datum size is dependent on the property format
58706f2543SmrgCOLORMAP								      @
59706f2543Smrg	Property type:
60706f2543Smrg		colormap: COLORMAP
61706f2543SmrgCURSOR									      @
62706f2543Smrg	Property type:
63706f2543Smrg		cursor: CURSOR
64706f2543SmrgCUT_BUFFER0								      @
65706f2543SmrgCUT_BUFFER1								      @
66706f2543SmrgCUT_BUFFER2								      @
67706f2543SmrgCUT_BUFFER3								      @
68706f2543SmrgCUT_BUFFER4								      @
69706f2543SmrgCUT_BUFFER5								      @
70706f2543SmrgCUT_BUFFER6								      @
71706f2543SmrgCUT_BUFFER7								      @
72706f2543Smrg	Property name:	(type: STRING)
73706f2543Smrg		Used to implement cut buffer ring, in particular Andrew uses
74706f2543Smrg		this mechanism.  Anyone else using this sort of IPC mechanism
75706f2543Smrg		should use these properties.
76706f2543Smrg
77706f2543Smrg		Data is normally fetched and stored out of CUT_BUFFER0; the
78706f2543Smrg		RotateProperties request is used to rotate these buffers.
79706f2543SmrgDRAWABLE								      @
80706f2543Smrg	Property type:
81706f2543Smrg		drawable: DRAWABLE
82706f2543SmrgFONT									      @
83706f2543Smrg	Property type:
84706f2543Smrg		font: FONT
85706f2543SmrgINTEGER									      @
86706f2543Smrg	Property type:
87706f2543Smrg		card: INT32 or INT16 or INT8
88706f2543Smrg		the datum size is dependent on the property format
89706f2543SmrgPIXMAP									      @
90706f2543Smrg	Property type:
91706f2543Smrg		pixmap: PIXMAP
92706f2543SmrgPOINT									      @
93706f2543Smrg	Property type:
94706f2543Smrg		x, y: INT16
95706f2543SmrgRECTANGLE								      @
96706f2543Smrg	Property type:
97706f2543Smrg		x, y: INT16
98706f2543Smrg		width, height: CARD16
99706f2543SmrgRESOURCE_MANAGER							      @
100706f2543Smrg	Property name: (type: STRING)
101706f2543Smrg		Contents of the user's resource manager data base.
102706f2543SmrgRGB_COLOR_MAP								      @
103706f2543Smrg	Property type:
104706f2543Smrg		colormap:	COLORMAP
105706f2543Smrg		red-max:	CARD32
106706f2543Smrg		red-mult:	CARD32
107706f2543Smrg		green-max:	CARD32
108706f2543Smrg		green-mult:	CARD32
109706f2543Smrg		blue-max:	CARD32
110706f2543Smrg		blue-mult:	CARD32
111706f2543Smrg		base-pixel:	CARD32
112706f2543Smrg
113706f2543Smrg	The fields `red_max', `green_max', and `blue_max' give the maximum
114706f2543Smrg	red, green, and blue values, respectively.  Each color
115706f2543Smrg	coefficient ranges from 0 to its max, inclusive.  For example,
116706f2543Smrg	a common colormap allocation is 3/3/2:  3 planes for red, 3
117706f2543Smrg	planes for green, and 2 planes for blue.  Such a colormap would
118706f2543Smrg	have red_max == 7, green_max = 7, and blue_max = 3.  An alternate
119706f2543Smrg	allocation that uses only 216 colors is red_max = 5, green_max =
120706f2543Smrg	5, and blue_max = 5.
121706f2543Smrg
122706f2543Smrg	The fields `red_mult', `green_mult', and `blue_mult' give the
123706f2543Smrg	scale factors used to compose a full pixel value.  (See next
124706f2543Smrg	paragraph.)  For a 3/3/2 allocation red_mult might be 32,
125706f2543Smrg	green_mult might be 4, and blue_mult might be 1.  For a
126706f2543Smrg	6-colors-each allocation, red_mult might be 36, green_mult might
127706f2543Smrg	be 6, and blue_mult might be 1.
128706f2543Smrg
129706f2543Smrg	The field `base_pixel' gives the base pixel value used to
130706f2543Smrg	compose a full pixel value.  Normally base_pixel is obtained
131706f2543Smrg	from a call to XAllocColorPlanes().  Given integer red, green,
132706f2543Smrg	and blue coefficients in their appropriate ranges, one can
133706f2543Smrg	compute a corresponding pixel value with the expression:
134706f2543Smrg
135706f2543Smrg		r * red_mult + g * green_mult + b * blue_mult + base_pixel
136706f2543Smrg	
137706f2543Smrg	For gray-scale colormaps, only the colormap, red_max, red_mult,
138706f2543Smrg	and base_pixel fields are defined; the other fields are
139706f2543Smrg	ignored.  To compute a gray-scale pixel value, use:
140706f2543Smrg
141706f2543Smrg		gray * red_mult + base_pixel
142706f2543Smrg
143706f2543Smrg	This is provided to allow applications to share color maps.
144706f2543Smrg
145706f2543SmrgRGB_BEST_MAP								      @
146706f2543SmrgRGB_BLUE_MAP								      @
147706f2543SmrgRGB_DEFAULT_MAP								      @
148706f2543SmrgRGB_GRAY_MAP								      @
149706f2543SmrgRGB_GREEN_MAP								      @
150706f2543SmrgRGB_RED_MAP								      @
151706f2543Smrg	Property name:	(type: RGB_COLOR_MAP)
152706f2543Smrg		The needs of most applications can be met with five colormaps.
153706f2543Smrg		Polite applications may need only a small RGB space, and can
154706f2543Smrg		use a portion of the default color map. Applications doing
155706f2543Smrg		high-quality RGB rendering will need an entire colormap,
156706f2543Smrg		filled with as large an RGB space as possible, e.g. 332. For
157706f2543Smrg		color separations, an application may need maximum device
158706f2543Smrg		resolution for each of red, green, and blue, even if this
159706f2543Smrg		requires three renderings with three colormaps.
160706f2543Smrg
161706f2543Smrg		Each of the above five names would be used for sharing color
162706f2543Smrg		maps.
163706f2543SmrgSTRING									      @
164706f2543Smrg	Property type:
165706f2543Smrg		sequence of Bytes
166706f2543SmrgVISUALID								      @
167706f2543Smrg	Property type:
168706f2543Smrg		visual: VISUALID
169706f2543SmrgWINDOW									      @
170706f2543Smrg	Property type:
171706f2543Smrg		window: WINDOW
172706f2543SmrgWM_COMMAND								      @
173706f2543Smrg	Property name: (type: STRING)
174706f2543Smrg		Command line arguments used to invoke this application. The
175706f2543Smrg		arguments are delimited by null characters (ASCII 0).
176706f2543SmrgWM_HINTS								      @
177706f2543Smrg	Property type:
178706f2543Smrg		flags:		CARD32
179706f2543Smrg		input:		BOOL32
180706f2543Smrg		initial-state:	CARD32
181706f2543Smrg		icon-pixmap:	PIXMAP
182706f2543Smrg		icon-window:	WINDOW
183706f2543Smrg		icon_mask:	BITMAP
184706f2543Smrg		icon-x, icon-y:	INT32
185706f2543Smrg		    flags contains the following bits
186706f2543Smrg			0x00000001	input hint
187706f2543Smrg			0x00000002	state hint
188706f2543Smrg			0x00000004	icon pixmap hint
189706f2543Smrg			0x00000008	icon window hint
190706f2543Smrg			0x00000010	icon position hint
191706f2543Smrg		     values for initial-state
192706f2543Smrg			0		unspecified -> application does not
193706f2543Smrg				care and WM should pick one.
194706f2543Smrg			1		normal
195706f2543Smrg			2		zoomed
196706f2543Smrg			3		iconic
197706f2543Smrg			4		inactive -> application believes
198706f2543Smrg				itself to be seldomly used. WM may wish to
199706f2543Smrg				place it on an inactive menu.
200706f2543Smrg		This type is potentially extensible. The order is critical;
201706f2543Smrg		append to the end only.
202706f2543Smrg	Property name:	(type: WM_HINTS)
203706f2543Smrg		Additional hints set by the client for use by the window
204706f2543Smrg		manager.
205706f2543SmrgWM_CLIENT_MACHINE							      @
206706f2543Smrg	Property name:	(type: STRING)
207706f2543Smrg		used to communicate with the window manager.  The host name
208706f2543Smrg		of the machine the client is running on may be set here.
209706f2543SmrgWM_ICON_NAME								      @
210706f2543Smrg	Property name:	(type: STRING)
211706f2543Smrg		what the application would like the label to be for
212706f2543Smrg		the iconic form of the window.
213706f2543SmrgWM_ICON_SIZE								      @
214706f2543Smrg	Property type:
215706f2543Smrg		minWidth, min-height:	CARD32
216706f2543Smrg		maxWidth, max-height:	CARD32
217706f2543Smrg		widthInc, height-inc:	CARD32
218706f2543Smrg	Property name:	(type: ICON_SIZE)
219706f2543Smrg		The window manager may set this property on the root window
220706f2543Smrg		to specify the icon sizes it allows.
221706f2543SmrgWM_NAME									      @
222706f2543Smrg	Property name:	(type: STRING)
223706f2543Smrg		used to communicate with the window manager. This is
224706f2543Smrg		what the application would like the label for the window.
225706f2543SmrgWM_NORMAL_HINTS								      @
226706f2543Smrg	Property name:	(type: SIZE_HINTS)
227706f2543Smrg		used to communicate with the window manager. This is size
228706f2543Smrg		hints for a window in its "normal" state.
229706f2543SmrgWM_SIZE_HINTS								      @
230706f2543Smrg	Property type:
231706f2543Smrg		flags:				CARD32
232706f2543Smrg		x, y:				INT32
233706f2543Smrg		width, height:			CARD32
234706f2543Smrg		min-width, min-height:		CARD32
235706f2543Smrg		max-width, max-height:		CARD32
236706f2543Smrg		width-inc, height-inc:		CARD32
237706f2543Smrg		min-aspect-x, min-aspect-y:	CARD32
238706f2543Smrg		max-aspect-x, max-aspect-y:	CARD32
239706f2543Smrg		    flags contains the following bits
240706f2543Smrg			0x00000001	user specified x and y
241706f2543Smrg			0x00000002	user specified width and height
242706f2543Smrg			0x00000004	program specified position
243706f2543Smrg			0x00000008	program specified size
244706f2543Smrg			0x00000010	program specified minimum size
245706f2543Smrg			0x00000020	program specified maximum size
246706f2543Smrg			0x00000040	program specified resize increment
247706f2543Smrg			0x00000080	program specified aspect ratio
248706f2543Smrg		This type is potentially extensible. The order is critical;
249706f2543Smrg		append to the end only.
250706f2543SmrgWM_ZOOM_HINTS								      @
251706f2543Smrg	Property name:	(type: SIZE_HINTS)
252706f2543Smrg		used to communicate with the window manager. This is size
253706f2543Smrg		hints for a window in its "zoomed" state.
254706f2543Smrg
255706f2543Smrg				-- Font properties --
256706f2543Smrg
257706f2543SmrgMIN_SPACE 								      @
258706f2543Smrg	Font property: CARD32
259706f2543SmrgNORM_SPACE 								      @
260706f2543Smrg	Font property: CARD32
261706f2543SmrgMAX_SPACE 								      @
262706f2543Smrg	Font property: CARD32
263706f2543SmrgEND_SPACE 								      @
264706f2543Smrg	Font property: CARD32
265706f2543SmrgSUPERSCRIPT_X 								      @
266706f2543Smrg	Font property: INT32
267706f2543SmrgSUPERSCRIPT_Y 								      @
268706f2543Smrg	Font property: INT32
269706f2543SmrgSUBSCRIPT_X 								      @
270706f2543Smrg	Font property: INT32
271706f2543SmrgSUBSCRIPT_Y 								      @
272706f2543Smrg	Font property: INT32
273706f2543SmrgUNDERLINE_POSITION 							      @
274706f2543Smrg	Font property: INT32
275706f2543SmrgUNDERLINE_THICKNESS 							      @
276706f2543Smrg	Font property: CARD32	
277706f2543SmrgSTRIKEOUT_ASCENT 							      @
278706f2543Smrg	Font property: INT32
279706f2543SmrgSTRIKEOUT_DESCENT 							      @
280706f2543Smrg	Font property: INT32
281706f2543SmrgITALIC_ANGLE 								      @
282706f2543Smrg	Font property: INT32
283706f2543SmrgX_HEIGHT 								      @
284706f2543Smrg	Font property: INT32
285706f2543SmrgQUAD_WIDTH 								      @
286706f2543Smrg	Font property: INT32
287706f2543SmrgWEIGHT 									      @
288706f2543Smrg	Font property: CARD32
289706f2543SmrgPOINT_SIZE 								      @
290706f2543Smrg	Font property: CARD32
291706f2543SmrgRESOLUTION 								      @
292706f2543Smrg	Font property: CARD32
293706f2543Smrg
294706f2543SmrgThe following optional properties on fonts have values that are atoms. The
295706f2543Smrgatom print name is the useful information.
296706f2543Smrg
297706f2543SmrgCOPYRIGHT 								      @
298706f2543Smrg	of the font distribution
299706f2543SmrgNOTICE									      @
300706f2543Smrg	trademark/copyright of the character shapes
301706f2543SmrgFONT_NAME 								      @
302706f2543Smrg	name of this particular instance of a font
303706f2543SmrgFAMILY_NAME 								      @
304706f2543Smrg	name of the 'font family' to which it belongs
305706f2543SmrgFULL_NAME 								      @
306706f2543Smrg	full text name of the font
307706f2543Smrg
308706f2543SmrgThe following aren't in order but putting them at the end avoids encoding
309706f2543Smrgchanges.
310706f2543Smrg
311706f2543SmrgCAP_HEIGHT 								      @
312706f2543Smrg	Font property: CARD32
313706f2543Smrg
314706f2543Smrg
315706f2543SmrgWM_CLASS 								      @
316706f2543Smrg	Property name: (type: STRING)
317706f2543Smrg		Used (possibly by some window managers; definitely by 
318706f2543Smrg		session managers) to look up resources in the resource 
319706f2543Smrg		data base on behalf of the client who set this property.
320706f2543Smrg		There are 2 elements:
321706f2543Smrg			{char *resource_name; char *resource_class;}
322706f2543Smrg		delimited by a null character (ascii 0)
323706f2543Smrg
324706f2543SmrgWM_TRANSIENT_FOR							      @
325706f2543Smrg	Property name: (type: WINDOW)
326706f2543Smrg		Used by transient top-level windows, such as dialog 
327706f2543Smrg		boxes, to point to their logical "parents".  The window 
328706f2543Smrg		manager can then take down the dialog boxes when the
329706f2543Smrg		"parent" gets iconified, for instance.
330