xref: /OK3568_Linux_fs/external/xserver/dix/BuiltInAtoms (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFile: .../x11/server/dix/BuiltInAtoms
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis file is of a fixed format and is used to generate both the file
4*4882a593Smuzhiyuninclude/XAtom.h and dix/initatoms.c. Neither of those files should be
5*4882a593Smuzhiyunedited directly. Changing the atoms in this file, or even the order in
6*4882a593Smuzhiyunwhich they occur, is equivalent to forcing a new (minor) version number
7*4882a593Smuzhiyunon the server. Take care.
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunThe format of the file is that each built in atom starts in column 1
10*4882a593Smuzhiyunwith no text, other than spaces and tabs, on that line other than a
11*4882a593Smuzhiyunmandatory trailing "@" at the end of the line. For each atom (Foo)
12*4882a593Smuzhiyunbelow the defines will be of the form
13*4882a593Smuzhiyun	#define XA_Foo <n>
14*4882a593Smuzhiyunand the string value of the atom will be "Foo".
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunThe comment lines in this file are not guaranteed to be accurate. To see the
17*4882a593Smuzhiyuncurrent truth, look at the Xlib documentation as well as the protocol spec.
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunAtoms occur in five distinct name spaces within the protocol. Any particular
20*4882a593Smuzhiyunatom may or may not have some client interpretation within each of the name
21*4882a593Smuzhiyunspaces. For each of the built in atoms, the intended semantics and the space
22*4882a593Smuzhiyunwithin which it is defined is indicated.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunThose name spaces are
25*4882a593Smuzhiyun	Property names
26*4882a593Smuzhiyun	Property types
27*4882a593Smuzhiyun	Selections
28*4882a593Smuzhiyun	Font properties
29*4882a593Smuzhiyun	Type of a ClientMessage event	(none built into server)
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunFor the font properties mentioned here, see the spec for more information.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun				-- Selections --
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunPRIMARY									      @
36*4882a593Smuzhiyun	Selection.
37*4882a593SmuzhiyunSECONDARY								      @
38*4882a593Smuzhiyun	Selection.
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun			-- Property types and names --
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunARC									      @
43*4882a593Smuzhiyun	Property type:
44*4882a593Smuzhiyun		x, y: INT16
45*4882a593Smuzhiyun		width, height: CARD16,
46*4882a593Smuzhiyun		angle1, angle2: INT16
47*4882a593SmuzhiyunATOM									      @
48*4882a593Smuzhiyun	Property type:
49*4882a593Smuzhiyun		atom: ATOM
50*4882a593SmuzhiyunBITMAP									      @
51*4882a593Smuzhiyun	Property type:
52*4882a593Smuzhiyun		bitmap: PIXMAP
53*4882a593Smuzhiyun			This is asserted to be of depth 1.
54*4882a593SmuzhiyunCARDINAL								      @
55*4882a593Smuzhiyun	Property type:
56*4882a593Smuzhiyun		card: CARD32 or CARD16 or CARD8
57*4882a593Smuzhiyun		the datum size is dependent on the property format
58*4882a593SmuzhiyunCOLORMAP								      @
59*4882a593Smuzhiyun	Property type:
60*4882a593Smuzhiyun		colormap: COLORMAP
61*4882a593SmuzhiyunCURSOR									      @
62*4882a593Smuzhiyun	Property type:
63*4882a593Smuzhiyun		cursor: CURSOR
64*4882a593SmuzhiyunCUT_BUFFER0								      @
65*4882a593SmuzhiyunCUT_BUFFER1								      @
66*4882a593SmuzhiyunCUT_BUFFER2								      @
67*4882a593SmuzhiyunCUT_BUFFER3								      @
68*4882a593SmuzhiyunCUT_BUFFER4								      @
69*4882a593SmuzhiyunCUT_BUFFER5								      @
70*4882a593SmuzhiyunCUT_BUFFER6								      @
71*4882a593SmuzhiyunCUT_BUFFER7								      @
72*4882a593Smuzhiyun	Property name:	(type: STRING)
73*4882a593Smuzhiyun		Used to implement cut buffer ring, in particular Andrew uses
74*4882a593Smuzhiyun		this mechanism.  Anyone else using this sort of IPC mechanism
75*4882a593Smuzhiyun		should use these properties.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun		Data is normally fetched and stored out of CUT_BUFFER0; the
78*4882a593Smuzhiyun		RotateProperties request is used to rotate these buffers.
79*4882a593SmuzhiyunDRAWABLE								      @
80*4882a593Smuzhiyun	Property type:
81*4882a593Smuzhiyun		drawable: DRAWABLE
82*4882a593SmuzhiyunFONT									      @
83*4882a593Smuzhiyun	Property type:
84*4882a593Smuzhiyun		font: FONT
85*4882a593SmuzhiyunINTEGER									      @
86*4882a593Smuzhiyun	Property type:
87*4882a593Smuzhiyun		card: INT32 or INT16 or INT8
88*4882a593Smuzhiyun		the datum size is dependent on the property format
89*4882a593SmuzhiyunPIXMAP									      @
90*4882a593Smuzhiyun	Property type:
91*4882a593Smuzhiyun		pixmap: PIXMAP
92*4882a593SmuzhiyunPOINT									      @
93*4882a593Smuzhiyun	Property type:
94*4882a593Smuzhiyun		x, y: INT16
95*4882a593SmuzhiyunRECTANGLE								      @
96*4882a593Smuzhiyun	Property type:
97*4882a593Smuzhiyun		x, y: INT16
98*4882a593Smuzhiyun		width, height: CARD16
99*4882a593SmuzhiyunRESOURCE_MANAGER							      @
100*4882a593Smuzhiyun	Property name: (type: STRING)
101*4882a593Smuzhiyun		Contents of the user's resource manager data base.
102*4882a593SmuzhiyunRGB_COLOR_MAP								      @
103*4882a593Smuzhiyun	Property type:
104*4882a593Smuzhiyun		colormap:	COLORMAP
105*4882a593Smuzhiyun		red-max:	CARD32
106*4882a593Smuzhiyun		red-mult:	CARD32
107*4882a593Smuzhiyun		green-max:	CARD32
108*4882a593Smuzhiyun		green-mult:	CARD32
109*4882a593Smuzhiyun		blue-max:	CARD32
110*4882a593Smuzhiyun		blue-mult:	CARD32
111*4882a593Smuzhiyun		base-pixel:	CARD32
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun	The fields `red_max', `green_max', and `blue_max' give the maximum
114*4882a593Smuzhiyun	red, green, and blue values, respectively.  Each color
115*4882a593Smuzhiyun	coefficient ranges from 0 to its max, inclusive.  For example,
116*4882a593Smuzhiyun	a common colormap allocation is 3/3/2:  3 planes for red, 3
117*4882a593Smuzhiyun	planes for green, and 2 planes for blue.  Such a colormap would
118*4882a593Smuzhiyun	have red_max == 7, green_max = 7, and blue_max = 3.  An alternate
119*4882a593Smuzhiyun	allocation that uses only 216 colors is red_max = 5, green_max =
120*4882a593Smuzhiyun	5, and blue_max = 5.
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun	The fields `red_mult', `green_mult', and `blue_mult' give the
123*4882a593Smuzhiyun	scale factors used to compose a full pixel value.  (See next
124*4882a593Smuzhiyun	paragraph.)  For a 3/3/2 allocation red_mult might be 32,
125*4882a593Smuzhiyun	green_mult might be 4, and blue_mult might be 1.  For a
126*4882a593Smuzhiyun	6-colors-each allocation, red_mult might be 36, green_mult might
127*4882a593Smuzhiyun	be 6, and blue_mult might be 1.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	The field `base_pixel' gives the base pixel value used to
130*4882a593Smuzhiyun	compose a full pixel value.  Normally base_pixel is obtained
131*4882a593Smuzhiyun	from a call to XAllocColorPlanes().  Given integer red, green,
132*4882a593Smuzhiyun	and blue coefficients in their appropriate ranges, one can
133*4882a593Smuzhiyun	compute a corresponding pixel value with the expression:
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun		r * red_mult + g * green_mult + b * blue_mult + base_pixel
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun	For gray-scale colormaps, only the colormap, red_max, red_mult,
138*4882a593Smuzhiyun	and base_pixel fields are defined; the other fields are
139*4882a593Smuzhiyun	ignored.  To compute a gray-scale pixel value, use:
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		gray * red_mult + base_pixel
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun	This is provided to allow applications to share color maps.
144*4882a593Smuzhiyun
145*4882a593SmuzhiyunRGB_BEST_MAP								      @
146*4882a593SmuzhiyunRGB_BLUE_MAP								      @
147*4882a593SmuzhiyunRGB_DEFAULT_MAP								      @
148*4882a593SmuzhiyunRGB_GRAY_MAP								      @
149*4882a593SmuzhiyunRGB_GREEN_MAP								      @
150*4882a593SmuzhiyunRGB_RED_MAP								      @
151*4882a593Smuzhiyun	Property name:	(type: RGB_COLOR_MAP)
152*4882a593Smuzhiyun		The needs of most applications can be met with five colormaps.
153*4882a593Smuzhiyun		Polite applications may need only a small RGB space, and can
154*4882a593Smuzhiyun		use a portion of the default color map. Applications doing
155*4882a593Smuzhiyun		high-quality RGB rendering will need an entire colormap,
156*4882a593Smuzhiyun		filled with as large an RGB space as possible, e.g. 332. For
157*4882a593Smuzhiyun		color separations, an application may need maximum device
158*4882a593Smuzhiyun		resolution for each of red, green, and blue, even if this
159*4882a593Smuzhiyun		requires three renderings with three colormaps.
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun		Each of the above five names would be used for sharing color
162*4882a593Smuzhiyun		maps.
163*4882a593SmuzhiyunSTRING									      @
164*4882a593Smuzhiyun	Property type:
165*4882a593Smuzhiyun		sequence of Bytes
166*4882a593SmuzhiyunVISUALID								      @
167*4882a593Smuzhiyun	Property type:
168*4882a593Smuzhiyun		visual: VISUALID
169*4882a593SmuzhiyunWINDOW									      @
170*4882a593Smuzhiyun	Property type:
171*4882a593Smuzhiyun		window: WINDOW
172*4882a593SmuzhiyunWM_COMMAND								      @
173*4882a593Smuzhiyun	Property name: (type: STRING)
174*4882a593Smuzhiyun		Command line arguments used to invoke this application. The
175*4882a593Smuzhiyun		arguments are delimited by null characters (ASCII 0).
176*4882a593SmuzhiyunWM_HINTS								      @
177*4882a593Smuzhiyun	Property type:
178*4882a593Smuzhiyun		flags:		CARD32
179*4882a593Smuzhiyun		input:		BOOL32
180*4882a593Smuzhiyun		initial-state:	CARD32
181*4882a593Smuzhiyun		icon-pixmap:	PIXMAP
182*4882a593Smuzhiyun		icon-window:	WINDOW
183*4882a593Smuzhiyun		icon_mask:	BITMAP
184*4882a593Smuzhiyun		icon-x, icon-y:	INT32
185*4882a593Smuzhiyun		    flags contains the following bits
186*4882a593Smuzhiyun			0x00000001	input hint
187*4882a593Smuzhiyun			0x00000002	state hint
188*4882a593Smuzhiyun			0x00000004	icon pixmap hint
189*4882a593Smuzhiyun			0x00000008	icon window hint
190*4882a593Smuzhiyun			0x00000010	icon position hint
191*4882a593Smuzhiyun		     values for initial-state
192*4882a593Smuzhiyun			0		unspecified -> application does not
193*4882a593Smuzhiyun				care and WM should pick one.
194*4882a593Smuzhiyun			1		normal
195*4882a593Smuzhiyun			2		zoomed
196*4882a593Smuzhiyun			3		iconic
197*4882a593Smuzhiyun			4		inactive -> application believes
198*4882a593Smuzhiyun				itself to be seldomly used. WM may wish to
199*4882a593Smuzhiyun				place it on an inactive menu.
200*4882a593Smuzhiyun		This type is potentially extensible. The order is critical;
201*4882a593Smuzhiyun		append to the end only.
202*4882a593Smuzhiyun	Property name:	(type: WM_HINTS)
203*4882a593Smuzhiyun		Additional hints set by the client for use by the window
204*4882a593Smuzhiyun		manager.
205*4882a593SmuzhiyunWM_CLIENT_MACHINE							      @
206*4882a593Smuzhiyun	Property name:	(type: STRING)
207*4882a593Smuzhiyun		used to communicate with the window manager.  The host name
208*4882a593Smuzhiyun		of the machine the client is running on may be set here.
209*4882a593SmuzhiyunWM_ICON_NAME								      @
210*4882a593Smuzhiyun	Property name:	(type: STRING)
211*4882a593Smuzhiyun		what the application would like the label to be for
212*4882a593Smuzhiyun		the iconic form of the window.
213*4882a593SmuzhiyunWM_ICON_SIZE								      @
214*4882a593Smuzhiyun	Property type:
215*4882a593Smuzhiyun		minWidth, min-height:	CARD32
216*4882a593Smuzhiyun		maxWidth, max-height:	CARD32
217*4882a593Smuzhiyun		widthInc, height-inc:	CARD32
218*4882a593Smuzhiyun	Property name:	(type: ICON_SIZE)
219*4882a593Smuzhiyun		The window manager may set this property on the root window
220*4882a593Smuzhiyun		to specify the icon sizes it allows.
221*4882a593SmuzhiyunWM_NAME									      @
222*4882a593Smuzhiyun	Property name:	(type: STRING)
223*4882a593Smuzhiyun		used to communicate with the window manager. This is
224*4882a593Smuzhiyun		what the application would like the label for the window.
225*4882a593SmuzhiyunWM_NORMAL_HINTS								      @
226*4882a593Smuzhiyun	Property name:	(type: SIZE_HINTS)
227*4882a593Smuzhiyun		used to communicate with the window manager. This is size
228*4882a593Smuzhiyun		hints for a window in its "normal" state.
229*4882a593SmuzhiyunWM_SIZE_HINTS								      @
230*4882a593Smuzhiyun	Property type:
231*4882a593Smuzhiyun		flags:				CARD32
232*4882a593Smuzhiyun		x, y:				INT32
233*4882a593Smuzhiyun		width, height:			CARD32
234*4882a593Smuzhiyun		min-width, min-height:		CARD32
235*4882a593Smuzhiyun		max-width, max-height:		CARD32
236*4882a593Smuzhiyun		width-inc, height-inc:		CARD32
237*4882a593Smuzhiyun		min-aspect-x, min-aspect-y:	CARD32
238*4882a593Smuzhiyun		max-aspect-x, max-aspect-y:	CARD32
239*4882a593Smuzhiyun		    flags contains the following bits
240*4882a593Smuzhiyun			0x00000001	user specified x and y
241*4882a593Smuzhiyun			0x00000002	user specified width and height
242*4882a593Smuzhiyun			0x00000004	program specified position
243*4882a593Smuzhiyun			0x00000008	program specified size
244*4882a593Smuzhiyun			0x00000010	program specified minimum size
245*4882a593Smuzhiyun			0x00000020	program specified maximum size
246*4882a593Smuzhiyun			0x00000040	program specified resize increment
247*4882a593Smuzhiyun			0x00000080	program specified aspect ratio
248*4882a593Smuzhiyun		This type is potentially extensible. The order is critical;
249*4882a593Smuzhiyun		append to the end only.
250*4882a593SmuzhiyunWM_ZOOM_HINTS								      @
251*4882a593Smuzhiyun	Property name:	(type: SIZE_HINTS)
252*4882a593Smuzhiyun		used to communicate with the window manager. This is size
253*4882a593Smuzhiyun		hints for a window in its "zoomed" state.
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun				-- Font properties --
256*4882a593Smuzhiyun
257*4882a593SmuzhiyunMIN_SPACE 								      @
258*4882a593Smuzhiyun	Font property: CARD32
259*4882a593SmuzhiyunNORM_SPACE 								      @
260*4882a593Smuzhiyun	Font property: CARD32
261*4882a593SmuzhiyunMAX_SPACE 								      @
262*4882a593Smuzhiyun	Font property: CARD32
263*4882a593SmuzhiyunEND_SPACE 								      @
264*4882a593Smuzhiyun	Font property: CARD32
265*4882a593SmuzhiyunSUPERSCRIPT_X 								      @
266*4882a593Smuzhiyun	Font property: INT32
267*4882a593SmuzhiyunSUPERSCRIPT_Y 								      @
268*4882a593Smuzhiyun	Font property: INT32
269*4882a593SmuzhiyunSUBSCRIPT_X 								      @
270*4882a593Smuzhiyun	Font property: INT32
271*4882a593SmuzhiyunSUBSCRIPT_Y 								      @
272*4882a593Smuzhiyun	Font property: INT32
273*4882a593SmuzhiyunUNDERLINE_POSITION 							      @
274*4882a593Smuzhiyun	Font property: INT32
275*4882a593SmuzhiyunUNDERLINE_THICKNESS 							      @
276*4882a593Smuzhiyun	Font property: CARD32
277*4882a593SmuzhiyunSTRIKEOUT_ASCENT 							      @
278*4882a593Smuzhiyun	Font property: INT32
279*4882a593SmuzhiyunSTRIKEOUT_DESCENT 							      @
280*4882a593Smuzhiyun	Font property: INT32
281*4882a593SmuzhiyunITALIC_ANGLE 								      @
282*4882a593Smuzhiyun	Font property: INT32
283*4882a593SmuzhiyunX_HEIGHT 								      @
284*4882a593Smuzhiyun	Font property: INT32
285*4882a593SmuzhiyunQUAD_WIDTH 								      @
286*4882a593Smuzhiyun	Font property: INT32
287*4882a593SmuzhiyunWEIGHT 									      @
288*4882a593Smuzhiyun	Font property: CARD32
289*4882a593SmuzhiyunPOINT_SIZE 								      @
290*4882a593Smuzhiyun	Font property: CARD32
291*4882a593SmuzhiyunRESOLUTION 								      @
292*4882a593Smuzhiyun	Font property: CARD32
293*4882a593Smuzhiyun
294*4882a593SmuzhiyunThe following optional properties on fonts have values that are atoms. The
295*4882a593Smuzhiyunatom print name is the useful information.
296*4882a593Smuzhiyun
297*4882a593SmuzhiyunCOPYRIGHT 								      @
298*4882a593Smuzhiyun	of the font distribution
299*4882a593SmuzhiyunNOTICE									      @
300*4882a593Smuzhiyun	trademark/copyright of the character shapes
301*4882a593SmuzhiyunFONT_NAME 								      @
302*4882a593Smuzhiyun	name of this particular instance of a font
303*4882a593SmuzhiyunFAMILY_NAME 								      @
304*4882a593Smuzhiyun	name of the 'font family' to which it belongs
305*4882a593SmuzhiyunFULL_NAME 								      @
306*4882a593Smuzhiyun	full text name of the font
307*4882a593Smuzhiyun
308*4882a593SmuzhiyunThe following aren't in order but putting them at the end avoids encoding
309*4882a593Smuzhiyunchanges.
310*4882a593Smuzhiyun
311*4882a593SmuzhiyunCAP_HEIGHT 								      @
312*4882a593Smuzhiyun	Font property: CARD32
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun
315*4882a593SmuzhiyunWM_CLASS 								      @
316*4882a593Smuzhiyun	Property name: (type: STRING)
317*4882a593Smuzhiyun		Used (possibly by some window managers; definitely by
318*4882a593Smuzhiyun		session managers) to look up resources in the resource
319*4882a593Smuzhiyun		data base on behalf of the client who set this property.
320*4882a593Smuzhiyun		There are 2 elements:
321*4882a593Smuzhiyun			{char *resource_name; char *resource_class;}
322*4882a593Smuzhiyun		delimited by a null character (ascii 0)
323*4882a593Smuzhiyun
324*4882a593SmuzhiyunWM_TRANSIENT_FOR							      @
325*4882a593Smuzhiyun	Property name: (type: WINDOW)
326*4882a593Smuzhiyun		Used by transient top-level windows, such as dialog
327*4882a593Smuzhiyun		boxes, to point to their logical "parents".  The window
328*4882a593Smuzhiyun		manager can then take down the dialog boxes when the
329*4882a593Smuzhiyun		"parent" gets iconified, for instance.
330