Home | History | Annotate | Line # | Download | only in dix
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