Initial commit
[xorg_rtime.git] / xorg-server-1.4 / dix / BuiltInAtoms
blob910c6270608f7e1c87d9fbbe3da43a5c862905e5
1 File: .../x11/server/dix/BuiltInAtoms
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.
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".
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.
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.
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)
31 For the font properties mentioned here, see the spec for more information.
33                                 -- Selections --
35 PRIMARY                                                                       @
36         Selection.
37 SECONDARY                                                                     @
38         Selection.
40                         -- Property types and names --
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.
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
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.
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.
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:
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:
141                 gray * red_mult + base_pixel
143         This is provided to allow applications to share color maps.
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.
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.
255                                 -- Font properties --
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
294 The following optional properties on fonts have values that are atoms. The
295 atom print name is the useful information.
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
308 The following aren't in order but putting them at the end avoids encoding
309 changes.
311 CAP_HEIGHT                                                                    @
312         Font property: CARD32
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)
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.