105b261ecSmrgFile: .../x11/server/dix/BuiltInAtoms
205b261ecSmrg
305b261ecSmrgThis file is of a fixed format and is used to generate both the file
405b261ecSmrginclude/XAtom.h and dix/initatoms.c. Neither of those files should be
505b261ecSmrgedited directly. Changing the atoms in this file, or even the order in
605b261ecSmrgwhich they occur, is equivalent to forcing a new (minor) version number
705b261ecSmrgon the server. Take care.
805b261ecSmrg
905b261ecSmrgThe format of the file is that each built in atom starts in column 1
1005b261ecSmrgwith no text, other than spaces and tabs, on that line other than a
1105b261ecSmrgmandatory trailing "@" at the end of the line. For each atom (Foo)
1205b261ecSmrgbelow the defines will be of the form
1305b261ecSmrg	#define XA_Foo <n>
1405b261ecSmrgand the string value of the atom will be "Foo".
1505b261ecSmrg
1605b261ecSmrgThe comment lines in this file are not guaranteed to be accurate. To see the
1705b261ecSmrgcurrent truth, look at the Xlib documentation as well as the protocol spec.
1805b261ecSmrg
1905b261ecSmrgAtoms occur in five distinct name spaces within the protocol. Any particular
2005b261ecSmrgatom may or may not have some client interpretation within each of the name
2105b261ecSmrgspaces. For each of the built in atoms, the intended semantics and the space
2205b261ecSmrgwithin which it is defined is indicated.
2305b261ecSmrg
2405b261ecSmrgThose name spaces are
2505b261ecSmrg	Property names
2605b261ecSmrg	Property types
2705b261ecSmrg	Selections
2805b261ecSmrg	Font properties
2905b261ecSmrg	Type of a ClientMessage event	(none built into server)
3005b261ecSmrg
3105b261ecSmrgFor the font properties mentioned here, see the spec for more information.
3205b261ecSmrg
3305b261ecSmrg				-- Selections --
3405b261ecSmrg
3505b261ecSmrgPRIMARY									      @
3605b261ecSmrg	Selection.
3705b261ecSmrgSECONDARY								      @
3805b261ecSmrg	Selection.
3905b261ecSmrg
4005b261ecSmrg			-- Property types and names --
4105b261ecSmrg
4205b261ecSmrgARC									      @
4305b261ecSmrg	Property type:
4405b261ecSmrg		x, y: INT16
4505b261ecSmrg		width, height: CARD16,
4605b261ecSmrg		angle1, angle2: INT16
4705b261ecSmrgATOM									      @
4805b261ecSmrg	Property type:
4905b261ecSmrg		atom: ATOM
5005b261ecSmrgBITMAP									      @
5105b261ecSmrg	Property type:
5205b261ecSmrg		bitmap: PIXMAP
5305b261ecSmrg			This is asserted to be of depth 1.
5405b261ecSmrgCARDINAL								      @
5505b261ecSmrg	Property type:
5605b261ecSmrg		card: CARD32 or CARD16 or CARD8
5705b261ecSmrg		the datum size is dependent on the property format
5805b261ecSmrgCOLORMAP								      @
5905b261ecSmrg	Property type:
6005b261ecSmrg		colormap: COLORMAP
6105b261ecSmrgCURSOR									      @
6205b261ecSmrg	Property type:
6305b261ecSmrg		cursor: CURSOR
6405b261ecSmrgCUT_BUFFER0								      @
6505b261ecSmrgCUT_BUFFER1								      @
6605b261ecSmrgCUT_BUFFER2								      @
6705b261ecSmrgCUT_BUFFER3								      @
6805b261ecSmrgCUT_BUFFER4								      @
6905b261ecSmrgCUT_BUFFER5								      @
7005b261ecSmrgCUT_BUFFER6								      @
7105b261ecSmrgCUT_BUFFER7								      @
7205b261ecSmrg	Property name:	(type: STRING)
7305b261ecSmrg		Used to implement cut buffer ring, in particular Andrew uses
7405b261ecSmrg		this mechanism.  Anyone else using this sort of IPC mechanism
7505b261ecSmrg		should use these properties.
7605b261ecSmrg
7705b261ecSmrg		Data is normally fetched and stored out of CUT_BUFFER0; the
7805b261ecSmrg		RotateProperties request is used to rotate these buffers.
7905b261ecSmrgDRAWABLE								      @
8005b261ecSmrg	Property type:
8105b261ecSmrg		drawable: DRAWABLE
8205b261ecSmrgFONT									      @
8305b261ecSmrg	Property type:
8405b261ecSmrg		font: FONT
8505b261ecSmrgINTEGER									      @
8605b261ecSmrg	Property type:
8705b261ecSmrg		card: INT32 or INT16 or INT8
8805b261ecSmrg		the datum size is dependent on the property format
8905b261ecSmrgPIXMAP									      @
9005b261ecSmrg	Property type:
9105b261ecSmrg		pixmap: PIXMAP
9205b261ecSmrgPOINT									      @
9305b261ecSmrg	Property type:
9405b261ecSmrg		x, y: INT16
9505b261ecSmrgRECTANGLE								      @
9605b261ecSmrg	Property type:
9705b261ecSmrg		x, y: INT16
9805b261ecSmrg		width, height: CARD16
9905b261ecSmrgRESOURCE_MANAGER							      @
10005b261ecSmrg	Property name: (type: STRING)
10105b261ecSmrg		Contents of the user's resource manager data base.
10205b261ecSmrgRGB_COLOR_MAP								      @
10305b261ecSmrg	Property type:
10405b261ecSmrg		colormap:	COLORMAP
10505b261ecSmrg		red-max:	CARD32
10605b261ecSmrg		red-mult:	CARD32
10705b261ecSmrg		green-max:	CARD32
10805b261ecSmrg		green-mult:	CARD32
10905b261ecSmrg		blue-max:	CARD32
11005b261ecSmrg		blue-mult:	CARD32
11105b261ecSmrg		base-pixel:	CARD32
11205b261ecSmrg
11305b261ecSmrg	The fields `red_max', `green_max', and `blue_max' give the maximum
11405b261ecSmrg	red, green, and blue values, respectively.  Each color
11505b261ecSmrg	coefficient ranges from 0 to its max, inclusive.  For example,
11605b261ecSmrg	a common colormap allocation is 3/3/2:  3 planes for red, 3
11705b261ecSmrg	planes for green, and 2 planes for blue.  Such a colormap would
11805b261ecSmrg	have red_max == 7, green_max = 7, and blue_max = 3.  An alternate
11905b261ecSmrg	allocation that uses only 216 colors is red_max = 5, green_max =
12005b261ecSmrg	5, and blue_max = 5.
12105b261ecSmrg
12205b261ecSmrg	The fields `red_mult', `green_mult', and `blue_mult' give the
12305b261ecSmrg	scale factors used to compose a full pixel value.  (See next
12405b261ecSmrg	paragraph.)  For a 3/3/2 allocation red_mult might be 32,
12505b261ecSmrg	green_mult might be 4, and blue_mult might be 1.  For a
12605b261ecSmrg	6-colors-each allocation, red_mult might be 36, green_mult might
12705b261ecSmrg	be 6, and blue_mult might be 1.
12805b261ecSmrg
12905b261ecSmrg	The field `base_pixel' gives the base pixel value used to
13005b261ecSmrg	compose a full pixel value.  Normally base_pixel is obtained
13105b261ecSmrg	from a call to XAllocColorPlanes().  Given integer red, green,
13205b261ecSmrg	and blue coefficients in their appropriate ranges, one can
13305b261ecSmrg	compute a corresponding pixel value with the expression:
13405b261ecSmrg
13505b261ecSmrg		r * red_mult + g * green_mult + b * blue_mult + base_pixel
13605b261ecSmrg	
13705b261ecSmrg	For gray-scale colormaps, only the colormap, red_max, red_mult,
13805b261ecSmrg	and base_pixel fields are defined; the other fields are
13905b261ecSmrg	ignored.  To compute a gray-scale pixel value, use:
14005b261ecSmrg
14105b261ecSmrg		gray * red_mult + base_pixel
14205b261ecSmrg
14305b261ecSmrg	This is provided to allow applications to share color maps.
14405b261ecSmrg
14505b261ecSmrgRGB_BEST_MAP								      @
14605b261ecSmrgRGB_BLUE_MAP								      @
14705b261ecSmrgRGB_DEFAULT_MAP								      @
14805b261ecSmrgRGB_GRAY_MAP								      @
14905b261ecSmrgRGB_GREEN_MAP								      @
15005b261ecSmrgRGB_RED_MAP								      @
15105b261ecSmrg	Property name:	(type: RGB_COLOR_MAP)
15205b261ecSmrg		The needs of most applications can be met with five colormaps.
15305b261ecSmrg		Polite applications may need only a small RGB space, and can
15405b261ecSmrg		use a portion of the default color map. Applications doing
15505b261ecSmrg		high-quality RGB rendering will need an entire colormap,
15605b261ecSmrg		filled with as large an RGB space as possible, e.g. 332. For
15705b261ecSmrg		color separations, an application may need maximum device
15805b261ecSmrg		resolution for each of red, green, and blue, even if this
15905b261ecSmrg		requires three renderings with three colormaps.
16005b261ecSmrg
16105b261ecSmrg		Each of the above five names would be used for sharing color
16205b261ecSmrg		maps.
16305b261ecSmrgSTRING									      @
16405b261ecSmrg	Property type:
16505b261ecSmrg		sequence of Bytes
16605b261ecSmrgVISUALID								      @
16705b261ecSmrg	Property type:
16805b261ecSmrg		visual: VISUALID
16905b261ecSmrgWINDOW									      @
17005b261ecSmrg	Property type:
17105b261ecSmrg		window: WINDOW
17205b261ecSmrgWM_COMMAND								      @
17305b261ecSmrg	Property name: (type: STRING)
17405b261ecSmrg		Command line arguments used to invoke this application. The
17505b261ecSmrg		arguments are delimited by null characters (ASCII 0).
17605b261ecSmrgWM_HINTS								      @
17705b261ecSmrg	Property type:
17805b261ecSmrg		flags:		CARD32
17905b261ecSmrg		input:		BOOL32
18005b261ecSmrg		initial-state:	CARD32
18105b261ecSmrg		icon-pixmap:	PIXMAP
18205b261ecSmrg		icon-window:	WINDOW
18305b261ecSmrg		icon_mask:	BITMAP
18405b261ecSmrg		icon-x, icon-y:	INT32
18505b261ecSmrg		    flags contains the following bits
18605b261ecSmrg			0x00000001	input hint
18705b261ecSmrg			0x00000002	state hint
18805b261ecSmrg			0x00000004	icon pixmap hint
18905b261ecSmrg			0x00000008	icon window hint
19005b261ecSmrg			0x00000010	icon position hint
19105b261ecSmrg		     values for initial-state
19205b261ecSmrg			0		unspecified -> application does not
19305b261ecSmrg				care and WM should pick one.
19405b261ecSmrg			1		normal
19505b261ecSmrg			2		zoomed
19605b261ecSmrg			3		iconic
19705b261ecSmrg			4		inactive -> application believes
19805b261ecSmrg				itself to be seldomly used. WM may wish to
19905b261ecSmrg				place it on an inactive menu.
20005b261ecSmrg		This type is potentially extensible. The order is critical;
20105b261ecSmrg		append to the end only.
20205b261ecSmrg	Property name:	(type: WM_HINTS)
20305b261ecSmrg		Additional hints set by the client for use by the window
20405b261ecSmrg		manager.
20505b261ecSmrgWM_CLIENT_MACHINE							      @
20605b261ecSmrg	Property name:	(type: STRING)
20705b261ecSmrg		used to communicate with the window manager.  The host name
20805b261ecSmrg		of the machine the client is running on may be set here.
20905b261ecSmrgWM_ICON_NAME								      @
21005b261ecSmrg	Property name:	(type: STRING)
21105b261ecSmrg		what the application would like the label to be for
21205b261ecSmrg		the iconic form of the window.
21305b261ecSmrgWM_ICON_SIZE								      @
21405b261ecSmrg	Property type:
21505b261ecSmrg		minWidth, min-height:	CARD32
21605b261ecSmrg		maxWidth, max-height:	CARD32
21705b261ecSmrg		widthInc, height-inc:	CARD32
21805b261ecSmrg	Property name:	(type: ICON_SIZE)
21905b261ecSmrg		The window manager may set this property on the root window
22005b261ecSmrg		to specify the icon sizes it allows.
22105b261ecSmrgWM_NAME									      @
22205b261ecSmrg	Property name:	(type: STRING)
22305b261ecSmrg		used to communicate with the window manager. This is
22405b261ecSmrg		what the application would like the label for the window.
22505b261ecSmrgWM_NORMAL_HINTS								      @
22605b261ecSmrg	Property name:	(type: SIZE_HINTS)
22705b261ecSmrg		used to communicate with the window manager. This is size
22805b261ecSmrg		hints for a window in its "normal" state.
22905b261ecSmrgWM_SIZE_HINTS								      @
23005b261ecSmrg	Property type:
23105b261ecSmrg		flags:				CARD32
23205b261ecSmrg		x, y:				INT32
23305b261ecSmrg		width, height:			CARD32
23405b261ecSmrg		min-width, min-height:		CARD32
23505b261ecSmrg		max-width, max-height:		CARD32
23605b261ecSmrg		width-inc, height-inc:		CARD32
23705b261ecSmrg		min-aspect-x, min-aspect-y:	CARD32
23805b261ecSmrg		max-aspect-x, max-aspect-y:	CARD32
23905b261ecSmrg		    flags contains the following bits
24005b261ecSmrg			0x00000001	user specified x and y
24105b261ecSmrg			0x00000002	user specified width and height
24205b261ecSmrg			0x00000004	program specified position
24305b261ecSmrg			0x00000008	program specified size
24405b261ecSmrg			0x00000010	program specified minimum size
24505b261ecSmrg			0x00000020	program specified maximum size
24605b261ecSmrg			0x00000040	program specified resize increment
24705b261ecSmrg			0x00000080	program specified aspect ratio
24805b261ecSmrg		This type is potentially extensible. The order is critical;
24905b261ecSmrg		append to the end only.
25005b261ecSmrgWM_ZOOM_HINTS								      @
25105b261ecSmrg	Property name:	(type: SIZE_HINTS)
25205b261ecSmrg		used to communicate with the window manager. This is size
25305b261ecSmrg		hints for a window in its "zoomed" state.
25405b261ecSmrg
25505b261ecSmrg				-- Font properties --
25605b261ecSmrg
25705b261ecSmrgMIN_SPACE 								      @
25805b261ecSmrg	Font property: CARD32
25905b261ecSmrgNORM_SPACE 								      @
26005b261ecSmrg	Font property: CARD32
26105b261ecSmrgMAX_SPACE 								      @
26205b261ecSmrg	Font property: CARD32
26305b261ecSmrgEND_SPACE 								      @
26405b261ecSmrg	Font property: CARD32
26505b261ecSmrgSUPERSCRIPT_X 								      @
26605b261ecSmrg	Font property: INT32
26705b261ecSmrgSUPERSCRIPT_Y 								      @
26805b261ecSmrg	Font property: INT32
26905b261ecSmrgSUBSCRIPT_X 								      @
27005b261ecSmrg	Font property: INT32
27105b261ecSmrgSUBSCRIPT_Y 								      @
27205b261ecSmrg	Font property: INT32
27305b261ecSmrgUNDERLINE_POSITION 							      @
27405b261ecSmrg	Font property: INT32
27505b261ecSmrgUNDERLINE_THICKNESS 							      @
27605b261ecSmrg	Font property: CARD32	
27705b261ecSmrgSTRIKEOUT_ASCENT 							      @
27805b261ecSmrg	Font property: INT32
27905b261ecSmrgSTRIKEOUT_DESCENT 							      @
28005b261ecSmrg	Font property: INT32
28105b261ecSmrgITALIC_ANGLE 								      @
28205b261ecSmrg	Font property: INT32
28305b261ecSmrgX_HEIGHT 								      @
28405b261ecSmrg	Font property: INT32
28505b261ecSmrgQUAD_WIDTH 								      @
28605b261ecSmrg	Font property: INT32
28705b261ecSmrgWEIGHT 									      @
28805b261ecSmrg	Font property: CARD32
28905b261ecSmrgPOINT_SIZE 								      @
29005b261ecSmrg	Font property: CARD32
29105b261ecSmrgRESOLUTION 								      @
29205b261ecSmrg	Font property: CARD32
29305b261ecSmrg
29405b261ecSmrgThe following optional properties on fonts have values that are atoms. The
29505b261ecSmrgatom print name is the useful information.
29605b261ecSmrg
29705b261ecSmrgCOPYRIGHT 								      @
29805b261ecSmrg	of the font distribution
29905b261ecSmrgNOTICE									      @
30005b261ecSmrg	trademark/copyright of the character shapes
30105b261ecSmrgFONT_NAME 								      @
30205b261ecSmrg	name of this particular instance of a font
30305b261ecSmrgFAMILY_NAME 								      @
30405b261ecSmrg	name of the 'font family' to which it belongs
30505b261ecSmrgFULL_NAME 								      @
30605b261ecSmrg	full text name of the font
30705b261ecSmrg
30805b261ecSmrgThe following aren't in order but putting them at the end avoids encoding
30905b261ecSmrgchanges.
31005b261ecSmrg
31105b261ecSmrgCAP_HEIGHT 								      @
31205b261ecSmrg	Font property: CARD32
31305b261ecSmrg
31405b261ecSmrg
31505b261ecSmrgWM_CLASS 								      @
31605b261ecSmrg	Property name: (type: STRING)
31705b261ecSmrg		Used (possibly by some window managers; definitely by 
31805b261ecSmrg		session managers) to look up resources in the resource 
31905b261ecSmrg		data base on behalf of the client who set this property.
32005b261ecSmrg		There are 2 elements:
32105b261ecSmrg			{char *resource_name; char *resource_class;}
32205b261ecSmrg		delimited by a null character (ascii 0)
32305b261ecSmrg
32405b261ecSmrgWM_TRANSIENT_FOR							      @
32505b261ecSmrg	Property name: (type: WINDOW)
32605b261ecSmrg		Used by transient top-level windows, such as dialog 
32705b261ecSmrg		boxes, to point to their logical "parents".  The window 
32805b261ecSmrg		manager can then take down the dialog boxes when the
32905b261ecSmrg		"parent" gets iconified, for instance.
330