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