home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 August - Disc 2 / chip_20018102_hu.iso / linux / X-4.1.0 / doc / proto.txt < prev    next >
Encoding:
Text File  |  2001-06-27  |  390.0 KB  |  15,511 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.           X Window System Protocol
  17.  
  18.            X Consortium Standard
  19.  
  20.          X Version 11, Release 6.4
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.             Robert W. Scheifler
  28.              X Consortium, Inc.
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. X Window System is a trademark of X Consortium, Inc.
  84.  
  85. Copyright (C) 1986, 1987, 1988, 1994 X Consortium
  86.  
  87. Permission is hereby granted, free of charge, to any person
  88. obtaining a copy of this software and associated documenta-
  89. tion files (the ``Software''), to deal in the Software with-
  90. out restriction, including without limitation the rights to
  91. use, copy, modify, merge, publish, distribute, sublicense,
  92. and/or sell copies of the Software, and to permit persons to
  93. whom the Software is furnished to do so, subject to the fol-
  94. lowing conditions:
  95.  
  96. The above copyright notice and this permission notice shall
  97. be included in all copies or substantial portions of the
  98. Software.
  99.  
  100. THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY
  101. KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  102. WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PUR-
  103. POSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE X CONSOR-
  104. TIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  105. WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  106. FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
  107. OR OTHER DEALINGS IN THE SOFTWARE.
  108.  
  109. Except as contained in this notice, the name of the X Con-
  110. sortium shall not be used in advertising or otherwise to
  111. promote the sale, use or other dealings in this Software
  112. without prior written authorization from the X Consortium.
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.               Acknowledgments
  142.  
  143.  
  144.  
  145. The primary contributers to the X11 protocol are:
  146.  
  147.  
  148.      Dave Carver (Digital HPW)
  149.      Branko Gerovac (Digital HPW)
  150.      Jim Gettys (MIT/Project Athena, Digital)
  151.      Phil Karlton (Digital WSL)
  152.      Scott McGregor (Digital SSG)
  153.      Ram Rao (Digital UEG)
  154.      David Rosenthal (Sun)
  155.      Dave Winchell (Digital UEG)
  156.  
  157.  
  158. The implementors of initial server who provided useful input
  159. are:
  160.  
  161.  
  162.      Susan Angebranndt (Digital)
  163.      Raymond Drewry (Digital)
  164.      Todd Newman (Digital)
  165.  
  166.  
  167. The invited reviewers who provided useful input are:
  168.  
  169.  
  170.      Andrew Cherenson (Berkeley)
  171.      Burns Fisher (Digital)
  172.      Dan Garfinkel (HP)
  173.      Leo Hourvitz (Next)
  174.      Brock Krizan (HP)
  175.      David Laidlaw (Stellar)
  176.      Dave Mellinger (Interleaf)
  177.      Ron Newman (MIT)
  178.      John Ousterhout (Berkeley)
  179.      Andrew Palay (ITC CMU)
  180.      Ralph Swick (MIT)
  181.      Craig Taylor (Sun)
  182.      Jeffery Vroom (Stellar)
  183.  
  184.  
  185. Thanks go to Al Mento of Digital's UEG Documentation Group
  186. for formatting this document.
  187.  
  188. This document does not attempt to provide the rationale or
  189. pragmatics required to fully understand the protocol or to
  190. place it in perspective within a complete system.
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205. The protocol contains many management mechanisms that are
  206. not intended for normal applications.  Not all mechanisms
  207. are needed to build a particular user interface.  It is
  208. important to keep in mind that the protocol is intended to
  209. provide mechanism, not policy.
  210.  
  211.  
  212. Robert W. Scheifler
  213. X Consortium, Inc.
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271. 1.  Protocol Formats
  272.  
  273. Request Format
  274.  
  275. Every request contains an 8-bit major opcode and a 16-bit
  276. length field expressed in units of four bytes.    Every
  277. request consists of four bytes of a header (containing the
  278. major opcode, the length field, and a data byte) followed by
  279. zero or more additional bytes of data.    The length field
  280. defines the total length of the request, including the
  281. header.  The length field in a request must equal the mini-
  282. mum length required to contain the request.  If the speci-
  283. fied length is smaller or larger than the required length,
  284. an error is generated.    Unused bytes in a request are not
  285. required to be zero.  Major opcodes 128 through 255 are
  286. reserved for extensions.  Extensions are intended to contain
  287. multiple requests, so extension requests typically have an
  288. additional minor opcode encoded in the second data byte in
  289. the request header.  However, the placement and interpreta-
  290. tion of this minor opcode and of all other fields in exten-
  291. sion requests are not defined by the core protocol.  Every
  292. request on a given connection is implicitly assigned a
  293. sequence number, starting with one, that is used in replies,
  294. errors, and events.
  295.  
  296. Reply Format
  297.  
  298. Every reply contains a 32-bit length field expressed in
  299. units of four bytes.  Every reply consists of 32 bytes fol-
  300. lowed by zero or more additional bytes of data, as specified
  301. in the length field.  Unused bytes within a reply are not
  302. guaranteed to be zero.    Every reply also contains the least
  303. significant 16 bits of the sequence number of the corre-
  304. sponding request.
  305.  
  306. Error Format
  307.  
  308. Error reports are 32 bytes long.  Every error includes an
  309. 8-bit error code.  Error codes 128 through 255 are reserved
  310. for extensions.  Every error also includes the major and
  311. minor opcodes of the failed request and the least signifi-
  312. cant 16 bits of the sequence number of the request.  For the
  313. following errors (see section 4), the failing resource ID is
  314. also returned: Colormap, Cursor, Drawable, Font, GContext,
  315. IDChoice, Pixmap, and Window.  For Atom errors, the failing
  316. atom is returned.  For Value errors, the failing value is
  317. returned.  Other core errors return no additional data.
  318. Unused bytes within an error are not guaranteed to be zero.
  319.  
  320. Event Format
  321.  
  322. Events are 32 bytes long.  Unused bytes within an event are
  323. not guaranteed to be zero.  Every event contains an 8-bit
  324. type code.  The most significant bit in this code is set if
  325.  
  326.  
  327.  
  328.                   1
  329.  
  330.  
  331.  
  332.  
  333.  
  334. X Protocol                    X11, Release 6.4
  335.  
  336.  
  337. the event was generated from a SendEvent request.  Event
  338. codes 64 through 127 are reserved for extensions, although
  339. the core protocol does not define a mechanism for selecting
  340. interest in such events.  Every core event (with the excep-
  341. tion of KeymapNotify) also contains the least significant 16
  342. bits of the sequence number of the last request issued by
  343. the client that was (or is currently being) processed by the
  344. server.
  345.  
  346. 2.  Syntactic Conventions
  347.  
  348. The rest of this document uses the following syntactic con-
  349. ventions.
  350.  
  351. o    The syntax {...} encloses a set of alternatives.
  352.  
  353. o    The syntax [...] encloses a set of structure compo-
  354.      nents.
  355.  
  356. o    In general, TYPEs are in uppercase and AlternativeVal-
  357.      ues are capitalized.
  358.  
  359. o    Requests in section 9 are described in the following
  360.      format:
  361.  
  362.  
  363.      RequestName
  364.         arg1: type1
  365.         ...
  366.         argN: typeN
  367.     ->
  368.         result1: type1
  369.         ...
  370.         resultM: typeM
  371.  
  372.         Errors: kind1, ..., kindK
  373.  
  374.         Description.
  375.  
  376.  
  377.      If no -> is present in the description, then the
  378.      request has no reply (it is asynchronous), although
  379.      errors may still be reported.  If ->+ is used, then one
  380.      or more replies can be generated for a single request.
  381.  
  382. o    Events in section 11 are described in the following
  383.      format:
  384.  
  385.  
  386.      EventName
  387.         value1: type1
  388.         ...
  389.         valueN: typeN
  390.  
  391.  
  392.  
  393.  
  394.                   2
  395.  
  396.  
  397.  
  398.  
  399.  
  400. X Protocol                    X11, Release 6.4
  401.  
  402.  
  403.         Description.
  404.  
  405.  
  406. 3.  Common Types
  407.  
  408.  
  409. -------------------------------------------------------------------
  410. Name           Value
  411. -------------------------------------------------------------------
  412. LISTofFOO      A type name of the form LISTofFOO means a counted
  413.            list of elements of type FOO.  The size of the
  414.            length field may vary (it is not necessarily the
  415.            same size as a FOO), and in some cases, it may be
  416.            implicit.  It is fully specified in Appendix B.
  417.            Except where explicitly noted, zero-length lists
  418.            are legal.
  419. BITMASK        The types BITMASK and LISTofVALUE are somewhat spe-
  420. LISTofVALUE    cial.  Various requests contain arguments of the
  421.            form:
  422.            value-mask: BITMASK
  423.            value-list: LISTofVALUE
  424.            These are used to allow the client to specify a
  425.            subset of a heterogeneous collection of optional
  426.            arguments.  The value-mask specifies which argu-
  427.            ments are to be provided; each such argument is
  428.            assigned a unique bit position.    The representation
  429.            of the BITMASK will typically contain more bits
  430.            than there are defined arguments.  The unused bits
  431.            in the value-mask must be zero (or the server gen-
  432.            erates a Value error).  The value-list contains one
  433.            value for each bit set to 1 in the mask, from least
  434.            significant to most significant bit in the mask.
  435.            Each value is represented with four bytes, but the
  436.            actual value occupies only the least significant
  437.            bytes as required.  The values of the unused bytes
  438.            do not matter.
  439. OR           A type of the form ``T1 or ... or Tn'' means the
  440.            union of the indicated types.  A single-element
  441.            type is given as the element without enclosing
  442.            braces.
  443. WINDOW           32-bit value (top three bits guaranteed to be zero)
  444. PIXMAP           32-bit value (top three bits guaranteed to be zero)
  445. CURSOR           32-bit value (top three bits guaranteed to be zero)
  446. FONT           32-bit value (top three bits guaranteed to be zero)
  447. GCONTEXT       32-bit value (top three bits guaranteed to be zero)
  448. COLORMAP       32-bit value (top three bits guaranteed to be zero)
  449. DRAWABLE       WINDOW or PIXMAP
  450. FONTABLE       FONT or GCONTEXT
  451. ATOM           32-bit value (top three bits guaranteed to be zero)
  452. VISUALID       32-bit value (top three bits guaranteed to be zero)
  453. VALUE           32-bit quantity (used only in LISTofVALUE)
  454. BYTE           8-bit value
  455. INT8           8-bit signed integer
  456.  
  457.  
  458.  
  459.  
  460.                   3
  461.  
  462.  
  463.  
  464.  
  465.  
  466. X Protocol                    X11, Release 6.4
  467.  
  468.  
  469. -------------------------------------------------------------------
  470. Name           Value
  471. -------------------------------------------------------------------
  472. INT16           16-bit signed integer
  473. INT32           32-bit signed integer
  474. CARD8           8-bit unsigned integer
  475. CARD16           16-bit unsigned integer
  476. CARD32           32-bit unsigned integer
  477. TIMESTAMP      CARD32
  478. BITGRAVITY     {Forget, Static, NorthWest, North, NorthEast, West,
  479.            Center,
  480.          East, SouthWest, South, SouthEast}
  481. WINGRAVITY     {Unmap, Static, NorthWest, North, NorthEast, West,
  482.            Center,
  483.          East, SouthWest, South, SouthEast}
  484. BOOL           {True, False}
  485. EVENT           {KeyPress, KeyRelease, OwnerGrabButton,
  486.            ButtonPress,
  487.          ButtonRelease, EnterWindow, LeaveWindow,
  488.            PointerMotion,
  489.          PointerMotionHint, Button1Motion, Button2Motion,
  490.          Button3Motion, Button4Motion, Button5Motion,
  491.            ButtonMotion,
  492.          Exposure, VisibilityChange, StructureNotify,
  493.            ResizeRedirect,
  494.          SubstructureNotify, SubstructureRedirect,
  495.            FocusChange,
  496.          PropertyChange, ColormapChange, KeymapState}
  497. POINTEREVENT   {ButtonPress, ButtonRelease, EnterWindow,
  498.            LeaveWindow,
  499.          PointerMotion, PointerMotionHint, Button1Motion,
  500.          Button2Motion, Button3Motion, Button4Motion,
  501.            Button5Motion,
  502.          ButtonMotion, KeymapState}
  503. DEVICEEVENT    {KeyPress, KeyRelease, ButtonPress, ButtonRelease,
  504.          PointerMotion, Button1Motion, Button2Motion,
  505.            Button3Motion,
  506.          Button4Motion, Button5Motion, ButtonMotion}
  507. KEYSYM           32-bit value (top three bits guaranteed to be zero)
  508. KEYCODE        CARD8
  509. BUTTON           CARD8
  510. KEYMASK        {Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4,
  511.            Mod5}
  512. BUTMASK        {Button1, Button2, Button3, Button4, Button5}
  513. KEYBUTMASK     KEYMASK or BUTMASK
  514. STRING8        LISTofCARD8
  515. STRING16       LISTofCHAR2B
  516. CHAR2B           [byte1, byte2: CARD8]
  517. POINT           [x, y: INT16]
  518. RECTANGLE      [x, y: INT16,
  519.         width, height: CARD16]
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                   4
  527.  
  528.  
  529.  
  530.  
  531.  
  532. X Protocol                    X11, Release 6.4
  533.  
  534.  
  535. -------------------------------------------------------------------
  536. Name           Value
  537. -------------------------------------------------------------------
  538. ARC           [x, y: INT16,
  539.         width, height: CARD16,
  540.         angle1, angle2: INT16]
  541. HOST           [family: {Internet, DECnet, Chaos}
  542.         address: LISTofBYTE]
  543.  
  544.  
  545. The [x,y] coordinates of a RECTANGLE specify the upper-left
  546. corner.
  547.  
  548. The primary interpretation of large characters in a STRING16
  549. is that they are composed of two bytes used to index a two-
  550. dimensional matrix, hence, the use of CHAR2B rather than
  551. CARD16.  This corresponds to the JIS/ISO method of indexing
  552. 2-byte characters.  It is expected that most large fonts
  553. will be defined with 2-byte matrix indexing.  For large
  554. fonts constructed with linear indexing, a CHAR2B can be
  555. interpreted as a 16-bit number by treating byte1 as the most
  556. significant byte.  This means that clients should always
  557. transmit such 16-bit character values most significant byte
  558. first, as the server will never byte-swap CHAR2B quantities.
  559.  
  560. The length, format, and interpretation of a HOST address are
  561. specific to the family (see ChangeHosts request).
  562.  
  563. 4.  Errors
  564.  
  565. In general, when a request terminates with an error, the
  566. request has no side effects (that is, there is no partial
  567. execution).  The only requests for which this is not true
  568. are ChangeWindowAttributes, ChangeGC, PolyText8, PolyText16,
  569. FreeColors, StoreColors, and ChangeKeyboardControl.
  570.  
  571. The following error codes result from various requests as
  572. follows:
  573.  
  574. -------------------------------------------------------------
  575. Error          Description
  576. -------------------------------------------------------------
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                   5
  593.  
  594.  
  595.  
  596.  
  597.  
  598. X Protocol                    X11, Release 6.4
  599.  
  600.  
  601. -------------------------------------------------------------
  602. Error          Description
  603. -------------------------------------------------------------
  604. Access          An attempt is made to grab a key/button
  605.           combination already grabbed by another
  606.           client.
  607.           An attempt is made to free a colormap
  608.           entry not allocated by the client or to
  609.           free an entry in a colormap that was cre-
  610.           ated with all entries writable.
  611.           An attempt is made to store into a read-
  612.           only or an unallocated colormap entry.
  613.           An attempt is made to modify the access
  614.           control list from other than the local
  615.           host (or otherwise authorized client).
  616.           An attempt is made to select an event type
  617.           that only one client can select at a time
  618.           when another client has already selected
  619.           it.
  620. Alloc          The server failed to allocate the
  621.           requested resource.  Note that the
  622.           explicit listing of Alloc errors in
  623.           request only covers allocation errors at a
  624.           very coarse level and is not intended to
  625.           cover all cases of a server running out of
  626.           allocation space in the middle of service.
  627.           The semantics when a server runs out of
  628.           allocation space are left unspecified, but
  629.           a server may generate an Alloc error on
  630.           any request for this reason, and clients
  631.           should be prepared to receive such errors
  632.           and handle or discard them.
  633. Atom          A value for an ATOM argument does not name
  634.           a defined ATOM.
  635. Colormap      A value for a COLORMAP argument does not
  636.           name a defined COLORMAP.
  637. Cursor          A value for a CURSOR argument does not
  638.           name a defined CURSOR.
  639. Drawable      A value for a DRAWABLE argument does not
  640.           name a defined WINDOW or PIXMAP.
  641. Font          A value for a FONT argument does not name
  642.           a defined FONT.
  643.           A value for a FONTABLE argument does not
  644.           name a defined FONT or a defined GCONTEXT.
  645. GContext      A value for a GCONTEXT argument does not
  646.           name a defined GCONTEXT.
  647. IDChoice      The value chosen for a resource identifier
  648.           either is not included in the range
  649.           assigned to the client or is already in
  650.           use.
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                   6
  659.  
  660.  
  661.  
  662.  
  663.  
  664. X Protocol                    X11, Release 6.4
  665.  
  666.  
  667. -------------------------------------------------------------
  668. Error          Description
  669. -------------------------------------------------------------
  670. Implementation      The server does not implement some aspect
  671.           of the request.  A server that generates
  672.           this error for a core request is defi-
  673.           cient.  As such, this error is not listed
  674.           for any of the requests, but clients
  675.           should be prepared to receive such errors
  676.           and handle or discard them.
  677. Length          The length of a request is shorter or
  678.           longer than that required to minimally
  679.           contain the arguments.
  680.           The length of a request exceeds the maxi-
  681.           mum length accepted by the server.
  682. Match          An InputOnly window is used as a DRAWABLE.
  683.           In a graphics request, the GCONTEXT argu-
  684.           ment does not have the same root and depth
  685.           as the destination DRAWABLE argument.
  686.           Some argument (or pair of arguments) has
  687.           the correct type and range, but it fails
  688.           to match in some other way required by the
  689.           request.
  690. Name          A font or color of the specified name does
  691.           not exist.
  692. Pixmap          A value for a PIXMAP argument does not
  693.           name a defined PIXMAP.
  694. Request       The major or minor opcode does not specify
  695.           a valid request.
  696. Value          Some numeric value falls outside the range
  697.           of values accepted by the request.  Unless
  698.           a specific range is specified for an argu-
  699.           ment, the full range defined by the argu-
  700.           ment's type is accepted.  Any argument
  701.           defined as a set of alternatives typically
  702.           can generate this error (due to the encod-
  703.           ing).
  704. Window          A value for a WINDOW argument does not
  705.           name a defined WINDOW.
  706. -------------------------------------------------------------
  707.  
  708.  
  709.                 Note
  710.  
  711.      The Atom, Colormap, Cursor, Drawable, Font,
  712.      GContext, Pixmap, and Window errors are also used
  713.      when the argument type is extended by union with a
  714.      set of fixed alternatives, for example, <WINDOW or
  715.      PointerRoot or None>.
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                   7
  725.  
  726.  
  727.  
  728.  
  729.  
  730. X Protocol                    X11, Release 6.4
  731.  
  732.  
  733. 5.  Keyboards
  734.  
  735. A KEYCODE represents a physical (or logical) key.  Keycodes
  736. lie in the inclusive range [8,255].  A keycode value carries
  737. no intrinsic information, although server implementors may
  738. attempt to encode geometry information (for example, matrix)
  739. to be interpreted in a server-dependent fashion.  The map-
  740. ping between keys and keycodes cannot be changed using the
  741. protocol.
  742.  
  743. A KEYSYM is an encoding of a symbol on the cap of a key.
  744. The set of defined KEYSYMs include the character sets
  745. Latin-1, Latin-2, Latin-3, Latin-4, Kana, Arabic, Cyrillic,
  746. Greek, Tech, Special, Publish, APL, Hebrew, Thai, and Korean
  747. as well as a set of symbols common on keyboards (Return,
  748. Help, Tab, and so on).    KEYSYMs with the most significant
  749. bit (of the 29 bits) set are reserved as vendor-specific.
  750.  
  751. A list of KEYSYMs is associated with each KEYCODE.  The list
  752. is intended to convey the set of symbols on the correspond-
  753. ing key.  If the list (ignoring trailing NoSymbol entries)
  754. is a single KEYSYM ``K'', then the list is treated as if it
  755. were the list ``K NoSymbol K NoSymbol''.  If the list
  756. (ignoring trailing NoSymbol entries) is a pair of KEYSYMs
  757. ``K1 K2'', then the list is treated as if it were the list
  758. ``K1 K2 K1 K2''.  If the list (ignoring trailing NoSymbol
  759. entries) is a triple of KEYSYMs ``K1 K2 K3'', then the list
  760. is treated as if it were the list ``K1 K2 K3 NoSymbol''.
  761. When an explicit ``void'' element is desired in the list,
  762. the value VoidSymbol can be used.
  763.  
  764. The first four elements of the list are split into two
  765. groups of KEYSYMs.  Group 1 contains the first and second
  766. KEYSYMs, Group 2 contains the third and fourth KEYSYMs.
  767. Within each group, if the second element of the group is
  768. NoSymbol, then the group should be treated as if the second
  769. element were the same as the first element, except when the
  770. first element is an alphabetic KEYSYM ``K'' for which both
  771. lowercase and uppercase forms are defined.  In that case,
  772. the group should be treated as if the first element were the
  773. lowercase form of ``K'' and the second element were the
  774. uppercase form of ``K''.
  775.  
  776. The standard rules for obtaining a KEYSYM from a KeyPress
  777. event make use of only the Group 1 and Group 2 KEYSYMs; no
  778. interpretation of other KEYSYMs in the list is defined.  The
  779. modifier state determines which group to use.  Switching
  780. between groups is controlled by the KEYSYM named MODE
  781. SWITCH, by attaching that KEYSYM to some KEYCODE and attach-
  782. ing that KEYCODE to any one of the modifiers Mod1 through
  783. Mod5.  This modifier is called the ``group modifier''.    For
  784. any KEYCODE, Group 1 is used when the group modifier is off,
  785. and Group 2 is used when the group modifier is on.
  786.  
  787.  
  788.  
  789.  
  790.                   8
  791.  
  792.  
  793.  
  794.  
  795.  
  796. X Protocol                    X11, Release 6.4
  797.  
  798.  
  799. The Lock modifier is interpreted as CapsLock when the KEYSYM
  800. named CAPS LOCK is attached to some KEYCODE and that KEYCODE
  801. is attached to the Lock modifier.  The Lock modifier is
  802. interpreted as ShiftLock when the KEYSYM named SHIFT LOCK is
  803. attached to some KEYCODE and that KEYCODE is attached to the
  804. Lock modifier.    If the Lock modifier could be interpreted as
  805. both CapsLock and ShiftLock, the CapsLock interpretation is
  806. used.
  807.  
  808. The operation of ``keypad'' keys is controlled by the KEYSYM
  809. named NUM LOCK, by attaching that KEYSYM to some KEYCODE and
  810. attaching that KEYCODE to any one of the modifiers Mod1
  811. through Mod5.  This modifier is called the ``numlock modi-
  812. fier''.  The standard KEYSYMs with the prefix KEYPAD in
  813. their name are called ``keypad'' KEYSYMs; these are KEYSYMS
  814. with numeric value in the hexadecimal range #xFF80 to #xFFBD
  815. inclusive.  In addition, vendor-specific KEYSYMS in the hex-
  816. adecimal range #x11000000 to #x1100FFFF are also keypad
  817. KEYSYMs.
  818.  
  819. Within a group, the choice of KEYSYM is determined by apply-
  820. ing the first rule that is satisfied from the following
  821. list:
  822.  
  823. o    The numlock modifier is on and the second KEYSYM is a
  824.      keypad KEYSYM.  In this case, if the Shift modifier is
  825.      on, or if the Lock modifier is on and is interpreted as
  826.      ShiftLock, then the first KEYSYM is used; otherwise,
  827.      the second KEYSYM is used.
  828.  
  829. o    The Shift and Lock modifiers are both off.  In this
  830.      case, the first KEYSYM is used.
  831.  
  832. o    The Shift modifier is off, and the Lock modifier is on
  833.      and is interpreted as CapsLock.  In this case, the
  834.      first KEYSYM is used, but if that KEYSYM is lowercase
  835.      alphabetic, then the corresponding uppercase KEYSYM is
  836.      used instead.
  837.  
  838. o    The Shift modifier is on, and the Lock modifier is on
  839.      and is interpreted as CapsLock.  In this case, the sec-
  840.      ond KEYSYM is used, but if that KEYSYM is lowercase
  841.      alphabetic, then the corresponding uppercase KEYSYM is
  842.      used instead.
  843.  
  844. o    The Shift modifier is on, or the Lock modifier is on
  845.      and is interpreted as ShiftLock, or both.    In this
  846.      case, the second KEYSYM is used.
  847.  
  848. The mapping between KEYCODEs and KEYSYMs is not used
  849. directly by the server; it is merely stored for reading and
  850. writing by clients.
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                   9
  857.  
  858.  
  859.  
  860.  
  861.  
  862. X Protocol                    X11, Release 6.4
  863.  
  864.  
  865. 6.  Pointers
  866.  
  867. Buttons are always numbered starting with one.
  868.  
  869. 7.  Predefined Atoms
  870.  
  871. Predefined atoms are not strictly necessary and may not be
  872. useful in all environments, but they will eliminate many
  873. InternAtom requests in most applications.  Note that they
  874. are predefined only in the sense of having numeric values,
  875. not in the sense of having required semantics.    The core
  876. protocol imposes no semantics on these names, but semantics
  877. are specified in other X Consortium standards, such as the
  878. Inter-Client Communication Conventions Manual and the X Log-
  879. ical Font Description Conventions.
  880.  
  881. The following names have predefined atom values.  Note that
  882. uppercase and lowercase matter.
  883.  
  884. ARC            ITALIC_ANGLE     STRING
  885. ATOM            MAX_SPACE         SUBSCRIPT_X
  886. BITMAP            MIN_SPACE         SUBSCRIPT_Y
  887. CAP_HEIGHT        NORM_SPACE         SUPERSCRIPT_X
  888. CARDINAL        NOTICE         SUPERSCRIPT_Y
  889. COLORMAP        PIXMAP         UNDERLINE_POSITION
  890. COPYRIGHT        POINT         UNDERLINE_THICKNESS
  891. CURSOR            POINT_SIZE         VISUALID
  892. CUT_BUFFER0        PRIMARY         WEIGHT
  893. CUT_BUFFER1        QUAD_WIDTH         WINDOW
  894. CUT_BUFFER2        RECTANGLE         WM_CLASS
  895. CUT_BUFFER3        RESOLUTION         WM_CLIENT_MACHINE
  896. CUT_BUFFER4        RESOURCE_MANAGER     WM_COMMAND
  897. CUT_BUFFER5        RGB_BEST_MAP     WM_HINTS
  898. CUT_BUFFER6        RGB_BLUE_MAP     WM_ICON_NAME
  899. CUT_BUFFER7        RGB_COLOR_MAP     WM_ICON_SIZE
  900. DRAWABLE        RGB_DEFAULT_MAP     WM_NAME
  901. END_SPACE        RGB_GRAY_MAP     WM_NORMAL_HINTS
  902. FAMILY_NAME        RGB_GREEN_MAP     WM_SIZE_HINTS
  903. FONT            RGB_RED_MAP      WM_TRANSIENT_FOR
  904. FONT_NAME        SECONDARY         WM_ZOOM_HINTS
  905. FULL_NAME        STRIKEOUT_ASCENT     X_HEIGHT
  906. INTEGER                  STRIKEOUT_DESCENT
  907.  
  908.  
  909. To avoid conflicts with possible future names for which
  910. semantics might be imposed (either at the protocol level or
  911. in terms of higher level user interface models), names
  912. beginning with an underscore should be used for atoms that
  913. are private to a particular vendor or organization.  To
  914. guarantee no conflicts between vendors and organizations,
  915. additional prefixes need to be used.  However, the protocol
  916. does not define the mechanism for choosing such prefixes.
  917. For names private to a single application or end user but
  918. stored in globally accessible locations, it is suggested
  919.  
  920.  
  921.  
  922.                  10
  923.  
  924.  
  925.  
  926.  
  927.  
  928. X Protocol                    X11, Release 6.4
  929.  
  930.  
  931. that two leading underscores be used to avoid conflicts with
  932. other names.
  933.  
  934. 8.  Connection Setup
  935.  
  936. For remote clients, the X protocol can be built on top of
  937. any reliable byte stream.
  938.  
  939. Connection Initiation
  940.  
  941. The client must send an initial byte of data to identify the
  942. byte order to be employed.  The value of the byte must be
  943. octal 102 or 154.  The value 102 (ASCII uppercase B) means
  944. values are transmitted most significant byte first, and
  945. value 154 (ASCII lowercase l) means values are transmitted
  946. least significant byte first.  Except where explicitly noted
  947. in the protocol, all 16-bit and 32-bit quantities sent by
  948. the client must be transmitted with this byte order, and all
  949. 16-bit and 32-bit quantities returned by the server will be
  950. transmitted with this byte order.
  951.  
  952. Following the byte-order byte, the client sends the follow-
  953. ing information at connection setup:
  954.  
  955.      protocol-major-version: CARD16
  956.      protocol-minor-version: CARD16
  957.      authorization-protocol-name: STRING8
  958.      authorization-protocol-data: STRING8
  959.  
  960. The version numbers indicate what version of the protocol
  961. the client expects the server to implement.
  962.  
  963. The authorization name indicates what authorization (and
  964. authentication) protocol the client expects the server to
  965. use, and the data is specific to that protocol.  Specifica-
  966. tion of valid authorization mechanisms is not part of the
  967. core X protocol.  A server that does not implement the pro-
  968. tocol the client expects or that only implements the host-
  969. based mechanism may simply ignore this information.  If both
  970. name and data strings are empty, this is to be interpreted
  971. as ``no explicit authorization.''
  972.  
  973. Server Response
  974.  
  975. The client receives the following information at connection
  976. setup:
  977.  
  978.      success: {Failed, Success, Authenticate}
  979.  
  980. The client receives the following additional data if the
  981. returned success value is Failed, and the connection is not
  982. successfully established:
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                  11
  989.  
  990.  
  991.  
  992.  
  993.  
  994. X Protocol                    X11, Release 6.4
  995.  
  996.  
  997.      protocol-major-version: CARD16
  998.      protocol-minor-version: CARD16
  999.      reason: STRING8
  1000.  
  1001. The client receives the following additional data if the
  1002. returned success value is Authenticate, and further authen-
  1003. tication negotiation is required:
  1004.  
  1005.      reason: STRING8
  1006.  
  1007. The contents of the reason string are specific to the autho-
  1008. rization protocol in use.  The semantics of this authentica-
  1009. tion negotiation are not constrained, except that the nego-
  1010. tiation must eventually terminate with a reply from the
  1011. server containing a success value of Failed or Success.
  1012.  
  1013. The client receives the following additional data if the
  1014. returned success value is Success, and the connection is
  1015. successfully established:
  1016.  
  1017.      protocol-major-version: CARD16
  1018.      protocol-minor-version: CARD16
  1019.      vendor: STRING8
  1020.      release-number: CARD32
  1021.      resource-id-base, resource-id-mask: CARD32
  1022.      image-byte-order: {LSBFirst, MSBFirst}
  1023.      bitmap-scanline-unit: {8, 16, 32}
  1024.      bitmap-scanline-pad: {8, 16, 32}
  1025.      bitmap-bit-order: {LeastSignificant, MostSignificant}
  1026.      pixmap-formats: LISTofFORMAT
  1027.      roots: LISTofSCREEN
  1028.      motion-buffer-size: CARD32
  1029.      maximum-request-length: CARD16
  1030.      min-keycode, max-keycode: KEYCODE
  1031.  
  1032.      where:
  1033.  
  1034.       FORMAT:   [depth: CARD8,
  1035.              bits-per-pixel: {1, 4, 8, 16, 24, 32}
  1036.              scanline-pad: {8, 16, 32}]
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                  12
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. X Protocol                    X11, Release 6.4
  1061.  
  1062.  
  1063.       SCREEN:   [root: WINDOW
  1064.              width-in-pixels, height-in-pixels:
  1065.             CARD16
  1066.              width-in-millimeters, height-in-mil-
  1067.             limeters: CARD16
  1068.              allowed-depths: LISTofDEPTH
  1069.              root-depth: CARD8
  1070.              root-visual: VISUALID
  1071.              default-colormap: COLORMAP
  1072.              white-pixel, black-pixel: CARD32
  1073.              min-installed-maps, max-installed-maps:
  1074.             CARD16
  1075.              backing-stores: {Never, WhenMapped,
  1076.             Always}
  1077.              save-unders: BOOL
  1078.              current-input-masks: SETofEVENT]
  1079.  
  1080.        DEPTH:   [depth: CARD8
  1081.              visuals: LISTofVISUALTYPE]
  1082.  
  1083.       VISUALTYPE:   [visual-id: VISUALID
  1084.              class: {StaticGray, StaticColor,
  1085.             TrueColor, GrayScale,
  1086.                    PseudoColor, DirectColor}
  1087.              red-mask, green-mask, blue-mask: CARD32
  1088.              bits-per-rgb-value: CARD8
  1089.              colormap-entries: CARD16]
  1090.  
  1091.  
  1092. Server Information
  1093.  
  1094. The information that is global to the server is:
  1095.  
  1096. The protocol version numbers are an escape hatch in case
  1097. future revisions of the protocol are necessary.  In general,
  1098. the major version would increment for incompatible changes,
  1099. and the minor version would increment for small upward com-
  1100. patible changes.  Barring changes, the major version will be
  1101. 11, and the minor version will be 0.  The protocol version
  1102. numbers returned indicate the protocol the server actually
  1103. supports.  This might not equal the version sent by the
  1104. client.  The server can (but need not) refuse connections
  1105. from clients that offer a different version than the server
  1106. supports.  A server can (but need not) support more than one
  1107. version simultaneously.
  1108.  
  1109. The vendor string gives some identification of the owner of
  1110. the server implementation.  The vendor controls the seman-
  1111. tics of the release number.
  1112.  
  1113. The resource-id-mask contains a single contiguous set of
  1114. bits (at least 18).  The client allocates resource IDs for
  1115. types WINDOW, PIXMAP, CURSOR, FONT, GCONTEXT, and COLORMAP
  1116. by choosing a value with only some subset of these bits set
  1117.  
  1118.  
  1119.  
  1120.                  13
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. X Protocol                    X11, Release 6.4
  1127.  
  1128.  
  1129. and ORing it with resource-id-base.  Only values constructed
  1130. in this way can be used to name newly created resources over
  1131. this connection.  Resource IDs never have the top three bits
  1132. set.  The client is not restricted to linear or contiguous
  1133. allocation of resource IDs.  Once an ID has been freed, it
  1134. can be reused.    An ID must be unique with respect to the IDs
  1135. of all other resources, not just other resources of the same
  1136. type.  However, note that the value spaces of resource iden-
  1137. tifiers, atoms, visualids, and keysyms are distinguished by
  1138. context, and as such, are not required to be disjoint; for
  1139. example, a given numeric value might be both a valid window
  1140. ID, a valid atom, and a valid keysym.
  1141.  
  1142. Although the server is in general responsible for byte-swap-
  1143. ping data to match the client, images are always transmitted
  1144. and received in formats (including byte order) specified by
  1145. the server.  The byte order for images is given by image-
  1146. byte-order and applies to each scanline unit in XY format
  1147. (bitmap format) and to each pixel value in Z format.
  1148.  
  1149. A bitmap is represented in scanline order.  Each scanline is
  1150. padded to a multiple of bits as given by bitmap-scanline-
  1151. pad.  The pad bits are of arbitrary value.  The scanline is
  1152. quantized in multiples of bits as given by bitmap-scanline-
  1153. unit.  The bitmap-scanline-unit is always less than or equal
  1154. to the bitmap-scanline-pad.  Within each unit, the leftmost
  1155. bit in the bitmap is either the least significant or most
  1156. significant bit in the unit, as given by bitmap-bit-order.
  1157. If a pixmap is represented in XY format, each plane is rep-
  1158. resented as a bitmap, and the planes appear from most sig-
  1159. nificant to least significant in bit order with no padding
  1160. between planes.
  1161.  
  1162. Pixmap-formats contains one entry for each depth value.  The
  1163. entry describes the Z format used to represent images of
  1164. that depth.  An entry for a depth is included if any screen
  1165. supports that depth, and all screens supporting that depth
  1166. must support only that Z format for that depth.  In Z for-
  1167. mat, the pixels are in scanline order, left to right within
  1168. a scanline.  The number of bits used to hold each pixel is
  1169. given by bits-per-pixel.  Bits-per-pixel may be larger than
  1170. strictly required by the depth, in which case the least sig-
  1171. nificant bits are used to hold the pixmap data, and the val-
  1172. ues of the unused high-order bits are undefined.  When the
  1173. bits-per-pixel is 4, the order of nibbles in the byte is the
  1174. same as the image byte-order.  When the bits-per-pixel is 1,
  1175. the format is identical for bitmap format.  Each scanline is
  1176. padded to a multiple of bits as given by scanline-pad.    When
  1177. bits-per-pixel is 1, this will be identical to bitmap-scan-
  1178. line-pad.
  1179.  
  1180. How a pointing device roams the screens is up to the server
  1181. implementation and is transparent to the protocol.  No geom-
  1182. etry is defined among screens.
  1183.  
  1184.  
  1185.  
  1186.                  14
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. X Protocol                    X11, Release 6.4
  1193.  
  1194.  
  1195. The server may retain the recent history of pointer motion
  1196. and do so to a finer granularity than is reported by Motion-
  1197. Notify events.    The GetMotionEvents request makes such his-
  1198. tory available.  The motion-buffer-size gives the approxi-
  1199. mate maximum number of elements in the history buffer.
  1200.  
  1201. Maximum-request-length specifies the maximum length of a
  1202. request accepted by the server, in 4-byte units.  That is,
  1203. length is the maximum value that can appear in the length
  1204. field of a request.  Requests larger than this maximum gen-
  1205. erate a Length error, and the server will read and simply
  1206. discard the entire request.  Maximum-request-length will
  1207. always be at least 4096 (that is, requests of length up to
  1208. and including 16384 bytes will be accepted by all servers).
  1209.  
  1210. Min-keycode and max-keycode specify the smallest and largest
  1211. keycode values transmitted by the server.  Min-keycode is
  1212. never less than 8, and max-keycode is never greater than
  1213. 255.  Not all keycodes in this range are required to have
  1214. corresponding keys.
  1215.  
  1216. Screen Information
  1217.  
  1218. The information that applies per screen is:
  1219.  
  1220. The allowed-depths specifies what pixmap and window depths
  1221. are supported.    Pixmaps are supported for each depth listed,
  1222. and windows of that depth are supported if at least one
  1223. visual type is listed for the depth.  A pixmap depth of one
  1224. is always supported and listed, but windows of depth one
  1225. might not be supported.  A depth of zero is never listed,
  1226. but zero-depth InputOnly windows are always supported.
  1227.  
  1228. Root-depth and root-visual specify the depth and visual type
  1229. of the root window.  Width-in-pixels and height-in-pixels
  1230. specify the size of the root window (which cannot be
  1231. changed).  The class of the root window is always
  1232. InputOutput.  Width-in-millimeters and height-in-millimeters
  1233. can be used to determine the physical size and the aspect
  1234. ratio.
  1235.  
  1236. The default-colormap is the one initially associated with
  1237. the root window.  Clients with minimal color requirements
  1238. creating windows of the same depth as the root may want to
  1239. allocate from this map by default.
  1240.  
  1241. Black-pixel and white-pixel can be used in implementing a
  1242. monochrome application.  These pixel values are for perma-
  1243. nently allocated entries in the default-colormap.  The
  1244. actual RGB values may be settable on some screens and, in
  1245. any case, may not actually be black and white.    The names
  1246. are intended to convey the expected relative intensity of
  1247. the colors.
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                  15
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. X Protocol                    X11, Release 6.4
  1259.  
  1260.  
  1261. The border of the root window is initially a pixmap filled
  1262. with the black-pixel.  The initial background of the root
  1263. window is a pixmap filled with some unspecified two-color
  1264. pattern using black-pixel and white-pixel.
  1265.  
  1266. Min-installed-maps specifies the number of maps that can be
  1267. guaranteed to be installed simultaneously (with
  1268. InstallColormap), regardless of the number of entries allo-
  1269. cated in each map.  Max-installed-maps specifies the maximum
  1270. number of maps that might possibly be installed simultane-
  1271. ously, depending on their allocations.    Multiple static-
  1272. visual colormaps with identical contents but differing in
  1273. resource ID should be considered as a single map for the
  1274. purposes of this number.  For the typical case of a single
  1275. hardware colormap, both values will be 1.
  1276.  
  1277. Backing-stores indicates when the server supports backing
  1278. stores for this screen, although it may be storage limited
  1279. in the number of windows it can support at once.  If save-
  1280. unders is True, the server can support the save-under mode
  1281. in CreateWindow and ChangeWindowAttributes, although again
  1282. it may be storage limited.
  1283.  
  1284. The current-input-events is what GetWindowAttributes would
  1285. return for the all-event-masks for the root window.
  1286.  
  1287. Visual Information
  1288.  
  1289. The information that applies per visual-type is:
  1290.  
  1291. A given visual type might be listed for more than one depth
  1292. or for more than one screen.
  1293.  
  1294. For PseudoColor, a pixel value indexes a colormap to produce
  1295. independent RGB values; the RGB values can be changed dynam-
  1296. ically.  GrayScale is treated in the same way as PseudoColor
  1297. except which primary drives the screen is undefined; thus,
  1298. the client should always store the same value for red,
  1299. green, and blue in colormaps.  For DirectColor, a pixel
  1300. value is decomposed into separate RGB subfields, and each
  1301. subfield separately indexes the colormap for the correspond-
  1302. ing value.  The RGB values can be changed dynamically.
  1303. TrueColor is treated in the same way as DirectColor except
  1304. the colormap has predefined read-only RGB values.  These
  1305. values are server-dependent but provide linear or near-lin-
  1306. ear increasing ramps in each primary.  StaticColor is
  1307. treated in the same way as PseudoColor except the colormap
  1308. has predefined read-only RGB values, which are server-depen-
  1309. dent.  StaticGray is treated in the same way as StaticColor
  1310. except the red, green, and blue values are equal for any
  1311. single pixel value, resulting in shades of gray.  StaticGray
  1312. with a two-entry colormap can be thought of as monochrome.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                  16
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. X Protocol                    X11, Release 6.4
  1325.  
  1326.  
  1327. The red-mask, green-mask, and blue-mask are only defined for
  1328. DirectColor and TrueColor.  Each has one contiguous set of
  1329. bits set to 1 with no intersections.  Usually each mask has
  1330. the same number of bits set to 1.
  1331.  
  1332. The bits-per-rgb-value specifies the log base 2 of the num-
  1333. ber of distinct color intensity values (individually) of
  1334. red, green, and blue.  This number need not bear any rela-
  1335. tion to the number of colormap entries.  Actual RGB values
  1336. are always passed in the protocol within a 16-bit spectrum,
  1337. with 0 being minimum intensity and 65535 being the maximum
  1338. intensity.  On hardware that provides a linear zero-based
  1339. intensity ramp, the following relationship exists:
  1340.  
  1341.  
  1342.       hw-intensity = protocol-intensity / (65536 / total-hw-intensities)
  1343.  
  1344.  
  1345. Colormap entries are indexed from 0.  The colormap-entries
  1346. defines the number of available colormap entries in a newly
  1347. created colormap.  For DirectColor and TrueColor, this will
  1348. usually be 2 to the power of the maximum number of bits set
  1349. to 1 in red-mask, green-mask, and blue-mask.
  1350.  
  1351. 9.  Requests
  1352.  
  1353. __
  1354. |    CreateWindow
  1355.  
  1356.   wid, parent: WINDOW
  1357.   class: {InputOutput, InputOnly, CopyFromParent}
  1358.   depth: CARD8
  1359.   visual: VISUALID or CopyFromParent
  1360.   x, y: INT16
  1361.   width, height, border-width: CARD16
  1362.   value-mask: BITMASK
  1363.   value-list: LISTofVALUE
  1364.  
  1365.   Errors: Alloc, Colormap, Cursor, IDChoice, Match, Pixmap,
  1366. |__    Value, Window
  1367.  
  1368.  
  1369. This request creates an unmapped window and assigns the
  1370. identifier wid to it.
  1371.  
  1372. A class of CopyFromParent means the class is taken from the
  1373. parent.  A depth of zero for class InputOutput or Copy-
  1374. FromParent means the depth is taken from the parent.  A
  1375. visual of CopyFromParent means the visual type is taken from
  1376. the parent.  For class InputOutput, the visual type and
  1377. depth must be a combination supported for the screen (or a
  1378. Match error results).  The depth need not be the same as the
  1379. parent, but the parent must not be of class InputOnly (or a
  1380. Match error results).  For class InputOnly, the depth must
  1381.  
  1382.  
  1383.  
  1384.                  17
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. X Protocol                    X11, Release 6.4
  1391.  
  1392.  
  1393. be zero (or a Match error results), and the visual must be
  1394. one supported for the screen (or a Match error results).
  1395. However, the parent can have any depth and class.
  1396.  
  1397. The server essentially acts as if InputOnly windows do not
  1398. exist for the purposes of graphics requests, exposure pro-
  1399. cessing, and VisibilityNotify events.  An InputOnly window
  1400. cannot be used as a drawable (as a source or destination for
  1401. graphics requests).  InputOnly and InputOutput windows act
  1402. identically in other respects-properties, grabs, input con-
  1403. trol, and so on.
  1404.  
  1405. The coordinate system has the X axis horizontal and the Y
  1406. axis vertical with the origin [0, 0] at the upper-left cor-
  1407. ner.  Coordinates are integral, in terms of pixels, and
  1408. coincide with pixel centers.  Each window and pixmap has its
  1409. own coordinate system.    For a window, the origin is inside
  1410. the border at the inside, upper-left corner.
  1411.  
  1412. The x and y coordinates for the window are relative to the
  1413. parent's origin and specify the position of the upper-left
  1414. outer corner of the window (not the origin).  The width and
  1415. height specify the inside size (not including the border)
  1416. and must be nonzero (or a Value error results).  The border-
  1417. width for an InputOnly window must be zero (or a Match error
  1418. results).
  1419.  
  1420. The window is placed on top in the stacking order with
  1421. respect to siblings.
  1422.  
  1423. The value-mask and value-list specify attributes of the win-
  1424. dow that are to be explicitly initialized.  The possible
  1425. values are:
  1426.  
  1427. -----------------------------------------------
  1428. Attribute        Type
  1429. -----------------------------------------------
  1430. background-pixmap   PIXMAP or None or Paren-
  1431.             tRelative
  1432. background-pixel    CARD32
  1433. border-pixmap        PIXMAP or CopyFromParent
  1434. border-pixel        CARD32
  1435. bit-gravity        BITGRAVITY
  1436. win-gravity        WINGRAVITY
  1437. backing-store        {NotUseful, WhenMapped,
  1438.             Always}
  1439. backing-planes        CARD32
  1440. backing-pixel        CARD32
  1441. save-under        BOOL
  1442. event-mask        SETofEVENT
  1443. do-not-propagate-   SETofDEVICEEVENT
  1444. mask
  1445. override-redirect   BOOL
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                  18
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. X Protocol                    X11, Release 6.4
  1457.  
  1458.  
  1459. -----------------------------------------------
  1460. Attribute        Type
  1461. -----------------------------------------------
  1462. colormap        COLORMAP or CopyFromParent
  1463. cursor            CURSOR or None
  1464. -----------------------------------------------
  1465.  
  1466.  
  1467. The default values when attributes are not explicitly ini-
  1468. tialized are:
  1469.  
  1470. -----------------------------------
  1471. Attribute        Default
  1472. -----------------------------------
  1473. background-pixmap   None
  1474. border-pixmap        CopyFromParent
  1475. bit-gravity        Forget
  1476. win-gravity        NorthWest
  1477. backing-store        NotUseful
  1478. backing-planes        all ones
  1479. backing-pixel        zero
  1480. save-under        False
  1481. event-mask        {} (empty set)
  1482. do-not-propagate-   {} (empty set)
  1483. mask
  1484. override-redirect   False
  1485. colormap        CopyFromParent
  1486. cursor            None
  1487. -----------------------------------
  1488.  
  1489.  
  1490. Only the following attributes are defined for InputOnly win-
  1491. dows:
  1492.  
  1493. o    win-gravity
  1494.  
  1495. o    event-mask
  1496.  
  1497. o    do-not-propagate-mask
  1498.  
  1499. o    override-redirect
  1500.  
  1501. o    cursor
  1502.  
  1503. It is a Match error to specify any other attributes for
  1504. InputOnly windows.
  1505.  
  1506. If background-pixmap is given, it overrides the default
  1507. background-pixmap.  The background pixmap and the window
  1508. must have the same root and the same depth (or a Match error
  1509. results).  Any size pixmap can be used, although some sizes
  1510. may be faster than others.  If background None is specified,
  1511. the window has no defined background.  If background Paren-
  1512. tRelative is specified, the parent's background is used, but
  1513.  
  1514.  
  1515.  
  1516.                  19
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. X Protocol                    X11, Release 6.4
  1523.  
  1524.  
  1525. the window must have the same depth as the parent (or a
  1526. Match error results).  If the parent has background None,
  1527. then the window will also have background None.  A copy of
  1528. the parent's background is not made.  The parent's back-
  1529. ground is reexamined each time the window background is
  1530. required.  If background-pixel is given, it overrides the
  1531. default background-pixmap and any background-pixmap given
  1532. explicitly, and a pixmap of undefined size filled with back-
  1533. ground-pixel is used for the background.  Range checking is
  1534. not performed on the background-pixel value; it is simply
  1535. truncated to the appropriate number of bits.  For a Paren-
  1536. tRelative background, the background tile origin always
  1537. aligns with the parent's background tile origin.  Otherwise,
  1538. the background tile origin is always the window origin.
  1539.  
  1540. When no valid contents are available for regions of a window
  1541. and the regions are either visible or the server is main-
  1542. taining backing store, the server automatically tiles the
  1543. regions with the window's background unless the window has a
  1544. background of None.  If the background is None, the previous
  1545. screen contents from other windows of the same depth as the
  1546. window are simply left in place if the contents come from
  1547. the parent of the window or an inferior of the parent; oth-
  1548. erwise, the initial contents of the exposed regions are
  1549. undefined.  Exposure events are then generated for the
  1550. regions, even if the background is None.
  1551.  
  1552. The border tile origin is always the same as the background
  1553. tile origin.  If border-pixmap is given, it overrides the
  1554. default border-pixmap.    The border pixmap and the window
  1555. must have the same root and the same depth (or a Match error
  1556. results).  Any size pixmap can be used, although some sizes
  1557. may be faster than others.  If CopyFromParent is given, the
  1558. parent's border pixmap is copied (subsequent changes to the
  1559. parent's border attribute do not affect the child), but the
  1560. window must have the same depth as the parent (or a Match
  1561. error results).  The pixmap might be copied by sharing the
  1562. same pixmap object between the child and parent or by making
  1563. a complete copy of the pixmap contents.  If border-pixel is
  1564. given, it overrides the default border-pixmap and any bor-
  1565. der-pixmap given explicitly, and a pixmap of undefined size
  1566. filled with border-pixel is used for the border.  Range
  1567. checking is not performed on the border-pixel value; it is
  1568. simply truncated to the appropriate number of bits.
  1569.  
  1570. Output to a window is always clipped to the inside of the
  1571. window, so that the border is never affected.
  1572.  
  1573. The bit-gravity defines which region of the window should be
  1574. retained if the window is resized, and win-gravity defines
  1575. how the window should be repositioned if the parent is
  1576. resized (see ConfigureWindow request).
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                  20
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. X Protocol                    X11, Release 6.4
  1589.  
  1590.  
  1591. A backing-store of WhenMapped advises the server that main-
  1592. taining contents of obscured regions when the window is
  1593. mapped would be beneficial.  A backing-store of Always
  1594. advises the server that maintaining contents even when the
  1595. window is unmapped would be beneficial.  In this case, the
  1596. server may generate an exposure event when the window is
  1597. created.  A value of NotUseful advises the server that main-
  1598. taining contents is unnecessary, although a server may still
  1599. choose to maintain contents while the window is mapped.
  1600. Note that if the server maintains contents, then the server
  1601. should maintain complete contents not just the region within
  1602. the parent boundaries, even if the window is larger than its
  1603. parent.  While the server maintains contents, exposure
  1604. events will not normally be generated, but the server may
  1605. stop maintaining contents at any time.
  1606.  
  1607. If save-under is True, the server is advised that when this
  1608. window is mapped, saving the contents of windows it obscures
  1609. would be beneficial.
  1610.  
  1611. When the contents of obscured regions of a window are being
  1612. maintained, regions obscured by noninferior windows are
  1613. included in the destination (and source, when the window is
  1614. the source) of graphics requests, but regions obscured by
  1615. inferior windows are not included.
  1616.  
  1617. The backing-planes indicates (with bits set to 1) which bit
  1618. planes of the window hold dynamic data that must be pre-
  1619. served in backing-stores and during save-unders.  The back-
  1620. ing-pixel specifies what value to use in planes not covered
  1621. by backing-planes.  The server is free to save only the
  1622. specified bit planes in the backing-store or save-under and
  1623. regenerate the remaining planes with the specified pixel
  1624. value.    Any bits beyond the specified depth of the window in
  1625. these values are simply ignored.
  1626.  
  1627. The event-mask defines which events the client is interested
  1628. in for this window (or for some event types, inferiors of
  1629. the window).  The do-not-propagate-mask defines which events
  1630. should not be propagated to ancestor windows when no client
  1631. has the event type selected in this window.
  1632.  
  1633. The override-redirect specifies whether map and configure
  1634. requests on this window should override a SubstructureRedi-
  1635. rect on the parent, typically to inform a window manager not
  1636. to tamper with the window.
  1637.  
  1638. The colormap specifies the colormap that best reflects the
  1639. true colors of the window.  Servers capable of supporting
  1640. multiple hardware colormaps may use this information, and
  1641. window managers may use it for InstallColormap requests.
  1642. The colormap must have the same visual type and root as the
  1643. window (or a Match error results).  If CopyFromParent is
  1644. specified, the parent's colormap is copied (subsequent
  1645.  
  1646.  
  1647.  
  1648.                  21
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. X Protocol                    X11, Release 6.4
  1655.  
  1656.  
  1657. changes to the parent's colormap attribute do not affect the
  1658. child).  However, the window must have the same visual type
  1659. as the parent (or a Match error results), and the parent
  1660. must not have a colormap of None (or a Match error results).
  1661. For an explanation of None, see FreeColormap request.  The
  1662. colormap is copied by sharing the colormap object between
  1663. the child and the parent, not by making a complete copy of
  1664. the colormap contents.
  1665.  
  1666. If a cursor is specified, it will be used whenever the
  1667. pointer is in the window.  If None is specified, the par-
  1668. ent's cursor will be used when the pointer is in the window,
  1669. and any change in the parent's cursor will cause an immedi-
  1670. ate change in the displayed cursor.
  1671.  
  1672. This request generates a CreateNotify event.
  1673.  
  1674. The background and border pixmaps and the cursor may be
  1675. freed immediately if no further explicit references to them
  1676. are to be made.
  1677.  
  1678. Subsequent drawing into the background or border pixmap has
  1679. an undefined effect on the window state.  The server might
  1680. or might not make a copy of the pixmap.
  1681.  
  1682.  
  1683. __
  1684. |    ChangeWindowAttributes
  1685.  
  1686.   window: WINDOW
  1687.   value-mask: BITMASK
  1688.   value-list: LISTofVALUE
  1689.  
  1690.   Errors: Access, Colormap, Cursor, Match, Pixmap, Value,
  1691. |__    Window
  1692.  
  1693.  
  1694. The value-mask and value-list specify which attributes are
  1695. to be changed.    The values and restrictions are the same as
  1696. for CreateWindow.
  1697.  
  1698. Setting a new background, whether by background-pixmap or
  1699. background-pixel, overrides any previous background.  Set-
  1700. ting a new border, whether by border-pixel or border-pixmap,
  1701. overrides any previous border.
  1702.  
  1703. Changing the background does not cause the window contents
  1704. to be changed.    Setting the border or changing the back-
  1705. ground such that the border tile origin changes causes the
  1706. border to be repainted.  Changing the background of a root
  1707. window to None or ParentRelative restores the default back-
  1708. ground pixmap.    Changing the border of a root window to
  1709. CopyFromParent restores the default border pixmap.
  1710.  
  1711.  
  1712.  
  1713.  
  1714.                  22
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. X Protocol                    X11, Release 6.4
  1721.  
  1722.  
  1723. Changing the win-gravity does not affect the current posi-
  1724. tion of the window.
  1725.  
  1726. Changing the backing-store of an obscured window to When-
  1727. Mapped or Always or changing the backing-planes, backing-
  1728. pixel, or save-under of a mapped window may have no immedi-
  1729. ate effect.
  1730.  
  1731. Multiple clients can select input on the same window; their
  1732. event-masks are disjoint.  When an event is generated, it
  1733. will be reported to all interested clients.  However, only
  1734. one client at a time can select for SubstructureRedirect,
  1735. only one client at a time can select for ResizeRedirect, and
  1736. only one client at a time can select for ButtonPress.  An
  1737. attempt to violate these restrictions results in an Access
  1738. error.
  1739.  
  1740. There is only one do-not-propagate-mask for a window, not
  1741. one per client.
  1742.  
  1743. Changing the colormap of a window (by defining a new map,
  1744. not by changing the contents of the existing map) generates
  1745. a ColormapNotify event.  Changing the colormap of a visible
  1746. window might have no immediate effect on the screen (see
  1747. InstallColormap request).
  1748.  
  1749. Changing the cursor of a root window to None restores the
  1750. default cursor.
  1751.  
  1752. The order in which attributes are verified and altered is
  1753. server-dependent.  If an error is generated, a subset of the
  1754. attributes may have been altered.
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.                  23
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. X Protocol                    X11, Release 6.4
  1787.  
  1788. __
  1789. |    GetWindowAttributes
  1790.  
  1791.   window: WINDOW
  1792.  
  1793.    ->
  1794.  
  1795.   visual: VISUALID
  1796.   class: {InputOutput, InputOnly}
  1797.   bit-gravity: BITGRAVITY
  1798.   win-gravity: WINGRAVITY
  1799.   backing-store: {NotUseful, WhenMapped, Always}
  1800.   backing-planes: CARD32
  1801.   backing-pixel: CARD32
  1802.   save-under: BOOL
  1803.   colormap: COLORMAP or None
  1804.   map-is-installed: BOOL
  1805.   map-state: {Unmapped, Unviewable, Viewable}
  1806.   all-event-masks, your-event-mask: SETofEVENT
  1807.   do-not-propagate-mask: SETofDEVICEEVENT
  1808.   override-redirect: BOOL
  1809.  
  1810. |__    Errors: Window
  1811.  
  1812.  
  1813. This request returns the current attributes of the window.
  1814. A window is Unviewable if it is mapped but some ancestor is
  1815. unmapped.  All-event-masks is the inclusive-OR of all event
  1816. masks selected on the window by clients.  Your-event-mask is
  1817. the event mask selected by the querying client.
  1818.  
  1819.  
  1820. __
  1821. |    DestroyWindow
  1822.  
  1823.   window: WINDOW
  1824.  
  1825. |__    Errors: Window
  1826.  
  1827.  
  1828. If the argument window is mapped, an UnmapWindow request is
  1829. performed automatically.  The window and all inferiors are
  1830. then destroyed, and a DestroyNotify event is generated for
  1831. each window.  The ordering of the DestroyNotify events is
  1832. such that for any given window, DestroyNotify is generated
  1833. on all inferiors of the window before being generated on the
  1834. window itself.    The ordering among siblings and across sub-
  1835. hierarchies is not otherwise constrained.
  1836.  
  1837. Normal exposure processing on formerly obscured windows is
  1838. performed.
  1839.  
  1840. If the window is a root window, this request has no effect.
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.                  24
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. X Protocol                    X11, Release 6.4
  1853.  
  1854. __
  1855. |    DestroySubwindows
  1856.  
  1857.   window: WINDOW
  1858.  
  1859. |__    Errors: Window
  1860.  
  1861.  
  1862. This request performs a DestroyWindow request on all chil-
  1863. dren of the window, in bottom-to-top stacking order.
  1864.  
  1865.  
  1866. __
  1867. |    ChangeSaveSet
  1868.  
  1869.   window: WINDOW
  1870.   mode: {Insert, Delete}
  1871.  
  1872. Errors:
  1873. |__    Match, Value, Window
  1874.  
  1875.  
  1876. This request adds or removes the specified window from the
  1877. client's save-set.  The window must have been created by
  1878. some other client (or a Match error results).  For further
  1879. information about the use of the save-set, see section 10.
  1880.  
  1881. When windows are destroyed, the server automatically removes
  1882. them from the save-set.
  1883.  
  1884.  
  1885. __
  1886. |    ReparentWindow
  1887.  
  1888.   window, parent: WINDOW
  1889.   x, y: INT16
  1890.  
  1891. |__    Errors: Match, Window
  1892.  
  1893.  
  1894. If the window is mapped, an UnmapWindow request is performed
  1895. automatically first.  The window is then removed from its
  1896. current position in the hierarchy and is inserted as a child
  1897. of the specified parent.  The x and y coordinates are rela-
  1898. tive to the parent's origin and specify the new position of
  1899. the upper-left outer corner of the window.  The window is
  1900. placed on top in the stacking order with respect to sib-
  1901. lings.    A ReparentNotify event is then generated.  The over-
  1902. ride-redirect attribute of the window is passed on in this
  1903. event; a value of True indicates that a window manager
  1904. should not tamper with this window.  Finally, if the window
  1905. was originally mapped, a MapWindow request is performed
  1906. automatically.
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.                  25
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. X Protocol                    X11, Release 6.4
  1919.  
  1920.  
  1921. Normal exposure processing on formerly obscured windows is
  1922. performed.  The server might not generate exposure events
  1923. for regions from the initial unmap that are immediately
  1924. obscured by the final map.
  1925.  
  1926. A Match error is generated if:
  1927.  
  1928. o    The new parent is not on the same screen as the old
  1929.      parent.
  1930.  
  1931. o    The new parent is the window itself or an inferior of
  1932.      the window.
  1933.  
  1934. o    The new parent is InputOnly, and the window is not.
  1935.  
  1936. o    The window has a ParentRelative background, and the new
  1937.      parent is not the same depth as the window.
  1938.  
  1939.  
  1940. __
  1941. |    MapWindow
  1942.  
  1943.   window: WINDOW
  1944.  
  1945. |__    Errors: Window
  1946.  
  1947.  
  1948. If the window is already mapped, this request has no effect.
  1949.  
  1950. If the override-redirect attribute of the window is False
  1951. and some other client has selected SubstructureRedirect on
  1952. the parent, then a MapRequest event is generated, but the
  1953. window remains unmapped.  Otherwise, the window is mapped,
  1954. and a MapNotify event is generated.
  1955.  
  1956. If the window is now viewable and its contents have been
  1957. discarded, the window is tiled with its background (if no
  1958. background is defined, the existing screen contents are not
  1959. altered), and zero or more exposure events are generated.
  1960. If a backing-store has been maintained while the window was
  1961. unmapped, no exposure events are generated.  If a backing-
  1962. store will now be maintained, a full-window exposure is
  1963. always generated.  Otherwise, only visible regions may be
  1964. reported.  Similar tiling and exposure take place for any
  1965. newly viewable inferiors.
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                  26
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. X Protocol                    X11, Release 6.4
  1985.  
  1986. __
  1987. |    MapSubwindows
  1988.  
  1989.   window: WINDOW
  1990.  
  1991. |__    Errors: Window
  1992.  
  1993.  
  1994. This request performs a MapWindow request on all unmapped
  1995. children of the window, in top-to-bottom stacking order.
  1996.  
  1997.  
  1998. __
  1999. |    UnmapWindow
  2000.  
  2001.   window: WINDOW
  2002.  
  2003. |__    Errors: Window
  2004.  
  2005.  
  2006. If the window is already unmapped, this request has no
  2007. effect.  Otherwise, the window is unmapped, and an UnmapNo-
  2008. tify event is generated.  Normal exposure processing on for-
  2009. merly obscured windows is performed.
  2010.  
  2011.  
  2012. __
  2013. |    UnmapSubwindows
  2014.  
  2015.   window: WINDOW
  2016.  
  2017. |__    Errors: Window
  2018.  
  2019.  
  2020. This request performs an UnmapWindow request on all mapped
  2021. children of the window, in bottom-to-top stacking order.
  2022.  
  2023.  
  2024. __
  2025. |    ConfigureWindow
  2026.  
  2027.   window: WINDOW
  2028.   value-mask: BITMASK
  2029.   value-list: LISTofVALUE
  2030.  
  2031. |__    Errors: Match, Value, Window
  2032.  
  2033.  
  2034. This request changes the configuration of the window.  The
  2035. value-mask and value-list specify which values are to be
  2036. given.    The possible values are:
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.                  27
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. X Protocol                    X11, Release 6.4
  2051.  
  2052.  
  2053. -----------------------------------------------
  2054. Attribute      Type
  2055. -----------------------------------------------
  2056. x           INT16
  2057. y           INT16
  2058. width           CARD16
  2059. height           CARD16
  2060. border-width   CARD16
  2061. sibling        WINDOW
  2062. stack-mode     {Above, Below, TopIf, BottomIf,
  2063.            Opposite}
  2064. -----------------------------------------------
  2065.  
  2066.  
  2067. The x and y coordinates are relative to the parent's origin
  2068. and specify the position of the upper-left outer corner of
  2069. the window.  The width and height specify the inside size,
  2070. not including the border, and must be nonzero (or a Value
  2071. error results).  Those values not specified are taken from
  2072. the existing geometry of the window.  Note that changing
  2073. just the border-width leaves the outer-left corner of the
  2074. window in a fixed position but moves the absolute position
  2075. of the window's origin.  It is a Match error to attempt to
  2076. make the border-width of an InputOnly window nonzero.
  2077.  
  2078. If the override-redirect attribute of the window is False
  2079. and some other client has selected SubstructureRedirect on
  2080. the parent, a ConfigureRequest event is generated, and no
  2081. further processing is performed.  Otherwise, the following
  2082. is performed:
  2083.  
  2084. If some other client has selected ResizeRedirect on the win-
  2085. dow and the inside width or height of the window is being
  2086. changed, a ResizeRequest event is generated, and the current
  2087. inside width and height are used instead.  Note that the
  2088. override-redirect attribute of the window has no effect on
  2089. ResizeRedirect and that SubstructureRedirect on the parent
  2090. has precedence over ResizeRedirect on the window.
  2091.  
  2092. The geometry of the window is changed as specified, the win-
  2093. dow is restacked among siblings, and a ConfigureNotify event
  2094. is generated if the state of the window actually changes.
  2095. If the inside width or height of the window has actually
  2096. changed, then children of the window are affected, according
  2097. to their win-gravity.  Exposure processing is performed on
  2098. formerly obscured windows (including the window itself and
  2099. its inferiors if regions of them were obscured but now are
  2100. not).  Exposure processing is also performed on any new
  2101. regions of the window (as a result of increasing the width
  2102. or height) and on any regions where window contents are
  2103. lost.
  2104.  
  2105. If the inside width or height of a window is not changed but
  2106. the window is moved or its border is changed, then the
  2107.  
  2108.  
  2109.  
  2110.                  28
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. X Protocol                    X11, Release 6.4
  2117.  
  2118.  
  2119. contents of the window are not lost but move with the win-
  2120. dow.  Changing the inside width or height of the window
  2121. causes its contents to be moved or lost, depending on the
  2122. bit-gravity of the window.  It also causes children to be
  2123. reconfigured, depending on their win-gravity.  For a change
  2124. of width and height of W and H, we define the [x, y] pairs
  2125. as:
  2126.  
  2127. -----------------------
  2128. Direction   Deltas
  2129. -----------------------
  2130. NorthWest   [0, 0]
  2131. North        [W/2, 0]
  2132. NorthEast   [W, 0]
  2133. West        [0, H/2]
  2134. Center        [W/2, H/2]
  2135. East        [W, H/2]
  2136. SouthWest   [0, H]
  2137. South        [W/2, H]
  2138. SouthEast   [W, H]
  2139. -----------------------
  2140.  
  2141.  
  2142. When a window with one of these bit-gravities is resized,
  2143. the corresponding pair defines the change in position of
  2144. each pixel in the window.  When a window with one of these
  2145. win-gravities has its parent window resized, the correspond-
  2146. ing pair defines the change in position of the window within
  2147. the parent.  This repositioning generates a GravityNotify
  2148. event.    GravityNotify events are generated after the Config-
  2149. ureNotify event is generated.
  2150.  
  2151. A gravity of Static indicates that the contents or origin
  2152. should not move relative to the origin of the root window.
  2153. If the change in size of the window is coupled with a change
  2154. in position of [X, Y], then for bit-gravity the change in
  2155. position of each pixel is [-X, -Y] and for win-gravity the
  2156. change in position of a child when its parent is so resized
  2157. is [-X, -Y].  Note that Static gravity still only takes
  2158. effect when the width or height of the window is changed,
  2159. not when the window is simply moved.
  2160.  
  2161. A bit-gravity of Forget indicates that the window contents
  2162. are always discarded after a size change, even if backing-
  2163. store or save-under has been requested.  The window is tiled
  2164. with its background (except, if no background is defined,
  2165. the existing screen contents are not altered) and zero or
  2166. more exposure events are generated.
  2167.  
  2168. The contents and borders of inferiors are not affected by
  2169. their parent's bit-gravity.  A server is permitted to ignore
  2170. the specified bit-gravity and use Forget instead.
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                  29
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. X Protocol                    X11, Release 6.4
  2183.  
  2184.  
  2185. A win-gravity of Unmap is like NorthWest, but the child is
  2186. also unmapped when the parent is resized, and an UnmapNotify
  2187. event is generated.  UnmapNotify events are generated after
  2188. the ConfigureNotify event is generated.
  2189.  
  2190. If a sibling and a stack-mode are specified, the window is
  2191. restacked as follows:
  2192.  
  2193. Above         The window is placed just above the sibling.
  2194. Below         The window is placed just below the sibling.
  2195. TopIf         If the sibling occludes the window, then the
  2196.          window is placed at the top of the stack.
  2197. BottomIf     If the window occludes the sibling, then the
  2198.          window is placed at the bottom of the stack.
  2199. Opposite     If the sibling occludes the window, then the
  2200.          window is placed at the top of the stack.    Oth-
  2201.          erwise, if the window occludes the sibling,
  2202.          then the window is placed at the bottom of the
  2203.          stack.
  2204.  
  2205.  
  2206. If a stack-mode is specified but no sibling is specified,
  2207. the window is restacked as follows:
  2208.  
  2209. Above         The window is placed at the top of the stack.
  2210. Below         The window is placed at the bottom of the
  2211.          stack.
  2212. TopIf         If any sibling occludes the window, then the
  2213.          window is placed at the top of the stack.
  2214. BottomIf     If the window occludes any sibling, then the
  2215.          window is placed at the bottom of the stack.
  2216. Opposite     If any sibling occludes the window, then the
  2217.          window is placed at the top of the stack.    Oth-
  2218.          erwise, if the window occludes any sibling,
  2219.          then the window is placed at the bottom of the
  2220.          stack.
  2221.  
  2222.  
  2223. It is a Match error if a sibling is specified without a
  2224. stack-mode or if the window is not actually a sibling.
  2225.  
  2226. Note that the computations for BottomIf, TopIf, and Opposite
  2227. are performed with respect to the window's final geometry
  2228. (as controlled by the other arguments to the request), not
  2229. to its initial geometry.
  2230.  
  2231. Attempts to configure a root window have no effect.
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.                  30
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. X Protocol                    X11, Release 6.4
  2249.  
  2250. __
  2251. |    CirculateWindow
  2252.  
  2253.   window: WINDOW
  2254.   direction: {RaiseLowest, LowerHighest}
  2255.  
  2256. |__    Errors: Value, Window
  2257.  
  2258.  
  2259. If some other client has selected SubstructureRedirect on
  2260. the window, then a CirculateRequest event is generated, and
  2261. no further processing is performed.  Otherwise, the follow-
  2262. ing is performed, and then a CirculateNotify event is gener-
  2263. ated if the window is actually restacked.
  2264.  
  2265. For RaiseLowest, CirculateWindow raises the lowest mapped
  2266. child (if any) that is occluded by another child to the top
  2267. of the stack.  For LowerHighest, CirculateWindow lowers the
  2268. highest mapped child (if any) that occludes another child to
  2269. the bottom of the stack.  Exposure processing is performed
  2270. on formerly obscured windows.
  2271.  
  2272.  
  2273. __
  2274. |    GetGeometry
  2275.  
  2276.   drawable: DRAWABLE
  2277.  
  2278.    ->
  2279.  
  2280.   root: WINDOW
  2281.   depth: CARD8
  2282.   x, y: INT16
  2283.   width, height, border-width: CARD16
  2284.  
  2285. |__    Errors: Drawable
  2286.  
  2287.  
  2288. This request returns the root and current geometry of the
  2289. drawable.  The depth is the number of bits per pixel for the
  2290. object.  The x, y, and border-width will always be zero for
  2291. pixmaps.  For a window, the x and y coordinates specify the
  2292. upper-left outer corner of the window relative to its par-
  2293. ent's origin, and the width and height specify the inside
  2294. size, not including the border.
  2295.  
  2296. It is legal to pass an InputOnly window as a drawable to
  2297. this request.
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.                  31
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. X Protocol                    X11, Release 6.4
  2315.  
  2316. __
  2317. |    QueryTree
  2318.  
  2319.   window: WINDOW
  2320.  
  2321.    ->
  2322.  
  2323.   root: WINDOW
  2324.   parent: WINDOW or None
  2325.   children: LISTofWINDOW
  2326.  
  2327. |__    Errors: Window
  2328.  
  2329.  
  2330. This request returns the root, the parent, and the children
  2331. of the window.    The children are listed in bottom-to-top
  2332. stacking order.
  2333.  
  2334.  
  2335. __
  2336. |    InternAtom
  2337.  
  2338.   name: STRING8
  2339.   only-if-exists: BOOL
  2340.  
  2341.    ->
  2342.  
  2343.   atom: ATOM or None
  2344.  
  2345. |__    Errors: Alloc, Value
  2346.  
  2347.  
  2348. This request returns the atom for the given name.  If only-
  2349. if-exists is False, then the atom is created if it does not
  2350. exist.    The string should use the ISO Latin-1 encoding.
  2351. Uppercase and lowercase matter.
  2352.  
  2353. The lifetime of an atom is not tied to the interning client.
  2354. Atoms remain defined until server reset (see section 10).
  2355.  
  2356.  
  2357. __
  2358. |    GetAtomName
  2359.  
  2360.   atom: ATOM
  2361.  
  2362.    ->
  2363.  
  2364.   name: STRING8
  2365.  
  2366. |__    Errors: Atom
  2367.  
  2368.  
  2369. This request returns the name for the given atom.
  2370.  
  2371.  
  2372.  
  2373.  
  2374.                  32
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. X Protocol                    X11, Release 6.4
  2381.  
  2382. __
  2383. |    ChangeProperty
  2384.  
  2385.   window: WINDOW
  2386.   property, type: ATOM
  2387.   format: {8, 16, 32}
  2388.   mode: {Replace, Prepend, Append}
  2389.   data: LISTofINT8 or LISTofINT16 or LISTofINT32
  2390.  
  2391. |__    Errors: Alloc, Atom, Match, Value, Window
  2392.  
  2393.  
  2394. This request alters the property for the specified window.
  2395. The type is uninterpreted by the server.  The format speci-
  2396. fies whether the data should be viewed as a list of 8-bit,
  2397. 16-bit, or 32-bit quantities so that the server can cor-
  2398. rectly byte-swap as necessary.
  2399.  
  2400. If the mode is Replace, the previous property value is dis-
  2401. carded.  If the mode is Prepend or Append, then the type and
  2402. format must match the existing property value (or a Match
  2403. error results).  If the property is undefined, it is treated
  2404. as defined with the correct type and format with zero-length
  2405. data.  For Prepend, the data is tacked on to the beginning
  2406. of the existing data, and for Append, it is tacked on to the
  2407. end of the existing data.
  2408.  
  2409. This request generates a PropertyNotify event on the window.
  2410.  
  2411. The lifetime of a property is not tied to the storing
  2412. client.  Properties remain until explicitly deleted, until
  2413. the window is destroyed, or until server reset (see section
  2414. 10).
  2415.  
  2416. The maximum size of a property is server-dependent and may
  2417. vary dynamically.
  2418.  
  2419.  
  2420. __
  2421. |    DeleteProperty
  2422.  
  2423.   window: WINDOW
  2424.   property: ATOM
  2425.  
  2426. |__    Errors: Atom, Window
  2427.  
  2428.  
  2429. This request deletes the property from the specified window
  2430. if the property exists and generates a PropertyNotify event
  2431. on the window unless the property does not exist.
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.                  33
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. X Protocol                    X11, Release 6.4
  2447.  
  2448. __
  2449. |    GetProperty
  2450.  
  2451.   window: WINDOW
  2452.   property: ATOM
  2453.   type: ATOM or AnyPropertyType
  2454.   long-offset, long-length: CARD32
  2455.   delete: BOOL
  2456.  
  2457.    ->
  2458.  
  2459.   type: ATOM or None
  2460.   format: {0, 8, 16, 32}
  2461.   bytes-after: CARD32
  2462.   value: LISTofINT8 or LISTofINT16 or LISTofINT32
  2463.  
  2464. |__    Errors: Atom, Value, Window
  2465.  
  2466.  
  2467. If the specified property does not exist for the specified
  2468. window, then the return type is None, the format and bytes-
  2469. after are zero, and the value is empty.  The delete argument
  2470. is ignored in this case.  If the specified property exists
  2471. but its type does not match the specified type, then the
  2472. return type is the actual type of the property, the format
  2473. is the actual format of the property (never zero), the
  2474. bytes-after is the length of the property in bytes (even if
  2475. the format is 16 or 32), and the value is empty.  The delete
  2476. argument is ignored in this case.  If the specified property
  2477. exists and either AnyPropertyType is specified or the speci-
  2478. fied type matches the actual type of the property, then the
  2479. return type is the actual type of the property, the format
  2480. is the actual format of the property (never zero), and the
  2481. bytes-after and value are as follows, given:
  2482.  
  2483.      N = actual length of the stored property in bytes
  2484.      (even if the format is 16 or 32)
  2485.      I = 4 * long-offset
  2486.      T = N - I
  2487.      L = MINIMUM(T, 4 * long-length)
  2488.      A = N - (I + L)
  2489.  
  2490.  
  2491. The returned value starts at byte index I in the property
  2492. (indexing from 0), and its length in bytes is L.  However,
  2493. it is a Value error if long-offset is given such that L is
  2494. negative.  The value of bytes-after is A, giving the number
  2495. of trailing unread bytes in the stored property.  If delete
  2496. is True and the bytes-after is zero, the property is also
  2497. deleted from the window, and a PropertyNotify event is gen-
  2498. erated on the window.
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.                  34
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. X Protocol                    X11, Release 6.4
  2513.  
  2514. __
  2515. |    RotateProperties
  2516.  
  2517.   window: WINDOW
  2518.   delta: INT16
  2519.   properties: LISTofATOM
  2520.  
  2521. |__    Errors: Atom, Match, Window
  2522.  
  2523.  
  2524. If the property names in the list are viewed as being num-
  2525. bered starting from zero, and there are N property names in
  2526. the list, then the value associated with property name I
  2527. becomes the value associated with property name (I + delta)
  2528. mod N, for all I from zero to N - 1.  The effect is to
  2529. rotate the states by delta places around the virtual ring of
  2530. property names (right for positive delta, left for negative
  2531. delta).
  2532.  
  2533. If delta mod N is nonzero, a PropertyNotify event is gener-
  2534. ated for each property in the order listed.
  2535.  
  2536. If an atom occurs more than once in the list or no property
  2537. with that name is defined for the window, a Match error is
  2538. generated.  If an Atom or Match error is generated, no prop-
  2539. erties are changed.
  2540.  
  2541.  
  2542. __
  2543. |    ListProperties
  2544.  
  2545.   window: WINDOW
  2546.  
  2547.    ->
  2548.  
  2549.   atoms: LISTofATOM
  2550.  
  2551. |__    Errors: Window
  2552.  
  2553.  
  2554. This request returns the atoms of properties currently
  2555. defined on the window.
  2556.  
  2557.  
  2558. __
  2559. |    SetSelectionOwner
  2560.  
  2561.   selection: ATOM
  2562.   owner: WINDOW or None
  2563.   time: TIMESTAMP or CurrentTime
  2564.  
  2565. |__    Errors: Atom, Window
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.                  35
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. X Protocol                    X11, Release 6.4
  2579.  
  2580.  
  2581. This request changes the owner, owner window, and last-
  2582. change time of the specified selection.  This request has no
  2583. effect if the specified time is earlier than the current
  2584. last-change time of the specified selection or is later than
  2585. the current server time.  Otherwise, the last-change time is
  2586. set to the specified time with CurrentTime replaced by the
  2587. current server time.  If the owner window is specified as
  2588. None, then the owner of the selection becomes None (that is,
  2589. no owner).  Otherwise, the owner of the selection becomes
  2590. the client executing the request.  If the new owner (whether
  2591. a client or None) is not the same as the current owner and
  2592. the current owner is not None, then the current owner is
  2593. sent a SelectionClear event.
  2594.  
  2595. If the client that is the owner of a selection is later ter-
  2596. minated (that is, its connection is closed) or if the owner
  2597. window it has specified in the request is later destroyed,
  2598. then the owner of the selection automatically reverts to
  2599. None, but the last-change time is not affected.
  2600.  
  2601. The selection atom is uninterpreted by the server.  The
  2602. owner window is returned by the GetSelectionOwner request
  2603. and is reported in SelectionRequest and SelectionClear
  2604. events.
  2605.  
  2606. Selections are global to the server.
  2607.  
  2608.  
  2609. __
  2610. |    GetSelectionOwner
  2611.  
  2612.   selection: ATOM
  2613.  
  2614.    ->
  2615.  
  2616.   owner: WINDOW or None
  2617.  
  2618. |__    Errors: Atom
  2619.  
  2620.  
  2621. This request returns the current owner window of the speci-
  2622. fied selection, if any.  If None is returned, then there is
  2623. no owner for the selection.
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.                  36
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. X Protocol                    X11, Release 6.4
  2645.  
  2646. __
  2647. |    ConvertSelection
  2648.  
  2649.   selection, target: ATOM
  2650.   property: ATOM or None
  2651.   requestor: WINDOW
  2652.   time: TIMESTAMP or CurrentTime
  2653.  
  2654. |__    Errors: Atom, Window
  2655.  
  2656.  
  2657. If the specified selection has an owner, the server sends a
  2658. SelectionRequest event to that owner.  If no owner for the
  2659. specified selection exists, the server generates a Selec-
  2660. tionNotify event to the requestor with property None.  The
  2661. arguments are passed on unchanged in either of the events.
  2662.  
  2663.  
  2664. __
  2665. |    SendEvent
  2666.  
  2667.   destination: WINDOW or PointerWindow or InputFocus
  2668.   propagate: BOOL
  2669.   event-mask: SETofEVENT
  2670.   event: <normal-event-format>
  2671.  
  2672. |__    Errors: Value, Window
  2673.  
  2674.  
  2675. If PointerWindow is specified, destination is replaced with
  2676. the window that the pointer is in.  If InputFocus is speci-
  2677. fied and the focus window contains the pointer, destination
  2678. is replaced with the window that the pointer is in.  Other-
  2679. wise, destination is replaced with the focus window.
  2680.  
  2681. If the event-mask is the empty set, then the event is sent
  2682. to the client that created the destination window.  If that
  2683. client no longer exists, no event is sent.
  2684.  
  2685. If propagate is False, then the event is sent to every
  2686. client selecting on destination any of the event types in
  2687. event-mask.
  2688.  
  2689. If propagate is True and no clients have selected on desti-
  2690. nation any of the event types in event-mask, then destina-
  2691. tion is replaced with the closest ancestor of destination
  2692. for which some client has selected a type in event-mask and
  2693. no intervening window has that type in its do-not-propagate-
  2694. mask.  If no such window exists or if the window is an
  2695. ancestor of the focus window and InputFocus was originally
  2696. specified as the destination, then the event is not sent to
  2697. any clients.  Otherwise, the event is reported to every
  2698. client selecting on the final destination any of the types
  2699. specified in event-mask.
  2700.  
  2701.  
  2702.  
  2703.  
  2704.                  37
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. X Protocol                    X11, Release 6.4
  2711.  
  2712.  
  2713. The event code must be one of the core events or one of the
  2714. events defined by an extension (or a Value error results) so
  2715. that the server can correctly byte-swap the contents as nec-
  2716. essary.  The contents of the event are otherwise unaltered
  2717. and unchecked by the server except to force on the most sig-
  2718. nificant bit of the event code and to set the sequence num-
  2719. ber in the event correctly.
  2720.  
  2721. Active grabs are ignored for this request.
  2722.  
  2723.  
  2724. __
  2725. |    GrabPointer
  2726.  
  2727.   grab-window: WINDOW
  2728.   owner-events: BOOL
  2729.   event-mask: SETofPOINTEREVENT
  2730.   pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
  2731.   confine-to: WINDOW or None
  2732.   cursor: CURSOR or None
  2733.   time: TIMESTAMP or CurrentTime
  2734.  
  2735.    ->
  2736.  
  2737.   status: {Success, AlreadyGrabbed, Frozen, InvalidTime,
  2738.   NotViewable}
  2739.  
  2740. |__    Errors: Cursor, Value, Window
  2741.  
  2742.  
  2743. This request actively grabs control of the pointer.  Further
  2744. pointer events are only reported to the grabbing client.
  2745. The request overrides any active pointer grab by this
  2746. client.
  2747.  
  2748. If owner-events is False, all generated pointer events are
  2749. reported with respect to grab-window and are only reported
  2750. if selected by event-mask.  If owner-events is True and a
  2751. generated pointer event would normally be reported to this
  2752. client, it is reported normally.  Otherwise, the event is
  2753. reported with respect to the grab-window and is only
  2754. reported if selected by event-mask.  For either value of
  2755. owner-events, unreported events are simply discarded.
  2756.  
  2757. If pointer-mode is Asynchronous, pointer event processing
  2758. continues normally.  If the pointer is currently frozen by
  2759. this client, then processing of pointer events is resumed.
  2760. If pointer-mode is Synchronous, the state of the pointer (as
  2761. seen by means of the protocol) appears to freeze, and no
  2762. further pointer events are generated by the server until the
  2763. grabbing client issues a releasing AllowEvents request or
  2764. until the pointer grab is released.  Actual pointer changes
  2765. are not lost while the pointer is frozen.  They are simply
  2766. queued for later processing.
  2767.  
  2768.  
  2769.  
  2770.                  38
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. X Protocol                    X11, Release 6.4
  2777.  
  2778.  
  2779. If keyboard-mode is Asynchronous, keyboard event processing
  2780. is unaffected by activation of the grab.  If keyboard-mode
  2781. is Synchronous, the state of the keyboard (as seen by means
  2782. of the protocol) appears to freeze, and no further keyboard
  2783. events are generated by the server until the grabbing client
  2784. issues a releasing AllowEvents request or until the pointer
  2785. grab is released.  Actual keyboard changes are not lost
  2786. while the keyboard is frozen.  They are simply queued for
  2787. later processing.
  2788.  
  2789. If a cursor is specified, then it is displayed regardless of
  2790. what window the pointer is in.    If no cursor is specified,
  2791. then when the pointer is in grab-window or one of its sub-
  2792. windows, the normal cursor for that window is displayed.
  2793. Otherwise, the cursor for grab-window is displayed.
  2794.  
  2795. If a confine-to window is specified, then the pointer will
  2796. be restricted to stay contained in that window.  The con-
  2797. fine-to window need have no relationship to the grab-window.
  2798. If the pointer is not initially in the confine-to window,
  2799. then it is warped automatically to the closest edge (and
  2800. enter/leave events are generated normally) just before the
  2801. grab activates.  If the confine-to window is subsequently
  2802. reconfigured, the pointer will be warped automatically as
  2803. necessary to keep it contained in the window.
  2804.  
  2805. This request generates EnterNotify and LeaveNotify events.
  2806.  
  2807. The request fails with status AlreadyGrabbed if the pointer
  2808. is actively grabbed by some other client.  The request fails
  2809. with status Frozen if the pointer is frozen by an active
  2810. grab of another client.  The request fails with status
  2811. NotViewable if grab-window or confine-to window is not view-
  2812. able or if the confine-to window lies completely outside the
  2813. boundaries of the root window.    The request fails with sta-
  2814. tus InvalidTime if the specified time is earlier than the
  2815. last-pointer-grab time or later than the current server
  2816. time.  Otherwise, the last-pointer-grab time is set to the
  2817. specified time, with CurrentTime replaced by the current
  2818. server time.
  2819.  
  2820.  
  2821. __
  2822. |    UngrabPointer
  2823.  
  2824. |__    time: TIMESTAMP or CurrentTime
  2825.  
  2826.  
  2827. This request releases the pointer if this client has it
  2828. actively grabbed (from either GrabPointer or GrabButton or
  2829. from a normal button press) and releases any queued events.
  2830. The request has no effect if the specified time is earlier
  2831. than the last-pointer-grab time or is later than the current
  2832. server time.
  2833.  
  2834.  
  2835.  
  2836.                  39
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. X Protocol                    X11, Release 6.4
  2843.  
  2844.  
  2845. This request generates EnterNotify and LeaveNotify events.
  2846.  
  2847. An UngrabPointer request is performed automatically if the
  2848. event window or confine-to window for an active pointer grab
  2849. becomes not viewable or if window reconfiguration causes the
  2850. confine-to window to lie completely outside the boundaries
  2851. of the root window.
  2852.  
  2853.  
  2854. __
  2855. |    GrabButton
  2856.  
  2857.   modifiers: SETofKEYMASK or AnyModifier
  2858.   button: BUTTON or AnyButton
  2859.   grab-window: WINDOW
  2860.   owner-events: BOOL
  2861.   event-mask: SETofPOINTEREVENT
  2862.   pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
  2863.   confine-to: WINDOW or None
  2864.   cursor: CURSOR or None
  2865.  
  2866. |__    Errors: Access, Cursor, Value, Window
  2867.  
  2868.  
  2869. This request establishes a passive grab.  In the future, the
  2870. pointer is actively grabbed as described in GrabPointer, the
  2871. last-pointer-grab time is set to the time at which the but-
  2872. ton was pressed (as transmitted in the ButtonPress event),
  2873. and the ButtonPress event is reported if all of the follow-
  2874. ing conditions are true:
  2875.  
  2876. o    The pointer is not grabbed and the specified button is
  2877.      logically pressed when the specified modifier keys are
  2878.      logically down, and no other buttons or modifier keys
  2879.      are logically down.
  2880.  
  2881. o    The grab-window contains the pointer.
  2882.  
  2883. o    The confine-to window (if any) is viewable.
  2884.  
  2885. o    A passive grab on the same button/key combination does
  2886.      not exist on any ancestor of grab-window.
  2887.  
  2888. The interpretation of the remaining arguments is the same as
  2889. for GrabPointer.  The active grab is terminated automati-
  2890. cally when the logical state of the pointer has all buttons
  2891. released, independent of the logical state of modifier keys.
  2892. Note that the logical state of a device (as seen by means of
  2893. the protocol) may lag the physical state if device event
  2894. processing is frozen.
  2895.  
  2896. This request overrides all previous passive grabs by the
  2897. same client on the same button/key combinations on the same
  2898. window.  A modifier of AnyModifier is equivalent to issuing
  2899.  
  2900.  
  2901.  
  2902.                  40
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. X Protocol                    X11, Release 6.4
  2909.  
  2910.  
  2911. the request for all possible modifier combinations (includ-
  2912. ing the combination of no modifiers).  It is not required
  2913. that all specified modifiers have currently assigned key-
  2914. codes.    A button of AnyButton is equivalent to issuing the
  2915. request for all possible buttons.  Otherwise, it is not
  2916. required that the button specified currently be assigned to
  2917. a physical button.
  2918.  
  2919. An Access error is generated if some other client has
  2920. already issued a GrabButton request with the same button/key
  2921. combination on the same window.  When using AnyModifier or
  2922. AnyButton, the request fails completely (no grabs are estab-
  2923. lished), and an Access error is generated if there is a con-
  2924. flicting grab for any combination.  The request has no
  2925. effect on an active grab.
  2926.  
  2927.  
  2928. __
  2929. |    UngrabButton
  2930.  
  2931.   modifiers: SETofKEYMASK or AnyModifier
  2932.   button: BUTTON or AnyButton
  2933.   grab-window: WINDOW
  2934.  
  2935. |__    Errors: Value, Window
  2936.  
  2937.  
  2938. This request releases the passive button/key combination on
  2939. the specified window if it was grabbed by this client.    A
  2940. modifiers argument of AnyModifier is equivalent to issuing
  2941. the request for all possible modifier combinations (includ-
  2942. ing the combination of no modifiers).  A button of AnyButton
  2943. is equivalent to issuing the request for all possible but-
  2944. tons.  The request has no effect on an active grab.
  2945.  
  2946.  
  2947. __
  2948. |    ChangeActivePointerGrab
  2949.  
  2950.   event-mask: SETofPOINTEREVENT
  2951.   cursor: CURSOR or None
  2952.   time: TIMESTAMP or CurrentTime
  2953.  
  2954. |__    Errors: Cursor, Value
  2955.  
  2956.  
  2957. This request changes the specified dynamic parameters if the
  2958. pointer is actively grabbed by the client and the specified
  2959. time is no earlier than the last-pointer-grab time and no
  2960. later than the current server time.  The interpretation of
  2961. event-mask and cursor are the same as in GrabPointer.  This
  2962. request has no effect on the parameters of any passive grabs
  2963. established with GrabButton.
  2964.  
  2965.  
  2966.  
  2967.  
  2968.                  41
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. X Protocol                    X11, Release 6.4
  2975.  
  2976. __
  2977. |    GrabKeyboard
  2978.  
  2979.   grab-window: WINDOW
  2980.   owner-events: BOOL
  2981.   pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
  2982.   time: TIMESTAMP or CurrentTime
  2983.  
  2984.    ->
  2985.  
  2986.   status: {Success, AlreadyGrabbed, Frozen, InvalidTime,
  2987.   NotViewable}
  2988.  
  2989. |__    Errors: Value, Window
  2990.  
  2991.  
  2992. This request actively grabs control of the keyboard.  Fur-
  2993. ther key events are reported only to the grabbing client.
  2994. This request overrides any active keyboard grab by this
  2995. client.
  2996.  
  2997. If owner-events is False, all generated key events are
  2998. reported with respect to grab-window.  If owner-events is
  2999. True and if a generated key event would normally be reported
  3000. to this client, it is reported normally.  Otherwise, the
  3001. event is reported with respect to the grab-window.  Both
  3002. KeyPress and KeyRelease events are always reported, indepen-
  3003. dent of any event selection made by the client.
  3004.  
  3005. If keyboard-mode is Asynchronous, keyboard event processing
  3006. continues normally.  If the keyboard is currently frozen by
  3007. this client, then processing of keyboard events is resumed.
  3008. If keyboard-mode is Synchronous, the state of the keyboard
  3009. (as seen by means of the protocol) appears to freeze.  No
  3010. further keyboard events are generated by the server until
  3011. the grabbing client issues a releasing AllowEvents request
  3012. or until the keyboard grab is released.  Actual keyboard
  3013. changes are not lost while the keyboard is frozen.  They are
  3014. simply queued for later processing.
  3015.  
  3016. If pointer-mode is Asynchronous, pointer event processing is
  3017. unaffected by activation of the grab.  If pointer-mode is
  3018. Synchronous, the state of the pointer (as seen by means of
  3019. the protocol) appears to freeze.  No further pointer events
  3020. are generated by the server until the grabbing client issues
  3021. a releasing AllowEvents request or until the keyboard grab
  3022. is released.  Actual pointer changes are not lost while the
  3023. pointer is frozen.  They are simply queued for later pro-
  3024. cessing.
  3025.  
  3026. This request generates FocusIn and FocusOut events.
  3027.  
  3028. The request fails with status AlreadyGrabbed if the keyboard
  3029. is actively grabbed by some other client.  The request fails
  3030. with status Frozen if the keyboard is frozen by an active
  3031.  
  3032.  
  3033.  
  3034.                  42
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. X Protocol                    X11, Release 6.4
  3041.  
  3042.  
  3043. grab of another client.  The request fails with status
  3044. NotViewable if grab-window is not viewable.  The request
  3045. fails with status InvalidTime if the specified time is ear-
  3046. lier than the last-keyboard-grab time or later than the cur-
  3047. rent server time.  Otherwise, the last-keyboard-grab time is
  3048. set to the specified time with CurrentTime replaced by the
  3049. current server time.
  3050.  
  3051.  
  3052. __
  3053. |    UngrabKeyboard
  3054.  
  3055. |__    time: TIMESTAMP or CurrentTime
  3056.  
  3057.  
  3058. This request releases the keyboard if this client has it
  3059. actively grabbed (as a result of either GrabKeyboard or
  3060. GrabKey) and releases any queued events.  The request has no
  3061. effect if the specified time is earlier than the last-key-
  3062. board-grab time or is later than the current server time.
  3063.  
  3064. This request generates FocusIn and FocusOut events.
  3065.  
  3066. An UngrabKeyboard is performed automatically if the event
  3067. window for an active keyboard grab becomes not viewable.
  3068.  
  3069.  
  3070. __
  3071. |    GrabKey
  3072.  
  3073.   key: KEYCODE or AnyKey
  3074.   modifiers: SETofKEYMASK or AnyModifier
  3075.   grab-window: WINDOW
  3076.   owner-events: BOOL
  3077.   pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
  3078.  
  3079. |__    Errors: Access, Value, Window
  3080.  
  3081.  
  3082. This request establishes a passive grab on the keyboard.  In
  3083. the future, the keyboard is actively grabbed as described in
  3084. GrabKeyboard, the last-keyboard-grab time is set to the time
  3085. at which the key was pressed (as transmitted in the KeyPress
  3086. event), and the KeyPress event is reported if all of the
  3087. following conditions are true:
  3088.  
  3089. o    The keyboard is not grabbed and the specified key
  3090.      (which can itself be a modifier key) is logically
  3091.      pressed when the specified modifier keys are logically
  3092.      down, and no other modifier keys are logically down.
  3093.  
  3094. o    Either the grab-window is an ancestor of (or is) the
  3095.      focus window, or the grab-window is a descendent of the
  3096.      focus window and contains the pointer.
  3097.  
  3098.  
  3099.  
  3100.                  43
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106. X Protocol                    X11, Release 6.4
  3107.  
  3108.  
  3109. o    A passive grab on the same key combination does not
  3110.      exist on any ancestor of grab-window.
  3111.  
  3112. The interpretation of the remaining arguments is the same as
  3113. for GrabKeyboard.  The active grab is terminated automati-
  3114. cally when the logical state of the keyboard has the speci-
  3115. fied key released, independent of the logical state of modi-
  3116. fier keys.  Note that the logical state of a device (as seen
  3117. by means of the protocol) may lag the physical state if
  3118. device event processing is frozen.
  3119.  
  3120. This request overrides all previous passive grabs by the
  3121. same client on the same key combinations on the same window.
  3122. A modifier of AnyModifier is equivalent to issuing the
  3123. request for all possible modifier combinations (including
  3124. the combination of no modifiers).  It is not required that
  3125. all modifiers specified have currently assigned keycodes.  A
  3126. key of AnyKey is equivalent to issuing the request for all
  3127. possible keycodes.  Otherwise, the key must be in the range
  3128. specified by min-keycode and max-keycode in the connection
  3129. setup (or a Value error results).
  3130.  
  3131. An Access error is generated if some other client has issued
  3132. a GrabKey with the same key combination on the same window.
  3133. When using AnyModifier or AnyKey, the request fails com-
  3134. pletely (no grabs are established), and an Access error is
  3135. generated if there is a conflicting grab for any combina-
  3136. tion.
  3137.  
  3138.  
  3139. __
  3140. |    UngrabKey
  3141.  
  3142.   key: KEYCODE or AnyKey
  3143.   modifiers: SETofKEYMASK or AnyModifier
  3144.   grab-window: WINDOW
  3145.  
  3146. |__    Errors: Value, Window
  3147.  
  3148.  
  3149. This request releases the key combination on the specified
  3150. window if it was grabbed by this client.  A modifiers argu-
  3151. ment of AnyModifier is equivalent to issuing the request for
  3152. all possible modifier combinations (including the combina-
  3153. tion of no modifiers).    A key of AnyKey is equivalent to
  3154. issuing the request for all possible keycodes.    This request
  3155. has no effect on an active grab.
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.                  44
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172. X Protocol                    X11, Release 6.4
  3173.  
  3174. __
  3175. |    AllowEvents
  3176.  
  3177.   mode: {AsyncPointer, SyncPointer, ReplayPointer,
  3178.   AsyncKeyboard,
  3179.          SyncKeyboard, ReplayKeyboard, AsyncBoth,
  3180.   SyncBoth}
  3181.   time: TIMESTAMP or CurrentTime
  3182.  
  3183. |__    Errors: Value
  3184.  
  3185.  
  3186. This request releases some queued events if the client has
  3187. caused a device to freeze.  The request has no effect if the
  3188. specified time is earlier than the last-grab time of the
  3189. most recent active grab for the client or if the specified
  3190. time is later than the current server time.
  3191.  
  3192. For AsyncPointer, if the pointer is frozen by the client,
  3193. pointer event processing continues normally.  If the pointer
  3194. is frozen twice by the client on behalf of two separate
  3195. grabs, AsyncPointer thaws for both.  AsyncPointer has no
  3196. effect if the pointer is not frozen by the client, but the
  3197. pointer need not be grabbed by the client.
  3198.  
  3199. For SyncPointer, if the pointer is frozen and actively
  3200. grabbed by the client, pointer event processing continues
  3201. normally until the next ButtonPress or ButtonRelease event
  3202. is reported to the client, at which time the pointer again
  3203. appears to freeze.  However, if the reported event causes
  3204. the pointer grab to be released, then the pointer does not
  3205. freeze.  SyncPointer has no effect if the pointer is not
  3206. frozen by the client or if the pointer is not grabbed by the
  3207. client.
  3208.  
  3209. For ReplayPointer, if the pointer is actively grabbed by the
  3210. client and is frozen as the result of an event having been
  3211. sent to the client (either from the activation of a GrabBut-
  3212. ton or from a previous AllowEvents with mode SyncPointer but
  3213. not from a GrabPointer), then the pointer grab is released
  3214. and that event is completely reprocessed, this time ignoring
  3215. any passive grabs at or above (towards the root) the grab-
  3216. window of the grab just released.  The request has no effect
  3217. if the pointer is not grabbed by the client or if the
  3218. pointer is not frozen as the result of an event.
  3219.  
  3220. For AsyncKeyboard, if the keyboard is frozen by the client,
  3221. keyboard event processing continues normally.  If the key-
  3222. board is frozen twice by the client on behalf of two sepa-
  3223. rate grabs, AsyncKeyboard thaws for both.  AsyncKeyboard has
  3224. no effect if the keyboard is not frozen by the client, but
  3225. the keyboard need not be grabbed by the client.
  3226.  
  3227. For SyncKeyboard, if the keyboard is frozen and actively
  3228. grabbed by the client, keyboard event processing continues
  3229.  
  3230.  
  3231.  
  3232.                  45
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. X Protocol                    X11, Release 6.4
  3239.  
  3240.  
  3241. normally until the next KeyPress or KeyRelease event is
  3242. reported to the client, at which time the keyboard again
  3243. appears to freeze.  However, if the reported event causes
  3244. the keyboard grab to be released, then the keyboard does not
  3245. freeze.  SyncKeyboard has no effect if the keyboard is not
  3246. frozen by the client or if the keyboard is not grabbed by
  3247. the client.
  3248.  
  3249. For ReplayKeyboard, if the keyboard is actively grabbed by
  3250. the client and is frozen as the result of an event having
  3251. been sent to the client (either from the activation of a
  3252. GrabKey or from a previous AllowEvents with mode SyncKey-
  3253. board but not from a GrabKeyboard), then the keyboard grab
  3254. is released and that event is completely reprocessed, this
  3255. time ignoring any passive grabs at or above (towards the
  3256. root) the grab-window of the grab just released.  The
  3257. request has no effect if the keyboard is not grabbed by the
  3258. client or if the keyboard is not frozen as the result of an
  3259. event.
  3260.  
  3261. For SyncBoth, if both pointer and keyboard are frozen by the
  3262. client, event processing (for both devices) continues nor-
  3263. mally until the next ButtonPress, ButtonRelease, KeyPress,
  3264. or KeyRelease event is reported to the client for a grabbed
  3265. device (button event for the pointer, key event for the key-
  3266. board), at which time the devices again appear to freeze.
  3267. However, if the reported event causes the grab to be
  3268. released, then the devices do not freeze (but if the other
  3269. device is still grabbed, then a subsequent event for it will
  3270. still cause both devices to freeze).  SyncBoth has no effect
  3271. unless both pointer and keyboard are frozen by the client.
  3272. If the pointer or keyboard is frozen twice by the client on
  3273. behalf of two separate grabs, SyncBoth thaws for both (but a
  3274. subsequent freeze for SyncBoth will only freeze each device
  3275. once).
  3276.  
  3277. For AsyncBoth, if the pointer and the keyboard are frozen by
  3278. the client, event processing for both devices continues nor-
  3279. mally.    If a device is frozen twice by the client on behalf
  3280. of two separate grabs, AsyncBoth thaws for both.  AsyncBoth
  3281. has no effect unless both pointer and keyboard are frozen by
  3282. the client.
  3283.  
  3284. AsyncPointer, SyncPointer, and ReplayPointer have no effect
  3285. on processing of keyboard events.  AsyncKeyboard,
  3286. SyncKeyboard, and ReplayKeyboard have no effect on process-
  3287. ing of pointer events.
  3288.  
  3289. It is possible for both a pointer grab and a keyboard grab
  3290. to be active simultaneously (by the same or different
  3291. clients).  When a device is frozen on behalf of either grab,
  3292. no event processing is performed for the device.  It is pos-
  3293. sible for a single device to be frozen because of both
  3294. grabs.    In this case, the freeze must be released on behalf
  3295.  
  3296.  
  3297.  
  3298.                  46
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. X Protocol                    X11, Release 6.4
  3305.  
  3306.  
  3307. of both grabs before events can again be processed.  If a
  3308. device is frozen twice by a single client, then a single
  3309. AllowEvents releases both.
  3310.  
  3311.  
  3312. __
  3313. |__  GrabServer
  3314.  
  3315.  
  3316. This request disables processing of requests and close-downs
  3317. on all connections other than the one this request arrived
  3318. on.
  3319.  
  3320.  
  3321. __
  3322. |__  UngrabServer
  3323.  
  3324.  
  3325. This request restarts processing of requests and close-downs
  3326. on other connections.
  3327.  
  3328.  
  3329. __
  3330. |    QueryPointer
  3331.  
  3332.   window: WINDOW
  3333.  
  3334.    ->
  3335.  
  3336.   root: WINDOW
  3337.   child: WINDOW or None
  3338.   same-screen: BOOL
  3339.   root-x, root-y, win-x, win-y: INT16
  3340.   mask: SETofKEYBUTMASK
  3341.  
  3342. |__    Errors: Window
  3343.  
  3344.  
  3345. The root window the pointer is logically on and the pointer
  3346. coordinates relative to the root's origin are returned.  If
  3347. same-screen is False, then the pointer is not on the same
  3348. screen as the argument window, child is None, and win-x and
  3349. win-y are zero.  If same-screen is True, then win-x and win-
  3350. y are the pointer coordinates relative to the argument win-
  3351. dow's origin, and child is the child containing the pointer,
  3352. if any.  The current logical state of the modifier keys and
  3353. the buttons are also returned.    Note that the logical state
  3354. of a device (as seen by means of the protocol) may lag the
  3355. physical state if device event processing is frozen.
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.                  47
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370. X Protocol                    X11, Release 6.4
  3371.  
  3372. __
  3373. |    GetMotionEvents
  3374.  
  3375.   start, stop: TIMESTAMP or CurrentTime
  3376.   window: WINDOW
  3377.  
  3378.    ->
  3379.  
  3380.   events: LISTofTIMECOORD
  3381.  
  3382.   where:
  3383.  
  3384.   TIMECOORD:   [x, y: INT16
  3385.         time: TIMESTAMP]
  3386.  
  3387.  
  3388. |__    Errors: Window
  3389.  
  3390.  
  3391. This request returns all events in the motion history buffer
  3392. that fall between the specified start and stop times (inclu-
  3393. sive) and that have coordinates that lie within (including
  3394. borders) the specified window at its present placement.  The
  3395. x and y coordinates are reported relative to the origin of
  3396. the window.
  3397.  
  3398. If the start time is later than the stop time or if the
  3399. start time is in the future, no events are returned.  If the
  3400. stop time is in the future, it is equivalent to specifying
  3401. CurrentTime.
  3402.  
  3403.  
  3404. __
  3405. |    TranslateCoordinates
  3406.  
  3407.   src-window, dst-window: WINDOW
  3408.   src-x, src-y: INT16
  3409.  
  3410.    ->
  3411.  
  3412.   same-screen: BOOL
  3413.   child: WINDOW or None
  3414.   dst-x, dst-y: INT16
  3415.  
  3416. |__    Errors: Window
  3417.  
  3418.  
  3419. The src-x and src-y coordinates are taken relative to src-
  3420. window's origin and are returned as dst-x and dst-y coordi-
  3421. nates relative to dst-window's origin.    If same-screen is
  3422. False, then src-window and dst-window are on different
  3423. screens, and dst-x and dst-y are zero.    If the coordinates
  3424. are contained in a mapped child of dst-window, then that
  3425. child is returned.
  3426.  
  3427.  
  3428.  
  3429.  
  3430.                  48
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436. X Protocol                    X11, Release 6.4
  3437.  
  3438. __
  3439. |    WarpPointer
  3440.  
  3441.   src-window: WINDOW or None
  3442.   dst-window: WINDOW or None
  3443.   src-x, src-y: INT16
  3444.   src-width, src-height: CARD16
  3445.   dst-x, dst-y: INT16
  3446.  
  3447. |__    Errors: Window
  3448.  
  3449.  
  3450. If dst-window is None, this request moves the pointer by
  3451. offsets [dst-x, dst-y] relative to the current position of
  3452. the pointer.  If dst-window is a window, this request moves
  3453. the pointer to [dst-x, dst-y] relative to dst-window's ori-
  3454. gin.  However, if src-window is not None, the move only
  3455. takes place if src-window contains the pointer and the
  3456. pointer is contained in the specified rectangle of src-win-
  3457. dow.
  3458.  
  3459. The src-x and src-y coordinates are relative to src-window's
  3460. origin.  If src-height is zero, it is replaced with the cur-
  3461. rent height of src-window minus src-y.    If src-width is
  3462. zero, it is replaced with the current width of src-window
  3463. minus src-x.
  3464.  
  3465. This request cannot be used to move the pointer outside the
  3466. confine-to window of an active pointer grab.  An attempt
  3467. will only move the pointer as far as the closest edge of the
  3468. confine-to window.
  3469.  
  3470. This request will generate events just as if the user had
  3471. instantaneously moved the pointer.
  3472.  
  3473.  
  3474. __
  3475. |    SetInputFocus
  3476.  
  3477.   focus: WINDOW or PointerRoot or None
  3478.   revert-to: {Parent, PointerRoot, None}
  3479.   time: TIMESTAMP or CurrentTime
  3480.  
  3481. |__    Errors: Match, Value, Window
  3482.  
  3483.  
  3484. This request changes the input focus and the last-focus-
  3485. change time.  The request has no effect if the specified
  3486. time is earlier than the current last-focus-change time or
  3487. is later than the current server time.    Otherwise, the last-
  3488. focus-change time is set to the specified time with Current-
  3489. Time replaced by the current server time.
  3490.  
  3491. If None is specified as the focus, all keyboard events are
  3492. discarded until a new focus window is set.  In this case,
  3493.  
  3494.  
  3495.  
  3496.                  49
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502. X Protocol                    X11, Release 6.4
  3503.  
  3504.  
  3505. the revert-to argument is ignored.
  3506.  
  3507. If a window is specified as the focus, it becomes the key-
  3508. board's focus window.  If a generated keyboard event would
  3509. normally be reported to this window or one of its inferiors,
  3510. the event is reported normally.  Otherwise, the event is
  3511. reported with respect to the focus window.
  3512.  
  3513. If PointerRoot is specified as the focus, the focus window
  3514. is dynamically taken to be the root window of whatever
  3515. screen the pointer is on at each keyboard event.  In this
  3516. case, the revert-to argument is ignored.
  3517.  
  3518. This request generates FocusIn and FocusOut events.
  3519.  
  3520. The specified focus window must be viewable at the time of
  3521. the request (or a Match error results).  If the focus window
  3522. later becomes not viewable, the new focus window depends on
  3523. the revert-to argument.  If revert-to is Parent, the focus
  3524. reverts to the parent (or the closest viewable ancestor) and
  3525. the new revert-to value is taken to be None.  If revert-to
  3526. is PointerRoot or None, the focus reverts to that value.
  3527. When the focus reverts, FocusIn and FocusOut events are gen-
  3528. erated, but the last-focus-change time is not affected.
  3529.  
  3530.  
  3531. __
  3532. |    GetInputFocus
  3533.  
  3534.    ->
  3535.  
  3536.   focus: WINDOW or PointerRoot or None
  3537. |__    revert-to: {Parent, PointerRoot, None}
  3538.  
  3539.  
  3540. This request returns the current focus state.
  3541.  
  3542.  
  3543. __
  3544. |    QueryKeymap
  3545.  
  3546.    ->
  3547.  
  3548. |__    keys: LISTofCARD8
  3549.  
  3550.  
  3551. This request returns a bit vector for the logical state of
  3552. the keyboard.  Each bit set to 1 indicates that the corre-
  3553. sponding key is currently pressed.  The vector is repre-
  3554. sented as 32 bytes.  Byte N (from 0) contains the bits for
  3555. keys 8N to 8N + 7 with the least significant bit in the byte
  3556. representing key 8N.  Note that the logical state of a
  3557. device (as seen by means of the protocol) may lag the physi-
  3558. cal state if device event processing is frozen.
  3559.  
  3560.  
  3561.  
  3562.                  50
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568. X Protocol                    X11, Release 6.4
  3569.  
  3570. __
  3571. |    OpenFont
  3572.  
  3573.   fid: FONT
  3574.   name: STRING8
  3575.  
  3576. |__    Errors: Alloc, IDChoice, Name
  3577.  
  3578.  
  3579. This request loads the specified font, if necessary, and
  3580. associates identifier fid with it.  The font name should use
  3581. the ISO Latin-1 encoding, and uppercase and lowercase do not
  3582. matter.  When the characters ``?'' and ``*'' are used in a
  3583. font name, a pattern match is performed and any matching
  3584. font is used.  In the pattern, the ``?'' character (octal
  3585. value 77) will match any single character, and the ``*''
  3586. character (octal value 52) will match any number of charac-
  3587. ters.  A structured format for font names is specified in
  3588. the X Consortium standard X Logical Font Description Conven-
  3589. tions.
  3590.  
  3591. Fonts are not associated with a particular screen and can be
  3592. stored as a component of any graphics context.
  3593.  
  3594.  
  3595. __
  3596. |    CloseFont
  3597.  
  3598.   font: FONT
  3599.  
  3600. |__    Errors: Font
  3601.  
  3602.  
  3603. This request deletes the association between the resource ID
  3604. and the font.  The font itself will be freed when no other
  3605. resource references it.
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.                  51
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634. X Protocol                    X11, Release 6.4
  3635.  
  3636. __
  3637. |    QueryFont
  3638.  
  3639.   font: FONTABLE
  3640.  
  3641.    ->
  3642.  
  3643.   font-info: FONTINFO
  3644.   char-infos: LISTofCHARINFO
  3645.  
  3646.   where:
  3647.  
  3648.  
  3649.      FONTINFO:     [draw-direction: {LeftToRight, RightToLeft}
  3650.           min-char-or-byte2, max-char-or-byte2: CARD16
  3651.           min-byte1, max-byte1: CARD8
  3652.           all-chars-exist: BOOL
  3653.           default-char: CARD16
  3654.           min-bounds: CHARINFO
  3655.           max-bounds: CHARINFO
  3656.           font-ascent: INT16
  3657.           font-descent: INT16
  3658.           properties: LISTofFONTPROP]
  3659.      FONTPROP:     [name: ATOM
  3660.           value: <32-bit-value>]
  3661.      CHARINFO:     [left-side-bearing: INT16
  3662.           right-side-bearing: INT16
  3663.           character-width: INT16
  3664.           ascent: INT16
  3665.           descent: INT16
  3666.           attributes: CARD16]
  3667.  
  3668.  
  3669. |__    Errors: Font
  3670.  
  3671.  
  3672. This request returns logical information about a font.    If a
  3673. gcontext is given for font, the currently contained font is
  3674. used.
  3675.  
  3676. The draw-direction is just a hint and indicates whether most
  3677. char-infos have a positive, LeftToRight, or a negative,
  3678. RightToLeft, character-width metric.  The core protocol
  3679. defines no support for vertical text.
  3680.  
  3681. If min-byte1 and max-byte1 are both zero, then min-char-or-
  3682. byte2 specifies the linear character index corresponding to
  3683. the first element of char-infos, and max-char-or-byte2 spec-
  3684. ifies the linear character index of the last element.  If
  3685. either min-byte1 or max-byte1 are nonzero, then both min-
  3686. char-or-byte2 and max-char-or-byte2 will be less than 256,
  3687. and the 2-byte character index values corresponding to char-
  3688. infos element N (counting from 0) are:
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.                  52
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700. X Protocol                    X11, Release 6.4
  3701.  
  3702.  
  3703.      byte1 = N/D + min-byte1
  3704.      byte2 = N\\D + min-char-or-byte2
  3705.  
  3706.  
  3707. where:
  3708.  
  3709.      D = max-char-or-byte2 - min-char-or-byte2 + 1
  3710.      / = integer division
  3711.      \\ = integer modulus
  3712.  
  3713.  
  3714. If char-infos has length zero, then min-bounds and max-
  3715. bounds will be identical, and the effective char-infos is
  3716. one filled with this char-info, of length:
  3717.  
  3718.      L = D * (max-byte1 - min-byte1 + 1)
  3719.  
  3720.  
  3721. That is, all glyphs in the specified linear or matrix range
  3722. have the same information, as given by min-bounds (and max-
  3723. bounds).  If all-chars-exist is True, then all characters in
  3724. char-infos have nonzero bounding boxes.
  3725.  
  3726. The default-char specifies the character that will be used
  3727. when an undefined or nonexistent character is used.  Note
  3728. that default-char is a CARD16, not CHAR2B.  For a font using
  3729. 2-byte matrix format, the default-char has byte1 in the most
  3730. significant byte and byte2 in the least significant byte.
  3731. If the default-char itself specifies an undefined or nonex-
  3732. istent character, then no printing is performed for an unde-
  3733. fined or nonexistent character.
  3734.  
  3735. The min-bounds and max-bounds contain the minimum and maxi-
  3736. mum values of each individual CHARINFO component over all
  3737. char-infos (ignoring nonexistent characters).  The bounding
  3738. box of the font (that is, the smallest rectangle enclosing
  3739. the shape obtained by superimposing all characters at the
  3740. same origin [x,y]) has its upper-left coordinate at:
  3741.  
  3742.      [x + min-bounds.left-side-bearing, y - max-bounds.ascent]
  3743.  
  3744. with a width of:
  3745.  
  3746.      max-bounds.right-side-bearing - min-bounds.left-side-bearing
  3747.  
  3748.  
  3749. and a height of:
  3750.  
  3751.      max-bounds.ascent + max-bounds.descent
  3752.  
  3753.  
  3754. The font-ascent is the logical extent of the font above the
  3755. baseline and is used for determining line spacing.  Specific
  3756. characters may extend beyond this.  The font-descent is the
  3757.  
  3758.  
  3759.  
  3760.                  53
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766. X Protocol                    X11, Release 6.4
  3767.  
  3768.  
  3769. logical extent of the font at or below the baseline and is
  3770. used for determining line spacing.  Specific characters may
  3771. extend beyond this.  If the baseline is at Y-coordinate y,
  3772. then the logical extent of the font is inclusive between the
  3773. Y-coordinate values (y - font-ascent) and (y + font-descent
  3774. - 1).
  3775.  
  3776. A font is not guaranteed to have any properties.  The inter-
  3777. pretation of the property value (for example, INT32, CARD32)
  3778. must be derived from a priori knowledge of the property.  A
  3779. basic set of font properties is specified in the X Consor-
  3780. tium standard X Logical Font Description Conventions.
  3781.  
  3782. For a character origin at [x,y], the bounding box of a char-
  3783. acter (that is, the smallest rectangle enclosing the charac-
  3784. ter's shape), described in terms of CHARINFO components, is
  3785. a rectangle with its upper-left corner at:
  3786.  
  3787.      [x + left-side-bearing, y - ascent]
  3788.  
  3789.  
  3790. with a width of:
  3791.  
  3792.      right-side-bearing - left-side-bearing
  3793.  
  3794.  
  3795. and a height of:
  3796.  
  3797.      ascent + descent
  3798.  
  3799.  
  3800. and the origin for the next character is defined to be:
  3801.  
  3802.      [x + character-width, y]
  3803.  
  3804.  
  3805. Note that the baseline is logically viewed as being just
  3806. below nondescending characters (when descent is zero, only
  3807. pixels with Y-coordinates less than y are drawn) and that
  3808. the origin is logically viewed as being coincident with the
  3809. left edge of a nonkerned character (when left-side-bearing
  3810. is zero, no pixels with X-coordinate less than x are drawn).
  3811.  
  3812. Note that CHARINFO metric values can be negative.
  3813.  
  3814. A nonexistent character is represented with all CHARINFO
  3815. components zero.
  3816.  
  3817. The interpretation of the per-character attributes field is
  3818. server-dependent.
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.                  54
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832. X Protocol                    X11, Release 6.4
  3833.  
  3834. __
  3835. |    QueryTextExtents
  3836.  
  3837.   font: FONTABLE
  3838.   string: STRING16
  3839.  
  3840.    ->
  3841.  
  3842.   draw-direction: {LeftToRight, RightToLeft}
  3843.   font-ascent: INT16
  3844.   font-descent: INT16
  3845.   overall-ascent: INT16
  3846.   overall-descent: INT16
  3847.   overall-width: INT32
  3848.   overall-left: INT32
  3849.   overall-right: INT32
  3850.  
  3851. |__    Errors: Font
  3852.  
  3853.  
  3854. This request returns the logical extents of the specified
  3855. string of characters in the specified font.  If a gcontext
  3856. is given for font, the currently contained font is used.
  3857. The draw-direction, font-ascent, and font-descent are the
  3858. same as described in QueryFont.  The overall-ascent is the
  3859. maximum of the ascent metrics of all characters in the
  3860. string, and the overall-descent is the maximum of the
  3861. descent metrics.  The overall-width is the sum of the char-
  3862. acter-width metrics of all characters in the string.  For
  3863. each character in the string, let W be the sum of the char-
  3864. acter-width metrics of all characters preceding it in the
  3865. string, let L be the left-side-bearing metric of the charac-
  3866. ter plus W, and let R be the right-side-bearing metric of
  3867. the character plus W.  The overall-left is the minimum L of
  3868. all characters in the string, and the overall-right is the
  3869. maximum R.
  3870.  
  3871. For fonts defined with linear indexing rather than 2-byte
  3872. matrix indexing, the server will interpret each CHAR2B as a
  3873. 16-bit number that has been transmitted most significant
  3874. byte first (that is, byte1 of the CHAR2B is taken as the
  3875. most significant byte).
  3876.  
  3877. Characters with all zero metrics are ignored.  If the font
  3878. has no defined default-char, then undefined characters in
  3879. the string are also ignored.
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.                  55
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898. X Protocol                    X11, Release 6.4
  3899.  
  3900. __
  3901. |    ListFonts
  3902.  
  3903.   pattern: STRING8
  3904.   max-names: CARD16
  3905.  
  3906.    ->
  3907.  
  3908. |__    names: LISTofSTRING8
  3909.  
  3910.  
  3911. This request returns a list of available font names (as con-
  3912. trolled by the font search path; see SetFontPath request)
  3913. that match the pattern.  At most, max-names names will be
  3914. returned.  The pattern should use the ISO Latin-1 encoding,
  3915. and uppercase and lowercase do not matter.  In the pattern,
  3916. the ``?'' character (octal value 77) will match any single
  3917. character, and the ``*'' character (octal value 52) will
  3918. match any number of characters.  The returned names are in
  3919. lowercase.
  3920.  
  3921.  
  3922. __
  3923. |    ListFontsWithInfo
  3924.  
  3925.   pattern: STRING8
  3926.   max-names: CARD16
  3927.  
  3928.    ->
  3929.  
  3930.   name: STRING8
  3931.   info FONTINFO
  3932.   replies-hint: CARD32
  3933.  
  3934.   where:
  3935.  
  3936. |__  FONTINFO: <same type definition as in QueryFont>
  3937.  
  3938.  
  3939. This request is similar to ListFonts, but it also returns
  3940. information about each font.  The information returned for
  3941. each font is identical to what QueryFont would return except
  3942. that the per-character metrics are not returned.  Note that
  3943. this request can generate multiple replies.  With each
  3944. reply, replies-hint may provide an indication of how many
  3945. more fonts will be returned.  This number is a hint only and
  3946. may be larger or smaller than the number of fonts actually
  3947. returned.  A zero value does not guarantee that no more
  3948. fonts will be returned.  After the font replies, a reply
  3949. with a zero-length name is sent to indicate the end of the
  3950. reply sequence.
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958.                  56
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964. X Protocol                    X11, Release 6.4
  3965.  
  3966. __
  3967. |    SetFontPath
  3968.  
  3969.   path: LISTofSTRING8
  3970.  
  3971. |__    Errors: Value
  3972.  
  3973.  
  3974. This request defines the search path for font lookup.  There
  3975. is only one search path per server, not one per client.  The
  3976. interpretation of the strings is operating-system-dependent,
  3977. but the strings are intended to specify directories to be
  3978. searched in the order listed.
  3979.  
  3980. Setting the path to the empty list restores the default path
  3981. defined for the server.
  3982.  
  3983. As a side effect of executing this request, the server is
  3984. guaranteed to flush all cached information about fonts for
  3985. which there currently are no explicit resource IDs allo-
  3986. cated.
  3987.  
  3988. The meaning of an error from this request is system spe-
  3989. cific.
  3990.  
  3991.  
  3992. __
  3993. |    GetFontPath
  3994.  
  3995.    ->
  3996.  
  3997. |__    path: LISTofSTRING8
  3998.  
  3999.  
  4000. This request returns the current search path for fonts.
  4001.  
  4002.  
  4003. __
  4004. |    CreatePixmap
  4005.  
  4006.   pid: PIXMAP
  4007.   drawable: DRAWABLE
  4008.   depth: CARD8
  4009.   width, height: CARD16
  4010.  
  4011. |__    Errors: Alloc, Drawable, IDChoice, Value
  4012.  
  4013.  
  4014. This request creates a pixmap and assigns the identifier pid
  4015. to it.    The width and height must be nonzero (or a Value
  4016. error results).  The depth must be one of the depths sup-
  4017. ported by the root of the specified drawable (or a Value
  4018. error results).  The initial contents of the pixmap are
  4019. undefined.
  4020.  
  4021.  
  4022.  
  4023.  
  4024.                  57
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030. X Protocol                    X11, Release 6.4
  4031.  
  4032.  
  4033. It is legal to pass an InputOnly window as a drawable to
  4034. this request.
  4035.  
  4036.  
  4037. __
  4038. |    FreePixmap
  4039.  
  4040.   pixmap: PIXMAP
  4041.  
  4042. |__    Errors: Pixmap
  4043.  
  4044.  
  4045. This request deletes the association between the resource ID
  4046. and the pixmap.  The pixmap storage will be freed when no
  4047. other resource references it.
  4048.  
  4049.  
  4050. __
  4051. |    CreateGC
  4052.  
  4053.   cid: GCONTEXT
  4054.   drawable: DRAWABLE
  4055.   value-mask: BITMASK
  4056.   value-list: LISTofVALUE
  4057.  
  4058.   Errors: Alloc, Drawable, Font, IDChoice, Match, Pixmap,
  4059. |__    Value
  4060.  
  4061.  
  4062. This request creates a graphics context and assigns the
  4063. identifier cid to it.  The gcontext can be used with any
  4064. destination drawable having the same root and depth as the
  4065. specified drawable; use with other drawables results in a
  4066. Match error.
  4067.  
  4068. The value-mask and value-list specify which components are
  4069. to be explicitly initialized.  The context components are:
  4070.  
  4071. -------------------------------------------------------------
  4072. Component      Type
  4073. -------------------------------------------------------------
  4074. function      {Clear, And, AndReverse, Copy,
  4075.           AndInverted, NoOp, Xor,
  4076.             Or, Nor, Equiv, Invert, OrReverse,
  4077.           CopyInverted,
  4078.             OrInverted, Nand, Set}
  4079. plane-mask      CARD32
  4080. foreground      CARD32
  4081. background      CARD32
  4082. line-width      CARD16
  4083. line-style      {Solid, OnOffDash, DoubleDash}
  4084. cap-style      {NotLast, Butt, Round, Projecting}
  4085. join-style      {Miter, Round, Bevel}
  4086.  
  4087.  
  4088.  
  4089.  
  4090.                  58
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096. X Protocol                    X11, Release 6.4
  4097.  
  4098.  
  4099. -------------------------------------------------------------
  4100. Component      Type
  4101. -------------------------------------------------------------
  4102. fill-style      {Solid, Tiled, OpaqueStippled, Stippled}
  4103. fill-rule      {EvenOdd, Winding}
  4104. arc-mode      {Chord, PieSlice}
  4105. tile          PIXMAP
  4106. stipple       PIXMAP
  4107. tile-stipple-x-   INT16
  4108. origin
  4109. tile-stipple-y-   INT16
  4110. origin
  4111. font          FONT
  4112. subwindow-mode      {ClipByChildren, IncludeInferiors}
  4113. graphics-expo-      BOOL
  4114. sures
  4115. clip-x-origin      INT16
  4116. clip-y-origin      INT16
  4117. clip-mask      PIXMAP or None
  4118. dash-offset      CARD16
  4119. dashes          CARD8
  4120. -------------------------------------------------------------
  4121.  
  4122.  
  4123. In graphics operations, given a source and destination
  4124. pixel, the result is computed bitwise on corresponding bits
  4125. of the pixels; that is, a Boolean operation is performed in
  4126. each bit plane.  The plane-mask restricts the operation to a
  4127. subset of planes, so the result is:
  4128.  
  4129.  
  4130.      ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))
  4131.  
  4132.  
  4133. Range checking is not performed on the values for fore-
  4134. ground, background, or plane-mask.  They are simply trun-
  4135. cated to the appropriate number of bits.
  4136.  
  4137. The meanings of the functions are:
  4138.  
  4139. ---------------------------------------
  4140. Function      Operation
  4141. ---------------------------------------
  4142. Clear          0
  4143. And          src AND dst
  4144. AndReverse      src AND (NOT dst)
  4145. Copy          src
  4146. AndInverted      (NOT src) AND dst
  4147. NoOp          dst
  4148. Xor          src XOR dst
  4149. Or          src OR dst
  4150. Nor          (NOT src) AND (NOT
  4151.           dst)
  4152.  
  4153.  
  4154.  
  4155.  
  4156.                  59
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162. X Protocol                    X11, Release 6.4
  4163.  
  4164.  
  4165. Equiv          (NOT src) XOR dst
  4166. Invert          NOT dst
  4167. OrReverse      src OR (NOT dst)
  4168. CopyInverted      NOT src
  4169. OrInverted      (NOT src) OR dst
  4170. Nand          (NOT src) OR (NOT
  4171.           dst)
  4172. Set          1
  4173. ---------------------------------------
  4174.  
  4175.  
  4176. The line-width is measured in pixels and can be greater than
  4177. or equal to one, a wide line, or the special value zero, a
  4178. thin line.
  4179.  
  4180. Wide lines are drawn centered on the path described by the
  4181. graphics request.  Unless otherwise specified by the join or
  4182. cap style, the bounding box of a wide line with endpoints
  4183. [x1, y1], [x2, y2] and width w is a rectangle with vertices
  4184. at the following real coordinates:
  4185.  
  4186.      [x1-(w*sn/2), y1+(w*cs/2)], [x1+(w*sn/2), y1-(w*cs/2)],
  4187.      [x2-(w*sn/2), y2+(w*cs/2)], [x2+(w*sn/2), y2-(w*cs/2)]
  4188.  
  4189.  
  4190. The sn is the sine of the angle of the line and cs is the
  4191. cosine of the angle of the line.  A pixel is part of the
  4192. line (and hence drawn) if the center of the pixel is fully
  4193. inside the bounding box, which is viewed as having
  4194. infinitely thin edges.    If the center of the pixel is
  4195. exactly on the bounding box, it is part of the line if and
  4196. only if the interior is immediately to its right (x increas-
  4197. ing direction).  Pixels with centers on a horizontal edge
  4198. are a special case and are part of the line if and only if
  4199. the interior or the boundary is immediately below (y
  4200. increasing direction) and if the interior or the boundary is
  4201. immediately to the right (x increasing direction).  Note
  4202. that this description is a mathematical model describing the
  4203. pixels that are drawn for a wide line and does not imply
  4204. that trigonometry is required to implement such a model.
  4205. Real or fixed point arithmetic is recommended for computing
  4206. the corners of the line endpoints for lines greater than one
  4207. pixel in width.
  4208.  
  4209. Thin lines (zero line-width) are nominally one pixel wide
  4210. lines drawn using an unspecified, device-dependent algo-
  4211. rithm.    There are only two constraints on this algorithm.
  4212. First, if a line is drawn unclipped from [x1,y1] to [x2,y2]
  4213. and another line is drawn unclipped from [x1+dx,y1+dy] to
  4214. [x2+dx,y2+dy], then a point [x,y] is touched by drawing the
  4215. first line if and only if the point [x+dx,y+dy] is touched
  4216. by drawing the second line.  Second, the effective set of
  4217. points comprising a line cannot be affected by clipping.
  4218. Thus, a point is touched in a clipped line if and only if
  4219.  
  4220.  
  4221.  
  4222.                  60
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228. X Protocol                    X11, Release 6.4
  4229.  
  4230.  
  4231. the point lies inside the clipping region and the point
  4232. would be touched by the line when drawn unclipped.
  4233.  
  4234. Note that a wide line drawn from [x1,y1] to [x2,y2] always
  4235. draws the same pixels as a wide line drawn from [x2,y2] to
  4236. [x1,y1], not counting cap-style and join-style.  Implemen-
  4237. tors are encouraged to make this property true for thin
  4238. lines, but it is not required.    A line-width of zero may
  4239. differ from a line-width of one in which pixels are drawn.
  4240. In general, drawing a thin line will be faster than drawing
  4241. a wide line of width one, but thin lines may not mix well
  4242. aesthetically with wide lines because of the different draw-
  4243. ing algorithms.  If it is desirable to obtain precise and
  4244. uniform results across all displays, a client should always
  4245. use a line-width of one, rather than a line-width of zero.
  4246.  
  4247. The line-style defines which sections of a line are drawn:
  4248.  
  4249. Solid         The full path of the line is drawn.
  4250. DoubleDash   The full path of the line is drawn, but the
  4251.          even dashes are filled differently than the odd
  4252.          dashes (see fill-style), with Butt cap-style
  4253.          used where even and odd dashes meet.
  4254. OnOffDash    Only the even dashes are drawn, and cap-style
  4255.          applies to all internal ends of the individual
  4256.          dashes (except NotLast is treated as Butt).
  4257.  
  4258.  
  4259. The cap-style defines how the endpoints of a path are drawn:
  4260.  
  4261. NotLast      The result is equivalent to Butt, except that
  4262.          for a line-width of zero the final endpoint is
  4263.          not drawn.
  4264. Butt         The result is square at the endpoint (perpen-
  4265.          dicular to the slope of the line) with no pro-
  4266.          jection beyond.
  4267. Round         The result is a circular arc with its diameter
  4268.          equal to the line-width, centered on the end-
  4269.          point; it is equivalent to Butt for line-width
  4270.          zero.
  4271. Projecting   The result is square at the end, but the path
  4272.          continues beyond the endpoint for a distance
  4273.          equal to half the line-width; it is equivalent
  4274.          to Butt for line-width zero.
  4275.  
  4276.  
  4277. The join-style defines how corners are drawn for wide lines:
  4278.  
  4279. Miter         The outer edges of the two lines extend to meet
  4280.          at an angle.  However, if the angle is less
  4281.          than 11 degrees, a Bevel join-style is used
  4282.          instead.
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.                  61
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294. X Protocol                    X11, Release 6.4
  4295.  
  4296.  
  4297. Round         The result is a circular arc with a diameter
  4298.          equal to the line-width, centered on the join-
  4299.          point.
  4300. Bevel         The result is Butt endpoint styles, and then
  4301.          the triangular notch is filled.
  4302.  
  4303.  
  4304. For a line with coincident endpoints (x1=x2, y1=y2), when
  4305. the cap-style is applied to both endpoints, the semantics
  4306. depends on the line-width and the cap-style:
  4307.  
  4308. NotLast      thin    This is device-dependent, but the desired
  4309.              effect is that nothing is drawn.
  4310. Butt         thin    This is device-dependent, but the desired
  4311.              effect is that a single pixel is drawn.
  4312. Round         thin    This is the same as Butt/thin.
  4313. Projecting   thin    This is the same as Butt/thin.
  4314. Butt         wide    Nothing is drawn.
  4315. Round         wide    The closed path is a circle, centered at
  4316.              the endpoint and with a diameter equal to
  4317.              the line-width.
  4318. Projecting   wide    The closed path is a square, aligned with
  4319.              the coordinate axes, centered at the end-
  4320.              point and with sides equal to the line-
  4321.              width.
  4322.  
  4323.  
  4324. For a line with coincident endpoints (x1=x2, y1=y2), when
  4325. the join-style is applied at one or both endpoints, the
  4326. effect is as if the line was removed from the overall path.
  4327. However, if the total path consists of (or is reduced to) a
  4328. single point joined with itself, the effect is the same as
  4329. when the cap-style is applied at both endpoints.
  4330.  
  4331. The tile/stipple represents an infinite two-dimensional
  4332. plane with the tile/stipple replicated in all dimensions.
  4333. When that plane is superimposed on the drawable for use in a
  4334. graphics operation, the upper-left corner of some instance
  4335. of the tile/stipple is at the coordinates within the draw-
  4336. able specified by the tile/stipple origin.  The tile/stipple
  4337. and clip origins are interpreted relative to the origin of
  4338. whatever destination drawable is specified in a graphics
  4339. request.
  4340.  
  4341. The tile pixmap must have the same root and depth as the
  4342. gcontext (or a Match error results).  The stipple pixmap
  4343. must have depth one and must have the same root as the gcon-
  4344. text (or a Match error results).  For fill-style Stippled
  4345. (but not fill-style OpaqueStippled), the stipple pattern is
  4346. tiled in a single plane and acts as an additional clip mask
  4347. to be ANDed with the clip-mask.  Any size pixmap can be used
  4348. for tiling or stippling, although some sizes may be faster
  4349. to use than others.
  4350.  
  4351.  
  4352.  
  4353.  
  4354.                  62
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360. X Protocol                    X11, Release 6.4
  4361.  
  4362.  
  4363. The fill-style defines the contents of the source for line,
  4364. text, and fill requests.  For all text and fill requests
  4365. (for example, PolyText8, PolyText16, PolyFillRectangle,
  4366. FillPoly, and PolyFillArc) as well as for line requests with
  4367. line-style Solid, (for example, PolyLine, PolySegment,
  4368. PolyRectangle, PolyArc) and for the even dashes for line
  4369. requests with line-style OnOffDash or DoubleDash:
  4370.  
  4371. Solid           Foreground
  4372. Tiled           Tile
  4373. OpaqueStip-    A tile with the same width and height as
  4374. pled           stipple but with background everywhere stip-
  4375.            ple has a zero and with foreground everywhere
  4376.            stipple has a one
  4377. Stippled       Foreground masked by stipple
  4378.  
  4379.  
  4380. For the odd dashes for line requests with line-style
  4381. DoubleDash:
  4382.  
  4383. Solid           Background
  4384. Tiled           Same as for even dashes
  4385. OpaqueStip-    Same as for even dashes
  4386. pled
  4387. Stippled       Background masked by stipple
  4388.  
  4389.  
  4390. The dashes value allowed here is actually a simplified form
  4391. of the more general patterns that can be set with SetDashes.
  4392. Specifying a value of N here is equivalent to specifying the
  4393. two element list [N, N] in SetDashes.  The value must be
  4394. nonzero (or a Value error results).  The meaning of dash-
  4395. offset and dashes are explained in the SetDashes request.
  4396.  
  4397. The clip-mask restricts writes to the destination drawable.
  4398. Only pixels where the clip-mask has bits set to 1 are drawn.
  4399. Pixels are not drawn outside the area covered by the clip-
  4400. mask or where the clip-mask has bits set to 0.    The clip-
  4401. mask affects all graphics requests, but it does not clip
  4402. sources.  The clip-mask origin is interpreted relative to
  4403. the origin of whatever destination drawable is specified in
  4404. a graphics request.  If a pixmap is specified as the clip-
  4405. mask, it must have depth 1 and have the same root as the
  4406. gcontext (or a Match error results).  If clip-mask is None,
  4407. then pixels are always drawn, regardless of the clip origin.
  4408. The clip-mask can also be set with the SetClipRectangles
  4409. request.
  4410.  
  4411. For ClipByChildren, both source and destination windows are
  4412. additionally clipped by all viewable InputOutput children.
  4413. For IncludeInferiors, neither source nor destination window
  4414. is clipped by inferiors.  This will result in including sub-
  4415. window contents in the source and drawing through subwindow
  4416. boundaries of the destination.    The use of IncludeInferiors
  4417.  
  4418.  
  4419.  
  4420.                  63
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426. X Protocol                    X11, Release 6.4
  4427.  
  4428.  
  4429. with a source or destination window of one depth with mapped
  4430. inferiors of differing depth is not illegal, but the seman-
  4431. tics is undefined by the core protocol.
  4432.  
  4433. The fill-rule defines what pixels are inside (that is, are
  4434. drawn) for paths given in FillPoly requests.  EvenOdd means
  4435. a point is inside if an infinite ray with the point as ori-
  4436. gin crosses the path an odd number of times.  For Winding, a
  4437. point is inside if an infinite ray with the point as origin
  4438. crosses an unequal number of clockwise and counterclockwise
  4439. directed path segments.  A clockwise directed path segment
  4440. is one that crosses the ray from left to right as observed
  4441. from the point.  A counter-clockwise segment is one that
  4442. crosses the ray from right to left as observed from the
  4443. point.    The case where a directed line segment is coincident
  4444. with the ray is uninteresting because one can simply choose
  4445. a different ray that is not coincident with a segment.
  4446.  
  4447. For both fill rules, a point is infinitely small and the
  4448. path is an infinitely thin line.  A pixel is inside if the
  4449. center point of the pixel is inside and the center point is
  4450. not on the boundary.  If the center point is on the bound-
  4451. ary, the pixel is inside if and only if the polygon interior
  4452. is immediately to its right (x increasing direction).  Pix-
  4453. els with centers along a horizontal edge are a special case
  4454. and are inside if and only if the polygon interior is imme-
  4455. diately below (y increasing direction).
  4456.  
  4457. The arc-mode controls filling in the PolyFillArc request.
  4458.  
  4459. The graphics-exposures flag controls GraphicsExposure event
  4460. generation for CopyArea and CopyPlane requests (and any sim-
  4461. ilar requests defined by extensions).
  4462.  
  4463. The default component values are:
  4464.  
  4465. ---------------------------------------------------------------
  4466. Component          Default
  4467. ---------------------------------------------------------------
  4468. function          Copy
  4469. plane-mask          all ones
  4470. foreground          0
  4471. background          1
  4472. line-width          0
  4473. line-style          Solid
  4474. cap-style          Butt
  4475. join-style          Miter
  4476. fill-style          Solid
  4477. fill-rule          EvenOdd
  4478. arc-mode          PieSlice
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.                  64
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492. X Protocol                    X11, Release 6.4
  4493.  
  4494.  
  4495. ---------------------------------------------------------------
  4496. Component          Default
  4497. ---------------------------------------------------------------
  4498. tile              Pixmap of unspecified size filled with
  4499.               foreground pixel
  4500.               (that is, client specified pixel if any,
  4501.               else 0)
  4502.               (subsequent changes to foreground do not
  4503.               affect this pixmap)
  4504. stipple           Pixmap of unspecified size filled with
  4505.               ones
  4506. tile-stipple-x-ori-   0
  4507. gin
  4508. tile-stipple-y-ori-   0
  4509. gin
  4510. font              <server-dependent-font>
  4511. subwindow-mode          ClipByChildren
  4512. graphics-exposures    True
  4513. clip-x-origin          0
  4514. clip-y-origin          0
  4515. clip-mask          None
  4516. dash-offset          0
  4517. dashes              4 (that is, the list [4, 4])
  4518. ---------------------------------------------------------------
  4519.  
  4520.  
  4521. Storing a pixmap in a gcontext might or might not result in
  4522. a copy being made.  If the pixmap is later used as the des-
  4523. tination for a graphics request, the change might or might
  4524. not be reflected in the gcontext.  If the pixmap is used
  4525. simultaneously in a graphics request as both a destination
  4526. and as a tile or stipple, the results are not defined.
  4527.  
  4528. It is quite likely that some amount of gcontext information
  4529. will be cached in display hardware and that such hardware
  4530. can only cache a small number of gcontexts.  Given the num-
  4531. ber and complexity of components, clients should view
  4532. switching between gcontexts with nearly identical state as
  4533. significantly more expensive than making minor changes to a
  4534. single gcontext.
  4535.  
  4536.  
  4537. __
  4538. |    ChangeGC
  4539.  
  4540.   gc: GCONTEXT
  4541.   value-mask: BITMASK
  4542.   value-list: LISTofVALUE
  4543.  
  4544. |__    Errors: Alloc, Font, GContext, Match, Pixmap, Value
  4545.  
  4546.  
  4547. This request changes components in gc.    The value-mask and
  4548. value-list specify which components are to be changed.    The
  4549.  
  4550.  
  4551.  
  4552.                  65
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558. X Protocol                    X11, Release 6.4
  4559.  
  4560.  
  4561. values and restrictions are the same as for CreateGC.
  4562.  
  4563. Changing the clip-mask also overrides any previous Set-
  4564. ClipRectangles request on the context.    Changing dash-offset
  4565. or dashes overrides any previous SetDashes request on the
  4566. context.
  4567.  
  4568. The order in which components are verified and altered is
  4569. server-dependent.  If an error is generated, a subset of the
  4570. components may have been altered.
  4571.  
  4572.  
  4573. __
  4574. |    CopyGC
  4575.  
  4576.   src-gc, dst-gc: GCONTEXT
  4577.   value-mask: BITMASK
  4578.  
  4579. |__    Errors: Alloc, GContext, Match, Value
  4580.  
  4581.  
  4582. This request copies components from src-gc to dst-gc.  The
  4583. value-mask specifies which components to copy, as for
  4584. CreateGC.  The two gcontexts must have the same root and the
  4585. same depth (or a Match error results).
  4586.  
  4587.  
  4588. __
  4589. |    SetDashes
  4590.  
  4591.   gc: GCONTEXT
  4592.   dash-offset: CARD16
  4593.   dashes: LISTofCARD8
  4594.  
  4595. |__    Errors: Alloc, GContext, Value
  4596.  
  4597.  
  4598. This request sets dash-offset and dashes in gc for dashed
  4599. line styles.  Dashes cannot be empty (or a Value error
  4600. results).  Specifying an odd-length list is equivalent to
  4601. specifying the same list concatenated with itself to produce
  4602. an even-length list.  The initial and alternating elements
  4603. of dashes are the even dashes; the others are the odd
  4604. dashes.  Each element specifies a dash length in pixels.
  4605. All of the elements must be nonzero (or a Value error
  4606. results).  The dash-offset defines the phase of the pattern,
  4607. specifying how many pixels into dashes the pattern should
  4608. actually begin in any single graphics request.    Dashing is
  4609. continuous through path elements combined with a join-style
  4610. but is reset to the dash-offset between each sequence of
  4611. joined lines.
  4612.  
  4613. The unit of measure for dashes is the same as in the ordi-
  4614. nary coordinate system.  Ideally, a dash length is measured
  4615.  
  4616.  
  4617.  
  4618.                  66
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624. X Protocol                    X11, Release 6.4
  4625.  
  4626.  
  4627. along the slope of the line, but implementations are only
  4628. required to match this ideal for horizontal and vertical
  4629. lines.    Failing the ideal semantics, it is suggested that
  4630. the length be measured along the major axis of the line.
  4631. The major axis is defined as the x axis for lines drawn at
  4632. an angle of between -45 and +45 degrees or between 135 and
  4633. 225 degrees from the x axis.  For all other lines, the major
  4634. axis is the y axis.
  4635.  
  4636. For any graphics primitive, the computation of the endpoint
  4637. of an individual dash only depends on the geometry of the
  4638. primitive, the start position of the dash, the direction of
  4639. the dash, and the dash length.
  4640.  
  4641. For any graphics primitive, the total set of pixels used to
  4642. render the primitive (both even and odd numbered dash ele-
  4643. ments) with DoubleDash line-style is the same as the set of
  4644. pixels used to render the primitive with Solid line-style.
  4645.  
  4646. For any graphics primitive, if the primitive is drawn with
  4647. OnOffDash or DoubleDash line-style unclipped at position
  4648. [x,y] and again at position [x+dx,y+dy], then a point
  4649. [x1,y1] is included in a dash in the first instance if and
  4650. only if the point [x1+dx,y1+dy] is included in the dash in
  4651. the second instance.  In addition, the effective set of
  4652. points comprising a dash cannot be affected by clipping.  A
  4653. point is included in a clipped dash if and only if the point
  4654. lies inside the clipping region and the point would be
  4655. included in the dash when drawn unclipped.
  4656.  
  4657.  
  4658. __
  4659. |    SetClipRectangles
  4660.  
  4661.   gc: GCONTEXT
  4662.   clip-x-origin, clip-y-origin: INT16
  4663.   rectangles: LISTofRECTANGLE
  4664.   ordering: {UnSorted, YSorted, YXSorted, YXBanded}
  4665.  
  4666. |__    Errors: Alloc, GContext, Match, Value
  4667.  
  4668.  
  4669. This request changes clip-mask in gc to the specified list
  4670. of rectangles and sets the clip origin.  Output will be
  4671. clipped to remain contained within the rectangles.  The clip
  4672. origin is interpreted relative to the origin of whatever
  4673. destination drawable is specified in a graphics request.
  4674. The rectangle coordinates are interpreted relative to the
  4675. clip origin.  The rectangles should be nonintersecting, or
  4676. graphics results will be undefined.  Note that the list of
  4677. rectangles can be empty, which effectively disables output.
  4678. This is the opposite of passing None as the clip-mask in
  4679. CreateGC and ChangeGC.
  4680.  
  4681.  
  4682.  
  4683.  
  4684.                  67
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690. X Protocol                    X11, Release 6.4
  4691.  
  4692.  
  4693. If known by the client, ordering relations on the rectangles
  4694. can be specified with the ordering argument.  This may pro-
  4695. vide faster operation by the server.  If an incorrect order-
  4696. ing is specified, the server may generate a Match error, but
  4697. it is not required to do so.  If no error is generated, the
  4698. graphics results are undefined.  UnSorted means that the
  4699. rectangles are in arbitrary order.  YSorted means that the
  4700. rectangles are nondecreasing in their Y origin.  YXSorted
  4701. additionally constrains YSorted order in that all rectangles
  4702. with an equal Y origin are nondecreasing in their X origin.
  4703. YXBanded additionally constrains YXSorted by requiring that,
  4704. for every possible Y scanline, all rectangles that include
  4705. that scanline have identical Y origins and Y extents.
  4706.  
  4707.  
  4708. __
  4709. |    FreeGC
  4710.  
  4711.   gc: GCONTEXT
  4712.  
  4713. |__    Errors: GContext
  4714.  
  4715.  
  4716. This request deletes the association between the resource ID
  4717. and the gcontext and destroys the gcontext.
  4718.  
  4719.  
  4720. __
  4721. |    ClearArea
  4722.  
  4723.   window: WINDOW
  4724.   x, y: INT16
  4725.   width, height: CARD16
  4726.   exposures: BOOL
  4727.  
  4728. |__    Errors: Match, Value, Window
  4729.  
  4730.  
  4731. The x and y coordinates are relative to the window's origin
  4732. and specify the upper-left corner of the rectangle.  If
  4733. width is zero, it is replaced with the current width of the
  4734. window minus x.  If height is zero, it is replaced with the
  4735. current height of the window minus y.  If the window has a
  4736. defined background tile, the rectangle is tiled with a
  4737. plane-mask of all ones and function of Copy and a subwindow-
  4738. mode of ClipByChildren.  If the window has background None,
  4739. the contents of the window are not changed.  In either case,
  4740. if exposures is True, then one or more exposure events are
  4741. generated for regions of the rectangle that are either visi-
  4742. ble or are being retained in a backing store.
  4743.  
  4744. It is a Match error to use an InputOnly window in this
  4745. request.
  4746.  
  4747.  
  4748.  
  4749.  
  4750.                  68
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756. X Protocol                    X11, Release 6.4
  4757.  
  4758. __
  4759. |    CopyArea
  4760.  
  4761.   src-drawable, dst-drawable: DRAWABLE
  4762.   gc: GCONTEXT
  4763.   src-x, src-y: INT16
  4764.   width, height: CARD16
  4765.   dst-x, dst-y: INT16
  4766.  
  4767. |__    Errors: Drawable, GContext, Match
  4768.  
  4769.  
  4770. This request combines the specified rectangle of src-draw-
  4771. able with the specified rectangle of dst-drawable.  The src-
  4772. x and src-y coordinates are relative to src-drawable's ori-
  4773. gin.  The dst-x and dst-y are relative to dst-drawable's
  4774. origin, each pair specifying the upper-left corner of the
  4775. rectangle.  The src-drawable must have the same root and the
  4776. same depth as dst-drawable (or a Match error results).
  4777.  
  4778. If regions of the source rectangle are obscured and have not
  4779. been retained in backing store or if regions outside the
  4780. boundaries of the source drawable are specified, then those
  4781. regions are not copied, but the following occurs on all cor-
  4782. responding destination regions that are either visible or
  4783. are retained in backing-store.    If the dst-drawable is a
  4784. window with a background other than None, these correspond-
  4785. ing destination regions are tiled (with plane-mask of all
  4786. ones and function Copy) with that background.  Regardless of
  4787. tiling and whether the destination is a window or a pixmap,
  4788. if graphics-exposures in gc is True, then GraphicsExposure
  4789. events for all corresponding destination regions are gener-
  4790. ated.
  4791.  
  4792. If graphics-exposures is True but no GraphicsExposure events
  4793. are generated, then a NoExposure event is generated.
  4794.  
  4795. GC components: function, plane-mask, subwindow-mode, graph-
  4796. ics-exposures, clip-x-origin, clip-y-origin, clip-mask
  4797.  
  4798.  
  4799. __
  4800. |    CopyPlane
  4801.  
  4802.   src-drawable, dst-drawable: DRAWABLE
  4803.   gc: GCONTEXT
  4804.   src-x, src-y: INT16
  4805.   width, height: CARD16
  4806.   dst-x, dst-y: INT16
  4807.   bit-plane: CARD32
  4808.  
  4809. |__    Errors: Drawable, GContext, Match, Value
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.                  69
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822. X Protocol                    X11, Release 6.4
  4823.  
  4824.  
  4825. The src-drawable must have the same root as dst-drawable (or
  4826. a Match error results), but it need not have the same depth.
  4827. The bit-plane must have exactly one bit set to 1 and the
  4828. value of bit-plane must be less than 2n where n is the depth
  4829. of src-drawable (or a Value error results).  Effectively, a
  4830. pixmap of the same depth as dst-drawable and with size spec-
  4831. ified by the source region is formed using the fore-
  4832. ground/background pixels in gc (foreground everywhere the
  4833. bit-plane in src-drawable contains a bit set to 1, back-
  4834. ground everywhere the bit-plane contains a bit set to 0),
  4835. and the equivalent of a CopyArea is performed, with all the
  4836. same exposure semantics.  This can also be thought of as
  4837. using the specified region of the source bit-plane as a
  4838. stipple with a fill-style of OpaqueStippled for filling a
  4839. rectangular area of the destination.
  4840.  
  4841. GC components: function, plane-mask, foreground, background,
  4842. subwindow-mode, graphics-exposures, clip-x-origin, clip-y-
  4843. origin, clip-mask
  4844.  
  4845.  
  4846. __
  4847. |    PolyPoint
  4848.  
  4849.   drawable: DRAWABLE
  4850.   gc: GCONTEXT
  4851.   coordinate-mode: {Origin, Previous}
  4852.   points: LISTofPOINT
  4853.  
  4854. |__    Errors: Drawable, GContext, Match, Value
  4855.  
  4856.  
  4857. This request combines the foreground pixel in gc with the
  4858. pixel at each point in the drawable.  The points are drawn
  4859. in the order listed.
  4860.  
  4861. The first point is always relative to the drawable's origin.
  4862. The rest are relative either to that origin or the previous
  4863. point, depending on the coordinate-mode.
  4864.  
  4865. GC components: function, plane-mask, foreground, subwindow-
  4866. mode, clip-x-origin, clip-y-origin, clip-mask
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.                  70
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888. X Protocol                    X11, Release 6.4
  4889.  
  4890. __
  4891. |    PolyLine
  4892.  
  4893.   drawable: DRAWABLE
  4894.   gc: GCONTEXT
  4895.   coordinate-mode: {Origin, Previous}
  4896.   points: LISTofPOINT
  4897.  
  4898. |__    Errors: Drawable, GContext, Match, Value
  4899.  
  4900.  
  4901. This request draws lines between each pair of points
  4902. (point[i], point[i+1]).  The lines are drawn in the order
  4903. listed.  The lines join correctly at all intermediate
  4904. points, and if the first and last points coincide, the first
  4905. and last lines also join correctly.
  4906.  
  4907. For any given line, no pixel is drawn more than once.  If
  4908. thin (zero line-width) lines intersect, the intersecting
  4909. pixels are drawn multiple times.  If wide lines intersect,
  4910. the intersecting pixels are drawn only once, as though the
  4911. entire PolyLine were a single filled shape.
  4912.  
  4913. The first point is always relative to the drawable's origin.
  4914. The rest are relative either to that origin or the previous
  4915. point, depending on the coordinate-mode.
  4916.  
  4917. When either of the two lines involved in a Bevel join is
  4918. neither vertical nor horizontal, then the slope and position
  4919. of the line segment defining the bevel join edge is imple-
  4920. mentation dependent.  However, the computation of the slope
  4921. and distance (relative to the join point) only depends on
  4922. the line width and the slopes of the two lines.
  4923.  
  4924. GC components: function, plane-mask, line-width, line-style,
  4925. cap-style, join-style, fill-style, subwindow-mode, clip-x-
  4926. origin, clip-y-origin, clip-mask
  4927.  
  4928. GC mode-dependent components: foreground, background, tile,
  4929. stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
  4930. offset, dashes
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.                  71
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954. X Protocol                    X11, Release 6.4
  4955.  
  4956. __
  4957. |    PolySegment
  4958.  
  4959.   drawable: DRAWABLE
  4960.   gc: GCONTEXT
  4961.   segments: LISTofSEGMENT
  4962.  
  4963.   where:
  4964.  
  4965.   SEGMENT: [x1, y1, x2, y2: INT16]
  4966.  
  4967. |__    Errors: Drawable, GContext, Match
  4968.  
  4969.  
  4970. For each segment, this request draws a line between [x1, y1]
  4971. and [x2, y2].  The lines are drawn in the order listed.  No
  4972. joining is performed at coincident endpoints.  For any given
  4973. line, no pixel is drawn more than once.  If lines intersect,
  4974. the intersecting pixels are drawn multiple times.
  4975.  
  4976. GC components: function, plane-mask, line-width, line-style,
  4977. cap-style, fill-style, subwindow-mode, clip-x-origin, clip-
  4978. y-origin, clip-mask
  4979.  
  4980. GC mode-dependent components: foreground, background, tile,
  4981. stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
  4982. offset, dashes
  4983.  
  4984.  
  4985. __
  4986. |    PolyRectangle
  4987.  
  4988.   drawable: DRAWABLE
  4989.   gc: GCONTEXT
  4990.   rectangles: LISTofRECTANGLE
  4991.  
  4992. |__    Errors: Drawable, GContext, Match
  4993.  
  4994.  
  4995. This request draws the outlines of the specified rectangles,
  4996. as if a five-point PolyLine were specified for each rectan-
  4997. gle:
  4998.  
  4999.  
  5000.      [x,y] [x+width,y] [x+width,y+height] [x,y+height] [x,y]
  5001.  
  5002.  
  5003. The x and y coordinates of each rectangle are relative to
  5004. the drawable's origin and define the upper-left corner of
  5005. the rectangle.
  5006.  
  5007. The rectangles are drawn in the order listed.  For any given
  5008. rectangle, no pixel is drawn more than once.  If rectangles
  5009. intersect, the intersecting pixels are drawn multiple times.
  5010.  
  5011.  
  5012.  
  5013.  
  5014.                  72
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020. X Protocol                    X11, Release 6.4
  5021.  
  5022.  
  5023. GC components: function, plane-mask, line-width, line-style,
  5024. cap-style, join-style, fill-style, subwindow-mode, clip-x-
  5025. origin, clip-y-origin, clip-mask
  5026.  
  5027. GC mode-dependent components: foreground, background, tile,
  5028. stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
  5029. offset, dashes
  5030.  
  5031.  
  5032. __
  5033. |    PolyArc
  5034.  
  5035.   drawable: DRAWABLE
  5036.   gc: GCONTEXT
  5037.   arcs: LISTofARC
  5038.  
  5039. |__    Errors: Drawable, GContext, Match
  5040.  
  5041.  
  5042. This request draws circular or elliptical arcs.  Each arc is
  5043. specified by a rectangle and two angles.  The angles are
  5044. signed integers in degrees scaled by 64, with positive indi-
  5045. cating counterclockwise motion and negative indicating
  5046. clockwise motion.  The start of the arc is specified by
  5047. angle1 relative to the three-o'clock position from the cen-
  5048. ter of the rectangle, and the path and extent of the arc is
  5049. specified by angle2 relative to the start of the arc.  If
  5050. the magnitude of angle2 is greater than 360 degrees, it is
  5051. truncated to 360 degrees.  The x and y coordinates of the
  5052. rectangle are relative to the origin of the drawable.  For
  5053. an arc specified as [x,y,w,h,a1,a2], the origin of the major
  5054. and minor axes is at [x+(w/2),y+(h/2)], and the infinitely
  5055. thin path describing the entire circle/ellipse intersects
  5056. the horizontal axis at [x,y+(h/2)] and [x+w,y+(h/2)] and
  5057. intersects the vertical axis at [x+(w/2),y] and
  5058. [x+(w/2),y+h].    These coordinates are not necessarily inte-
  5059. gral; that is, they are not truncated to discrete coordi-
  5060. nates.
  5061.  
  5062. For a wide line with line-width lw, the ideal bounding out-
  5063. lines for filling are given by the two infinitely thin paths
  5064. consisting of all points whose perpendicular distance from a
  5065. tangent to the path of the circle/ellipse is equal to lw/2
  5066. (which may be a fractional value).  When the width and
  5067. height of the arc are not equal and both are nonzero, then
  5068. the actual bounding outlines are implementation dependent.
  5069. However, the computation of the shape and position of the
  5070. bounding outlines (relative to the center of the arc) only
  5071. depends on the width and height of the arc and the line-
  5072. width.
  5073.  
  5074. The cap-style is applied the same as for a line correspond-
  5075. ing to the tangent of the circle/ellipse at the endpoint.
  5076. When the angle of an arc face is not an integral multiple of
  5077.  
  5078.  
  5079.  
  5080.                  73
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086. X Protocol                    X11, Release 6.4
  5087.  
  5088.  
  5089. 90 degrees, and the width and height of the arc are both are
  5090. nonzero, then the shape and position of the cap at that face
  5091. is implementation dependent.  However, for a Butt cap, the
  5092. face is defined by a straight line, and the computation of
  5093. the position (relative to the center of the arc) and the
  5094. slope of the line only depends on the width and height of
  5095. the arc and the angle of the arc face.    For other cap
  5096. styles, the computation of the position (relative to the
  5097. center of the arc) and the shape of the cap only depends on
  5098. the width and height of the arc, the line-width, the angle
  5099. of the arc face, and the direction (clockwise or counter
  5100. clockwise) of the arc from the endpoint.
  5101.  
  5102. The join-style is applied the same as for two lines corre-
  5103. sponding to the tangents of the circles/ellipses at the join
  5104. point.    When the width and height of both arcs are nonzero,
  5105. and the angle of either arc face is not an integral multiple
  5106. of 90 degrees, then the shape of the join is implementation
  5107. dependent.  However, the computation of the shape only
  5108. depends on the width and height of each arc, the line-width,
  5109. the angles of the two arc faces, the direction (clockwise or
  5110. counter clockwise) of the arcs from the join point, and the
  5111. relative orientation of the two arc center points.
  5112.  
  5113. For an arc specified as [x,y,w,h,a1,a2], the angles must be
  5114. specified in the effectively skewed coordinate system of the
  5115. ellipse (for a circle, the angles and coordinate systems are
  5116. identical).  The relationship between these angles and
  5117. angles expressed in the normal coordinate system of the
  5118. screen (as measured with a protractor) is as follows:
  5119.  
  5120.      skewed-angle = atan(tan(normal-angle) * w/h) + adjust
  5121.  
  5122.  
  5123. The skewed-angle and normal-angle are expressed in radians
  5124. (rather than in degrees scaled by 64) in the range [0,2*PI).
  5125. The atan returns a value in the range [-PI/2,PI/2].  The
  5126. adjust is:
  5127.  
  5128.      0        for normal-angle in the range [0,PI/2)
  5129.      PI     for normal-angle in the range [PI/2,(3*PI)/2)
  5130.      2*PI   for normal-angle in the range [(3*PI)/2,2*PI)
  5131.  
  5132.  
  5133. The arcs are drawn in the order listed.  If the last point
  5134. in one arc coincides with the first point in the following
  5135. arc, the two arcs will join correctly.    If the first point
  5136. in the first arc coincides with the last point in the last
  5137. arc, the two arcs will join correctly.    For any given arc,
  5138. no pixel is drawn more than once.  If two arcs join cor-
  5139. rectly and the line-width is greater than zero and the arcs
  5140. intersect, no pixel is drawn more than once.  Otherwise, the
  5141. intersecting pixels of intersecting arcs are drawn multiple
  5142. times.    Specifying an arc with one endpoint and a clockwise
  5143.  
  5144.  
  5145.  
  5146.                  74
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152. X Protocol                    X11, Release 6.4
  5153.  
  5154.  
  5155. extent draws the same pixels as specifying the other end-
  5156. point and an equivalent counterclockwise extent, except as
  5157. it affects joins.
  5158.  
  5159. By specifying one axis to be zero, a horizontal or vertical
  5160. line can be drawn.
  5161.  
  5162. Angles are computed based solely on the coordinate system,
  5163. ignoring the aspect ratio.
  5164.  
  5165. GC components: function, plane-mask, line-width, line-style,
  5166. cap-style, join-style, fill-style, subwindow-mode, clip-x-
  5167. origin, clip-y-origin, clip-mask
  5168.  
  5169. GC mode-dependent components: foreground, background, tile,
  5170. stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
  5171. offset, dashes
  5172.  
  5173.  
  5174. __
  5175. |    FillPoly
  5176.  
  5177.   drawable: DRAWABLE
  5178.   gc: GCONTEXT
  5179.   shape: {Complex, Nonconvex, Convex}
  5180.   coordinate-mode: {Origin, Previous}
  5181.   points: LISTofPOINT
  5182.  
  5183. |__    Errors: Drawable, GContext, Match, Value
  5184.  
  5185.  
  5186. This request fills the region closed by the specified path.
  5187. The path is closed automatically if the last point in the
  5188. list does not coincide with the first point.  No pixel of
  5189. the region is drawn more than once.
  5190.  
  5191. The first point is always relative to the drawable's origin.
  5192. The rest are relative either to that origin or the previous
  5193. point, depending on the coordinate-mode.
  5194.  
  5195. The shape parameter may be used by the server to improve
  5196. performance.  Complex means the path may self-intersect.
  5197. Contiguous coincident points in the path are not treated as
  5198. self-intersection.
  5199.  
  5200. Nonconvex means the path does not self-intersect, but the
  5201. shape is not wholly convex.  If known by the client, speci-
  5202. fying Nonconvex over Complex may improve performance.  If
  5203. Nonconvex is specified for a self-intersecting path, the
  5204. graphics results are undefined.
  5205.  
  5206. Convex means that for every pair of points inside the poly-
  5207. gon, the line segment connecting them does not intersect the
  5208. path.  If known by the client, specifying Convex can improve
  5209.  
  5210.  
  5211.  
  5212.                  75
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218. X Protocol                    X11, Release 6.4
  5219.  
  5220.  
  5221. performance.  If Convex is specified for a path that is not
  5222. convex, the graphics results are undefined.
  5223.  
  5224. GC components: function, plane-mask, fill-style, fill-rule,
  5225. subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
  5226.  
  5227. GC mode-dependent components: foreground, background, tile,
  5228. stipple, tile-stipple-x-origin, tile-stipple-y-origin
  5229.  
  5230.  
  5231. __
  5232. |    PolyFillRectangle
  5233.  
  5234.   drawable: DRAWABLE
  5235.   gc: GCONTEXT
  5236.   rectangles: LISTofRECTANGLE
  5237.  
  5238. |__    Errors: Drawable, GContext, Match
  5239.  
  5240.  
  5241. This request fills the specified rectangles, as if a four-
  5242. point FillPoly were specified for each rectangle:
  5243.  
  5244.      [x,y] [x+width,y] [x+width,y+height] [x,y+height]
  5245.  
  5246.  
  5247. The x and y coordinates of each rectangle are relative to
  5248. the drawable's origin and define the upper-left corner of
  5249. the rectangle.
  5250.  
  5251. The rectangles are drawn in the order listed.  For any given
  5252. rectangle, no pixel is drawn more than once.  If rectangles
  5253. intersect, the intersecting pixels are drawn multiple times.
  5254.  
  5255. GC components: function, plane-mask, fill-style, subwindow-
  5256. mode, clip-x-origin, clip-y-origin, clip-mask
  5257.  
  5258. GC mode-dependent components: foreground, background, tile,
  5259. stipple, tile-stipple-x-origin, tile-stipple-y-origin
  5260.  
  5261.  
  5262. __
  5263. |    PolyFillArc
  5264.  
  5265.   drawable: DRAWABLE
  5266.   gc: GCONTEXT
  5267.   arcs: LISTofARC
  5268.  
  5269. |__    Errors: Drawable, GContext, Match
  5270.  
  5271.  
  5272. For each arc, this request fills the region closed by the
  5273. infinitely thin path described by the specified arc and one
  5274. or two line segments, depending on the arc-mode.  For Chord,
  5275.  
  5276.  
  5277.  
  5278.                  76
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284. X Protocol                    X11, Release 6.4
  5285.  
  5286.  
  5287. the single line segment joining the endpoints of the arc is
  5288. used.  For PieSlice, the two line segments joining the end-
  5289. points of the arc with the center point are used.
  5290.  
  5291. For an arc specified as [x,y,w,h,a1,a2], the origin of the
  5292. major and minor axes is at [x+(w/2),y+(h/2)], and the
  5293. infinitely thin path describing the entire circle/ellipse
  5294. intersects the horizontal axis at [x,y+(h/2)] and
  5295. [x+w,y+(h/2)] and intersects the vertical axis at
  5296. [x+(w/2),y] and [x+(w/2),y+h].    These coordinates are not
  5297. necessarily integral; that is, they are not truncated to
  5298. discrete coordinates.
  5299.  
  5300. The arc angles are interpreted as specified in the PolyArc
  5301. request.  When the angle of an arc face is not an integral
  5302. multiple of 90 degrees, then the precise endpoint on the arc
  5303. is implementation dependent.  However, for Chord arc-mode,
  5304. the computation of the pair of endpoints (relative to the
  5305. center of the arc) only depends on the width and height of
  5306. the arc and the angles of the two arc faces.  For PieSlice
  5307. arc-mode, the computation of an endpoint only depends on the
  5308. angle of the arc face for that endpoint and the ratio of the
  5309. arc width to arc height.
  5310.  
  5311. The arcs are filled in the order listed.  For any given arc,
  5312. no pixel is drawn more than once.  If regions intersect, the
  5313. intersecting pixels are drawn multiple times.
  5314.  
  5315. GC components: function, plane-mask, fill-style, arc-mode,
  5316. subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
  5317.  
  5318. GC mode-dependent components: foreground, background, tile,
  5319. stipple, tile-stipple-x-origin, tile-stipple-y-origin
  5320.  
  5321.  
  5322. __
  5323. |    PutImage
  5324.  
  5325.   drawable: DRAWABLE
  5326.   gc: GCONTEXT
  5327.   depth: CARD8
  5328.   width, height: CARD16
  5329.   dst-x, dst-y: INT16
  5330.   left-pad: CARD8
  5331.   format: {Bitmap, XYPixmap, ZPixmap}
  5332.   data: LISTofBYTE
  5333.  
  5334. |__    Errors: Drawable, GContext, Match, Value
  5335.  
  5336.  
  5337. This request combines an image with a rectangle of the draw-
  5338. able.  The dst-x and dst-y coordinates are relative to the
  5339. drawable's origin.
  5340.  
  5341.  
  5342.  
  5343.  
  5344.                  77
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350. X Protocol                    X11, Release 6.4
  5351.  
  5352.  
  5353. If Bitmap format is used, then depth must be one (or a Match
  5354. error results), and the image must be in XY format.  The
  5355. foreground pixel in gc defines the source for bits set to 1
  5356. in the image, and the background pixel defines the source
  5357. for the bits set to 0.
  5358.  
  5359. For XYPixmap and ZPixmap, the depth must match the depth of
  5360. the drawable (or a Match error results).  For XYPixmap, the
  5361. image must be sent in XY format.  For ZPixmap, the image
  5362. must be sent in the Z format defined for the given depth.
  5363.  
  5364. The left-pad must be zero for ZPixmap format (or a Match
  5365. error results).  For Bitmap and XYPixmap format, left-pad
  5366. must be less than bitmap-scanline-pad as given in the server
  5367. connection setup information (or a Match error results).
  5368. The first left-pad bits in every scanline are to be ignored
  5369. by the server.    The actual image begins that many bits into
  5370. the data.  The width argument defines the width of the
  5371. actual image and does not include left-pad.
  5372.  
  5373. GC components: function, plane-mask, subwindow-mode, clip-x-
  5374. origin, clip-y-origin, clip-mask
  5375.  
  5376. GC mode-dependent components: foreground, background
  5377.  
  5378.  
  5379. __
  5380. |    GetImage
  5381.  
  5382.   drawable: DRAWABLE
  5383.   x, y: INT16
  5384.   width, height: CARD16
  5385.   plane-mask: CARD32
  5386.   format: {XYPixmap, ZPixmap}
  5387.  
  5388.    ->
  5389.  
  5390.   depth: CARD8
  5391.   visual: VISUALID or None
  5392.   data: LISTofBYTE
  5393.  
  5394. |__    Errors: Drawable, Match, Value
  5395.  
  5396.  
  5397. This request returns the contents of the given rectangle of
  5398. the drawable in the given format.  The x and y coordinates
  5399. are relative to the drawable's origin and define the upper-
  5400. left corner of the rectangle.  If XYPixmap is specified,
  5401. only the bit planes specified in plane-mask are transmitted,
  5402. with the planes appearing from most significant to least
  5403. significant in bit order.  If ZPixmap is specified, then
  5404. bits in all planes not specified in plane-mask are transmit-
  5405. ted as zero.  Range checking is not performed on plane-mask;
  5406. extraneous bits are simply ignored.  The returned depth is
  5407.  
  5408.  
  5409.  
  5410.                  78
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416. X Protocol                    X11, Release 6.4
  5417.  
  5418.  
  5419. as specified when the drawable was created and is the same
  5420. as a depth component in a FORMAT structure (in the connec-
  5421. tion setup), not a bits-per-pixel component.  If the draw-
  5422. able is a window, its visual type is returned.    If the draw-
  5423. able is a pixmap, the visual is None.
  5424.  
  5425. If the drawable is a pixmap, then the given rectangle must
  5426. be wholly contained within the pixmap (or a Match error
  5427. results).  If the drawable is a window, the window must be
  5428. viewable, and it must be the case that, if there were no
  5429. inferiors or overlapping windows, the specified rectangle of
  5430. the window would be fully visible on the screen and wholly
  5431. contained within the outside edges of the window (or a Match
  5432. error results).  Note that the borders of the window can be
  5433. included and read with this request.  If the window has a
  5434. backing store, then the backing-store contents are returned
  5435. for regions of the window that are obscured by noninferior
  5436. windows; otherwise, the returned contents of such obscured
  5437. regions are undefined.    Also undefined are the returned con-
  5438. tents of visible regions of inferiors of different depth
  5439. than the specified window.  The pointer cursor image is not
  5440. included in the contents returned.
  5441.  
  5442. This request is not general-purpose in the same sense as
  5443. other graphics-related requests.  It is intended specifi-
  5444. cally for rudimentary hardcopy support.
  5445.  
  5446.  
  5447. __
  5448. |    PolyText8
  5449.  
  5450.   drawable: DRAWABLE
  5451.   gc: GCONTEXT
  5452.   x, y: INT16
  5453.   items: LISTofTEXTITEM8
  5454.  
  5455.   where:
  5456.  
  5457.   TEXTITEM8:   TEXTELT8 or FONT
  5458.    TEXTELT8:   [delta: INT8
  5459.         string: STRING8]
  5460.  
  5461.  
  5462. |__    Errors: Drawable, Font, GContext, Match
  5463.  
  5464.  
  5465. The x and y coordinates are relative to the drawable's ori-
  5466. gin and specify the baseline starting position (the initial
  5467. character origin).  Each text item is processed in turn.  A
  5468. font item causes the font to be stored in gc and to be used
  5469. for subsequent text.  Switching among fonts does not affect
  5470. the next character origin.  A text element delta specifies
  5471. an additional change in the position along the x axis before
  5472. the string is drawn; the delta is always added to the
  5473.  
  5474.  
  5475.  
  5476.                  79
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482. X Protocol                    X11, Release 6.4
  5483.  
  5484.  
  5485. character origin.  Each character image, as defined by the
  5486. font in gc, is treated as an additional mask for a fill
  5487. operation on the drawable.
  5488.  
  5489. All contained FONTs are always transmitted most significant
  5490. byte first.
  5491.  
  5492. If a Font error is generated for an item, the previous items
  5493. may have been drawn.
  5494.  
  5495. For fonts defined with 2-byte matrix indexing, each STRING8
  5496. byte is interpreted as a byte2 value of a CHAR2B with a
  5497. byte1 value of zero.
  5498.  
  5499. GC components: function, plane-mask, fill-style, font, sub-
  5500. window-mode, clip-x-origin, clip-y-origin, clip-mask
  5501.  
  5502. GC mode-dependent components: foreground, background, tile,
  5503. stipple, tile-stipple-x-origin, tile-stipple-y-origin
  5504.  
  5505.  
  5506. __
  5507. |    PolyText16
  5508.  
  5509.   drawable: DRAWABLE
  5510.   gc: GCONTEXT
  5511.   x, y: INT16
  5512.   items: LISTofTEXTITEM16
  5513.  
  5514.   where:
  5515.  
  5516.   TEXTITEM16:    TEXTELT16 or FONT
  5517.    TEXTELT16:    [delta: INT8
  5518.          string: STRING16]
  5519.  
  5520.  
  5521. |__    Errors: Drawable, Font, GContext, Match
  5522.  
  5523.  
  5524. This request is similar to PolyText8, except 2-byte (or
  5525. 16-bit) characters are used.  For fonts defined with linear
  5526. indexing rather than 2-byte matrix indexing, the server will
  5527. interpret each CHAR2B as a 16-bit number that has been
  5528. transmitted most significant byte first (that is, byte1 of
  5529. the CHAR2B is taken as the most significant byte).
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.                  80
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548. X Protocol                    X11, Release 6.4
  5549.  
  5550. __
  5551. |    ImageText8
  5552.  
  5553.   drawable: DRAWABLE
  5554.   gc: GCONTEXT
  5555.   x, y: INT16
  5556.   string: STRING8
  5557.  
  5558. |__    Errors: Drawable, GContext, Match
  5559.  
  5560.  
  5561. The x and y coordinates are relative to the drawable's ori-
  5562. gin and specify the baseline starting position (the initial
  5563. character origin).  The effect is first to fill a destina-
  5564. tion rectangle with the background pixel defined in gc and
  5565. then to paint the text with the foreground pixel.  The
  5566. upper-left corner of the filled rectangle is at:
  5567.  
  5568.      [x, y - font-ascent]
  5569.  
  5570.  
  5571. the width is:
  5572.  
  5573.      overall-width
  5574.  
  5575.  
  5576. and the height is:
  5577.  
  5578.      font-ascent + font-descent
  5579.  
  5580.  
  5581. The overall-width, font-ascent, and font-descent are as they
  5582. would be returned by a QueryTextExtents call using gc and
  5583. string.
  5584.  
  5585. The function and fill-style defined in gc are ignored for
  5586. this request.  The effective function is Copy, and the
  5587. effective fill-style Solid.
  5588.  
  5589. For fonts defined with 2-byte matrix indexing, each STRING8
  5590. byte is interpreted as a byte2 value of a CHAR2B with a
  5591. byte1 value of zero.
  5592.  
  5593. GC components: plane-mask, foreground, background, font,
  5594. subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.                  81
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614. X Protocol                    X11, Release 6.4
  5615.  
  5616. __
  5617. |    ImageText16
  5618.  
  5619.   drawable: DRAWABLE
  5620.   gc: GCONTEXT
  5621.   x, y: INT16
  5622.   string: STRING16
  5623.  
  5624. |__    Errors: Drawable, GContext, Match
  5625.  
  5626.  
  5627. This request is similar to ImageText8, except 2-byte (or
  5628. 16-bit) characters are used.  For fonts defined with linear
  5629. indexing rather than 2-byte matrix indexing, the server will
  5630. interpret each CHAR2B as a 16-bit number that has been
  5631. transmitted most significant byte first (that is, byte1 of
  5632. the CHAR2B is taken as the most significant byte).
  5633.  
  5634.  
  5635. __
  5636. |    CreateColormap
  5637.  
  5638.   mid: COLORMAP
  5639.   visual: VISUALID
  5640.   window: WINDOW
  5641.   alloc: {None, All}
  5642.  
  5643. |__    Errors: Alloc, IDChoice, Match, Value, Window
  5644.  
  5645.  
  5646. This request creates a colormap of the specified visual type
  5647. for the screen on which the window resides and associates
  5648. the identifier mid with it.  The visual type must be one
  5649. supported by the screen (or a Match error results).  The
  5650. initial values of the colormap entries are undefined for
  5651. classes GrayScale, PseudoColor, and DirectColor.  For
  5652. StaticGray, StaticColor, and TrueColor, the entries will
  5653. have defined values, but those values are specific to the
  5654. visual and are not defined by the core protocol.  For
  5655. StaticGray, StaticColor, and TrueColor, alloc must be speci-
  5656. fied as None (or a Match error results).  For the other
  5657. classes, if alloc is None, the colormap initially has no
  5658. allocated entries, and clients can allocate entries.
  5659.  
  5660. If alloc is All, then the entire colormap is allocated
  5661. writable.  The initial values of all allocated entries are
  5662. undefined.  For GrayScale and PseudoColor, the effect is as
  5663. if an AllocColorCells request returned all pixel values from
  5664. zero to N - 1, where N is the colormap-entries value in the
  5665. specified visual.  For DirectColor, the effect is as if an
  5666. AllocColorPlanes request returned a pixel value of zero and
  5667. red-mask, green-mask, and blue-mask values containing the
  5668. same bits as the corresponding masks in the specified
  5669. visual.  However, in all cases, none of these entries can be
  5670. freed with FreeColors.
  5671.  
  5672.  
  5673.  
  5674.                  82
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680. X Protocol                    X11, Release 6.4
  5681.  
  5682. __
  5683. |    FreeColormap
  5684.  
  5685.   cmap: COLORMAP
  5686.  
  5687. |__    Errors: Colormap
  5688.  
  5689.  
  5690. This request deletes the association between the resource ID
  5691. and the colormap and frees the colormap storage.  If the
  5692. colormap is an installed map for a screen, it is uninstalled
  5693. (see UninstallColormap request).  If the colormap is defined
  5694. as the colormap for a window (by means of CreateWindow or
  5695. ChangeWindowAttributes), the colormap for the window is
  5696. changed to None, and a ColormapNotify event is generated.
  5697. The protocol does not define the colors displayed for a win-
  5698. dow with a colormap of None.
  5699.  
  5700. This request has no effect on a default colormap for a
  5701. screen.
  5702.  
  5703.  
  5704. __
  5705. |    CopyColormapAndFree
  5706.  
  5707.   mid, src-cmap: COLORMAP
  5708.  
  5709. |__    Errors: Alloc, Colormap, IDChoice
  5710.  
  5711.  
  5712. This request creates a colormap of the same visual type and
  5713. for the same screen as src-cmap, and it associates identi-
  5714. fier mid with it.  It also moves all of the client's exist-
  5715. ing allocations from src-cmap to the new colormap with their
  5716. color values intact and their read-only or writable charac-
  5717. teristics intact, and it frees those entries in src-cmap.
  5718. Color values in other entries in the new colormap are unde-
  5719. fined.    If src-cmap was created by the client with alloc All
  5720. (see CreateColormap request), then the new colormap is also
  5721. created with alloc All, all color values for all entries are
  5722. copied from src-cmap, and then all entries in src-cmap are
  5723. freed.    If src-cmap was not created by the client with alloc
  5724. All, then the allocations to be moved are all those pixels
  5725. and planes that have been allocated by the client using
  5726. either AllocColor, AllocNamedColor, AllocColorCells, or
  5727. AllocColorPlanes and that have not been freed since they
  5728. were allocated.
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.                  83
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746. X Protocol                    X11, Release 6.4
  5747.  
  5748. __
  5749. |    InstallColormap
  5750.  
  5751.   cmap: COLORMAP
  5752.  
  5753. |__    Errors: Colormap
  5754.  
  5755.  
  5756. This request makes this colormap an installed map for its
  5757. screen.  All windows associated with this colormap immedi-
  5758. ately display with true colors.  As a side effect, addi-
  5759. tional colormaps might be implicitly installed or unin-
  5760. stalled by the server.    Which other colormaps get installed
  5761. or uninstalled is server-dependent except that the required
  5762. list must remain installed.
  5763.  
  5764. If cmap is not already an installed map, a ColormapNotify
  5765. event is generated on every window having cmap as an
  5766. attribute.  In addition, for every other colormap that is
  5767. installed or uninstalled as a result of the request, a Col-
  5768. ormapNotify event is generated on every window having that
  5769. colormap as an attribute.
  5770.  
  5771. At any time, there is a subset of the installed maps that
  5772. are viewed as an ordered list and are called the required
  5773. list.  The length of the required list is at most M, where M
  5774. is the min-installed-maps specified for the screen in the
  5775. connection setup.  The required list is maintained as fol-
  5776. lows.  When a colormap is an explicit argument to
  5777. InstallColormap, it is added to the head of the list; the
  5778. list is truncated at the tail, if necessary, to keep the
  5779. length of the list to at most M.  When a colormap is an
  5780. explicit argument to UninstallColormap and it is in the
  5781. required list, it is removed from the list.  A colormap is
  5782. not added to the required list when it is installed implic-
  5783. itly by the server, and the server cannot implicitly unin-
  5784. stall a colormap that is in the required list.
  5785.  
  5786. Initially the default colormap for a screen is installed
  5787. (but is not in the required list).
  5788.  
  5789.  
  5790. __
  5791. |    UninstallColormap
  5792.  
  5793.   cmap: COLORMAP
  5794.  
  5795. |__    Errors: Colormap
  5796.  
  5797.  
  5798. If cmap is on the required list for its screen (see Install-
  5799. Colormap request), it is removed from the list.  As a side
  5800. effect, cmap might be uninstalled, and additional colormaps
  5801. might be implicitly installed or uninstalled.  Which col-
  5802. ormaps get installed or uninstalled is server-dependent
  5803.  
  5804.  
  5805.  
  5806.                  84
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812. X Protocol                    X11, Release 6.4
  5813.  
  5814.  
  5815. except that the required list must remain installed.
  5816.  
  5817. If cmap becomes uninstalled, a ColormapNotify event is gen-
  5818. erated on every window having cmap as an attribute.  In
  5819. addition, for every other colormap that is installed or
  5820. uninstalled as a result of the request, a ColormapNotify
  5821. event is generated on every window having that colormap as
  5822. an attribute.
  5823.  
  5824.  
  5825. __
  5826. |    ListInstalledColormaps
  5827.  
  5828.   window: WINDOW
  5829.  
  5830.    ->
  5831.  
  5832.   cmaps: LISTofCOLORMAP
  5833.  
  5834. |__    Errors: Window
  5835.  
  5836.  
  5837. This request returns a list of the currently installed col-
  5838. ormaps for the screen of the specified window.    The order of
  5839. colormaps is not significant, and there is no explicit indi-
  5840. cation of the required list (see InstallColormap request).
  5841.  
  5842.  
  5843. __
  5844. |    AllocColor
  5845.  
  5846.   cmap: COLORMAP
  5847.   red, green, blue: CARD16
  5848.  
  5849.    ->
  5850.  
  5851.   pixel: CARD32
  5852.   red, green, blue: CARD16
  5853.  
  5854. |__    Errors: Alloc, Colormap
  5855.  
  5856.  
  5857. This request allocates a read-only colormap entry corre-
  5858. sponding to the closest RGB values provided by the hardware.
  5859. It also returns the pixel and the RGB values actually used.
  5860. Multiple clients requesting the same effective RGB values
  5861. can be assigned the same read-only entry, allowing entries
  5862. to be shared.
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  
  5872.                  85
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878. X Protocol                    X11, Release 6.4
  5879.  
  5880. __
  5881. |    AllocNamedColor
  5882.  
  5883.   cmap: COLORMAP
  5884.   name: STRING8
  5885.  
  5886.    ->
  5887.  
  5888.   pixel: CARD32
  5889.   exact-red, exact-green, exact-blue: CARD16
  5890.   visual-red, visual-green, visual-blue: CARD16
  5891.  
  5892. |__    Errors: Alloc, Colormap, Name
  5893.  
  5894.  
  5895. This request looks up the named color with respect to the
  5896. screen associated with the colormap.  Then, it does an
  5897. AllocColor on cmap.  The name should use the ISO Latin-1
  5898. encoding, and uppercase and lowercase do not matter.  The
  5899. exact RGB values specify the true values for the color, and
  5900. the visual values specify the values actually used in the
  5901. colormap.
  5902.  
  5903.  
  5904. __
  5905. |    AllocColorCells
  5906.  
  5907.   cmap: COLORMAP
  5908.   colors, planes: CARD16
  5909.   contiguous: BOOL
  5910.  
  5911.    ->
  5912.  
  5913.   pixels, masks: LISTofCARD32
  5914.  
  5915. |__    Errors: Alloc, Colormap, Value
  5916.  
  5917.  
  5918. The number of colors must be positive, and the number of
  5919. planes must be nonnegative (or a Value error results).    If C
  5920. colors and P planes are requested, then C pixels and P masks
  5921. are returned.  No mask will have any bits in common with any
  5922. other mask or with any of the pixels.  By ORing together
  5923. masks and pixels, C*2P distinct pixels can be produced; all
  5924. of these are allocated writable by the request.  For
  5925. GrayScale or PseudoColor, each mask will have exactly one
  5926. bit set to 1; for DirectColor, each will have exactly three
  5927. bits set to 1.    If contiguous is True and if all masks are
  5928. ORed together, a single contiguous set of bits will be
  5929. formed for GrayScale or PseudoColor, and three contiguous
  5930. sets of bits (one within each pixel subfield) for
  5931. DirectColor.  The RGB values of the allocated entries are
  5932. undefined.
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.                  86
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944. X Protocol                    X11, Release 6.4
  5945.  
  5946. __
  5947. |    AllocColorPlanes
  5948.  
  5949.   cmap: COLORMAP
  5950.   colors, reds, greens, blues: CARD16
  5951.   contiguous: BOOL
  5952.  
  5953.    ->
  5954.  
  5955.   pixels: LISTofCARD32
  5956.   red-mask, green-mask, blue-mask: CARD32
  5957.  
  5958. |__    Errors: Alloc, Colormap, Value
  5959.  
  5960.  
  5961. The number of colors must be positive, and the reds, greens,
  5962. and blues must be nonnegative (or a Value error results).
  5963. If C colors, R reds, G greens, and B blues are requested,
  5964. then C pixels are returned, and the masks have R, G, and B
  5965. bits set, respectively.  If contiguous is True, then each
  5966. mask will have a contiguous set of bits.  No mask will have
  5967. any bits in common with any other mask or with any of the
  5968. pixels.  For DirectColor, each mask will lie within the cor-
  5969. responding pixel subfield.  By ORing together subsets of
  5970. masks with pixels, C*2R+G+B distinct pixels can be produced;
  5971. all of these are allocated writable by the request.  The
  5972. initial RGB values of the allocated entries are undefined.
  5973. In the colormap, there are only C*2R independent red
  5974. entries, C*2G independent green entries, and C*2B indepen-
  5975. dent blue entries.  This is true even for PseudoColor.    When
  5976. the colormap entry for a pixel value is changed using Store-
  5977. Colors or StoreNamedColor, the pixel is decomposed according
  5978. to the masks and the corresponding independent entries are
  5979. updated.
  5980.  
  5981.  
  5982. __
  5983. |    FreeColors
  5984.  
  5985.   cmap: COLORMAP
  5986.   pixels: LISTofCARD32
  5987.   plane-mask: CARD32
  5988.  
  5989. |__    Errors: Access, Colormap, Value
  5990.  
  5991.  
  5992. The plane-mask should not have any bits in common with any
  5993. of the pixels.    The set of all pixels is produced by ORing
  5994. together subsets of plane-mask with the pixels.  The request
  5995. frees all of these pixels that were allocated by the client
  5996. (using AllocColor, AllocNamedColor, AllocColorCells, and
  5997. AllocColorPlanes).  Note that freeing an individual pixel
  5998. obtained from AllocColorPlanes may not actually allow it to
  5999. be reused until all of its related pixels are also freed.
  6000. Similarly, a read-only entry is not actually freed until it
  6001.  
  6002.  
  6003.  
  6004.                  87
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010. X Protocol                    X11, Release 6.4
  6011.  
  6012.  
  6013. has been freed by all clients, and if a client allocates the
  6014. same read-only entry multiple times, it must free the entry
  6015. that many times before the entry is actually freed.
  6016.  
  6017. All specified pixels that are allocated by the client in
  6018. cmap are freed, even if one or more pixels produce an error.
  6019. A Value error is generated if a specified pixel is not a
  6020. valid index into cmap.    An Access error is generated if a
  6021. specified pixel is not allocated by the client (that is, is
  6022. unallocated or is only allocated by another client) or if
  6023. the colormap was created with all entries writable (using an
  6024. alloc value of All in CreateColormap).    If more than one
  6025. pixel is in error, it is arbitrary as to which pixel is
  6026. reported.
  6027.  
  6028.  
  6029. __
  6030. |    StoreColors
  6031.  
  6032.   cmap: COLORMAP
  6033.   items: LISTofCOLORITEM
  6034.  
  6035.   where:
  6036.  
  6037.   COLORITEM:   [pixel: CARD32
  6038.         do-red, do-green, do-blue: BOOL
  6039.         red, green, blue: CARD16]
  6040.  
  6041.  
  6042. |__    Errors: Access, Colormap, Value
  6043.  
  6044.  
  6045. This request changes the colormap entries of the specified
  6046. pixels.  The do-red, do-green, and do-blue fields indicate
  6047. which components should actually be changed.  If the col-
  6048. ormap is an installed map for its screen, the changes are
  6049. visible immediately.
  6050.  
  6051. All specified pixels that are allocated writable in cmap (by
  6052. any client) are changed, even if one or more pixels produce
  6053. an error.  A Value error is generated if a specified pixel
  6054. is not a valid index into cmap, and an Access error is gen-
  6055. erated if a specified pixel is unallocated or is allocated
  6056. read-only.  If more than one pixel is in error, it is arbi-
  6057. trary as to which pixel is reported.
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.                  88
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076. X Protocol                    X11, Release 6.4
  6077.  
  6078. __
  6079. |    StoreNamedColor
  6080.  
  6081.   cmap: COLORMAP
  6082.   pixel: CARD32
  6083.   name: STRING8
  6084.   do-red, do-green, do-blue: BOOL
  6085.  
  6086. |__    Errors: Access, Colormap, Name, Value
  6087.  
  6088.  
  6089. This request looks up the named color with respect to the
  6090. screen associated with cmap and then does a StoreColors in
  6091. cmap.  The name should use the ISO Latin-1 encoding, and
  6092. uppercase and lowercase do not matter.    The Access and Value
  6093. errors are the same as in StoreColors.
  6094.  
  6095.  
  6096. __
  6097. |    QueryColors
  6098.  
  6099.   cmap: COLORMAP
  6100.   pixels: LISTofCARD32
  6101.  
  6102.    ->
  6103.  
  6104.   colors: LISTofRGB
  6105.  
  6106.   where:
  6107.  
  6108.   RGB: [red, green, blue: CARD16]
  6109.  
  6110. |__    Errors: Colormap, Value
  6111.  
  6112.  
  6113. This request returns the hardware-specific color values
  6114. stored in cmap for the specified pixels.  The values
  6115. returned for an unallocated entry are undefined.  A Value
  6116. error is generated if a pixel is not a valid index into
  6117. cmap.  If more than one pixel is in error, it is arbitrary
  6118. as to which pixel is reported.
  6119.  
  6120.  
  6121.  
  6122.  
  6123.  
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.                  89
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142. X Protocol                    X11, Release 6.4
  6143.  
  6144. __
  6145. |    LookupColor
  6146.  
  6147.   cmap: COLORMAP
  6148.   name: STRING8
  6149.  
  6150.    ->
  6151.  
  6152.   exact-red, exact-green, exact-blue: CARD16
  6153.   visual-red, visual-green, visual-blue: CARD16
  6154.  
  6155. |__    Errors: Colormap, Name
  6156.  
  6157.  
  6158. This request looks up the string name of a color with
  6159. respect to the screen associated with cmap and returns both
  6160. the exact color values and the closest values provided by
  6161. the hardware with respect to the visual type of cmap.  The
  6162. name should use the ISO Latin-1 encoding, and uppercase and
  6163. lowercase do not matter.
  6164.  
  6165.  
  6166. __
  6167. |    CreateCursor
  6168.  
  6169.   cid: CURSOR
  6170.   source: PIXMAP
  6171.   mask: PIXMAP or None
  6172.   fore-red, fore-green, fore-blue: CARD16
  6173.   back-red, back-green, back-blue: CARD16
  6174.   x, y: CARD16
  6175.  
  6176. |__    Errors: Alloc, IDChoice, Match, Pixmap
  6177.  
  6178.  
  6179. This request creates a cursor and associates identifier cid
  6180. with it.  The foreground and background RGB values must be
  6181. specified, even if the server only has a StaticGray or
  6182. GrayScale screen.  The foreground is used for the bits set
  6183. to 1 in the source, and the background is used for the bits
  6184. set to 0.  Both source and mask (if specified) must have
  6185. depth one (or a Match error results), but they can have any
  6186. root.  The mask pixmap defines the shape of the cursor.
  6187. That is, the bits set to 1 in the mask define which source
  6188. pixels will be displayed, and where the mask has bits set to
  6189. 0, the corresponding bits of the source pixmap are ignored.
  6190. If no mask is given, all pixels of the source are displayed.
  6191. The mask, if present, must be the same size as the source
  6192. (or a Match error results).  The x and y coordinates define
  6193. the hotspot relative to the source's origin and must be a
  6194. point within the source (or a Match error results).
  6195.  
  6196. The components of the cursor may be transformed arbitrarily
  6197. to meet display limitations.
  6198.  
  6199.  
  6200.  
  6201.  
  6202.                  90
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208. X Protocol                    X11, Release 6.4
  6209.  
  6210.  
  6211. The pixmaps can be freed immediately if no further explicit
  6212. references to them are to be made.
  6213.  
  6214. Subsequent drawing in the source or mask pixmap has an unde-
  6215. fined effect on the cursor.  The server might or might not
  6216. make a copy of the pixmap.
  6217.  
  6218.  
  6219. __
  6220. |    CreateGlyphCursor
  6221.  
  6222.   cid: CURSOR
  6223.   source-font: FONT
  6224.   mask-font: FONT or None
  6225.   source-char, mask-char: CARD16
  6226.   fore-red, fore-green, fore-blue: CARD16
  6227.   back-red, back-green, back-blue: CARD16
  6228.  
  6229. |__    Errors: Alloc, Font, IDChoice, Value
  6230.  
  6231.  
  6232. This request is similar to CreateCursor, except the source
  6233. and mask bitmaps are obtained from the specified font
  6234. glyphs.  The source-char must be a defined glyph in source-
  6235. font, and if mask-font is given, mask-char must be a defined
  6236. glyph in mask-font (or a Value error results).    The mask
  6237. font and character are optional.  The origins of the source
  6238. and mask (if it is defined) glyphs are positioned coinci-
  6239. dently and define the hotspot.    The source and mask need not
  6240. have the same bounding box metrics, and there is no restric-
  6241. tion on the placement of the hotspot relative to the bound-
  6242. ing boxes.  If no mask is given, all pixels of the source
  6243. are displayed.    Note that source-char and mask-char are
  6244. CARD16, not CHAR2B.  For 2-byte matrix fonts, the 16-bit
  6245. value should be formed with byte1 in the most significant
  6246. byte and byte2 in the least significant byte.
  6247.  
  6248. The components of the cursor may be transformed arbitrarily
  6249. to meet display limitations.
  6250.  
  6251. The fonts can be freed immediately if no further explicit
  6252. references to them are to be made.
  6253.  
  6254.  
  6255. __
  6256. |    FreeCursor
  6257.  
  6258.   cursor: CURSOR
  6259.  
  6260. |__    Errors: Cursor
  6261.  
  6262.  
  6263. This request deletes the association between the resource ID
  6264. and the cursor.  The cursor storage will be freed when no
  6265.  
  6266.  
  6267.  
  6268.                  91
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274. X Protocol                    X11, Release 6.4
  6275.  
  6276.  
  6277. other resource references it.
  6278.  
  6279.  
  6280. __
  6281. |    RecolorCursor
  6282.  
  6283.   cursor: CURSOR
  6284.   fore-red, fore-green, fore-blue: CARD16
  6285.   back-red, back-green, back-blue: CARD16
  6286.  
  6287. |__    Errors: Cursor
  6288.  
  6289.  
  6290. This request changes the color of a cursor.  If the cursor
  6291. is being displayed on a screen, the change is visible imme-
  6292. diately.
  6293.  
  6294.  
  6295. __
  6296. |    QueryBestSize
  6297.  
  6298.   class: {Cursor, Tile, Stipple}
  6299.   drawable: DRAWABLE
  6300.   width, height: CARD16
  6301.  
  6302.    ->
  6303.  
  6304.   width, height: CARD16
  6305.  
  6306. |__    Errors: Drawable, Match, Value
  6307.  
  6308.  
  6309. This request returns the best size that is closest to the
  6310. argument size.    For Cursor, this is the largest size that
  6311. can be fully displayed.  For Tile, this is the size that can
  6312. be tiled fastest.  For Stipple, this is the size that can be
  6313. stippled fastest.
  6314.  
  6315. For Cursor, the drawable indicates the desired screen.    For
  6316. Tile and Stipple, the drawable indicates the screen and also
  6317. possibly the window class and depth.  An InputOnly window
  6318. cannot be used as the drawable for Tile or Stipple (or a
  6319. Match error results).
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.                  92
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340. X Protocol                    X11, Release 6.4
  6341.  
  6342. __
  6343. |    QueryExtension
  6344.  
  6345.   name: STRING8
  6346.  
  6347.    ->
  6348.  
  6349.   present: BOOL
  6350.   major-opcode: CARD8
  6351.   first-event: CARD8
  6352. |__    first-error: CARD8
  6353.  
  6354.  
  6355. This request determines if the named extension is present.
  6356. If so, the major opcode for the extension is returned, if it
  6357. has one.  Otherwise, zero is returned.    Any minor opcode and
  6358. the request formats are specific to the extension.  If the
  6359. extension involves additional event types, the base event
  6360. type code is returned.    Otherwise, zero is returned.  The
  6361. format of the events is specific to the extension.  If the
  6362. extension involves additional error codes, the base error
  6363. code is returned.  Otherwise, zero is returned.  The format
  6364. of additional data in the errors is specific to the exten-
  6365. sion.
  6366.  
  6367. The extension name should use the ISO Latin-1 encoding, and
  6368. uppercase and lowercase matter.
  6369.  
  6370.  
  6371. __
  6372. |    ListExtensions
  6373.  
  6374.    ->
  6375.  
  6376. |__    names: LISTofSTRING8
  6377.  
  6378.  
  6379. This request returns a list of all extensions supported by
  6380. the server.
  6381.  
  6382. __
  6383. |    SetModifierMapping
  6384.  
  6385.   keycodes-per-modifier: CARD8
  6386.   keycodes: LISTofKEYCODE
  6387.  
  6388.    ->
  6389.  
  6390.   status: {Success, Busy, Failed}
  6391.  
  6392. |__    Errors: Alloc, Value
  6393.  
  6394.  
  6395. This request specifies the keycodes (if any) of the keys to
  6396. be used as modifiers.  The number of keycodes in the list
  6397.  
  6398.  
  6399.  
  6400.                  93
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406. X Protocol                    X11, Release 6.4
  6407.  
  6408.  
  6409. must be 8*keycodes-per-modifier (or a Length error results).
  6410. The keycodes are divided into eight sets, with each set con-
  6411. taining keycodes-per-modifier elements.  The sets are
  6412. assigned to the modifiers Shift, Lock, Control, Mod1, Mod2,
  6413. Mod3, Mod4, and Mod5, in order.  Only nonzero keycode values
  6414. are used within each set; zero values are ignored.  All of
  6415. the nonzero keycodes must be in the range specified by min-
  6416. keycode and max-keycode in the connection setup (or a Value
  6417. error results).  The order of keycodes within a set does not
  6418. matter.  If no nonzero values are specified in a set, the
  6419. use of the corresponding modifier is disabled, and the modi-
  6420. fier bit will always be zero.  Otherwise, the modifier bit
  6421. will be one whenever at least one of the keys in the corre-
  6422. sponding set is in the down position.
  6423.  
  6424. A server can impose restrictions on how modifiers can be
  6425. changed (for example, if certain keys do not generate up
  6426. transitions in hardware, if auto-repeat cannot be disabled
  6427. on certain keys, or if multiple keys per modifier are not
  6428. supported).  The status reply is Failed if some such
  6429. restriction is violated, and none of the modifiers is
  6430. changed.
  6431.  
  6432. If the new nonzero keycodes specified for a modifier differ
  6433. from those currently defined and any (current or new) keys
  6434. for that modifier are logically in the down state, then the
  6435. status reply is Busy, and none of the modifiers is changed.
  6436.  
  6437. This request generates a MappingNotify event on a Success
  6438. status.
  6439.  
  6440.  
  6441. __
  6442. |    GetModifierMapping
  6443.  
  6444.    ->
  6445.  
  6446.   keycodes-per-modifier: CARD8
  6447. |__    keycodes: LISTofKEYCODE
  6448.  
  6449.  
  6450. This request returns the keycodes of the keys being used as
  6451. modifiers.  The number of keycodes in the list is 8*key-
  6452. codes-per-modifier.  The keycodes are divided into eight
  6453. sets, with each set containing keycodes-per-modifier ele-
  6454. ments.    The sets are assigned to the modifiers Shift, Lock,
  6455. Control, Mod1, Mod2, Mod3, Mod4, and Mod5, in order.  The
  6456. keycodes-per-modifier value is chosen arbitrarily by the
  6457. server; zeroes are used to fill in unused elements within
  6458. each set.  If only zero values are given in a set, the use
  6459. of the corresponding modifier has been disabled.  The order
  6460. of keycodes within each set is chosen arbitrarily by the
  6461. server.
  6462.  
  6463.  
  6464.  
  6465.  
  6466.                  94
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472. X Protocol                    X11, Release 6.4
  6473.  
  6474. __
  6475. |    ChangeKeyboardMapping
  6476.  
  6477.   first-keycode: KEYCODE
  6478.   keysyms-per-keycode: CARD8
  6479.   keysyms: LISTofKEYSYM
  6480.  
  6481. |__    Errors: Alloc, Value
  6482.  
  6483.  
  6484. This request defines the symbols for the specified number of
  6485. keycodes, starting with the specified keycode.    The symbols
  6486. for keycodes outside this range remained unchanged.  The
  6487. number of elements in the keysyms list must be a multiple of
  6488. keysyms-per-keycode (or a Length error results).  The first-
  6489. keycode must be greater than or equal to min-keycode as
  6490. returned in the connection setup (or a Value error results)
  6491. and:
  6492.  
  6493.      first-keycode + (keysyms-length / keysyms-per-keycode) - 1
  6494.  
  6495.  
  6496. must be less than or equal to max-keycode as returned in the
  6497. connection setup (or a Value error results).  KEYSYM number
  6498. N (counting from zero) for keycode K has an index (counting
  6499. from zero) of:
  6500.  
  6501.      (K - first-keycode) * keysyms-per-keycode + N
  6502.  
  6503.  
  6504. in keysyms.  The keysyms-per-keycode can be chosen arbitrar-
  6505. ily by the client to be large enough to hold all desired
  6506. symbols.  A special KEYSYM value of NoSymbol should be used
  6507. to fill in unused elements for individual keycodes.  It is
  6508. legal for NoSymbol to appear in nontrailing positions of the
  6509. effective list for a keycode.
  6510.  
  6511. This request generates a MappingNotify event.
  6512.  
  6513. There is no requirement that the server interpret this map-
  6514. ping; it is merely stored for reading and writing by clients
  6515. (see section 5).
  6516.  
  6517.  
  6518.  
  6519.  
  6520.  
  6521.  
  6522.  
  6523.  
  6524.  
  6525.  
  6526.  
  6527.  
  6528.  
  6529.  
  6530.  
  6531.  
  6532.                  95
  6533.  
  6534.  
  6535.  
  6536.  
  6537.  
  6538. X Protocol                    X11, Release 6.4
  6539.  
  6540. __
  6541. |    GetKeyboardMapping
  6542.  
  6543.   first-keycode: KEYCODE
  6544.   count: CARD8
  6545.  
  6546.    ->
  6547.  
  6548.   keysyms-per-keycode: CARD8
  6549.   keysyms: LISTofKEYSYM
  6550.  
  6551. |__    Errors: Value
  6552.  
  6553.  
  6554. This request returns the symbols for the specified number of
  6555. keycodes, starting with the specified keycode.    The first-
  6556. keycode must be greater than or equal to min-keycode as
  6557. returned in the connection setup (or a Value error results),
  6558. and:
  6559.  
  6560.      first-keycode + count - 1
  6561.  
  6562.  
  6563. must be less than or equal to max-keycode as returned in the
  6564. connection setup (or a Value error results).  The number of
  6565. elements in the keysyms list is:
  6566.  
  6567.      count * keysyms-per-keycode
  6568.  
  6569.  
  6570. and KEYSYM number N (counting from zero) for keycode K has
  6571. an index (counting from zero) of:
  6572.  
  6573.      (K - first-keycode) * keysyms-per-keycode + N
  6574.  
  6575.  
  6576. in keysyms.  The keysyms-per-keycode value is chosen arbi-
  6577. trarily by the server to be large enough to report all
  6578. requested symbols.  A special KEYSYM value of NoSymbol is
  6579. used to fill in unused elements for individual keycodes.
  6580.  
  6581.  
  6582. __
  6583. |    ChangeKeyboardControl
  6584.  
  6585.   value-mask: BITMASK
  6586.   value-list: LISTofVALUE
  6587.  
  6588. |__    Errors: Match, Value
  6589.  
  6590.  
  6591. This request controls various aspects of the keyboard.    The
  6592. value-mask and value-list specify which controls are to be
  6593. changed.  The possible values are:
  6594.  
  6595.  
  6596.  
  6597.  
  6598.                  96
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604. X Protocol                    X11, Release 6.4
  6605.  
  6606.  
  6607. ---------------------------------------
  6608. Control         Type
  6609. ---------------------------------------
  6610. key-click-percent   INT8
  6611. bell-percent        INT8
  6612. bell-pitch        INT16
  6613. bell-duration        INT16
  6614. led            CARD8
  6615. led-mode        {On, Off}
  6616. key            KEYCODE
  6617. auto-repeat-mode    {On, Off, Default}
  6618. ---------------------------------------
  6619.  
  6620.  
  6621. The key-click-percent sets the volume for key clicks between
  6622. 0 (off) and 100 (loud) inclusive, if possible.    Setting to
  6623. -1 restores the default.  Other negative values generate a
  6624. Value error.
  6625.  
  6626. The bell-percent sets the base volume for the bell between 0
  6627. (off) and 100 (loud) inclusive, if possible.  Setting to -1
  6628. restores the default.  Other negative values generate a
  6629. Value error.
  6630.  
  6631. The bell-pitch sets the pitch (specified in Hz) of the bell,
  6632. if possible.  Setting to -1 restores the default.  Other
  6633. negative values generate a Value error.
  6634.  
  6635. The bell-duration sets the duration of the bell (specified
  6636. in milliseconds), if possible.    Setting to -1 restores the
  6637. default.  Other negative values generate a Value error.
  6638.  
  6639. If both led-mode and led are specified, then the state of
  6640. that LED is changed, if possible.  If only led-mode is spec-
  6641. ified, then the state of all LEDs are changed, if possible.
  6642. At most 32 LEDs, numbered from one, are supported.  No stan-
  6643. dard interpretation of LEDs is defined.  It is a Match error
  6644. if an led is specified without an led-mode.
  6645.  
  6646. If both auto-repeat-mode and key are specified, then the
  6647. auto-repeat mode of that key is changed, if possible.  If
  6648. only auto-repeat-mode is specified, then the global auto-
  6649. repeat mode for the entire keyboard is changed, if possible,
  6650. without affecting the per-key settings.  It is a Match error
  6651. if a key is specified without an auto-repeat-mode.  Each key
  6652. has an individual mode of whether or not it should auto-
  6653. repeat and a default setting for that mode.  In addition,
  6654. there is a global mode of whether auto-repeat should be
  6655. enabled or not and a default setting for that mode.  When
  6656. the global mode is On, keys should obey their individual
  6657. auto-repeat modes.  When the global mode is Off, no keys
  6658. should auto-repeat.  An auto-repeating key generates alter-
  6659. nating KeyPress and KeyRelease events.    When a key is used
  6660. as a modifier, it is desirable for the key not to auto-
  6661.  
  6662.  
  6663.  
  6664.                  97
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670. X Protocol                    X11, Release 6.4
  6671.  
  6672.  
  6673. repeat, regardless of the auto-repeat setting for that key.
  6674.  
  6675. A bell generator connected with the console but not directly
  6676. on the keyboard is treated as if it were part of the key-
  6677. board.
  6678.  
  6679. The order in which controls are verified and altered is
  6680. server-dependent.  If an error is generated, a subset of the
  6681. controls may have been altered.
  6682.  
  6683.  
  6684. __
  6685. |    GetKeyboardControl
  6686.  
  6687.    ->
  6688.  
  6689.   key-click-percent: CARD8
  6690.   bell-percent: CARD8
  6691.   bell-pitch: CARD16
  6692.   bell-duration: CARD16
  6693.   led-mask: CARD32
  6694.   global-auto-repeat: {On, Off}
  6695. |__    auto-repeats: LISTofCARD8
  6696.  
  6697.  
  6698. This request returns the current control values for the key-
  6699. board.    For the LEDs, the least significant bit of led-mask
  6700. corresponds to LED one, and each one bit in led-mask indi-
  6701. cates an LED that is lit.  The auto-repeats is a bit vector;
  6702. each one bit indicates that auto-repeat is enabled for the
  6703. corresponding key.  The vector is represented as 32 bytes.
  6704. Byte N (from 0) contains the bits for keys 8N to 8N + 7,
  6705. with the least significant bit in the byte representing key
  6706. 8N.
  6707.  
  6708.  
  6709. __
  6710. |    Bell
  6711.  
  6712.   percent: INT8
  6713.  
  6714. |__    Errors: Value
  6715.  
  6716.  
  6717. This request rings the bell on the keyboard at a volume rel-
  6718. ative to the base volume for the keyboard, if possible.
  6719. Percent can range from -100 to 100 inclusive (or a Value
  6720. error results).  The volume at which the bell is rung when
  6721. percent is nonnegative is:
  6722.  
  6723.      base - [(base * percent) / 100] + percent
  6724.  
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.                  98
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736. X Protocol                    X11, Release 6.4
  6737.  
  6738.  
  6739. When percent is negative, it is:
  6740.  
  6741.      base + [(base * percent) / 100]
  6742.  
  6743.  
  6744.  
  6745. __
  6746. |    SetPointerMapping
  6747.  
  6748.   map: LISTofCARD8
  6749.  
  6750.    ->
  6751.  
  6752.   status: {Success, Busy}
  6753.  
  6754. |__    Errors: Value
  6755.  
  6756.  
  6757. This request sets the mapping of the pointer.  Elements of
  6758. the list are indexed starting from one.  The length of the
  6759. list must be the same as GetPointerMapping would return (or
  6760. a Value error results).  The index is a core button number,
  6761. and the element of the list defines the effective number.
  6762.  
  6763. A zero element disables a button.  Elements are not
  6764. restricted in value by the number of physical buttons, but
  6765. no two elements can have the same nonzero value (or a Value
  6766. error results).
  6767.  
  6768. If any of the buttons to be altered are logically in the
  6769. down state, the status reply is Busy, and the mapping is not
  6770. changed.
  6771.  
  6772. This request generates a MappingNotify event on a Success
  6773. status.
  6774.  
  6775.  
  6776. __
  6777. |    GetPointerMapping
  6778.  
  6779.    ->
  6780.  
  6781. |__    map: LISTofCARD8
  6782.  
  6783.  
  6784. This request returns the current mapping of the pointer.
  6785. Elements of the list are indexed starting from one.  The
  6786. length of the list indicates the number of physical buttons.
  6787.  
  6788. The nominal mapping for a pointer is the identity mapping:
  6789. map[i]=i.
  6790.  
  6791.  
  6792.  
  6793.  
  6794.  
  6795.  
  6796.                  99
  6797.  
  6798.  
  6799.  
  6800.  
  6801.  
  6802. X Protocol                    X11, Release 6.4
  6803.  
  6804. __
  6805. |    ChangePointerControl
  6806.  
  6807.   do-acceleration, do-threshold: BOOL
  6808.   acceleration-numerator, acceleration-denominator: INT16
  6809.   threshold: INT16
  6810.  
  6811. |__    Errors: Value
  6812.  
  6813.  
  6814. This request defines how the pointer moves.  The accelera-
  6815. tion is a multiplier for movement expressed as a fraction.
  6816. For example, specifying 3/1 means the pointer moves three
  6817. times as fast as normal.  The fraction can be rounded arbi-
  6818. trarily by the server.    Acceleration only takes effect if
  6819. the pointer moves more than threshold number of pixels at
  6820. once and only applies to the amount beyond the threshold.
  6821. Setting a value to -1 restores the default.  Other negative
  6822. values generate a Value error, as does a zero value for
  6823. acceleration-denominator.
  6824.  
  6825.  
  6826. __
  6827. |    GetPointerControl
  6828.  
  6829.    ->
  6830.  
  6831.   acceleration-numerator, acceleration-denominator: CARD16
  6832. |__    threshold: CARD16
  6833.  
  6834.  
  6835. This request returns the current acceleration and threshold
  6836. for the pointer.
  6837.  
  6838.  
  6839. __
  6840. |    SetScreenSaver
  6841.  
  6842.   timeout, interval: INT16
  6843.   prefer-blanking: {Yes, No, Default}
  6844.   allow-exposures: {Yes, No, Default}
  6845.  
  6846. |__    Errors: Value
  6847.  
  6848.  
  6849. The timeout and interval are specified in seconds; setting a
  6850. value to -1 restores the default.  Other negative values
  6851. generate a Value error.  If the timeout value is zero,
  6852. screen-saver is disabled (but an activated screen-saver is
  6853. not deactivated).  If the timeout value is nonzero, screen-
  6854. saver is enabled.  Once screen-saver is enabled, if no input
  6855. from the keyboard or pointer is generated for timeout sec-
  6856. onds, screen-saver is activated.  For each screen, if blank-
  6857. ing is preferred and the hardware supports video blanking,
  6858. the screen will simply go blank.  Otherwise, if either
  6859.  
  6860.  
  6861.  
  6862.                  100
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868. X Protocol                    X11, Release 6.4
  6869.  
  6870.  
  6871. exposures are allowed or the screen can be regenerated with-
  6872. out sending exposure events to clients, the screen is
  6873. changed in a server-dependent fashion to avoid phosphor
  6874. burn.  Otherwise, the state of the screens does not change,
  6875. and screen-saver is not activated.  At the next keyboard or
  6876. pointer input or at the next ForceScreenSaver with mode
  6877. Reset, screen-saver is deactivated, and all screen states
  6878. are restored.
  6879.  
  6880. If the server-dependent screen-saver method is amenable to
  6881. periodic change, interval serves as a hint about how long
  6882. the change period should be, with zero hinting that no peri-
  6883. odic change should be made.  Examples of ways to change the
  6884. screen include scrambling the color map periodically, moving
  6885. an icon image about the screen periodically, or tiling the
  6886. screen with the root window background tile, randomly reo-
  6887. rigined periodically.
  6888.  
  6889.  
  6890. __
  6891. |    GetScreenSaver
  6892.  
  6893.    ->
  6894.  
  6895.   timeout, interval: CARD16
  6896.   prefer-blanking: {Yes, No}
  6897. |__    allow-exposures: {Yes, No}
  6898.  
  6899.  
  6900. This request returns the current screen-saver control val-
  6901. ues.
  6902.  
  6903.  
  6904. __
  6905. |    ForceScreenSaver
  6906.  
  6907.   mode: {Activate, Reset}
  6908.  
  6909. |__    Errors: Value
  6910.  
  6911.  
  6912. If the mode is Activate and screen-saver is currently deac-
  6913. tivated, then screen-saver is activated (even if screen-
  6914. saver has been disabled with a timeout value of zero).    If
  6915. the mode is Reset and screen-saver is currently enabled,
  6916. then screen-saver is deactivated (if it was activated), and
  6917. the activation timer is reset to its initial state as if
  6918. device input had just been received.
  6919.  
  6920.  
  6921.  
  6922.  
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.                  101
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934. X Protocol                    X11, Release 6.4
  6935.  
  6936. __
  6937. |    ChangeHosts
  6938.  
  6939.   mode: {Insert, Delete}
  6940.   host: HOST
  6941.  
  6942. |__    Errors: Access, Value
  6943.  
  6944.  
  6945. This request adds or removes the specified host from the
  6946. access control list.  When the access control mechanism is
  6947. enabled and a client attempts to establish a connection to
  6948. the server, the host on which the client resides must be in
  6949. the access control list, or the client must have been
  6950. granted permission by a server-dependent method, or the
  6951. server will refuse the connection.
  6952.  
  6953. The client must reside on the same host as the server and/or
  6954. have been granted permission by a server-dependent method to
  6955. execute this request (or an Access error results).
  6956.  
  6957. An initial access control list can usually be specified,
  6958. typically by naming a file that the server reads at startup
  6959. and reset.
  6960.  
  6961. The following address families are defined.  A server is not
  6962. required to support these families and may support families
  6963. not listed here.  Use of an unsupported family, an improper
  6964. address format, or an improper address length within a sup-
  6965. ported family results in a Value error.
  6966.  
  6967. For the Internet family, the address must be four bytes
  6968. long.  The address bytes are in standard IP order; the
  6969. server performs no automatic swapping on the address bytes.
  6970. For a Class A address, the network number is the first byte
  6971. in the address, and the host number is the remaining three
  6972. bytes, most significant byte first.  For a Class B address,
  6973. the network number is the first two bytes and the host num-
  6974. ber is the last two bytes, each most significant byte first.
  6975. For a Class C address, the network number is the first three
  6976. bytes, most significant byte first, and the last byte is the
  6977. host number.
  6978.  
  6979. For the DECnet family, the server performs no automatic
  6980. swapping on the address bytes.    A Phase IV address is two
  6981. bytes long: the first byte contains the least significant
  6982. eight bits of the node number, and the second byte contains
  6983. the most significant two bits of the node number in the
  6984. least significant two bits of the byte and the area in the
  6985. most significant six bits of the byte.
  6986.  
  6987. For the Chaos family, the address must be two bytes long.
  6988. The host number is always the first byte in the address, and
  6989. the subnet number is always the second byte.  The server
  6990. performs no automatic swapping on the address bytes.
  6991.  
  6992.  
  6993.  
  6994.                  102
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000. X Protocol                    X11, Release 6.4
  7001.  
  7002. __
  7003. |    ListHosts
  7004.  
  7005.    ->
  7006.  
  7007.   mode: {Enabled, Disabled}
  7008. |__    hosts: LISTofHOST
  7009.  
  7010.  
  7011. This request returns the hosts on the access control list
  7012. and whether use of the list at connection setup is currently
  7013. enabled or disabled.
  7014.  
  7015. Each HOST is padded to a multiple of four bytes.
  7016.  
  7017.  
  7018. __
  7019. |    SetAccessControl
  7020.  
  7021.   mode: {Enable, Disable}
  7022.  
  7023. |__    Errors: Access, Value
  7024.  
  7025.  
  7026. This request enables or disables the use of the access con-
  7027. trol list at connection setups.
  7028.  
  7029. The client must reside on the same host as the server and/or
  7030. have been granted permission by a server-dependent method to
  7031. execute this request (or an Access error results).
  7032.  
  7033.  
  7034. __
  7035. |    SetCloseDownMode
  7036.  
  7037.   mode: {Destroy, RetainPermanent, RetainTemporary}
  7038.  
  7039. |__    Errors: Value
  7040.  
  7041.  
  7042. This request defines what will happen to the client's
  7043. resources at connection close.    A connection starts in
  7044. Destroy mode.  The meaning of the close-down mode is
  7045. described in section 10.
  7046.  
  7047.  
  7048. __
  7049. |    KillClient
  7050.  
  7051.   resource: CARD32 or AllTemporary
  7052.  
  7053. |__    Errors: Value
  7054.  
  7055.  
  7056.  
  7057.  
  7058.  
  7059.  
  7060.                  103
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066. X Protocol                    X11, Release 6.4
  7067.  
  7068.  
  7069. If a valid resource is specified, KillClient forces a close-
  7070. down of the client that created the resource.  If the client
  7071. has already terminated in either RetainPermanent or Retain-
  7072. Temporary mode, all of the client's resources are destroyed
  7073. (see section 10).  If AllTemporary is specified, then the
  7074. resources of all clients that have terminated in RetainTem-
  7075. porary are destroyed.
  7076.  
  7077.  
  7078. __
  7079. |__  NoOperation
  7080.  
  7081.  
  7082. This request has no arguments and no results, but the
  7083. request length field allows the request to be any multiple
  7084. of four bytes in length.  The bytes contained in the request
  7085. are uninterpreted by the server.
  7086.  
  7087. This request can be used in its minimum four byte form as
  7088. padding where necessary by client libraries that find it
  7089. convenient to force requests to begin on 64-bit boundaries.
  7090.  
  7091. 10.  Connection Close
  7092.  
  7093. At connection close, all event selections made by the client
  7094. are discarded.    If the client has the pointer actively
  7095. grabbed, an UngrabPointer is performed.  If the client has
  7096. the keyboard actively grabbed, an UngrabKeyboard is per-
  7097. formed.  All passive grabs by the client are released.    If
  7098. the client has the server grabbed, an UngrabServer is per-
  7099. formed.  All selections (see SetSelectionOwner request)
  7100. owned by the client are disowned.  If close-down mode (see
  7101. SetCloseDownMode request) is RetainPermanent or
  7102. RetainTemporary, then all resources (including colormap
  7103. entries) allocated by the client are marked as permanent or
  7104. temporary, respectively (but this does not prevent other
  7105. clients from explicitly destroying them).  If the mode is
  7106. Destroy, all of the client's resources are destroyed.
  7107.  
  7108. When a client's resources are destroyed, for each window in
  7109. the client's save-set, if the window is an inferior of a
  7110. window created by the client, the save-set window is repar-
  7111. ented to the closest ancestor such that the save-set window
  7112. is not an inferior of a window created by the client.  If
  7113. the save-set window is unmapped, a MapWindow request is per-
  7114. formed on it (even if it was not an inferior of a window
  7115. created by the client).  The reparenting leaves unchanged
  7116. the absolute coordinates (with respect to the root window)
  7117. of the upper-left outer corner of the save-set window.
  7118. After save-set processing, all windows created by the client
  7119. are destroyed.    For each nonwindow resource created by the
  7120. client, the appropriate Free request is performed.  All col-
  7121. ors and colormap entries allocated by the client are freed.
  7122.  
  7123.  
  7124.  
  7125.  
  7126.                  104
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132. X Protocol                    X11, Release 6.4
  7133.  
  7134.  
  7135. A server goes through a cycle of having no connections and
  7136. having some connections.  At every transition to the state
  7137. of having no connections as a result of a connection closing
  7138. with a Destroy close-down mode, the server resets its state
  7139. as if it had just been started.  This starts by destroying
  7140. all lingering resources from clients that have terminated in
  7141. RetainPermanent or RetainTemporary mode.  It additionally
  7142. includes deleting all but the predefined atom identifiers,
  7143. deleting all properties on all root windows, resetting all
  7144. device maps and attributes (key click, bell volume, acceler-
  7145. ation), resetting the access control list, restoring the
  7146. standard root tiles and cursors, restoring the default font
  7147. path, and restoring the input focus to state PointerRoot.
  7148.  
  7149. Note that closing a connection with a close-down mode of
  7150. RetainPermanent or RetainTemporary will not cause the server
  7151. to reset.
  7152.  
  7153. 11.  Events
  7154.  
  7155. When a button press is processed with the pointer in some
  7156. window W and no active pointer grab is in progress, the
  7157. ancestors of W are searched from the root down, looking for
  7158. a passive grab to activate.  If no matching passive grab on
  7159. the button exists, then an active grab is started automati-
  7160. cally for the client receiving the event, and the last-
  7161. pointer-grab time is set to the current server time.  The
  7162. effect is essentially equivalent to a GrabButton with argu-
  7163. ments:
  7164.  
  7165. -----------------------------------------------------------
  7166. Argument         Value
  7167. -----------------------------------------------------------
  7168. event-window         Event window
  7169. event-mask         Client's selected pointer events
  7170.              on the event window
  7171. pointer-mode and key-     Asynchronous
  7172. board-mode
  7173. owner-events         True if the client has Owner-
  7174.              GrabButton selected on the event
  7175.              window, otherwise False
  7176. confine-to         None
  7177. cursor             None
  7178. -----------------------------------------------------------
  7179.  
  7180.  
  7181. The grab is terminated automatically when the logical state
  7182. of the pointer has all buttons released.  UngrabPointer and
  7183. ChangeActivePointerGrab can both be used to modify the
  7184. active grab.
  7185.  
  7186.  
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.                  105
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198. X Protocol                    X11, Release 6.4
  7199.  
  7200. __
  7201. |    KeyPress
  7202. KeyRelease
  7203. ButtonPress
  7204. ButtonRelease
  7205. MotionNotify
  7206.  
  7207.   root, event: WINDOW
  7208.   child: WINDOW or None
  7209.   same-screen: BOOL
  7210.   root-x, root-y, event-x, event-y: INT16
  7211.   detail: <see below>
  7212.   state: SETofKEYBUTMASK
  7213. |__    time: TIMESTAMP
  7214.  
  7215.  
  7216. These events are generated either when a key or button logi-
  7217. cally changes state or when the pointer logically moves.
  7218. The generation of these logical changes may lag the physical
  7219. changes if device event processing is frozen.  Note that
  7220. KeyPress and KeyRelease are generated for all keys, even
  7221. those mapped to modifier bits.    The source of the event is
  7222. the window the pointer is in.  The window the event is
  7223. reported with respect to is called the event window.  The
  7224. event window is found by starting with the source window and
  7225. looking up the hierarchy for the first window on which any
  7226. client has selected interest in the event (provided no
  7227. intervening window prohibits event generation by including
  7228. the event type in its do-not-propagate-mask).  The actual
  7229. window used for reporting can be modified by active grabs
  7230. and, in the case of keyboard events, can be modified by the
  7231. focus window.
  7232.  
  7233. The root is the root window of the source window, and root-x
  7234. and root-y are the pointer coordinates relative to root's
  7235. origin at the time of the event.  Event is the event window.
  7236. If the event window is on the same screen as root, then
  7237. event-x and event-y are the pointer coordinates relative to
  7238. the event window's origin.  Otherwise, event-x and event-y
  7239. are zero.  If the source window is an inferior of the event
  7240. window, then child is set to the child of the event window
  7241. that is an ancestor of (or is) the source window.  Other-
  7242. wise, it is set to None.  The state component gives the log-
  7243. ical state of the buttons and modifier keys just before the
  7244. event.    The detail component type varies with the event
  7245. type:
  7246.  
  7247. --------------------------------------
  7248. Event               Component
  7249. --------------------------------------
  7250. KeyPress, KeyRelease   KEYCODE
  7251. ButtonPress, Button-   BUTTON
  7252. Release
  7253.  
  7254.  
  7255.  
  7256.  
  7257.  
  7258.                  106
  7259.  
  7260.  
  7261.  
  7262.  
  7263.  
  7264. X Protocol                    X11, Release 6.4
  7265.  
  7266.  
  7267. --------------------------------------
  7268. Event               Component
  7269. --------------------------------------
  7270. MotionNotify           {Normal, Hint}
  7271. --------------------------------------
  7272.  
  7273.  
  7274. MotionNotify events are only generated when the motion
  7275. begins and ends in the window.    The granularity of motion
  7276. events is not guaranteed, but a client selecting for motion
  7277. events is guaranteed to get at least one event when the
  7278. pointer moves and comes to rest.  Selecting PointerMotion
  7279. receives events independent of the state of the pointer but-
  7280. tons.  By selecting some subset of Button[1-5]Motion
  7281. instead, MotionNotify events will only be received when one
  7282. or more of the specified buttons are pressed.  By selecting
  7283. ButtonMotion, MotionNotify events will be received only when
  7284. at least one button is pressed.  The events are always of
  7285. type MotionNotify, independent of the selection.  If Point-
  7286. erMotionHint is selected, the server is free to send only
  7287. one MotionNotify event (with detail Hint) to the client for
  7288. the event window until either the key or button state
  7289. changes, the pointer leaves the event window, or the client
  7290. issues a QueryPointer or GetMotionEvents request.
  7291.  
  7292.  
  7293. __
  7294. |    EnterNotify
  7295. LeaveNotify
  7296.  
  7297.   root, event: WINDOW
  7298.   child: WINDOW or None
  7299.   same-screen: BOOL
  7300.   root-x, root-y, event-x, event-y: INT16
  7301.   mode: {Normal, Grab, Ungrab}
  7302.   detail: {Ancestor, Virtual, Inferior, Nonlinear,
  7303.   NonlinearVirtual}
  7304.   focus: BOOL
  7305.   state: SETofKEYBUTMASK
  7306. |__    time: TIMESTAMP
  7307.  
  7308.  
  7309. If pointer motion or window hierarchy change causes the
  7310. pointer to be in a different window than before, EnterNotify
  7311. and LeaveNotify events are generated instead of a MotionNo-
  7312. tify event.  Only clients selecting EnterWindow on a window
  7313. receive EnterNotify events, and only clients selecting
  7314. LeaveWindow receive LeaveNotify events.  The pointer posi-
  7315. tion reported in the event is always the final position, not
  7316. the initial position of the pointer.  The root is the root
  7317. window for this position, and root-x and root-y are the
  7318. pointer coordinates relative to root's origin at the time of
  7319. the event.  Event is the event window.    If the event window
  7320. is on the same screen as root, then event-x and event-y are
  7321.  
  7322.  
  7323.  
  7324.                  107
  7325.  
  7326.  
  7327.  
  7328.  
  7329.  
  7330. X Protocol                    X11, Release 6.4
  7331.  
  7332.  
  7333. the pointer coordinates relative to the event window's ori-
  7334. gin.  Otherwise, event-x and event-y are zero.    In a
  7335. LeaveNotify event, if a child of the event window contains
  7336. the initial position of the pointer, then the child compo-
  7337. nent is set to that child.  Otherwise, it is None.  For an
  7338. EnterNotify event, if a child of the event window contains
  7339. the final pointer position, then the child component is set
  7340. to that child.    Otherwise, it is None.    If the event window
  7341. is the focus window or an inferior of the focus window, then
  7342. focus is True.    Otherwise, focus is False.
  7343.  
  7344. Normal pointer motion events have mode Normal.    Pseudo-
  7345. motion events when a grab activates have mode Grab, and
  7346. pseudo-motion events when a grab deactivates have mode
  7347. Ungrab.
  7348.  
  7349. All EnterNotify and LeaveNotify events caused by a hierarchy
  7350. change are generated after any hierarchy event caused by
  7351. that change (that is, UnmapNotify, MapNotify,
  7352. ConfigureNotify, GravityNotify, CirculateNotify), but the
  7353. ordering of EnterNotify and LeaveNotify events with respect
  7354. to FocusOut, VisibilityNotify, and Expose events is not con-
  7355. strained.
  7356.  
  7357. Normal events are generated as follows:
  7358.  
  7359. When the pointer moves from window A to window B and A is an
  7360. inferior of B:
  7361.  
  7362. o    LeaveNotify with detail Ancestor is generated on A.
  7363.  
  7364. o    LeaveNotify with detail Virtual is generated on each
  7365.      window between A and B exclusive (in that order).
  7366.  
  7367. o    EnterNotify with detail Inferior is generated on B.
  7368.  
  7369. When the pointer moves from window A to window B and B is an
  7370. inferior of A:
  7371.  
  7372. o    LeaveNotify with detail Inferior is generated on A.
  7373.  
  7374. o    EnterNotify with detail Virtual is generated on each
  7375.      window between A and B exclusive (in that order).
  7376.  
  7377. o    EnterNotify with detail Ancestor is generated on B.
  7378.  
  7379. When the pointer moves from window A to window B and window
  7380. C is their least common ancestor:
  7381.  
  7382. o    LeaveNotify with detail Nonlinear is generated on A.
  7383.  
  7384. o    LeaveNotify with detail NonlinearVirtual is generated
  7385.      on each window between A and C exclusive (in that
  7386.      order).
  7387.  
  7388.  
  7389.  
  7390.                  108
  7391.  
  7392.  
  7393.  
  7394.  
  7395.  
  7396. X Protocol                    X11, Release 6.4
  7397.  
  7398.  
  7399. o    EnterNotify with detail NonlinearVirtual is generated
  7400.      on each window between C and B exclusive (in that
  7401.      order).
  7402.  
  7403. o    EnterNotify with detail Nonlinear is generated on B.
  7404.  
  7405. When the pointer moves from window A to window B on differ-
  7406. ent screens:
  7407.  
  7408. o    LeaveNotify with detail Nonlinear is generated on A.
  7409.  
  7410. o    If A is not a root window, LeaveNotify with detail Non-
  7411.      linearVirtual is generated on each window above A up to
  7412.      and including its root (in order).
  7413.  
  7414. o    If B is not a root window, EnterNotify with detail Non-
  7415.      linearVirtual is generated on each window from B's root
  7416.      down to but not including B (in order).
  7417.  
  7418. o    EnterNotify with detail Nonlinear is generated on B.
  7419.  
  7420. When a pointer grab activates (but after any initial warp
  7421. into a confine-to window and before generating any actual
  7422. ButtonPress event that activates the grab), G is the grab-
  7423. window for the grab, and P is the window the pointer is in:
  7424.  
  7425. o    EnterNotify and LeaveNotify events with mode Grab are
  7426.      generated (as for Normal above) as if the pointer were
  7427.      to suddenly warp from its current position in P to some
  7428.      position in G.  However, the pointer does not warp, and
  7429.      the pointer position is used as both the initial and
  7430.      final positions for the events.
  7431.  
  7432. When a pointer grab deactivates (but after generating any
  7433. actual ButtonRelease event that deactivates the grab), G is
  7434. the grab-window for the grab, and P is the window the
  7435. pointer is in:
  7436.  
  7437. o    EnterNotify and LeaveNotify events with mode Ungrab are
  7438.      generated (as for Normal above) as if the pointer were
  7439.      to suddenly warp from some position in G to its current
  7440.      position in P.  However, the pointer does not warp, and
  7441.      the current pointer position is used as both the ini-
  7442.      tial and final positions for the events.
  7443.  
  7444.  
  7445.  
  7446.  
  7447.  
  7448.  
  7449.  
  7450.  
  7451.  
  7452.  
  7453.  
  7454.  
  7455.  
  7456.                  109
  7457.  
  7458.  
  7459.  
  7460.  
  7461.  
  7462. X Protocol                    X11, Release 6.4
  7463.  
  7464. __
  7465. |    FocusIn
  7466. FocusOut
  7467.  
  7468.   event: WINDOW
  7469.   mode: {Normal, WhileGrabbed, Grab, Ungrab}
  7470.   detail: {Ancestor, Virtual, Inferior, Nonlinear,
  7471.   NonlinearVirtual, Pointer,
  7472. |__           PointerRoot, None}
  7473.  
  7474.  
  7475. These events are generated when the input focus changes and
  7476. are reported to clients selecting FocusChange on the window.
  7477. Events generated by SetInputFocus when the keyboard is not
  7478. grabbed have mode Normal.  Events generated by SetInputFocus
  7479. when the keyboard is grabbed have mode WhileGrabbed.  Events
  7480. generated when a keyboard grab activates have mode Grab, and
  7481. events generated when a keyboard grab deactivates have mode
  7482. Ungrab.
  7483.  
  7484. All FocusOut events caused by a window unmap are generated
  7485. after any UnmapNotify event, but the ordering of FocusOut
  7486. with respect to generated EnterNotify, LeaveNotify,
  7487. VisibilityNotify, and Expose events is not constrained.
  7488.  
  7489. Normal and WhileGrabbed events are generated as follows:
  7490.  
  7491. When the focus moves from window A to window B, A is an
  7492. inferior of B, and the pointer is in window P:
  7493.  
  7494. o    FocusOut with detail Ancestor is generated on A.
  7495.  
  7496. o    FocusOut with detail Virtual is generated on each win-
  7497.      dow between A and B exclusive (in order).
  7498.  
  7499. o    FocusIn with detail Inferior is generated on B.
  7500.  
  7501. o    If P is an inferior of B but P is not A or an inferior
  7502.      of A or an ancestor of A, FocusIn with detail Pointer
  7503.      is generated on each window below B down to and includ-
  7504.      ing P (in order).
  7505.  
  7506. When the focus moves from window A to window B, B is an
  7507. inferior of A, and the pointer is in window P:
  7508.  
  7509. o    If P is an inferior of A but P is not an inferior of B
  7510.      or an ancestor of B, FocusOut with detail Pointer is
  7511.      generated on each window from P up to but not including
  7512.      A (in order).
  7513.  
  7514. o    FocusOut with detail Inferior is generated on A.
  7515.  
  7516. o    FocusIn with detail Virtual is generated on each window
  7517.      between A and B exclusive (in order).
  7518.  
  7519.  
  7520.  
  7521.  
  7522.                  110
  7523.  
  7524.  
  7525.  
  7526.  
  7527.  
  7528. X Protocol                    X11, Release 6.4
  7529.  
  7530.  
  7531. o    FocusIn with detail Ancestor is generated on B.
  7532.  
  7533. When the focus moves from window A to window B, window C is
  7534. their least common ancestor, and the pointer is in window P:
  7535.  
  7536. o    If P is an inferior of A, FocusOut with detail Pointer
  7537.      is generated on each window from P up to but not
  7538.      including A (in order).
  7539.  
  7540. o    FocusOut with detail Nonlinear is generated on A.
  7541.  
  7542. o    FocusOut with detail NonlinearVirtual is generated on
  7543.      each window between A and C exclusive (in order).
  7544.  
  7545. o    FocusIn with detail NonlinearVirtual is generated on
  7546.      each window between C and B exclusive (in order).
  7547.  
  7548. o    FocusIn with detail Nonlinear is generated on B.
  7549.  
  7550. o    If P is an inferior of B, FocusIn with detail Pointer
  7551.      is generated on each window below B down to and includ-
  7552.      ing P (in order).
  7553.  
  7554. When the focus moves from window A to window B on different
  7555. screens and the pointer is in window P:
  7556.  
  7557. o    If P is an inferior of A, FocusOut with detail Pointer
  7558.      is generated on each window from P up to but not
  7559.      including A (in order).
  7560.  
  7561. o    FocusOut with detail Nonlinear is generated on A.
  7562.  
  7563. o    If A is not a root window, FocusOut with detail Nonlin-
  7564.      earVirtual is generated on each window above A up to
  7565.      and including its root (in order).
  7566.  
  7567. o    If B is not a root window, FocusIn with detail Nonlin-
  7568.      earVirtual is generated on each window from B's root
  7569.      down to but not including B (in order).
  7570.  
  7571. o    FocusIn with detail Nonlinear is generated on B.
  7572.  
  7573. o    If P is an inferior of B, FocusIn with detail Pointer
  7574.      is generated on each window below B down to and includ-
  7575.      ing P (in order).
  7576.  
  7577. When the focus moves from window A to PointerRoot (or None)
  7578. and the pointer is in window P:
  7579.  
  7580. o    If P is an inferior of A, FocusOut with detail Pointer
  7581.      is generated on each window from P up to but not
  7582.      including A (in order).
  7583.  
  7584.  
  7585.  
  7586.  
  7587.  
  7588.                  111
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594. X Protocol                    X11, Release 6.4
  7595.  
  7596.  
  7597. o    FocusOut with detail Nonlinear is generated on A.
  7598.  
  7599. o    If A is not a root window, FocusOut with detail Nonlin-
  7600.      earVirtual is generated on each window above A up to
  7601.      and including its root (in order).
  7602.  
  7603. o    FocusIn with detail PointerRoot (or None) is generated
  7604.      on all root windows.
  7605.  
  7606. o    If the new focus is PointerRoot, FocusIn with detail
  7607.      Pointer is generated on each window from P's root down
  7608.      to and including P (in order).
  7609.  
  7610. When the focus moves from PointerRoot (or None) to window A
  7611. and the pointer is in window P:
  7612.  
  7613. o    If the old focus is PointerRoot, FocusOut with detail
  7614.      Pointer is generated on each window from P up to and
  7615.      including P's root (in order).
  7616.  
  7617. o    FocusOut with detail PointerRoot (or None) is generated
  7618.      on all root windows.
  7619.  
  7620. o    If A is not a root window, FocusIn with detail Nonlin-
  7621.      earVirtual is generated on each window from A's root
  7622.      down to but not including A (in order).
  7623.  
  7624. o    FocusIn with detail Nonlinear is generated on A.
  7625.  
  7626. o    If P is an inferior of A, FocusIn with detail Pointer
  7627.      is generated on each window below A down to and includ-
  7628.      ing P (in order).
  7629.  
  7630. When the focus moves from PointerRoot to None (or vice
  7631. versa) and the pointer is in window P:
  7632.  
  7633. o    If the old focus is PointerRoot, FocusOut with detail
  7634.      Pointer is generated on each window from P up to and
  7635.      including P's root (in order).
  7636.  
  7637. o    FocusOut with detail PointerRoot (or None) is generated
  7638.      on all root windows.
  7639.  
  7640. o    FocusIn with detail None (or PointerRoot) is generated
  7641.      on all root windows.
  7642.  
  7643. o    If the new focus is PointerRoot, FocusIn with detail
  7644.      Pointer is generated on each window from P's root down
  7645.      to and including P (in order).
  7646.  
  7647. When a keyboard grab activates (but before generating any
  7648. actual KeyPress event that activates the grab), G is the
  7649. grab-window for the grab, and F is the current focus:
  7650.  
  7651.  
  7652.  
  7653.  
  7654.                  112
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660. X Protocol                    X11, Release 6.4
  7661.  
  7662.  
  7663. o    FocusIn and FocusOut events with mode Grab are gener-
  7664.      ated (as for Normal above) as if the focus were to
  7665.      change from F to G.
  7666.  
  7667. When a keyboard grab deactivates (but after generating any
  7668. actual KeyRelease event that deactivates the grab), G is the
  7669. grab-window for the grab, and F is the current focus:
  7670.  
  7671. o    FocusIn and FocusOut events with mode Ungrab are gener-
  7672.      ated (as for Normal above) as if the focus were to
  7673.      change from G to F.
  7674.  
  7675.  
  7676. __
  7677. |    KeymapNotify
  7678.  
  7679. |__    keys: LISTofCARD8
  7680.  
  7681.  
  7682. The value is a bit vector as described in QueryKeymap.    This
  7683. event is reported to clients selecting KeymapState on a win-
  7684. dow and is generated immediately after every EnterNotify and
  7685. FocusIn.
  7686.  
  7687.  
  7688. __
  7689. |    Expose
  7690.  
  7691.   window: WINDOW
  7692.   x, y, width, height: CARD16
  7693. |__    count: CARD16
  7694.  
  7695.  
  7696. This event is reported to clients selecting Exposure on the
  7697. window.  It is generated when no valid contents are avail-
  7698. able for regions of a window, and either the regions are
  7699. visible, the regions are viewable and the server is (perhaps
  7700. newly) maintaining backing store on the window, or the win-
  7701. dow is not viewable but the server is (perhaps newly) honor-
  7702. ing window's backing-store attribute of Always or
  7703. WhenMapped.  The regions are decomposed into an arbitrary
  7704. set of rectangles, and an Expose event is generated for each
  7705. rectangle.
  7706.  
  7707. For a given action causing exposure events, the set of
  7708. events for a given window are guaranteed to be reported con-
  7709. tiguously.  If count is zero, then no more Expose events for
  7710. this window follow.  If count is nonzero, then at least that
  7711. many more Expose events for this window follow (and possibly
  7712. more).
  7713.  
  7714. The x and y coordinates are relative to window's origin and
  7715. specify the upper-left corner of a rectangle.  The width and
  7716. height specify the extent of the rectangle.
  7717.  
  7718.  
  7719.  
  7720.                  113
  7721.  
  7722.  
  7723.  
  7724.  
  7725.  
  7726. X Protocol                    X11, Release 6.4
  7727.  
  7728.  
  7729. Expose events are never generated on InputOnly windows.
  7730.  
  7731. All Expose events caused by a hierarchy change are generated
  7732. after any hierarchy event caused by that change (for exam-
  7733. ple, UnmapNotify, MapNotify, ConfigureNotify, GravityNotify,
  7734. CirculateNotify).  All Expose events on a given window are
  7735. generated after any VisibilityNotify event on that window,
  7736. but it is not required that all Expose events on all windows
  7737. be generated after all Visibilitity events on all windows.
  7738. The ordering of Expose events with respect to FocusOut,
  7739. EnterNotify, and LeaveNotify events is not constrained.
  7740.  
  7741.  
  7742. __
  7743. |    GraphicsExposure
  7744.  
  7745.   drawable: DRAWABLE
  7746.   x, y, width, height: CARD16
  7747.   count: CARD16
  7748.   major-opcode: CARD8
  7749. |__    minor-opcode: CARD16
  7750.  
  7751.  
  7752. This event is reported to a client using a graphics context
  7753. with graphics-exposures selected and is generated when a
  7754. destination region could not be computed due to an obscured
  7755. or out-of-bounds source region.  All of the regions exposed
  7756. by a given graphics request are guaranteed to be reported
  7757. contiguously.  If count is zero then no more GraphicsExpo-
  7758. sure events for this window follow.  If count is nonzero,
  7759. then at least that many more GraphicsExposure events for
  7760. this window follow (and possibly more).
  7761.  
  7762. The x and y coordinates are relative to drawable's origin
  7763. and specify the upper-left corner of a rectangle.  The width
  7764. and height specify the extent of the rectangle.
  7765.  
  7766. The major and minor opcodes identify the graphics request
  7767. used.  For the core protocol, major-opcode is always Copy-
  7768. Area or CopyPlane, and minor-opcode is always zero.
  7769.  
  7770.  
  7771. __
  7772. |    NoExposure
  7773.  
  7774.   drawable: DRAWABLE
  7775.   major-opcode: CARD8
  7776. |__    minor-opcode: CARD16
  7777.  
  7778.  
  7779. This event is reported to a client using a graphics context
  7780. with graphics-exposures selected and is generated when a
  7781. graphics request that might produce GraphicsExposure events
  7782. does not produce any.  The drawable specifies the
  7783.  
  7784.  
  7785.  
  7786.                  114
  7787.  
  7788.  
  7789.  
  7790.  
  7791.  
  7792. X Protocol                    X11, Release 6.4
  7793.  
  7794.  
  7795. destination used for the graphics request.
  7796.  
  7797. The major and minor opcodes identify the graphics request
  7798. used.  For the core protocol, major-opcode is always Copy-
  7799. Area or CopyPlane, and the minor-opcode is always zero.
  7800.  
  7801.  
  7802. __
  7803. |    VisibilityNotify
  7804.  
  7805.   window: WINDOW
  7806. |__    state: {Unobscured, PartiallyObscured, FullyObscured}
  7807.  
  7808.  
  7809. This event is reported to clients selecting VisibilityChange
  7810. on the window.    In the following, the state of the window is
  7811. calculated ignoring all of the window's subwindows.  When a
  7812. window changes state from partially or fully obscured or not
  7813. viewable to viewable and completely unobscured, an event
  7814. with Unobscured is generated.  When a window changes state
  7815. from viewable and completely unobscured, from viewable and
  7816. completely obscured, or from not viewable, to viewable and
  7817. partially obscured, an event with PartiallyObscured is gen-
  7818. erated.  When a window changes state from viewable and com-
  7819. pletely unobscured, from viewable and partially obscured, or
  7820. from not viewable to viewable and fully obscured, an event
  7821. with FullyObscured is generated.
  7822.  
  7823. VisibilityNotify events are never generated on InputOnly
  7824. windows.
  7825.  
  7826. All VisibilityNotify events caused by a hierarchy change are
  7827. generated after any hierarchy event caused by that change
  7828. (for example, UnmapNotify, MapNotify, ConfigureNotify,
  7829. GravityNotify, CirculateNotify).  Any VisibilityNotify event
  7830. on a given window is generated before any Expose events on
  7831. that window, but it is not required that all VisibilityNo-
  7832. tify events on all windows be generated before all Expose
  7833. events on all windows.    The ordering of VisibilityNotify
  7834. events with respect to FocusOut, EnterNotify, and LeaveNo-
  7835. tify events is not constrained.
  7836.  
  7837.  
  7838. __
  7839. |    CreateNotify
  7840.  
  7841.   parent, window: WINDOW
  7842.   x, y: INT16
  7843.   width, height, border-width: CARD16
  7844. |__    override-redirect: BOOL
  7845.  
  7846.  
  7847. This event is reported to clients selecting SubstructureNo-
  7848. tify on the parent and is generated when the window is
  7849.  
  7850.  
  7851.  
  7852.                  115
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858. X Protocol                    X11, Release 6.4
  7859.  
  7860.  
  7861. created.  The arguments are as in the CreateWindow request.
  7862.  
  7863.  
  7864. __
  7865. |    DestroyNotify
  7866.  
  7867. |__    event, window: WINDOW
  7868.  
  7869.  
  7870. This event is reported to clients selecting StructureNotify
  7871. on the window and to clients selecting SubstructureNotify on
  7872. the parent.  It is generated when the window is destroyed.
  7873. The event is the window on which the event was generated,
  7874. and the window is the window that is destroyed.
  7875.  
  7876. The ordering of the DestroyNotify events is such that for
  7877. any given window, DestroyNotify is generated on all inferi-
  7878. ors of the window before being generated on the window
  7879. itself.  The ordering among siblings and across subhierar-
  7880. chies is not otherwise constrained.
  7881.  
  7882.  
  7883. __
  7884. |    UnmapNotify
  7885.  
  7886.   event, window: WINDOW
  7887. |__    from-configure: BOOL
  7888.  
  7889.  
  7890. This event is reported to clients selecting StructureNotify
  7891. on the window and to clients selecting SubstructureNotify on
  7892. the parent.  It is generated when the window changes state
  7893. from mapped to unmapped.  The event is the window on which
  7894. the event was generated, and the window is the window that
  7895. is unmapped.  The from-configure flag is True if the event
  7896. was generated as a result of the window's parent being
  7897. resized when the window itself had a win-gravity of Unmap.
  7898.  
  7899.  
  7900. __
  7901. |    MapNotify
  7902.  
  7903.   event, window: WINDOW
  7904. |__    override-redirect: BOOL
  7905.  
  7906.  
  7907. This event is reported to clients selecting StructureNotify
  7908. on the window and to clients selecting SubstructureNotify on
  7909. the parent.  It is generated when the window changes state
  7910. from unmapped to mapped.  The event is the window on which
  7911. the event was generated, and the window is the window that
  7912. is mapped.  The override-redirect flag is from the window's
  7913. attribute.
  7914.  
  7915.  
  7916.  
  7917.  
  7918.                  116
  7919.  
  7920.  
  7921.  
  7922.  
  7923.  
  7924. X Protocol                    X11, Release 6.4
  7925.  
  7926. __
  7927. |    MapRequest
  7928.  
  7929. |__    parent, window: WINDOW
  7930.  
  7931.  
  7932. This event is reported to the client selecting Substructur-
  7933. eRedirect on the parent and is generated when a MapWindow
  7934. request is issued on an unmapped window with an override-
  7935. redirect attribute of False.
  7936.  
  7937.  
  7938. __
  7939. |    ReparentNotify
  7940.  
  7941.   event, window, parent: WINDOW
  7942.   x, y: INT16
  7943. |__    override-redirect: BOOL
  7944.  
  7945.  
  7946. This event is reported to clients selecting SubstructureNo-
  7947. tify on either the old or the new parent and to clients
  7948. selecting StructureNotify on the window.  It is generated
  7949. when the window is reparented.    The event is the window on
  7950. which the event was generated.    The window is the window
  7951. that has been rerooted.  The parent specifies the new par-
  7952. ent.  The x and y coordinates are relative to the new par-
  7953. ent's origin and specify the position of the upper-left
  7954. outer corner of the window.  The override-redirect flag is
  7955. from the window's attribute.
  7956.  
  7957.  
  7958. __
  7959. |    ConfigureNotify
  7960.  
  7961.   event, window: WINDOW
  7962.   x, y: INT16
  7963.   width, height, border-width: CARD16
  7964.   above-sibling: WINDOW or None
  7965. |__    override-redirect: BOOL
  7966.  
  7967.  
  7968. This event is reported to clients selecting StructureNotify
  7969. on the window and to clients selecting SubstructureNotify on
  7970. the parent.  It is generated when a ConfigureWindow request
  7971. actually changes the state of the window.  The event is the
  7972. window on which the event was generated, and the window is
  7973. the window that is changed.  The x and y coordinates are
  7974. relative to the new parent's origin and specify the position
  7975. of the upper-left outer corner of the window.  The width and
  7976. height specify the inside size, not including the border.
  7977. If above-sibling is None, then the window is on the bottom
  7978. of the stack with respect to siblings.    Otherwise, the win-
  7979. dow is immediately on top of the specified sibling.  The
  7980. override-redirect flag is from the window's attribute.
  7981.  
  7982.  
  7983.  
  7984.                  117
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990. X Protocol                    X11, Release 6.4
  7991.  
  7992. __
  7993. |    GravityNotify
  7994.  
  7995.   event, window: WINDOW
  7996. |__    x, y: INT16
  7997.  
  7998.  
  7999. This event is reported to clients selecting SubstructureNo-
  8000. tify on the parent and to clients selecting StructureNotify
  8001. on the window.    It is generated when a window is moved
  8002. because of a change in size of the parent.  The event is the
  8003. window on which the event was generated, and the window is
  8004. the window that is moved.  The x and y coordinates are rela-
  8005. tive to the new parent's origin and specify the position of
  8006. the upper-left outer corner of the window.
  8007.  
  8008.  
  8009. __
  8010. |    ResizeRequest
  8011.  
  8012.   window: WINDOW
  8013. |__    width, height: CARD16
  8014.  
  8015.  
  8016. This event is reported to the client selecting ResizeRedi-
  8017. rect on the window and is generated when a ConfigureWindow
  8018. request by some other client on the window attempts to
  8019. change the size of the window.    The width and height are the
  8020. requested inside size, not including the border.
  8021.  
  8022.  
  8023. __
  8024. |    ConfigureRequest
  8025.  
  8026.   parent, window: WINDOW
  8027.   x, y: INT16
  8028.   width, height, border-width: CARD16
  8029.   sibling: WINDOW or None
  8030.   stack-mode: {Above, Below, TopIf, BottomIf, Opposite}
  8031. |__    value-mask: BITMASK
  8032.  
  8033.  
  8034. This event is reported to the client selecting Substructur-
  8035. eRedirect on the parent and is generated when a Config-
  8036. ureWindow request is issued on the window by some other
  8037. client.  The value-mask indicates which components were
  8038. specified in the request.  The value-mask and the corre-
  8039. sponding values are reported as given in the request.  The
  8040. remaining values are filled in from the current geometry of
  8041. the window, except in the case of sibling and stack-mode,
  8042. which are reported as None and Above (respectively) if not
  8043. given in the request.
  8044.  
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  
  8050.                  118
  8051.  
  8052.  
  8053.  
  8054.  
  8055.  
  8056. X Protocol                    X11, Release 6.4
  8057.  
  8058. __
  8059. |    CirculateNotify
  8060.  
  8061.   event, window: WINDOW
  8062. |__    place: {Top, Bottom}
  8063.  
  8064.  
  8065. This event is reported to clients selecting StructureNotify
  8066. on the window and to clients selecting SubstructureNotify on
  8067. the parent.  It is generated when the window is actually
  8068. restacked from a CirculateWindow request.  The event is the
  8069. window on which the event was generated, and the window is
  8070. the window that is restacked.  If place is Top, the window
  8071. is now on top of all siblings.    Otherwise, it is below all
  8072. siblings.
  8073.  
  8074.  
  8075. __
  8076. |    CirculateRequest
  8077.  
  8078.   parent, window: WINDOW
  8079. |__    place: {Top, Bottom}
  8080.  
  8081.  
  8082. This event is reported to the client selecting Substructur-
  8083. eRedirect on the parent and is generated when a Circu-
  8084. lateWindow request is issued on the parent and a window
  8085. actually needs to be restacked.  The window specifies the
  8086. window to be restacked, and the place specifies what the new
  8087. position in the stacking order should be.
  8088.  
  8089.  
  8090. __
  8091. |    PropertyNotify
  8092.  
  8093.   window: WINDOW
  8094.   atom: ATOM
  8095.   state: {NewValue, Deleted}
  8096. |__    time: TIMESTAMP
  8097.  
  8098.  
  8099. This event is reported to clients selecting PropertyChange
  8100. on the window and is generated with state NewValue when a
  8101. property of the window is changed using ChangeProperty or
  8102. RotateProperties, even when adding zero-length data using
  8103. ChangeProperty and when replacing all or part of a property
  8104. with identical data using ChangeProperty or
  8105. RotateProperties.  It is generated with state Deleted when a
  8106. property of the window is deleted using request DeleteProp-
  8107. erty or GetProperty.  The timestamp indicates the server
  8108. time when the property was changed.
  8109.  
  8110.  
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.                  119
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122. X Protocol                    X11, Release 6.4
  8123.  
  8124. __
  8125. |    SelectionClear
  8126.  
  8127.   owner: WINDOW
  8128.   selection: ATOM
  8129. |__    time: TIMESTAMP
  8130.  
  8131.  
  8132. This event is reported to the current owner of a selection
  8133. and is generated when a new owner is being defined by means
  8134. of SetSelectionOwner.  The timestamp is the last-change time
  8135. recorded for the selection.  The owner argument is the win-
  8136. dow that was specified by the current owner in its SetSelec-
  8137. tionOwner request.
  8138.  
  8139.  
  8140. __
  8141. |    SelectionRequest
  8142.  
  8143.   owner: WINDOW
  8144.   selection: ATOM
  8145.   target: ATOM
  8146.   property: ATOM or None
  8147.   requestor: WINDOW
  8148. |__    time: TIMESTAMP or CurrentTime
  8149.  
  8150.  
  8151. This event is reported to the owner of a selection and is
  8152. generated when a client issues a ConvertSelection request.
  8153. The owner argument is the window that was specified in the
  8154. SetSelectionOwner request.  The remaining arguments are as
  8155. in the ConvertSelection request.
  8156.  
  8157. The owner should convert the selection based on the speci-
  8158. fied target type and send a SelectionNotify back to the
  8159. requestor.  A complete specification for using selections is
  8160. given in the X Consortium standard Inter-Client Communica-
  8161. tion Conventions Manual.
  8162.  
  8163.  
  8164. __
  8165. |    SelectionNotify
  8166.  
  8167.   requestor: WINDOW
  8168.   selection, target: ATOM
  8169.   property: ATOM or None
  8170. |__    time: TIMESTAMP or CurrentTime
  8171.  
  8172.  
  8173. This event is generated by the server in response to a Con-
  8174. vertSelection request when there is no owner for the selec-
  8175. tion.  When there is an owner, it should be generated by the
  8176. owner using SendEvent.    The owner of a selection should send
  8177. this event to a requestor either when a selection has been
  8178. converted and stored as a property or when a selection
  8179.  
  8180.  
  8181.  
  8182.                  120
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188. X Protocol                    X11, Release 6.4
  8189.  
  8190.  
  8191. conversion could not be performed (indicated with property
  8192. None).
  8193.  
  8194.  
  8195. __
  8196. |    ColormapNotify
  8197.  
  8198.   window: WINDOW
  8199.   colormap: COLORMAP or None
  8200.   new: BOOL
  8201. |__    state: {Installed, Uninstalled}
  8202.  
  8203.  
  8204. This event is reported to clients selecting ColormapChange
  8205. on the window.    It is generated with value True for new when
  8206. the colormap attribute of the window is changed and is gen-
  8207. erated with value False for new when the colormap of a win-
  8208. dow is installed or uninstalled.  In either case, the state
  8209. indicates whether the colormap is currently installed.
  8210.  
  8211.  
  8212. __
  8213. |    MappingNotify
  8214.  
  8215.   request: {Modifier, Keyboard, Pointer}
  8216. |__    first-keycode, count: CARD8
  8217.  
  8218.  
  8219. This event is sent to all clients.  There is no mechanism to
  8220. express disinterest in this event.  The detail indicates the
  8221. kind of change that occurred: Modifiers for a successful
  8222. SetModifierMapping, Keyboard for a successful
  8223. ChangeKeyboardMapping, and Pointer for a successful
  8224. SetPointerMapping.  If the detail is Keyboard, then first-
  8225. keycode and count indicate the range of altered keycodes.
  8226.  
  8227.  
  8228. __
  8229. |    ClientMessage
  8230.  
  8231.   window: WINDOW
  8232.   type: ATOM
  8233.   format: {8, 16, 32}
  8234. |__    data: LISTofINT8 or LISTofINT16 or LISTofINT32
  8235.  
  8236.  
  8237. This event is only generated by clients using SendEvent.
  8238. The type specifies how the data is to be interpreted by the
  8239. receiving client; the server places no interpretation on the
  8240. type or the data.  The format specifies whether the data
  8241. should be viewed as a list of 8-bit, 16-bit, or 32-bit quan-
  8242. tities, so that the server can correctly byte-swap, as nec-
  8243. essary.  The data always consists of either 20 8-bit values
  8244. or 10 16-bit values or 5 32-bit values, although particular
  8245.  
  8246.  
  8247.  
  8248.                  121
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254. X Protocol                    X11, Release 6.4
  8255.  
  8256.  
  8257. message types might not make use of all of these values.
  8258.  
  8259. 12.  Flow Control and Concurrency
  8260.  
  8261. Whenever the server is writing to a given connection, it is
  8262. permissible for the server to stop reading from that connec-
  8263. tion (but if the writing would block, it must continue to
  8264. service other connections).  The server is not required to
  8265. buffer more than a single request per connection at one
  8266. time.  For a given connection to the server, a client can
  8267. block while reading from the connection but should undertake
  8268. to read (events and errors) when writing would block.  Fail-
  8269. ure on the part of a client to obey this rule could result
  8270. in a deadlocked connection, although deadlock is probably
  8271. unlikely unless either the transport layer has very little
  8272. buffering or the client attempts to send large numbers of
  8273. requests without ever reading replies or checking for errors
  8274. and events.
  8275.  
  8276. Whether or not a server is implemented with internal concur-
  8277. rency, the overall effect must be as if individual requests
  8278. are executed to completion in some serial order, and
  8279. requests from a given connection must be executed in deliv-
  8280. ery order (that is, the total execution order is a shuffle
  8281. of the individual streams).  The execution of a request
  8282. includes validating all arguments, collecting all data for
  8283. any reply, and generating and queueing all required events.
  8284. However, it does not include the actual transmission of the
  8285. reply and the events.  In addition, the effect of any other
  8286. cause that can generate multiple events (for example, acti-
  8287. vation of a grab or pointer motion) must effectively gener-
  8288. ate and queue all required events indivisibly with respect
  8289. to all other causes and requests.  For a request from a
  8290. given client, any events destined for that client that are
  8291. caused by executing the request must be sent to the client
  8292. before any reply or error is sent.
  8293.  
  8294.  
  8295.  
  8296.  
  8297.  
  8298.  
  8299.  
  8300.  
  8301.  
  8302.  
  8303.  
  8304.  
  8305.  
  8306.  
  8307.  
  8308.  
  8309.  
  8310.  
  8311.  
  8312.  
  8313.  
  8314.                  122
  8315.  
  8316.  
  8317.  
  8318.  
  8319.  
  8320. X Protocol                    X11, Release 6.4
  8321.  
  8322.  
  8323.  
  8324.  
  8325.              Appendix A
  8326.  
  8327.               KEYSYM Encoding
  8328.  
  8329.  
  8330.  
  8331. For convenience, KEYSYM values are viewed as split into four
  8332. bytes:
  8333.  
  8334. o    Byte 1 (for the purposes of this encoding) is the most-
  8335.      significant 5 bits (because of the 29-bit effective
  8336.      values)
  8337.  
  8338. o    Byte 2 is the next most-significant 8 bits
  8339.  
  8340. o    Byte 3 is the next most-significant 8 bits
  8341.  
  8342. o    Byte 4 is the least-significant 8 bits
  8343.  
  8344. There are two special KEYSYM values: NoSymbol and
  8345. VoidSymbol.  They are used to indicate the absence of sym-
  8346. bols (see section 5).
  8347.  
  8348. -----------------------------------------------
  8349. Byte 1     Byte 2   Byte 3   Byte 4   Name
  8350. -----------------------------------------------
  8351.   0        0         0          0     NoSymbol
  8352.   0      255       255        255     VoidSymbol
  8353. -----------------------------------------------
  8354.  
  8355. All other standard KEYSYM values have zero values for bytes
  8356. 1 and 2.  Byte 3 indicates a character code set, and byte 4
  8357. indicates a particular character within that set.
  8358.  
  8359. ----------------------------------
  8360. Byte 3     Byte 4
  8361. ----------------------------------
  8362.    0     Latin-1
  8363.    1     Latin-2
  8364.    2     Latin-3
  8365.    3     Latin-4
  8366.    4     Kana
  8367.    5     Arabic
  8368.    6     Cyrillic
  8369.    7     Greek
  8370.    8     Technical
  8371.    9     Special
  8372.   10     Publishing
  8373.   11     APL
  8374.   12     Hebrew
  8375.   13     Thai
  8376.  
  8377.  
  8378.  
  8379.  
  8380.                  123
  8381.  
  8382.  
  8383.  
  8384.  
  8385.  
  8386. X Protocol                    X11, Release 6.4
  8387.  
  8388.  
  8389.   14     Korean
  8390.   15     Latin-5
  8391.   16     Latin-6
  8392.   17     Latin-7
  8393.   18     Latin-8
  8394.   19     Latin-9
  8395.   32     Currency
  8396.  253     3270
  8397.  254     Keyboard (XKB) Extension
  8398.  255     Keyboard
  8399. ----------------------------------
  8400.  
  8401. Each character set contains gaps where codes have been
  8402. removed that were duplicates with codes in previous charac-
  8403. ter sets (that is, character sets with lesser byte 3 value).
  8404.  
  8405. The 94 and 96 character code sets have been moved to occupy
  8406. the right-hand quadrant (decimal 129 through 256), so the
  8407. ASCII subset has a unique encoding across byte 4, which cor-
  8408. responds to the ASCII character code.  However, this cannot
  8409. be guaranteed with future registrations and does not apply
  8410. to all of the Keyboard set.
  8411.  
  8412. To the best of our knowledge, the Latin, Kana, Arabic,
  8413. Cyrillic, Greek, APL, and Hebrew sets are from the appropri-
  8414. ate ISO and/or ECMA international standards.  There are no
  8415. Technical, Special, or Publishing international standards,
  8416. so these sets are based on Digital Equipment Corporation
  8417. standards.
  8418.  
  8419. The ordering between the sets (byte 3) is essentially arbi-
  8420. trary.    National and international standards bodies were
  8421. commencing deliberations regarding international 2-byte and
  8422. 4-byte character sets at the time these keysyms were devel-
  8423. oped, but we did not know of any proposed layouts.
  8424.  
  8425. The order may be arbitrary, but it is important in dealing
  8426. with duplicate coding.    As far as possible, keysym values
  8427. (byte 4) follow the character set encoding standards, except
  8428. for the Greek and Cyrillic keysyms which are based on early
  8429. draft standards.  In the Latin-1 to Latin-4 sets, all dupli-
  8430. cate glyphs occupy the same code position.  However, dupli-
  8431. cates between Greek and Technical do not occupy the same
  8432. code position.    Applications that wish to use the Latin-2,
  8433. Latin-3, Latin-4, Greek, Cyrillic, or Technical sets may
  8434. find it convenient to use arrays to transform the keysyms.
  8435.  
  8436. There is a difference between European and US usage of the
  8437. names Pilcrow, Paragraph, and Section, as follows:
  8438.  
  8439. -----------------------------------------------------------
  8440. US name      European name      code position in Latin-1
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.                  124
  8447.  
  8448.  
  8449.  
  8450.  
  8451.  
  8452. X Protocol                    X11, Release 6.4
  8453.  
  8454.  
  8455. -----------------------------------------------------------
  8456. Section sign     Paragraph sign   10/07
  8457. Paragraph sign     Pilcrow sign      11/06
  8458. -----------------------------------------------------------
  8459.  
  8460.  
  8461. We have adopted the US names (by accident rather than by
  8462. design).
  8463.  
  8464. The Keyboard set is a miscellaneous collection of commonly
  8465. occurring keys on keyboards.  Within this set, the keypad
  8466. symbols are generally duplicates of symbols found on keys on
  8467. the main part of the keyboard, but they are distinguished
  8468. here because they often have a distinguishable semantics
  8469. associated with them.
  8470.  
  8471. Keyboards tend to be comparatively standard with respect to
  8472. the alphanumeric keys, but they differ radically on the mis-
  8473. cellaneous function keys.  Many function keys are left over
  8474. from early timesharing days or are designed for a specific
  8475. application.  Keyboard layouts from large manufacturers tend
  8476. to have lots of keys for every conceivable purpose, whereas
  8477. small workstation manufacturers often add keys that are
  8478. solely for support of some of their unique functionality.
  8479. There are two ways of thinking about how to define keysyms
  8480. for such a world:
  8481.  
  8482. o    The Engraving approach
  8483.  
  8484. o    The Common approach
  8485.  
  8486. The Engraving approach is to create a keysym for every
  8487. unique key engraving.  This is effectively taking the union
  8488. of all key engravings on all keyboards.  For example, some
  8489. keyboards label function keys across the top as F1 through
  8490. Fn, and others label them as PF1 through PFn.  These would
  8491. be different keys under the Engraving approach.  Likewise,
  8492. Lock would differ from Shift Lock, which is different from
  8493. the up-arrow symbol that has the effect of changing lower-
  8494. case to uppercase.  There are lots of other aliases such as
  8495. Del, DEL, Delete, Remove, and so forth.  The Engraving
  8496. approach makes it easy to decide if a new entry should be
  8497. added to the keysym set:  if it does not exactly match an
  8498. existing one, then a new one is created.  One estimate is
  8499. that there would be on the order of 300-500 Keyboard keysyms
  8500. using this approach, without counting foreign translations
  8501. and variations.
  8502.  
  8503. The Common approach tries to capture all of the keys present
  8504. on an interesting number of keyboards, folding likely
  8505. aliases into the same keysym.  For example, Del, DEL, and
  8506. Delete are all merged into a single keysym.  Vendors would
  8507. be expected to augment the keysym set (using the vendor-spe-
  8508. cific encoding space) to include all of their unique keys
  8509.  
  8510.  
  8511.  
  8512.                  125
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518. X Protocol                    X11, Release 6.4
  8519.  
  8520.  
  8521. that were not included in the standard set.  Each vendor
  8522. decides which of its keys map into the standard keysyms,
  8523. which presumably can be overridden by a user.  It is more
  8524. difficult to implement this approach, because judgment is
  8525. required about when a sufficient set of keyboards implements
  8526. an engraving to justify making it a keysym in the standard
  8527. set and about which engravings should be merged into a sin-
  8528. gle keysym.  Under this scheme there are an estimated
  8529. 100-150 keysyms.
  8530.  
  8531. Although neither scheme is perfect or elegant, the Common
  8532. approach has been selected because it makes it easier to
  8533. write a portable application.  Having the Delete functional-
  8534. ity merged into a single keysym allows an application to
  8535. implement a deletion function and expect reasonable bindings
  8536. on a wide set of workstations.    Under the Common approach,
  8537. application writers are still free to look for and interpret
  8538. vendor-specific keysyms, but because they are in the
  8539. extended set, the application developer is more conscious
  8540. that they are writing the application in a nonportable fash-
  8541. ion.
  8542.  
  8543. In the listings below, Code Pos is a representation of byte
  8544. 4 of the KEYSYM value, expressed as most-significant/least-
  8545. significant 4-bit values.  The Code Pos numbers are for ref-
  8546. erence only and do not affect the KEYSYM value.  In all
  8547. cases, the KEYSYM value is:
  8548.  
  8549.  
  8550.      byte3 * 256 + byte4
  8551.  
  8552.  
  8553. -----------------------------------------------------------------------------------
  8554. Byte   Byte   Code    Name                         Set
  8555.  3    4     Pos
  8556. -----------------------------------------------------------------------------------
  8557. 000    032    02/00   SPACE                         Latin-1
  8558. 000    033    02/01   EXCLAMATION POINT                  Latin-1
  8559. 000    034    02/02   QUOTATION MARK                     Latin-1
  8560. 000    035    02/03   NUMBER SIGN                     Latin-1
  8561. 000    036    02/04   DOLLAR SIGN                     Latin-1
  8562. 000    037    02/05   PERCENT SIGN                     Latin-1
  8563. 000    038    02/06   AMPERSAND                      Latin-1
  8564. 000    039    02/07   APOSTROPHE                     Latin-1
  8565. 000    040    02/08   LEFT PARENTHESIS                     Latin-1
  8566. 000    041    02/09   RIGHT PARENTHESIS                  Latin-1
  8567. 000    042    02/10   ASTERISK                         Latin-1
  8568. 000    043    02/11   PLUS SIGN                      Latin-1
  8569. 000    044    02/12   COMMA                         Latin-1
  8570. 000    045    02/13   MINUS SIGN                     Latin-1
  8571. 000    046    02/14   FULL STOP                      Latin-1
  8572. 000    047    02/15   SOLIDUS                         Latin-1
  8573. 000    048    03/00   DIGIT ZERO                     Latin-1
  8574.  
  8575.  
  8576.  
  8577.  
  8578.                  126
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584. X Protocol                    X11, Release 6.4
  8585.  
  8586.  
  8587. -----------------------------------------------------------------------------------
  8588. Byte   Byte   Code    Name                         Set
  8589.  3    4     Pos
  8590. -----------------------------------------------------------------------------------
  8591. 000    049    03/01   DIGIT ONE                      Latin-1
  8592. 000    050    03/02   DIGIT TWO                      Latin-1
  8593. 000    051    03/03   DIGIT THREE                     Latin-1
  8594. 000    052    03/04   DIGIT FOUR                     Latin-1
  8595. 000    053    03/05   DIGIT FIVE                     Latin-1
  8596. 000    054    03/06   DIGIT SIX                      Latin-1
  8597. 000    055    03/07   DIGIT SEVEN                     Latin-1
  8598. 000    056    03/08   DIGIT EIGHT                     Latin-1
  8599. 000    057    03/09   DIGIT NINE                     Latin-1
  8600. 000    058    03/10   COLON                         Latin-1
  8601. 000    059    03/11   SEMICOLON                      Latin-1
  8602. 000    060    03/12   LESS THAN SIGN                     Latin-1
  8603. 000    061    03/13   EQUALS SIGN                     Latin-1
  8604. 000    062    03/14   GREATER THAN SIGN                  Latin-1
  8605. 000    063    03/15   QUESTION MARK                     Latin-1
  8606. 000    064    04/00   COMMERCIAL AT                     Latin-1
  8607. 000    065    04/01   LATIN CAPITAL LETTER A                 Latin-1
  8608. 000    066    04/02   LATIN CAPITAL LETTER B                 Latin-1
  8609. 000    067    04/03   LATIN CAPITAL LETTER C                 Latin-1
  8610. 000    068    04/04   LATIN CAPITAL LETTER D                 Latin-1
  8611. 000    069    04/05   LATIN CAPITAL LETTER E                 Latin-1
  8612. 000    070    04/06   LATIN CAPITAL LETTER F                 Latin-1
  8613. 000    071    04/07   LATIN CAPITAL LETTER G                 Latin-1
  8614. 000    072    04/08   LATIN CAPITAL LETTER H                 Latin-1
  8615. 000    073    04/09   LATIN CAPITAL LETTER I                 Latin-1
  8616. 000    074    04/10   LATIN CAPITAL LETTER J                 Latin-1
  8617. 000    075    04/11   LATIN CAPITAL LETTER K                 Latin-1
  8618. 000    076    04/12   LATIN CAPITAL LETTER L                 Latin-1
  8619. 000    077    04/13   LATIN CAPITAL LETTER M                 Latin-1
  8620. 000    078    04/14   LATIN CAPITAL LETTER N                 Latin-1
  8621. 000    079    04/15   LATIN CAPITAL LETTER O                 Latin-1
  8622. 000    080    05/00   LATIN CAPITAL LETTER P                 Latin-1
  8623. 000    081    05/01   LATIN CAPITAL LETTER Q                 Latin-1
  8624. 000    082    05/02   LATIN CAPITAL LETTER R                 Latin-1
  8625. 000    083    05/03   LATIN CAPITAL LETTER S                 Latin-1
  8626. 000    084    05/04   LATIN CAPITAL LETTER T                 Latin-1
  8627. 000    085    05/05   LATIN CAPITAL LETTER U                 Latin-1
  8628. 000    086    05/06   LATIN CAPITAL LETTER V                 Latin-1
  8629. 000    087    05/07   LATIN CAPITAL LETTER W                 Latin-1
  8630. 000    088    05/08   LATIN CAPITAL LETTER X                 Latin-1
  8631. 000    089    05/09   LATIN CAPITAL LETTER Y                 Latin-1
  8632. 000    090    05/10   LATIN CAPITAL LETTER Z                 Latin-1
  8633. 000    091    05/11   LEFT SQUARE BRACKET                 Latin-1
  8634. 000    092    05/12   REVERSE SOLIDUS                     Latin-1
  8635. 000    093    05/13   RIGHT SQUARE BRACKET                 Latin-1
  8636. 000    094    05/14   CIRCUMFLEX ACCENT                  Latin-1
  8637. 000    095    05/15   LOW LINE                         Latin-1
  8638. 000    096    06/00   GRAVE ACCENT                     Latin-1
  8639. 000    097    06/01   LATIN SMALL LETTER a                 Latin-1
  8640.  
  8641.  
  8642.  
  8643.  
  8644.                  127
  8645.  
  8646.  
  8647.  
  8648.  
  8649.  
  8650. X Protocol                    X11, Release 6.4
  8651.  
  8652.  
  8653. -----------------------------------------------------------------------------------
  8654. Byte   Byte   Code    Name                         Set
  8655.  3    4     Pos
  8656. -----------------------------------------------------------------------------------
  8657. 000    098    06/02   LATIN SMALL LETTER b                 Latin-1
  8658. 000    099    06/03   LATIN SMALL LETTER c                 Latin-1
  8659. 000    100    06/04   LATIN SMALL LETTER d                 Latin-1
  8660. 000    101    06/05   LATIN SMALL LETTER e                 Latin-1
  8661. 000    102    06/06   LATIN SMALL LETTER f                 Latin-1
  8662. 000    103    06/07   LATIN SMALL LETTER g                 Latin-1
  8663. 000    104    06/08   LATIN SMALL LETTER h                 Latin-1
  8664. 000    105    06/09   LATIN SMALL LETTER i                 Latin-1
  8665. 000    106    06/10   LATIN SMALL LETTER j                 Latin-1
  8666. 000    107    06/11   LATIN SMALL LETTER k                 Latin-1
  8667. 000    108    06/12   LATIN SMALL LETTER l                 Latin-1
  8668. 000    109    06/13   LATIN SMALL LETTER m                 Latin-1
  8669. 000    110    06/14   LATIN SMALL LETTER n                 Latin-1
  8670. 000    111    06/15   LATIN SMALL LETTER o                 Latin-1
  8671. 000    112    07/00   LATIN SMALL LETTER p                 Latin-1
  8672. 000    113    07/01   LATIN SMALL LETTER q                 Latin-1
  8673. 000    114    07/02   LATIN SMALL LETTER r                 Latin-1
  8674. 000    115    07/03   LATIN SMALL LETTER s                 Latin-1
  8675. 000    116    07/04   LATIN SMALL LETTER t                 Latin-1
  8676. 000    117    07/05   LATIN SMALL LETTER u                 Latin-1
  8677. 000    118    07/06   LATIN SMALL LETTER v                 Latin-1
  8678. 000    119    07/07   LATIN SMALL LETTER w                 Latin-1
  8679. 000    120    07/08   LATIN SMALL LETTER x                 Latin-1
  8680. 000    121    07/09   LATIN SMALL LETTER y                 Latin-1
  8681. 000    122    07/10   LATIN SMALL LETTER z                 Latin-1
  8682. 000    123    07/11   LEFT CURLY BRACKET                 Latin-1
  8683. 000    124    07/12   VERTICAL LINE                     Latin-1
  8684. 000    125    07/13   RIGHT CURLY BRACKET                 Latin-1
  8685. 000    126    07/14   TILDE                         Latin-1
  8686. 000    160    10/00   NO-BREAK SPACE                     Latin-1
  8687. 000    161    10/01   INVERTED EXCLAMATION MARK              Latin-1
  8688. 000    162    10/02   CENT SIGN                      Latin-1
  8689. 000    163    10/03   POUND SIGN                     Latin-1
  8690. 000    164    10/04   CURRENCY SIGN                     Latin-1
  8691. 000    165    10/05   YEN SIGN                         Latin-1
  8692. 000    166    10/06   BROKEN VERTICAL BAR                 Latin-1
  8693. 000    167    10/07   SECTION SIGN                     Latin-1
  8694. 000    168    10/08   DIAERESIS                      Latin-1
  8695. 000    169    10/09   COPYRIGHT SIGN                     Latin-1
  8696. 000    170    10/10   FEMININE ORDINAL INDICATOR             Latin-1
  8697. 000    171    10/11   LEFT ANGLE QUOTATION MARK              Latin-1
  8698. 000    172    10/12   NOT SIGN                         Latin-1
  8699. 000    173    10/13   HYPHEN                         Latin-1
  8700. 000    174    10/14   REGISTERED TRADEMARK SIGN              Latin-1
  8701. 000    175    10/15   MACRON                         Latin-1
  8702. 000    176    11/00   DEGREE SIGN, RING ABOVE                 Latin-1
  8703. 000    177    11/01   PLUS-MINUS SIGN                     Latin-1
  8704. 000    178    11/02   SUPERSCRIPT TWO                     Latin-1
  8705. 000    179    11/03   SUPERSCRIPT THREE                  Latin-1
  8706.  
  8707.  
  8708.  
  8709.  
  8710.                  128
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716. X Protocol                    X11, Release 6.4
  8717.  
  8718.  
  8719. -----------------------------------------------------------------------------------
  8720. Byte   Byte   Code    Name                         Set
  8721.  3    4     Pos
  8722. -----------------------------------------------------------------------------------
  8723. 000    180    11/04   ACUTE ACCENT                     Latin-1
  8724. 000    181    11/05   MICRO SIGN                     Latin-1
  8725. 000    182    11/06   PARAGRAPH SIGN                     Latin-1
  8726. 000    183    11/07   MIDDLE DOT                     Latin-1
  8727. 000    184    11/08   CEDILLA                         Latin-1
  8728. 000    185    11/09   SUPERSCRIPT ONE                     Latin-1
  8729. 000    186    11/10   MASCULINE ORDINAL INDICATOR             Latin-1
  8730. 000    187    11/11   RIGHT ANGLE QUOTATION MARK             Latin-1
  8731. 000    188    11/12   VULGAR FRACTION ONE QUARTER             Latin-1
  8732. 000    189    11/13   VULGAR FRACTION ONE HALF                 Latin-1
  8733. 000    190    11/14   VULGAR FRACTION THREE QUARTERS             Latin-1
  8734. 000    191    11/15   INVERTED QUESTION MARK                 Latin-1
  8735. 000    192    12/00   LATIN CAPITAL LETTER A WITH GRAVE ACCENT         Latin-1
  8736. 000    193    12/01   LATIN CAPITAL LETTER A WITH ACUTE ACCENT         Latin-1
  8737. 000    194    12/02   LATIN CAPITAL LETTER A WITH CIRCUMFLEX ACCENT     Latin-1
  8738. 000    195    12/03   LATIN CAPITAL LETTER A WITH TILDE          Latin-1
  8739. 000    196    12/04   LATIN CAPITAL LETTER A WITH DIAERESIS         Latin-1
  8740. 000    197    12/05   LATIN CAPITAL LETTER A WITH RING ABOVE         Latin-1
  8741. 000    198    12/06   LATIN CAPITAL DIPHTHONG AE             Latin-1
  8742. 000    199    12/07   LATIN CAPITAL LETTER C WITH CEDILLA         Latin-1
  8743. 000    200    12/08   LATIN CAPITAL LETTER E WITH GRAVE ACCENT         Latin-1
  8744. 000    201    12/09   LATIN CAPITAL LETTER E WITH ACUTE ACCENT         Latin-1
  8745. 000    202    12/10   LATIN CAPITAL LETTER E WITH CIRCUMFLEX ACCENT     Latin-1
  8746. 000    203    12/11   LATIN CAPITAL LETTER E WITH DIAERESIS         Latin-1
  8747. 000    204    12/12   LATIN CAPITAL LETTER I WITH GRAVE ACCENT         Latin-1
  8748. 000    205    12/13   LATIN CAPITAL LETTER I WITH ACUTE ACCENT         Latin-1
  8749. 000    206    12/14   LATIN CAPITAL LETTER I WITH CIRCUMFLEX ACCENT     Latin-1
  8750. 000    207    12/15   LATIN CAPITAL LETTER I WITH DIAERESIS         Latin-1
  8751. 000    208    13/00   ICELANDIC CAPITAL LETTER ETH             Latin-1
  8752. 000    209    13/01   LATIN CAPITAL LETTER N WITH TILDE          Latin-1
  8753. 000    210    13/02   LATIN CAPITAL LETTER O WITH GRAVE ACCENT         Latin-1
  8754. 000    211    13/03   LATIN CAPITAL LETTER O WITH ACUTE ACCENT         Latin-1
  8755. 000    212    13/04   LATIN CAPITAL LETTER O WITH CIRCUMFLEX ACCENT     Latin-1
  8756. 000    213    13/05   LATIN CAPITAL LETTER O WITH TILDE          Latin-1
  8757. 000    214    13/06   LATIN CAPITAL LETTER O WITH DIAERESIS         Latin-1
  8758. 000    215    13/07   MULTIPLICATION SIGN                 Latin-1
  8759. 000    216    13/08   LATIN CAPITAL LETTER O WITH OBLIQUE STROKE     Latin-1
  8760. 000    217    13/09   LATIN CAPITAL LETTER U WITH GRAVE ACCENT         Latin-1
  8761. 000    218    13/10   LATIN CAPITAL LETTER U WITH ACUTE ACCENT         Latin-1
  8762. 000    219    13/11   LATIN CAPITAL LETTER U WITH CIRCUMFLEX ACCENT     Latin-1
  8763. 000    220    13/12   LATIN CAPITAL LETTER U WITH DIAERESIS         Latin-1
  8764. 000    221    13/13   LATIN CAPITAL LETTER Y WITH ACUTE ACCENT         Latin-1
  8765. 000    222    13/14   ICELANDIC CAPITAL LETTER THORN             Latin-1
  8766. 000    223    13/15   GERMAN SMALL LETTER SHARP s             Latin-1
  8767. 000    224    14/00   LATIN SMALL LETTER a WITH GRAVE ACCENT         Latin-1
  8768. 000    225    14/01   LATIN SMALL LETTER a WITH ACUTE ACCENT         Latin-1
  8769. 000    226    14/02   LATIN SMALL LETTER a WITH CIRCUMFLEX ACCENT     Latin-1
  8770. 000    227    14/03   LATIN SMALL LETTER a WITH TILDE             Latin-1
  8771. 000    228    14/04   LATIN SMALL LETTER a WITH DIAERESIS         Latin-1
  8772.  
  8773.  
  8774.  
  8775.  
  8776.                  129
  8777.  
  8778.  
  8779.  
  8780.  
  8781.  
  8782. X Protocol                    X11, Release 6.4
  8783.  
  8784.  
  8785. -----------------------------------------------------------------------------------
  8786. Byte   Byte   Code    Name                         Set
  8787.  3    4     Pos
  8788. -----------------------------------------------------------------------------------
  8789. 000    229    14/05   LATIN SMALL LETTER a WITH RING ABOVE         Latin-1
  8790. 000    230    14/06   LATIN SMALL DIPHTHONG ae                 Latin-1
  8791. 000    231    14/07   LATIN SMALL LETTER c WITH CEDILLA          Latin-1
  8792. 000    232    14/08   LATIN SMALL LETTER e WITH GRAVE ACCENT         Latin-1
  8793. 000    233    14/09   LATIN SMALL LETTER e WITH ACUTE ACCENT         Latin-1
  8794. 000    234    14/10   LATIN SMALL LETTER e WITH CIRCUMFLEX ACCENT     Latin-1
  8795. 000    235    14/11   LATIN SMALL LETTER e WITH DIAERESIS         Latin-1
  8796. 000    236    14/12   LATIN SMALL LETTER i WITH GRAVE ACCENT         Latin-1
  8797. 000    237    14/13   LATIN SMALL LETTER i WITH ACUTE ACCENT         Latin-1
  8798. 000    238    14/14   LATIN SMALL LETTER i WITH CIRCUMFLEX ACCENT     Latin-1
  8799. 000    239    14/15   LATIN SMALL LETTER i WITH DIAERESIS         Latin-1
  8800. 000    240    15/00   ICELANDIC SMALL LETTER ETH             Latin-1
  8801. 000    241    15/01   LATIN SMALL LETTER n WITH TILDE             Latin-1
  8802. 000    242    15/02   LATIN SMALL LETTER o WITH GRAVE ACCENT         Latin-1
  8803. 000    243    15/03   LATIN SMALL LETTER o WITH ACUTE ACCENT         Latin-1
  8804. 000    244    15/04   LATIN SMALL LETTER o WITH CIRCUMFLEX ACCENT     Latin-1
  8805. 000    245    15/05   LATIN SMALL LETTER o WITH TILDE             Latin-1
  8806. 000    246    15/06   LATIN SMALL LETTER o WITH DIAERESIS         Latin-1
  8807. 000    247    15/07   DIVISION SIGN                     Latin-1
  8808. 000    248    15/08   LATIN SMALL LETTER o WITH OBLIQUE STROKE         Latin-1
  8809. 000    249    15/09   LATIN SMALL LETTER u WITH GRAVE ACCENT         Latin-1
  8810. 000    250    15/10   LATIN SMALL LETTER u WITH ACUTE ACCENT         Latin-1
  8811. 000    251    15/11   LATIN SMALL LETTER u WITH CIRCUMFLEX ACCENT     Latin-1
  8812. 000    252    15/12   LATIN SMALL LETTER u WITH DIAERESIS         Latin-1
  8813. 000    253    15/13   LATIN SMALL LETTER y WITH ACUTE ACCENT         Latin-1
  8814. 000    254    15/14   ICELANDIC SMALL LETTER THORN             Latin-1
  8815. 000    255    15/15   LATIN SMALL LETTER y WITH DIAERESIS         Latin-1
  8816.  
  8817.  
  8818. 001    161    10/01   LATIN CAPITAL LETTER A WITH OGONEK         Latin-2
  8819. 001    162    10/02   BREVE                         Latin-2
  8820. 001    163    10/03   LATIN CAPITAL LETTER L WITH STROKE         Latin-2
  8821. 001    165    10/05   LATIN CAPITAL LETTER L WITH CARON          Latin-2
  8822. 001    166    10/06   LATIN CAPITAL LETTER S WITH ACUTE ACCENT         Latin-2
  8823. 001    169    10/09   LATIN CAPITAL LETTER S WITH CARON          Latin-2
  8824. 001    170    10/10   LATIN CAPITAL LETTER S WITH CEDILLA         Latin-2
  8825. 001    171    10/11   LATIN CAPITAL LETTER T WITH CARON          Latin-2
  8826. 001    172    10/12   LATIN CAPITAL LETTER Z WITH ACUTE ACCENT         Latin-2
  8827. 001    174    10/14   LATIN CAPITAL LETTER Z WITH CARON          Latin-2
  8828. 001    175    10/15   LATIN CAPITAL LETTER Z WITH DOT ABOVE         Latin-2
  8829. 001    177    11/01   LATIN SMALL LETTER a WITH OGONEK             Latin-2
  8830. 001    178    11/02   OGONEK                         Latin-2
  8831. 001    179    11/03   LATIN SMALL LETTER l WITH STROKE             Latin-2
  8832. 001    181    11/05   LATIN SMALL LETTER l WITH CARON             Latin-2
  8833. 001    182    11/06   LATIN SMALL LETTER s WITH ACUTE ACCENT         Latin-2
  8834. 001    183    11/07   CARON                         Latin-2
  8835. 001    185    11/09   LATIN SMALL LETTER s WITH CARON             Latin-2
  8836. 001    186    11/10   LATIN SMALL LETTER s WITH CEDILLA          Latin-2
  8837. 001    187    11/11   LATIN SMALL LETTER t WITH CARON             Latin-2
  8838.  
  8839.  
  8840.  
  8841.  
  8842.                  130
  8843.  
  8844.  
  8845.  
  8846.  
  8847.  
  8848. X Protocol                    X11, Release 6.4
  8849.  
  8850.  
  8851. -----------------------------------------------------------------------------------
  8852. Byte   Byte   Code    Name                         Set
  8853.  3    4     Pos
  8854. -----------------------------------------------------------------------------------
  8855. 001    188    11/12   LATIN SMALL LETTER z WITH ACUTE ACCENT         Latin-2
  8856. 001    189    11/13   DOUBLE ACUTE ACCENT                 Latin-2
  8857. 001    190    11/14   LATIN SMALL LETTER z WITH CARON             Latin-2
  8858. 001    191    11/15   LATIN SMALL LETTER z WITH DOT ABOVE         Latin-2
  8859. 001    192    12/00   LATIN CAPITAL LETTER R WITH ACUTE ACCENT         Latin-2
  8860. 001    195    12/03   LATIN CAPITAL LETTER A WITH BREVE          Latin-2
  8861. 001    197    12/05   LATIN CAPITAL LETTER L WITH ACUTE ACCENT         Latin-2
  8862. 001    198    12/06   LATIN CAPITAL LETTER C WITH ACUTE ACCENT         Latin-2
  8863. 001    200    12/08   LATIN CAPITAL LETTER C WITH CARON          Latin-2
  8864. 001    202    12/10   LATIN CAPITAL LETTER E WITH OGONEK         Latin-2
  8865. 001    204    12/12   LATIN CAPITAL LETTER E WITH CARON          Latin-2
  8866. 001    207    12/15   LATIN CAPITAL LETTER D WITH CARON          Latin-2
  8867. 001    208    13/00   LATIN CAPITAL LETTER D WITH STROKE         Latin-2
  8868. 001    209    13/01   LATIN CAPITAL LETTER N WITH ACUTE ACCENT         Latin-2
  8869. 001    210    13/02   LATIN CAPITAL LETTER N WITH CARON          Latin-2
  8870. 001    213    13/05   LATIN CAPITAL LETTER O WITH DOUBLE ACUTE ACCENT     Latin-2
  8871. 001    216    13/08   LATIN CAPITAL LETTER R WITH CARON          Latin-2
  8872. 001    217    13/09   LATIN CAPITAL LETTER U WITH RING ABOVE         Latin-2
  8873. 001    219    13/11   LATIN CAPITAL LETTER U WITH DOUBLE ACUTE ACCENT     Latin-2
  8874. 001    222    13/14   LATIN CAPITAL LETTER T WITH CEDILLA         Latin-2
  8875. 001    224    14/00   LATIN SMALL LETTER r WITH ACUTE ACCENT         Latin-2
  8876. 001    227    14/03   LATIN SMALL LETTER a WITH BREVE             Latin-2
  8877. 001    229    14/05   LATIN SMALL LETTER l WITH ACUTE ACCENT         Latin-2
  8878. 001    230    14/06   LATIN SMALL LETTER c WITH ACUTE ACCENT         Latin-2
  8879. 001    232    14/08   LATIN SMALL LETTER c WITH CARON             Latin-2
  8880. 001    234    14/10   LATIN SMALL LETTER e WITH OGONEK             Latin-2
  8881. 001    236    14/12   LATIN SMALL LETTER e WITH CARON             Latin-2
  8882. 001    239    14/15   LATIN SMALL LETTER d WITH CARON             Latin-2
  8883. 001    240    15/00   LATIN SMALL LETTER d WITH STROKE             Latin-2
  8884. 001    241    15/01   LATIN SMALL LETTER n WITH ACUTE ACCENT         Latin-2
  8885. 001    242    15/02   LATIN SMALL LETTER n WITH CARON             Latin-2
  8886. 001    245    15/05   LATIN SMALL LETTER o WITH DOUBLE ACUTE ACCENT     Latin-2
  8887. 001    248    15/08   LATIN SMALL LETTER r WITH CARON             Latin-2
  8888. 001    249    15/09   LATIN SMALL LETTER u WITH RING ABOVE         Latin-2
  8889. 001    251    15/11   LATIN SMALL LETTER u WITH DOUBLE ACUTE ACCENT     Latin-2
  8890. 001    254    15/14   LATIN SMALL LETTER t WITH CEDILLA          Latin-2
  8891. 001    255    15/15   DOT ABOVE                      Latin-2
  8892.  
  8893.  
  8894. 002    161    10/01   LATIN CAPITAL LETTER H WITH STROKE         Latin-3
  8895. 002    166    10/06   LATIN CAPITAL LETTER H WITH CIRCUMFLEX ACCENT     Latin-3
  8896. 002    169    10/09   LATIN CAPITAL LETTER I WITH DOT ABOVE         Latin-3
  8897. 002    171    10/11   LATIN CAPITAL LETTER G WITH BREVE          Latin-3
  8898. 002    172    10/12   LATIN CAPITAL LETTER J WITH CIRCUMFLEX ACCENT     Latin-3
  8899. 002    177    11/01   LATIN SMALL LETTER h WITH STROKE             Latin-3
  8900. 002    182    11/06   LATIN SMALL LETTER h WITH CIRCUMFLEX ACCENT     Latin-3
  8901. 002    185    11/09   SMALL DOTLESS LETTER i                 Latin-3
  8902. 002    187    11/11   LATIN SMALL LETTER g WITH BREVE             Latin-3
  8903. 002    188    11/12   LATIN SMALL LETTER j WITH CIRCUMFLEX ACCENT     Latin-3
  8904.  
  8905.  
  8906.  
  8907.  
  8908.                  131
  8909.  
  8910.  
  8911.  
  8912.  
  8913.  
  8914. X Protocol                    X11, Release 6.4
  8915.  
  8916.  
  8917. -----------------------------------------------------------------------------------
  8918. Byte   Byte   Code    Name                         Set
  8919.  3    4     Pos
  8920. -----------------------------------------------------------------------------------
  8921. 002    197    12/05   LATIN CAPITAL LETTER C WITH DOT ABOVE         Latin-3
  8922. 002    198    12/06   LATIN CAPITAL LETTER C WITH CIRCUMFLEX ACCENT     Latin-3
  8923. 002    213    13/05   LATIN CAPITAL LETTER G WITH DOT ABOVE         Latin-3
  8924. 002    216    13/08   LATIN CAPITAL LETTER G WITH CIRCUMFLEX ACCENT     Latin-3
  8925. 002    221    13/13   LATIN CAPITAL LETTER U WITH BREVE          Latin-3
  8926. 002    222    13/14   LATIN CAPITAL LETTER S WITH CIRCUMFLEX ACCENT     Latin-3
  8927. 002    229    14/05   LATIN SMALL LETTER c WITH DOT ABOVE         Latin-3
  8928. 002    230    14/06   LATIN SMALL LETTER c WITH CIRCUMFLEX ACCENT     Latin-3
  8929. 002    245    15/05   LATIN SMALL LETTER g WITH DOT ABOVE         Latin-3
  8930. 002    248    15/08   LATIN SMALL LETTER g WITH CIRCUMFLEX ACCENT     Latin-3
  8931. 002    253    15/13   LATIN SMALL LETTER u WITH BREVE             Latin-3
  8932. 002    254    15/14   LATIN SMALL LETTER s WITH CIRCUMFLEX ACCENT     Latin-3
  8933.  
  8934.  
  8935. 003    162    10/02   SMALL GREENLANDIC LETTER KRA             Latin-4
  8936. 003    163    10/03   LATIN CAPITAL LETTER R WITH CEDILLA         Latin-4
  8937. 003    165    10/05   LATIN CAPITAL LETTER I WITH TILDE          Latin-4
  8938. 003    166    10/06   LATIN CAPITAL LETTER L WITH CEDILLA         Latin-4
  8939. 003    170    10/10   LATIN CAPITAL LETTER E WITH MACRON         Latin-4
  8940. 003    171    10/11   LATIN CAPITAL LETTER G WITH CEDILLA         Latin-4
  8941. 003    172    10/12   LATIN CAPITAL LETTER T WITH OBLIQUE STROKE     Latin-4
  8942. 003    179    11/03   LATIN SMALL LETTER r WITH CEDILLA          Latin-4
  8943. 003    181    11/05   LATIN SMALL LETTER i WITH TILDE             Latin-4
  8944. 003    182    11/06   LATIN SMALL LETTER l WITH CEDILLA          Latin-4
  8945. 003    186    11/10   LATIN SMALL LETTER e WITH MACRON             Latin-4
  8946. 003    187    11/11   LATIN SMALL LETTER g WITH CEDILLA ABOVE         Latin-4
  8947. 003    188    11/12   LATIN SMALL LETTER t WITH OBLIQUE STROKE         Latin-4
  8948. 003    189    11/13   LAPPISH CAPITAL LETTER ENG             Latin-4
  8949. 003    191    11/15   LAPPISH SMALL LETTER ENG                 Latin-4
  8950. 003    192    12/00   LATIN CAPITAL LETTER A WITH MACRON         Latin-4
  8951. 003    199    12/07   LATIN CAPITAL LETTER I WITH OGONEK         Latin-4
  8952. 003    204    12/12   LATIN CAPITAL LETTER E WITH DOT ABOVE         Latin-4
  8953. 003    207    12/15   LATIN CAPITAL LETTER I WITH MACRON         Latin-4
  8954. 003    209    13/01   LATIN CAPITAL LETTER N WITH CEDILLA         Latin-4
  8955. 003    210    13/02   LATIN CAPITAL LETTER O WITH MACRON         Latin-4
  8956. 003    211    13/03   LATIN CAPITAL LETTER K WITH CEDILLA         Latin-4
  8957. 003    217    13/09   LATIN CAPITAL LETTER U WITH OGONEK         Latin-4
  8958. 003    221    13/13   LATIN CAPITAL LETTER U WITH TILDE          Latin-4
  8959. 003    222    13/14   LATIN CAPITAL LETTER U WITH MACRON         Latin-4
  8960. 003    224    14/00   LATIN SMALL LETTER a WITH MACRON             Latin-4
  8961. 003    231    14/07   LATIN SMALL LETTER i WITH OGONEK             Latin-4
  8962. 003    236    14/12   LATIN SMALL LETTER e WITH DOT ABOVE         Latin-4
  8963. 003    239    14/15   LATIN SMALL LETTER i WITH MACRON             Latin-4
  8964. 003    241    15/01   LATIN SMALL LETTER n WITH CEDILLA          Latin-4
  8965. 003    242    15/02   LATIN SMALL LETTER o WITH MACRON             Latin-4
  8966. 003    243    15/03   LATIN SMALL LETTER k WITH CEDILLA          Latin-4
  8967. 003    249    15/09   LATIN SMALL LETTER u WITH OGONEK             Latin-4
  8968. 003    253    15/13   LATIN SMALL LETTER u WITH TILDE             Latin-4
  8969. 003    254    15/14   LATIN SMALL LETTER u WITH MACRON             Latin-4
  8970.  
  8971.  
  8972.  
  8973.  
  8974.                  132
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980. X Protocol                    X11, Release 6.4
  8981.  
  8982.  
  8983. -----------------------------------------------------------------------------------
  8984. Byte   Byte   Code    Name                         Set
  8985.  3    4     Pos
  8986. -----------------------------------------------------------------------------------
  8987. 004    126    07/14   OVERLINE                         Kana
  8988. 004    161    10/01   KANA FULL STOP                     Kana
  8989. 004    162    10/02   KANA OPENING BRACKET                 Kana
  8990. 004    163    10/03   KANA CLOSING BRACKET                 Kana
  8991. 004    164    10/04   KANA COMMA                     Kana
  8992. 004    165    10/05   KANA CONJUNCTIVE                     Kana
  8993. 004    166    10/06   KANA LETTER WO                     Kana
  8994. 004    167    10/07   KANA LETTER SMALL A                 Kana
  8995. 004    168    10/08   KANA LETTER SMALL I                 Kana
  8996. 004    169    10/09   KANA LETTER SMALL U                 Kana
  8997. 004    170    10/10   KANA LETTER SMALL E                 Kana
  8998. 004    171    10/11   KANA LETTER SMALL O                 Kana
  8999. 004    172    10/12   KANA LETTER SMALL YA                 Kana
  9000. 004    173    10/13   KANA LETTER SMALL YU                 Kana
  9001. 004    174    10/14   KANA LETTER SMALL YO                 Kana
  9002. 004    175    10/15   KANA LETTER SMALL TSU                 Kana
  9003. 004    176    11/00   PROLONGED SOUND SYMBOL                 Kana
  9004. 004    177    11/01   KANA LETTER A                     Kana
  9005. 004    178    11/02   KANA LETTER I                     Kana
  9006. 004    179    11/03   KANA LETTER U                     Kana
  9007. 004    180    11/04   KANA LETTER E                     Kana
  9008. 004    181    11/05   KANA LETTER O                     Kana
  9009. 004    182    11/06   KANA LETTER KA                     Kana
  9010. 004    183    11/07   KANA LETTER KI                     Kana
  9011. 004    184    11/08   KANA LETTER KU                     Kana
  9012. 004    185    11/09   KANA LETTER KE                     Kana
  9013. 004    186    11/10   KANA LETTER KO                     Kana
  9014. 004    187    11/11   KANA LETTER SA                     Kana
  9015. 004    188    11/12   KANA LETTER SHI                     Kana
  9016. 004    189    11/13   KANA LETTER SU                     Kana
  9017. 004    190    11/14   KANA LETTER SE                     Kana
  9018. 004    191    11/15   KANA LETTER SO                     Kana
  9019. 004    192    12/00   KANA LETTER TA                     Kana
  9020. 004    193    12/01   KANA LETTER CHI                     Kana
  9021. 004    194    12/02   KANA LETTER TSU                     Kana
  9022. 004    195    12/03   KANA LETTER TE                     Kana
  9023. 004    196    12/04   KANA LETTER TO                     Kana
  9024. 004    197    12/05   KANA LETTER NA                     Kana
  9025. 004    198    12/06   KANA LETTER NI                     Kana
  9026. 004    199    12/07   KANA LETTER NU                     Kana
  9027. 004    200    12/08   KANA LETTER NE                     Kana
  9028. 004    201    12/09   KANA LETTER NO                     Kana
  9029. 004    202    12/10   KANA LETTER HA                     Kana
  9030. 004    203    12/11   KANA LETTER HI                     Kana
  9031. 004    204    12/12   KANA LETTER FU                     Kana
  9032. 004    205    12/13   KANA LETTER HE                     Kana
  9033. 004    206    12/14   KANA LETTER HO                     Kana
  9034. 004    207    12/15   KANA LETTER MA                     Kana
  9035. 004    208    13/00   KANA LETTER MI                     Kana
  9036.  
  9037.  
  9038.  
  9039.  
  9040.                  133
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046. X Protocol                    X11, Release 6.4
  9047.  
  9048.  
  9049. -----------------------------------------------------------------------------------
  9050. Byte   Byte   Code    Name                         Set
  9051.  3    4     Pos
  9052. -----------------------------------------------------------------------------------
  9053. 004    209    13/01   KANA LETTER MU                     Kana
  9054. 004    210    13/02   KANA LETTER ME                     Kana
  9055. 004    211    13/03   KANA LETTER MO                     Kana
  9056. 004    212    13/04   KANA LETTER YA                     Kana
  9057. 004    213    13/05   KANA LETTER YU                     Kana
  9058. 004    214    13/06   KANA LETTER YO                     Kana
  9059. 004    215    13/07   KANA LETTER RA                     Kana
  9060. 004    216    13/08   KANA LETTER RI                     Kana
  9061. 004    217    13/09   KANA LETTER RU                     Kana
  9062. 004    218    13/10   KANA LETTER RE                     Kana
  9063. 004    219    13/11   KANA LETTER RO                     Kana
  9064. 004    220    13/12   KANA LETTER WA                     Kana
  9065. 004    221    13/13   KANA LETTER N                     Kana
  9066. 004    222    13/14   VOICED SOUND SYMBOL                 Kana
  9067. 004    223    13/15   SEMIVOICED SOUND SYMBOL                 Kana
  9068.  
  9069.  
  9070. 005    172    10/12   ARABIC COMMA                     Arabic
  9071. 005    187    11/11   ARABIC SEMICOLON                     Arabic
  9072. 005    191    11/15   ARABIC QUESTION MARK                 Arabic
  9073. 005    193    12/01   ARABIC LETTER HAMZA                 Arabic
  9074. 005    194    12/02   ARABIC LETTER MADDA ON ALEF             Arabic
  9075. 005    195    12/03   ARABIC LETTER HAMZA ON ALEF             Arabic
  9076. 005    196    12/04   ARABIC LETTER HAMZA ON WAW             Arabic
  9077. 005    197    12/05   ARABIC LETTER HAMZA UNDER ALEF             Arabic
  9078. 005    198    12/06   ARABIC LETTER HAMZA ON YEH             Arabic
  9079. 005    199    12/07   ARABIC LETTER ALEF                 Arabic
  9080. 005    200    12/08   ARABIC LETTER BEH                  Arabic
  9081. 005    201    12/09   ARABIC LETTER TEH MARBUTA              Arabic
  9082. 005    202    12/10   ARABIC LETTER TEH                  Arabic
  9083. 005    203    12/11   ARABIC LETTER THEH                 Arabic
  9084. 005    204    12/12   ARABIC LETTER JEEM                 Arabic
  9085. 005    205    12/13   ARABIC LETTER HAH                  Arabic
  9086. 005    206    12/14   ARABIC LETTER KHAH                 Arabic
  9087. 005    207    12/15   ARABIC LETTER DAL                  Arabic
  9088. 005    208    13/00   ARABIC LETTER THAL                 Arabic
  9089. 005    209    13/01   ARABIC LETTER RA                     Arabic
  9090. 005    210    13/02   ARABIC LETTER ZAIN                 Arabic
  9091. 005    211    13/03   ARABIC LETTER SEEN                 Arabic
  9092. 005    212    13/04   ARABIC LETTER SHEEN                 Arabic
  9093. 005    213    13/05   ARABIC LETTER SAD                  Arabic
  9094. 005    214    13/06   ARABIC LETTER DAD                  Arabic
  9095. 005    215    13/07   ARABIC LETTER TAH                  Arabic
  9096. 005    216    13/08   ARABIC LETTER ZAH                  Arabic
  9097. 005    217    13/09   ARABIC LETTER AIN                  Arabic
  9098. 005    218    13/10   ARABIC LETTER GHAIN                 Arabic
  9099. 005    224    14/00   ARABIC LETTER TATWEEL                 Arabic
  9100. 005    225    14/01   ARABIC LETTER FEH                  Arabic
  9101. 005    226    14/02   ARABIC LETTER QAF                  Arabic
  9102.  
  9103.  
  9104.  
  9105.  
  9106.                  134
  9107.  
  9108.  
  9109.  
  9110.  
  9111.  
  9112. X Protocol                    X11, Release 6.4
  9113.  
  9114.  
  9115. -----------------------------------------------------------------------------------
  9116. Byte   Byte   Code    Name                         Set
  9117.  3    4     Pos
  9118. -----------------------------------------------------------------------------------
  9119. 005    227    14/03   ARABIC LETTER KAF                  Arabic
  9120. 005    228    14/04   ARABIC LETTER LAM                  Arabic
  9121. 005    229    14/05   ARABIC LETTER MEEM                 Arabic
  9122. 005    230    14/06   ARABIC LETTER NOON                 Arabic
  9123. 005    231    14/07   ARABIC LETTER HA                     Arabic
  9124. 005    232    14/08   ARABIC LETTER WAW                  Arabic
  9125. 005    233    14/09   ARABIC LETTER ALEF MAKSURA             Arabic
  9126. 005    234    14/10   ARABIC LETTER YEH                  Arabic
  9127. 005    235    14/11   ARABIC LETTER FATHATAN                 Arabic
  9128. 005    236    14/12   ARABIC LETTER DAMMATAN                 Arabic
  9129. 005    237    14/13   ARABIC LETTER KASRATAN                 Arabic
  9130. 005    238    14/14   ARABIC LETTER FATHA                 Arabic
  9131. 005    239    14/15   ARABIC LETTER DAMMA                 Arabic
  9132. 005    240    15/00   ARABIC LETTER KASRA                 Arabic
  9133. 005    241    15/01   ARABIC LETTER SHADDA                 Arabic
  9134. 005    242    15/02   ARABIC LETTER SUKUN                 Arabic
  9135.  
  9136.  
  9137. 006    161    10/01   SERBOCROATION CYRILLIC SMALL LETTER DJE         Cyrillic
  9138. 006    162    10/02   MACEDONIAN CYRILLIC SMALL LETTER GJE         Cyrillic
  9139. 006    163    10/03   CYRILLIC SMALL LETTER IO                 Cyrillic
  9140. 006    164    10/04   UKRAINIAN CYRILLIC SMALL LETTER IE         Cyrillic
  9141. 006    165    10/05   MACEDONIAN SMALL LETTER DSE             Cyrillic
  9142. 006    166    10/06   BYELORUSSIAN/UKRAINIAN CYRILLIC SMALL LETTER I     Cyrillic
  9143. 006    167    10/07   UKRAINIAN SMALL LETTER YI              Cyrillic
  9144. 006    168    10/08   CYRILLIC SMALL LETTER JE                 Cyrillic
  9145. 006    169    10/09   CYRILLIC SMALL LETTER LJE              Cyrillic
  9146. 006    170    10/10   CYRILLIC SMALL LETTER NJE              Cyrillic
  9147. 006    171    10/11   SERBIAN SMALL LETTER TSHE              Cyrillic
  9148. 006    172    10/12   MACEDONIAN CYRILLIC SMALL LETTER KJE         Cyrillic
  9149. 006    174    10/14   BYELORUSSIAN SMALL LETTER SHORT U          Cyrillic
  9150. 006    175    10/15   CYRILLIC SMALL LETTER DZHE             Cyrillic
  9151. 006    176    11/00   NUMERO SIGN                     Cyrillic
  9152. 006    177    11/01   SERBOCROATIAN CYRILLIC CAPITAL LETTER DJE      Cyrillic
  9153. 006    178    11/02   MACEDONIAN CYRILLIC CAPITAL LETTER GJE         Cyrillic
  9154. 006    179    11/03   CYRILLIC CAPITAL LETTER IO             Cyrillic
  9155. 006    180    11/04   UKRAINIAN CYRILLIC CAPITAL LETTER IE         Cyrillic
  9156. 006    181    11/05   MACEDONIAN CAPITAL LETTER DSE             Cyrillic
  9157. 006    182    11/06   BYELORUSSIAN/UKRAINIAN CYRILLIC CAPITAL LETTER I     Cyrillic
  9158. 006    183    11/07   UKRAINIAN CAPITAL LETTER YI             Cyrillic
  9159. 006    184    11/08   CYRILLIC CAPITAL LETTER JE             Cyrillic
  9160. 006    185    11/09   CYRILLIC CAPITAL LETTER LJE             Cyrillic
  9161. 006    186    11/10   CYRILLIC CAPITAL LETTER NJE             Cyrillic
  9162. 006    187    11/11   SERBIAN CAPITAL LETTER TSHE             Cyrillic
  9163. 006    188    11/12   MACEDONIAN CYRILLIC CAPITAL LETTER KJE         Cyrillic
  9164. 006    190    11/14   BYELORUSSIAN CAPITAL LETTER SHORT U         Cyrillic
  9165. 006    191    11/15   CYRILLIC CAPITAL LETTER DZHE             Cyrillic
  9166. 006    192    12/00   CYRILLIC SMALL LETTER YU                 Cyrillic
  9167. 006    193    12/01   CYRILLIC SMALL LETTER A                 Cyrillic
  9168.  
  9169.  
  9170.  
  9171.  
  9172.                  135
  9173.  
  9174.  
  9175.  
  9176.  
  9177.  
  9178. X Protocol                    X11, Release 6.4
  9179.  
  9180.  
  9181. -----------------------------------------------------------------------------------
  9182. Byte   Byte   Code    Name                         Set
  9183.  3    4     Pos
  9184. -----------------------------------------------------------------------------------
  9185. 006    194    12/02   CYRILLIC SMALL LETTER BE                 Cyrillic
  9186. 006    195    12/03   CYRILLIC SMALL LETTER TSE              Cyrillic
  9187. 006    196    12/04   CYRILLIC SMALL LETTER DE                 Cyrillic
  9188. 006    197    12/05   CYRILLIC SMALL LETTER IE                 Cyrillic
  9189. 006    198    12/06   CYRILLIC SMALL LETTER EF                 Cyrillic
  9190. 006    199    12/07   CYRILLIC SMALL LETTER GHE              Cyrillic
  9191. 006    200    12/08   CYRILLIC SMALL LETTER HA                 Cyrillic
  9192. 006    201    12/09   CYRILLIC SMALL LETTER I                 Cyrillic
  9193. 006    202    12/10   CYRILLIC SMALL LETTER SHORT I             Cyrillic
  9194. 006    203    12/11   CYRILLIC SMALL LETTER KA                 Cyrillic
  9195. 006    204    12/12   CYRILLIC SMALL LETTER EL                 Cyrillic
  9196. 006    205    12/13   CYRILLIC SMALL LETTER EM                 Cyrillic
  9197. 006    206    12/14   CYRILLIC SMALL LETTER EN                 Cyrillic
  9198. 006    207    12/15   CYRILLIC SMALL LETTER O                 Cyrillic
  9199. 006    208    13/00   CYRILLIC SMALL LETTER PE                 Cyrillic
  9200. 006    209    13/01   CYRILLIC SMALL LETTER YA                 Cyrillic
  9201. 006    210    13/02   CYRILLIC SMALL LETTER ER                 Cyrillic
  9202. 006    211    13/03   CYRILLIC SMALL LETTER ES                 Cyrillic
  9203. 006    212    13/04   CYRILLIC SMALL LETTER TE                 Cyrillic
  9204. 006    213    13/05   CYRILLIC SMALL LETTER U                 Cyrillic
  9205. 006    214    13/06   CYRILLIC SMALL LETTER ZHE              Cyrillic
  9206. 006    215    13/07   CYRILLIC SMALL LETTER VE                 Cyrillic
  9207. 006    216    13/08   CYRILLIC SMALL SOFT SIGN                 Cyrillic
  9208. 006    217    13/09   CYRILLIC SMALL LETTER YERU             Cyrillic
  9209. 006    218    13/10   CYRILLIC SMALL LETTER ZE                 Cyrillic
  9210. 006    219    13/11   CYRILLIC SMALL LETTER SHA              Cyrillic
  9211. 006    220    13/12   CYRILLIC SMALL LETTER E                 Cyrillic
  9212. 006    221    13/13   CYRILLIC SMALL LETTER SHCHA             Cyrillic
  9213. 006    222    13/14   CYRILLIC SMALL LETTER CHE              Cyrillic
  9214. 006    223    13/15   CYRILLIC SMALL HARD SIGN                 Cyrillic
  9215. 006    224    14/00   CYRILLIC CAPITAL LETTER YU             Cyrillic
  9216. 006    225    14/01   CYRILLIC CAPITAL LETTER A              Cyrillic
  9217. 006    226    14/02   CYRILLIC CAPITAL LETTER BE             Cyrillic
  9218. 006    227    14/03   CYRILLIC CAPITAL LETTER TSE             Cyrillic
  9219. 006    228    14/04   CYRILLIC CAPITAL LETTER DE             Cyrillic
  9220. 006    229    14/05   CYRILLIC CAPITAL LETTER IE             Cyrillic
  9221. 006    230    14/06   CYRILLIC CAPITAL LETTER EF             Cyrillic
  9222. 006    231    14/07   CYRILLIC CAPITAL LETTER GHE             Cyrillic
  9223. 006    232    14/08   CYRILLIC CAPITAL LETTER HA             Cyrillic
  9224. 006    233    14/09   CYRILLIC CAPITAL LETTER I              Cyrillic
  9225. 006    234    14/10   CYRILLIC CAPITAL LETTER SHORT I             Cyrillic
  9226. 006    235    14/11   CYRILLIC CAPITAL LETTER KA             Cyrillic
  9227. 006    236    14/12   CYRILLIC CAPITAL LETTER EL             Cyrillic
  9228. 006    237    14/13   CYRILLIC CAPITAL LETTER EM             Cyrillic
  9229. 006    238    14/14   CYRILLIC CAPITAL LETTER EN             Cyrillic
  9230. 006    239    14/15   CYRILLIC CAPITAL LETTER O              Cyrillic
  9231. 006    240    15/00   CYRILLIC CAPITAL LETTER PE             Cyrillic
  9232. 006    241    15/01   CYRILLIC CAPITAL LETTER YA             Cyrillic
  9233. 006    242    15/02   CYRILLIC CAPITAL LETTER ER             Cyrillic
  9234.  
  9235.  
  9236.  
  9237.  
  9238.                  136
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244. X Protocol                    X11, Release 6.4
  9245.  
  9246.  
  9247. -----------------------------------------------------------------------------------
  9248. Byte   Byte   Code    Name                         Set
  9249.  3    4     Pos
  9250. -----------------------------------------------------------------------------------
  9251. 006    243    15/03   CYRILLIC CAPITAL LETTER ES             Cyrillic
  9252. 006    244    15/04   CYRILLIC CAPITAL LETTER TE             Cyrillic
  9253. 006    245    15/05   CYRILLIC CAPITAL LETTER U              Cyrillic
  9254. 006    246    15/06   CYRILLIC CAPITAL LETTER ZHE             Cyrillic
  9255. 006    247    15/07   CYRILLIC CAPITAL LETTER VE             Cyrillic
  9256. 006    248    15/08   CYRILLIC CAPITAL SOFT SIGN             Cyrillic
  9257. 006    249    15/09   CYRILLIC CAPITAL LETTER YERU             Cyrillic
  9258. 006    250    15/10   CYRILLIC CAPITAL LETTER ZE             Cyrillic
  9259. 006    251    15/11   CYRILLIC CAPITAL LETTER SHA             Cyrillic
  9260. 006    252    15/12   CYRILLIC CAPITAL LETTER E              Cyrillic
  9261. 006    253    15/13   CYRILLIC CAPITAL LETTER SHCHA             Cyrillic
  9262. 006    254    15/14   CYRILLIC CAPITAL LETTER CHE             Cyrillic
  9263. 006    255    15/15   CYRILLIC CAPITAL HARD SIGN             Cyrillic
  9264.  
  9265.  
  9266. 007    161    10/01   GREEK CAPITAL LETTER ALPHA WITH ACCENT         Greek
  9267. 007    162    10/02   GREEK CAPITAL LETTER EPSILON WITH ACCENT         Greek
  9268. 007    163    10/03   GREEK CAPITAL LETTER ETA WITH ACCENT         Greek
  9269. 007    164    10/04   GREEK CAPITAL LETTER IOTA WITH ACCENT         Greek
  9270. 007    165    10/05   GREEK CAPITAL LETTER IOTA WITH DIAERESIS         Greek
  9271. 007    167    10/07   GREEK CAPITAL LETTER OMICRON WITH ACCENT         Greek
  9272. 007    168    10/08   GREEK CAPITAL LETTER UPSILON WITH ACCENT         Greek
  9273. 007    169    10/09   GREEK CAPITAL LETTER UPSILON WITH DIAERESIS     Greek
  9274. 007    171    10/11   GREEK CAPITAL LETTER OMEGA WITH ACCENT         Greek
  9275. 007    174    10/14   DIAERESIS AND ACCENT                 Greek
  9276. 007    175    10/15   HORIZONTAL BAR                     Greek
  9277. 007    177    11/01   GREEK SMALL LETTER ALPHA WITH ACCENT         Greek
  9278. 007    178    11/02   GREEK SMALL LETTER EPSILON WITH ACCENT         Greek
  9279. 007    179    11/03   GREEK SMALL LETTER ETA WITH ACCENT         Greek
  9280. 007    180    11/04   GREEK SMALL LETTER IOTA WITH ACCENT         Greek
  9281. 007    181    11/05   GREEK SMALL LETTER IOTA WITH DIAERESIS         Greek
  9282. 007    182    11/06   GREEK SMALL LETTER IOTA WITH ACCENT+DIAERESIS     Greek
  9283. 007    183    11/07   GREEK SMALL LETTER OMICRON WITH ACCENT         Greek
  9284. 007    184    11/08   GREEK SMALL LETTER UPSILON WITH ACCENT         Greek
  9285. 007    185    11/09   GREEK SMALL LETTER UPSILON WITH DIAERESIS      Greek
  9286. 007    186    11/10   GREEK SMALL LETTER UPSILON WITH ACCENT+DIAERESIS     Greek
  9287. 007    187    11/11   GREEK SMALL LETTER OMEGA WITH ACCENT         Greek
  9288. 007    193    12/01   GREEK CAPITAL LETTER ALPHA             Greek
  9289. 007    194    12/02   GREEK CAPITAL LETTER BETA              Greek
  9290. 007    195    12/03   GREEK CAPITAL LETTER GAMMA             Greek
  9291. 007    196    12/04   GREEK CAPITAL LETTER DELTA             Greek
  9292. 007    197    12/05   GREEK CAPITAL LETTER EPSILON             Greek
  9293. 007    198    12/06   GREEK CAPITAL LETTER ZETA              Greek
  9294. 007    199    12/07   GREEK CAPITAL LETTER ETA                 Greek
  9295. 007    200    12/08   GREEK CAPITAL LETTER THETA             Greek
  9296. 007    201    12/09   GREEK CAPITAL LETTER IOTA              Greek
  9297. 007    202    12/10   GREEK CAPITAL LETTER KAPPA             Greek
  9298. 007    203    12/11   GREEK CAPITAL LETTER LAMDA             Greek
  9299. 007    204    12/12   GREEK CAPITAL LETTER MU                 Greek
  9300.  
  9301.  
  9302.  
  9303.  
  9304.                  137
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310. X Protocol                    X11, Release 6.4
  9311.  
  9312.  
  9313. -----------------------------------------------------------------------------------
  9314. Byte   Byte   Code    Name                         Set
  9315.  3    4     Pos
  9316. -----------------------------------------------------------------------------------
  9317. 007    205    12/13   GREEK CAPITAL LETTER NU                 Greek
  9318. 007    206    12/14   GREEK CAPITAL LETTER XI                 Greek
  9319. 007    207    12/15   GREEK CAPITAL LETTER OMICRON             Greek
  9320. 007    208    13/00   GREEK CAPITAL LETTER PI                 Greek
  9321. 007    209    13/01   GREEK CAPITAL LETTER RHO                 Greek
  9322. 007    210    13/02   GREEK CAPITAL LETTER SIGMA             Greek
  9323. 007    212    13/04   GREEK CAPITAL LETTER TAU                 Greek
  9324. 007    213    13/05   GREEK CAPITAL LETTER UPSILON             Greek
  9325. 007    214    13/06   GREEK CAPITAL LETTER PHI                 Greek
  9326. 007    215    13/07   GREEK CAPITAL LETTER CHI                 Greek
  9327. 007    216    13/08   GREEK CAPITAL LETTER PSI                 Greek
  9328. 007    217    13/09   GREEK CAPITAL LETTER OMEGA             Greek
  9329. 007    225    14/01   GREEK SMALL LETTER ALPHA                 Greek
  9330. 007    226    14/02   GREEK SMALL LETTER BETA                 Greek
  9331. 007    227    14/03   GREEK SMALL LETTER GAMMA                 Greek
  9332. 007    228    14/04   GREEK SMALL LETTER DELTA                 Greek
  9333. 007    229    14/05   GREEK SMALL LETTER EPSILON             Greek
  9334. 007    230    14/06   GREEK SMALL LETTER ZETA                 Greek
  9335. 007    231    14/07   GREEK SMALL LETTER ETA                 Greek
  9336. 007    232    14/08   GREEK SMALL LETTER THETA                 Greek
  9337. 007    233    14/09   GREEK SMALL LETTER IOTA                 Greek
  9338. 007    234    14/10   GREEK SMALL LETTER KAPPA                 Greek
  9339. 007    235    14/11   GREEK SMALL LETTER LAMDA                 Greek
  9340. 007    236    14/12   GREEK SMALL LETTER MU                 Greek
  9341. 007    237    14/13   GREEK SMALL LETTER NU                 Greek
  9342. 007    238    14/14   GREEK SMALL LETTER XI                 Greek
  9343. 007    239    14/15   GREEK SMALL LETTER OMICRON             Greek
  9344. 007    240    15/00   GREEK SMALL LETTER PI                 Greek
  9345. 007    241    15/01   GREEK SMALL LETTER RHO                 Greek
  9346. 007    242    15/02   GREEK SMALL LETTER SIGMA                 Greek
  9347. 007    243    15/03   GREEK SMALL LETTER FINAL SMALL SIGMA         Greek
  9348. 007    244    15/04   GREEK SMALL LETTER TAU                 Greek
  9349. 007    245    15/05   GREEK SMALL LETTER UPSILON             Greek
  9350. 007    246    15/06   GREEK SMALL LETTER PHI                 Greek
  9351. 007    247    15/07   GREEK SMALL LETTER CHI                 Greek
  9352. 007    248    15/08   GREEK SMALL LETTER PSI                 Greek
  9353. 007    249    15/09   GREEK SMALL LETTER OMEGA                 Greek
  9354.  
  9355.  
  9356. 008    161    10/01   LEFT RADICAL                     Technical
  9357. 008    162    10/02   TOP LEFT RADICAL                     Technical
  9358. 008    163    10/03   HORIZONTAL CONNECTOR                 Technical
  9359. 008    164    10/04   TOP INTEGRAL                     Technical
  9360. 008    165    10/05   BOTTOM INTEGRAL                     Technical
  9361. 008    166    10/06   VERTICAL CONNECTOR                 Technical
  9362. 008    167    10/07   TOP LEFT SQUARE BRACKET                 Technical
  9363. 008    168    10/08   BOTTOM LEFT SQUARE BRACKET             Technical
  9364. 008    169    10/09   TOP RIGHT SQUARE BRACKET                 Technical
  9365. 008    170    10/10   BOTTOM RIGHT SQUARE BRACKET             Technical
  9366.  
  9367.  
  9368.  
  9369.  
  9370.                  138
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376. X Protocol                    X11, Release 6.4
  9377.  
  9378.  
  9379. -----------------------------------------------------------------------------------
  9380. Byte   Byte   Code    Name                         Set
  9381.  3    4     Pos
  9382. -----------------------------------------------------------------------------------
  9383. 008    171    10/11   TOP LEFT PARENTHESIS                 Technical
  9384. 008    172    10/12   BOTTOM LEFT PARENTHESIS                 Technical
  9385. 008    173    10/13   TOP RIGHT PARENTHESIS                 Technical
  9386. 008    174    10/14   BOTTOM RIGHT PARENTHESIS                 Technical
  9387. 008    175    10/15   LEFT MIDDLE CURLY BRACE                 Technical
  9388. 008    176    11/00   RIGHT MIDDLE CURLY BRACE                 Technical
  9389. 008    177    11/01   TOP LEFT SUMMATION                 Technical
  9390. 008    178    11/02   BOTTOM LEFT SUMMATION                 Technical
  9391. 008    179    11/03   TOP VERTICAL SUMMATION CONNECTOR             Technical
  9392. 008    180    11/04   BOTTOM VERTICAL SUMMATION CONNECTOR         Technical
  9393. 008    181    11/05   TOP RIGHT SUMMATION                 Technical
  9394. 008    182    11/06   BOTTOM RIGHT SUMMATION                 Technical
  9395. 008    183    11/07   RIGHT MIDDLE SUMMATION                 Technical
  9396. 008    188    11/12   LESS THAN OR EQUAL SIGN                 Technical
  9397. 008    189    11/13   NOT EQUAL SIGN                     Technical
  9398. 008    190    11/14   GREATER THAN OR EQUAL SIGN             Technical
  9399. 008    191    11/15   INTEGRAL                         Technical
  9400. 008    192    12/00   THEREFORE                      Technical
  9401. 008    193    12/01   VARIATION, PROPORTIONAL TO             Technical
  9402. 008    194    12/02   INFINITY                         Technical
  9403. 008    197    12/05   NABLA, DEL                     Technical
  9404. 008    200    12/08   IS APPROXIMATE TO                  Technical
  9405. 008    201    12/09   SIMILAR OR EQUAL TO                 Technical
  9406. 008    205    12/13   IF AND ONLY IF                     Technical
  9407. 008    206    12/14   IMPLIES                         Technical
  9408. 008    207    12/15   IDENTICAL TO                     Technical
  9409. 008    214    13/06   RADICAL                         Technical
  9410. 008    218    13/10   IS INCLUDED IN                     Technical
  9411. 008    219    13/11   INCLUDES                         Technical
  9412. 008    220    13/12   INTERSECTION                     Technical
  9413. 008    221    13/13   UNION                         Technical
  9414. 008    222    13/14   LOGICAL AND                     Technical
  9415. 008    223    13/15   LOGICAL OR                     Technical
  9416. 008    239    14/15   PARTIAL DERIVATIVE                 Technical
  9417. 008    246    15/06   FUNCTION                         Technical
  9418. 008    251    15/11   LEFT ARROW                     Technical
  9419. 008    252    15/12   UPWARD ARROW                     Technical
  9420. 008    253    15/13   RIGHT ARROW                     Technical
  9421. 008    254    15/14   DOWNWARD ARROW                     Technical
  9422.  
  9423.  
  9424. 009    223    13/15   BLANK                         Special
  9425. 009    224    14/00   SOLID DIAMOND                     Special
  9426. 009    225    14/01   CHECKERBOARD                     Special
  9427. 009    226    14/02   ``HT''                         Special
  9428. 009    227    14/03   ``FF''                         Special
  9429. 009    228    14/04   ``CR''                         Special
  9430. 009    229    14/05   ``LF''                         Special
  9431. 009    232    14/08   ``NL''                         Special
  9432.  
  9433.  
  9434.  
  9435.  
  9436.                  139
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442. X Protocol                    X11, Release 6.4
  9443.  
  9444.  
  9445. -----------------------------------------------------------------------------------
  9446. Byte   Byte   Code    Name                         Set
  9447.  3    4     Pos
  9448. -----------------------------------------------------------------------------------
  9449. 009    233    14/09   ``VT''                         Special
  9450. 009    234    14/10   LOWER-RIGHT CORNER                 Special
  9451. 009    235    14/11   UPPER-RIGHT CORNER                 Special
  9452. 009    236    14/12   UPPER-LEFT CORNER                  Special
  9453. 009    237    14/13   LOWER-LEFT CORNER                  Special
  9454. 009    238    14/14   CROSSING-LINES                     Special
  9455. 009    239    14/15   HORIZONTAL LINE, SCAN 1                 Special
  9456. 009    240    15/00   HORIZONTAL LINE, SCAN 3                 Special
  9457. 009    241    15/01   HORIZONTAL LINE, SCAN 5                 Special
  9458. 009    242    15/02   HORIZONTAL LINE, SCAN 7                 Special
  9459. 009    243    15/03   HORIZONTAL LINE, SCAN 9                 Special
  9460. 009    244    15/04   LEFT ``T''                     Special
  9461. 009    245    15/05   RIGHT ``T''                     Special
  9462. 009    246    15/06   BOTTOM ``T''                     Special
  9463. 009    247    15/07   TOP ``T''                      Special
  9464. 009    248    15/08   VERTICAL BAR                     Special
  9465.  
  9466.  
  9467. 010    161    10/01   EM SPACE                         Publish
  9468. 010    162    10/02   EN SPACE                         Publish
  9469. 010    163    10/03   3/EM SPACE                     Publish
  9470. 010    164    10/04   4/EM SPACE                     Publish
  9471. 010    165    10/05   DIGIT SPACE                     Publish
  9472. 010    166    10/06   PUNCTUATION SPACE                  Publish
  9473. 010    167    10/07   THIN SPACE                     Publish
  9474. 010    168    10/08   HAIR SPACE                     Publish
  9475. 010    169    10/09   EM DASH                         Publish
  9476. 010    170    10/10   EN DASH                         Publish
  9477. 010    172    10/12   SIGNIFICANT BLANK SYMBOL                 Publish
  9478. 010    174    10/14   ELLIPSIS                         Publish
  9479. 010    175    10/15   DOUBLE BASELINE DOT                 Publish
  9480. 010    176    11/00   VULGAR FRACTION ONE THIRD              Publish
  9481. 010    177    11/01   VULGAR FRACTION TWO THIRDS             Publish
  9482. 010    178    11/02   VULGAR FRACTION ONE FIFTH              Publish
  9483. 010    179    11/03   VULGAR FRACTION TWO FIFTHS             Publish
  9484. 010    180    11/04   VULGAR FRACTION THREE FIFTHS             Publish
  9485. 010    181    11/05   VULGAR FRACTION FOUR FIFTHS             Publish
  9486. 010    182    11/06   VULGAR FRACTION ONE SIXTH              Publish
  9487. 010    183    11/07   VULGAR FRACTION FIVE SIXTHS             Publish
  9488. 010    184    11/08   CARE OF                         Publish
  9489. 010    187    11/11   FIGURE DASH                     Publish
  9490. 010    188    11/12   LEFT ANGLE BRACKET                 Publish
  9491. 010    189    11/13   DECIMAL POINT                     Publish
  9492. 010    190    11/14   RIGHT ANGLE BRACKET                 Publish
  9493. 010    191    11/15   MARKER                         Publish
  9494. 010    195    12/03   VULGAR FRACTION ONE EIGHTH             Publish
  9495. 010    196    12/04   VULGAR FRACTION THREE EIGHTHS             Publish
  9496. 010    197    12/05   VULGAR FRACTION FIVE EIGHTHS             Publish
  9497. 010    198    12/06   VULGAR FRACTION SEVEN EIGHTHS             Publish
  9498.  
  9499.  
  9500.  
  9501.  
  9502.                  140
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508. X Protocol                    X11, Release 6.4
  9509.  
  9510.  
  9511. -----------------------------------------------------------------------------------
  9512. Byte   Byte   Code    Name                         Set
  9513.  3    4     Pos
  9514. -----------------------------------------------------------------------------------
  9515. 010    201    12/09   TRADEMARK SIGN                     Publish
  9516. 010    202    12/10   SIGNATURE MARK                     Publish
  9517. 010    203    12/11   TRADEMARK SIGN IN CIRCLE                 Publish
  9518. 010    204    12/12   LEFT OPEN TRIANGLE                 Publish
  9519. 010    205    12/13   RIGHT OPEN TRIANGLE                 Publish
  9520. 010    206    12/14   EM OPEN CIRCLE                     Publish
  9521. 010    207    12/15   EM OPEN RECTANGLE                  Publish
  9522. 010    208    13/00   LEFT SINGLE QUOTATION MARK             Publish
  9523. 010    209    13/01   RIGHT SINGLE QUOTATION MARK             Publish
  9524. 010    210    13/02   LEFT DOUBLE QUOTATION MARK             Publish
  9525. 010    211    13/03   RIGHT DOUBLE QUOTATION MARK             Publish
  9526. 010    212    13/04   PRESCRIPTION, TAKE, RECIPE             Publish
  9527. 010    214    13/06   MINUTES                         Publish
  9528. 010    215    13/07   SECONDS                         Publish
  9529. 010    217    13/09   LATIN CROSS                     Publish
  9530. 010    218    13/10   HEXAGRAM                         Publish
  9531. 010    219    13/11   FILLED RECTANGLE BULLET                 Publish
  9532. 010    220    13/12   FILLED LEFT TRIANGLE BULLET             Publish
  9533. 010    221    13/13   FILLED RIGHT TRIANGLE BULLET             Publish
  9534. 010    222    13/14   EM FILLED CIRCLE                     Publish
  9535. 010    223    13/15   EM FILLED RECTANGLE                 Publish
  9536. 010    224    14/00   EN OPEN CIRCLE BULLET                 Publish
  9537. 010    225    14/01   EN OPEN SQUARE BULLET                 Publish
  9538. 010    226    14/02   OPEN RECTANGULAR BULLET                 Publish
  9539. 010    227    14/03   OPEN TRIANGULAR BULLET UP              Publish
  9540. 010    228    14/04   OPEN TRIANGULAR BULLET DOWN             Publish
  9541. 010    229    14/05   OPEN STAR                      Publish
  9542. 010    230    14/06   EN FILLED CIRCLE BULLET                 Publish
  9543. 010    231    14/07   EN FILLED SQUARE BULLET                 Publish
  9544. 010    232    14/08   FILLED TRIANGULAR BULLET UP             Publish
  9545. 010    233    14/09   FILLED TRIANGULAR BULLET DOWN             Publish
  9546. 010    234    14/10   LEFT POINTER                     Publish
  9547. 010    235    14/11   RIGHT POINTER                     Publish
  9548. 010    236    14/12   CLUB                         Publish
  9549. 010    237    14/13   DIAMOND                         Publish
  9550. 010    238    14/14   HEART                         Publish
  9551. 010    240    15/00   MALTESE CROSS                     Publish
  9552. 010    241    15/01   DAGGER                         Publish
  9553. 010    242    15/02   DOUBLE DAGGER                     Publish
  9554. 010    243    15/03   CHECK MARK, TICK                     Publish
  9555. 010    244    15/04   BALLOT CROSS                     Publish
  9556. 010    245    15/05   MUSICAL SHARP                     Publish
  9557. 010    246    15/06   MUSICAL FLAT                     Publish
  9558. 010    247    15/07   MALE SYMBOL                     Publish
  9559. 010    248    15/08   FEMALE SYMBOL                     Publish
  9560. 010    249    15/09   TELEPHONE SYMBOL                     Publish
  9561. 010    250    15/10   TELEPHONE RECORDER SYMBOL              Publish
  9562. 010    251    15/11   PHONOGRAPH COPYRIGHT SIGN              Publish
  9563. 010    252    15/12   CARET                         Publish
  9564.  
  9565.  
  9566.  
  9567.  
  9568.                  141
  9569.  
  9570.  
  9571.  
  9572.  
  9573.  
  9574. X Protocol                    X11, Release 6.4
  9575.  
  9576.  
  9577. -----------------------------------------------------------------------------------
  9578. Byte   Byte   Code    Name                         Set
  9579.  3    4     Pos
  9580. -----------------------------------------------------------------------------------
  9581. 010    253    15/13   SINGLE LOW QUOTATION MARK              Publish
  9582. 010    254    15/14   DOUBLE LOW QUOTATION MARK              Publish
  9583. 010    255    15/15   CURSOR                         Publish
  9584.  
  9585.  
  9586. 011    163    10/03   LEFT CARET                     APL
  9587. 011    166    10/06   RIGHT CARET                     APL
  9588. 011    168    10/08   DOWN CARET                     APL
  9589. 011    169    10/09   UP CARET                         APL
  9590. 011    192    12/00   OVERBAR                         APL
  9591. 011    194    12/02   DOWN TACK                      APL
  9592. 011    195    12/03   UP SHOE (CAP)                     APL
  9593. 011    196    12/04   DOWN STILE                     APL
  9594. 011    198    12/06   UNDERBAR                         APL
  9595. 011    202    12/10   JOT                         APL
  9596. 011    204    12/12   QUAD                         APL
  9597. 011    206    12/14   UP TACK                         APL
  9598. 011    207    12/15   CIRCLE                         APL
  9599. 011    211    13/03   UP STILE                         APL
  9600. 011    214    13/06   DOWN SHOE (CUP)                     APL
  9601. 011    216    13/08   RIGHT SHOE                     APL
  9602. 011    218    13/10   LEFT SHOE                      APL
  9603. 011    220    13/12   LEFT TACK                      APL
  9604. 011    252    15/12   RIGHT TACK                     APL
  9605.  
  9606.  
  9607. 012    223    13/15   DOUBLE LOW LINE                     Hebrew
  9608. 012    224    14/00   HEBREW LETTER ALEPH                 Hebrew
  9609. 012    225    14/01   HEBREW LETTER BET                  Hebrew
  9610. 012    226    14/02   HEBREW LETTER GIMEL                 Hebrew
  9611. 012    227    14/03   HEBREW LETTER DALET                 Hebrew
  9612. 012    228    14/04   HEBREW LETTER HE                     Hebrew
  9613. 012    229    14/05   HEBREW LETTER WAW                  Hebrew
  9614. 012    230    14/06   HEBREW LETTER ZAIN                 Hebrew
  9615. 012    231    14/07   HEBREW LETTER CHET                 Hebrew
  9616. 012    232    14/08   HEBREW LETTER TET                  Hebrew
  9617. 012    233    14/09   HEBREW LETTER YOD                  Hebrew
  9618. 012    234    14/10   HEBREW LETTER FINAL KAPH                 Hebrew
  9619. 012    235    14/11   HEBREW LETTER KAPH                 Hebrew
  9620. 012    236    14/12   HEBREW LETTER LAMED                 Hebrew
  9621. 012    237    14/13   HEBREW LETTER FINAL MEM                 Hebrew
  9622. 012    238    14/14   HEBREW LETTER MEM                  Hebrew
  9623. 012    239    14/15   HEBREW LETTER FINAL NUN                 Hebrew
  9624. 012    240    15/00   HEBREW LETTER NUN                  Hebrew
  9625. 012    241    15/01   HEBREW LETTER SAMECH                 Hebrew
  9626. 012    242    15/02   HEBREW LETTER A'YIN                 Hebrew
  9627. 012    243    15/03   HEBREW LETTER FINAL PE                 Hebrew
  9628. 012    244    15/04   HEBREW LETTER PE                     Hebrew
  9629. 012    245    15/05   HEBREW LETTER FINAL ZADE                 Hebrew
  9630.  
  9631.  
  9632.  
  9633.  
  9634.                  142
  9635.  
  9636.  
  9637.  
  9638.  
  9639.  
  9640. X Protocol                    X11, Release 6.4
  9641.  
  9642.  
  9643. -----------------------------------------------------------------------------------
  9644. Byte   Byte   Code    Name                         Set
  9645.  3    4     Pos
  9646. -----------------------------------------------------------------------------------
  9647. 012    246    15/06   HEBREW LETTER ZADE                 Hebrew
  9648. 012    247    15/07   HEBREW QOPH                     Hebrew
  9649. 012    248    15/08   HEBREW RESH                     Hebrew
  9650. 012    249    15/09   HEBREW SHIN                     Hebrew
  9651. 012    250    15/10   HEBREW TAW                     Hebrew
  9652.  
  9653.  
  9654. 013    161    10/01   THAI KOKAI                     Thai
  9655. 013    162    10/02   THAI KHOKHAI                     Thai
  9656. 013    163    10/03   THAI KHOKHUAT                     Thai
  9657. 013    164    10/04   THAI KHOKHWAI                     Thai
  9658. 013    165    10/05   THAI KHOKHON                     Thai
  9659. 013    166    10/06   THAI KHORAKHANG                     Thai
  9660. 013    167    10/07   THAI NGONGU                     Thai
  9661. 013    168    10/08   THAI CHOCHAN                     Thai
  9662. 013    169    10/09   THAI CHOCHING                     Thai
  9663. 013    170    10/10   THAI CHOCHANG                     Thai
  9664. 013    171    10/11   THAI SOSO                      Thai
  9665. 013    172    10/12   THAI CHOCHOE                     Thai
  9666. 013    173    10/13   THAI YOYING                     Thai
  9667. 013    174    10/14   THAI DOCHADA                     Thai
  9668. 013    175    10/15   THAI TOPATAK                     Thai
  9669. 013    176    11/00   THAI THOTHAN                     Thai
  9670. 013    177    11/01   THAI THONANGMONTHO                 Thai
  9671. 013    178    11/02   THAI THOPHUTHAO                     Thai
  9672. 013    179    11/03   THAI NONEN                     Thai
  9673. 013    180    11/04   THAI DODEK                     Thai
  9674. 013    181    11/05   THAI TOTAO                     Thai
  9675. 013    182    11/06   THAI THOTHUNG                     Thai
  9676. 013    183    11/07   THAI THOTHAHAN                     Thai
  9677. 013    184    11/08   THAI THOTHONG                     Thai
  9678. 013    185    11/09   THAI NONU                      Thai
  9679. 013    186    11/10   THAI BOBAIMAI                     Thai
  9680. 013    187    11/11   THAI POPLA                     Thai
  9681. 013    188    11/12   THAI PHOPHUNG                     Thai
  9682. 013    189    11/13   THAI FOFA                      Thai
  9683. 013    190    11/14   THAI PHOPHAN                     Thai
  9684. 013    191    11/15   THAI FOFAN                     Thai
  9685. 013    192    12/00   THAI PHOSAMPHAO                     Thai
  9686. 013    193    12/01   THAI MOMA                      Thai
  9687. 013    194    12/02   THAI YOYAK                     Thai
  9688. 013    195    12/03   THAI RORUA                     Thai
  9689. 013    196    12/04   THAI RU                         Thai
  9690. 013    197    12/05   THAI LOLING                     Thai
  9691. 013    198    12/06   THAI LU                         Thai
  9692. 013    199    12/07   THAI WOWAEN                     Thai
  9693. 013    200    12/08   THAI SOSALA                     Thai
  9694. 013    201    12/09   THAI SORUSI                     Thai
  9695. 013    202    12/10   THAI SOSUA                     Thai
  9696.  
  9697.  
  9698.  
  9699.  
  9700.                  143
  9701.  
  9702.  
  9703.  
  9704.  
  9705.  
  9706. X Protocol                    X11, Release 6.4
  9707.  
  9708.  
  9709. -----------------------------------------------------------------------------------
  9710. Byte   Byte   Code    Name                         Set
  9711.  3    4     Pos
  9712. -----------------------------------------------------------------------------------
  9713. 013    203    12/11   THAI HOHIP                     Thai
  9714. 013    204    12/12   THAI LOCHULA                     Thai
  9715. 013    205    12/13   THAI OANG                      Thai
  9716. 013    206    12/14   THAI HONOKHUK                     Thai
  9717. 013    207    12/15   THAI PAIYANNOI                     Thai
  9718. 013    208    13/00   THAI SARAA                     Thai
  9719. 013    209    13/01   THAI MAIHANAKAT                     Thai
  9720. 013    210    13/02   THAI SARAAA                     Thai
  9721. 013    211    13/03   THAI SARAAM                     Thai
  9722. 013    212    13/04   THAI SARAI                     Thai
  9723. 013    213    13/05   THAI SARAII                     Thai
  9724. 013    214    13/06   THAI SARAUE                     Thai
  9725. 013    215    13/07   THAI SARAUEE                     Thai
  9726. 013    216    13/08   THAI SARAU                     Thai
  9727. 013    217    13/09   THAI SARAUU                     Thai
  9728. 013    218    13/10   THAI PHINTHU                     Thai
  9729. 013    222    13/14   THAI MAIHANAKAT                     Thai
  9730. 013    223    13/15   THAI BAHT                      Thai
  9731. 013    224    14/00   THAI SARAE                     Thai
  9732. 013    225    14/01   THAI SARAAE                     Thai
  9733. 013    226    14/02   THAI SARAO                     Thai
  9734. 013    227    14/03   THAI SARAAIMAIMUAN                 Thai
  9735. 013    228    14/04   THAI SARAAIMAIMALAI                 Thai
  9736. 013    229    14/05   THAI LAKKHANGYAO                     Thai
  9737. 013    230    14/06   THAI MAIYAMOK                     Thai
  9738. 013    231    14/07   THAI MAITAIKHU                     Thai
  9739. 013    232    14/08   THAI MAIEK                     Thai
  9740. 013    233    14/09   THAI MAITHO                     Thai
  9741. 013    234    14/10   THAI MAITRI                     Thai
  9742. 013    235    14/11   THAI MAICHATTAWA                     Thai
  9743. 013    236    14/12   THAI THANTHAKHAT                     Thai
  9744. 013    237    14/13   THAI NIKHAHIT                     Thai
  9745. 013    240    15/00   THAI LEKSUN                     Thai
  9746. 013    241    15/01   THAI LEKNUNG                     Thai
  9747. 013    242    15/02   THAI LEKSONG                     Thai
  9748. 013    243    15/03   THAI LEKSAM                     Thai
  9749. 013    244    15/04   THAI LEKSI                     Thai
  9750. 013    245    15/05   THAI LEKHA                     Thai
  9751. 013    246    15/06   THAI LEKHOK                     Thai
  9752. 013    247    15/07   THAI LEKCHET                     Thai
  9753. 013    248    15/08   THAI LEKPAET                     Thai
  9754. 013    249    15/09   THAI LEKKAO                     Thai
  9755.  
  9756.  
  9757. 014    161    10/01   HANGUL KIYEOG                     Korean
  9758. 014    162    10/02   HANGUL SSANG KIYEOG                 Korean
  9759. 014    163    10/03   HANGUL KIYEOG SIOS                 Korean
  9760. 014    164    10/04   HANGUL NIEUN                     Korean
  9761. 014    165    10/05   HANGUL NIEUN JIEUJ                 Korean
  9762.  
  9763.  
  9764.  
  9765.  
  9766.                  144
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772. X Protocol                    X11, Release 6.4
  9773.  
  9774.  
  9775. -----------------------------------------------------------------------------------
  9776. Byte   Byte   Code    Name                         Set
  9777.  3    4     Pos
  9778. -----------------------------------------------------------------------------------
  9779. 014    166    10/06   HANGUL NIEUN HIEUH                 Korean
  9780. 014    167    10/07   HANGUL DIKEUD                     Korean
  9781. 014    168    10/08   HANGUL SSANG DIKEUD                 Korean
  9782. 014    169    10/09   HANGUL RIEUL                     Korean
  9783. 014    170    10/10   HANGUL RIEUL KIYEOG                 Korean
  9784. 014    171    10/11   HANGUL RIEUL MIEUM                 Korean
  9785. 014    172    10/12   HANGUL RIEUL PIEUB                 Korean
  9786. 014    173    10/13   HANGUL RIEUL SIOS                  Korean
  9787. 014    174    10/14   HANGUL RIEUL TIEUT                 Korean
  9788. 014    175    10/15   HANGUL RIEUL PHIEUF                 Korean
  9789. 014    176    11/00   HANGUL RIEUL HIEUH                 Korean
  9790. 014    177    11/01   HANGUL MIEUM                     Korean
  9791. 014    178    11/02   HANGUL PIEUB                     Korean
  9792. 014    179    11/03   HANGUL SSANG PIEUB                 Korean
  9793. 014    180    11/04   HANGUL PIEUB SIOS                  Korean
  9794. 014    181    11/05   HANGUL SIOS                     Korean
  9795. 014    182    11/06   HANGUL SSANG SIOS                  Korean
  9796. 014    183    11/07   HANGUL IEUNG                     Korean
  9797. 014    184    11/08   HANGUL JIEUJ                     Korean
  9798. 014    185    11/09   HANGUL SSANG JIEUJ                 Korean
  9799. 014    186    11/10   HANGUL CIEUC                     Korean
  9800. 014    187    11/11   HANGUL KHIEUQ                     Korean
  9801. 014    188    11/12   HANGUL TIEUT                     Korean
  9802. 014    189    11/13   HANGUL PHIEUF                     Korean
  9803. 014    190    11/14   HANGUL HIEUH                     Korean
  9804. 014    191    11/15   HANGUL A                         Korean
  9805. 014    192    12/00   HANGUL AE                      Korean
  9806. 014    193    12/01   HANGUL YA                      Korean
  9807. 014    194    12/02   HANGUL YAE                     Korean
  9808. 014    195    12/03   HANGUL EO                      Korean
  9809. 014    196    12/04   HANGUL E                         Korean
  9810. 014    197    12/05   HANGUL YEO                     Korean
  9811. 014    198    12/06   HANGUL YE                      Korean
  9812. 014    199    12/07   HANGUL O                         Korean
  9813. 014    200    12/08   HANGUL WA                      Korean
  9814. 014    201    12/09   HANGUL WAE                     Korean
  9815. 014    202    12/10   HANGUL OE                      Korean
  9816. 014    203    12/11   HANGUL YO                      Korean
  9817. 014    204    12/12   HANGUL U                         Korean
  9818. 014    205    12/13   HANGUL WEO                     Korean
  9819. 014    206    12/14   HANGUL WE                      Korean
  9820. 014    207    12/15   HANGUL WI                      Korean
  9821. 014    208    13/00   HANGUL YU                      Korean
  9822. 014    209    13/01   HANGUL EU                      Korean
  9823. 014    210    13/02   HANGUL YI                      Korean
  9824. 014    211    13/03   HANGUL I                         Korean
  9825. 014    212    13/04   HANGUL JONG SEONG KIYEOG                 Korean
  9826. 014    213    13/05   HANGUL JONG SEONG SSANG KIYEOG             Korean
  9827. 014    214    13/06   HANGUL JONG SEONG KIYEOG SIOS             Korean
  9828.  
  9829.  
  9830.  
  9831.  
  9832.                  145
  9833.  
  9834.  
  9835.  
  9836.  
  9837.  
  9838. X Protocol                    X11, Release 6.4
  9839.  
  9840.  
  9841. -----------------------------------------------------------------------------------
  9842. Byte   Byte   Code    Name                         Set
  9843.  3    4     Pos
  9844. -----------------------------------------------------------------------------------
  9845. 014    215    13/07   HANGUL JONG SEONG NIEUN                 Korean
  9846. 014    216    13/08   HANGUL JONG SEONG NIEUN JIEUJ             Korean
  9847. 014    217    13/09   HANGUL JONG SEONG NIEUN HIEUH             Korean
  9848. 014    218    13/10   HANGUL JONG SEONG DIKEUD                 Korean
  9849. 014    219    13/11   HANGUL JONG SEONG RIEUL                 Korean
  9850. 014    220    13/12   HANGUL JONG SEONG RIEUL KIYEOG             Korean
  9851. 014    221    13/13   HANGUL JONG SEONG RIEUL MIEUM             Korean
  9852. 014    222    13/14   HANGUL JONG SEONG RIEUL PIEUB             Korean
  9853. 014    223    13/15   HANGUL JONG SEONG RIEUL SIOS             Korean
  9854. 014    224    14/00   HANGUL JONG SEONG RIEUL TIEUT             Korean
  9855. 014    225    14/01   HANGUL JONG SEONG RIEUL PHIEUF             Korean
  9856. 014    226    14/02   HANGUL JONG SEONG RIEUL HIEUH             Korean
  9857. 014    227    14/03   HANGUL JONG SEONG MIEUM                 Korean
  9858. 014    228    14/04   HANGUL JONG SEONG PIEUB                 Korean
  9859. 014    229    14/05   HANGUL JONG SEONG PIEUB SIOS             Korean
  9860. 014    230    14/06   HANGUL JONG SEONG SIOS                 Korean
  9861. 014    231    14/07   HANGUL JONG SEONG SSANG SIOS             Korean
  9862. 014    232    14/08   HANGUL JONG SEONG IEUNG                 Korean
  9863. 014    233    14/09   HANGUL JONG SEONG JIEUJ                 Korean
  9864. 014    234    14/10   HANGUL JONG SEONG CIEUC                 Korean
  9865. 014    235    14/11   HANGUL JONG SEONG KHIEUQ                 Korean
  9866. 014    236    14/12   HANGUL JONG SEONG TIEUT                 Korean
  9867. 014    237    14/13   HANGUL JONG SEONG PHIEUF                 Korean
  9868. 014    238    14/14   HANGUL JONG SEONG HIEUH                 Korean
  9869. 014    239    14/15   HANGUL RIEUL YEORIN HIEUH              Korean
  9870. 014    240    15/00   HANGUL SUNKYEONGEUM MIEUM              Korean
  9871. 014    241    15/01   HANGUL SUNKYEONGEUM PIEUB              Korean
  9872. 014    242    15/02   HANGUL PAN SIOS                     Korean
  9873. 014    243    15/03   HANGUL KKOGJI DALRIN IEUNG             Korean
  9874. 014    244    15/04   HANGUL SUNKYEONGEUM PHIEUF             Korean
  9875. 014    245    15/05   HANGUL YEORIN HIEUH                 Korean
  9876. 014    246    15/06   HANGUL ARAE A                     Korean
  9877. 014    247    15/07   HANGUL ARAE AE                     Korean
  9878. 014    248    15/08   HANGUL JONG SEONG PAN SIOS             Korean
  9879. 014    249    15/09   HANGUL JONG SEONG KKOGJI DALRIN IEUNG         Korean
  9880. 014    250    15/10   HANGUL JONG SEONG YEORIN HIEUH             Korean
  9881. 014    255    15/15   KOREAN WON                     Korean
  9882.  
  9883.  
  9884. 019    188    11/12   LATIN CAPITAL DIPHTHONG OE             Latin-9
  9885. 019    189    11/13   LATIN SMALL DIPHTHONG oe                 Latin-9
  9886. 019    190    11/14   LATIN CAPITAL LETTER Y WITH DIAERESIS         Latin-9
  9887.  
  9888.  
  9889. 032    160    10/00   CURRENCY ECU SIGN                  Currency
  9890. 032    161    10/01   CURRENCY COLON SIGN                 Currency
  9891. 032    162    10/02   CURRENCY CRUZEIRO SIGN                 Currency
  9892. 032    163    10/03   CURRENCY FRENCH FRANC SIGN             Currency
  9893. 032    164    10/04   CURRENCY LIRA SIGN                 Currency
  9894.  
  9895.  
  9896.  
  9897.  
  9898.                  146
  9899.  
  9900.  
  9901.  
  9902.  
  9903.  
  9904. X Protocol                    X11, Release 6.4
  9905.  
  9906.  
  9907. -----------------------------------------------------------------------------------
  9908. Byte   Byte   Code    Name                         Set
  9909.  3    4     Pos
  9910. -----------------------------------------------------------------------------------
  9911. 032    165    10/05   CURRENCY MILL SIGN                 Currency
  9912. 032    166    10/06   CURRENCY NAIRA SIGN                 Currency
  9913. 032    167    10/07   CURRENCY PESETA SIGN                 Currency
  9914. 032    168    10/08   CURRENCY RUPEE SIGN                 Currency
  9915. 032    169    10/09   CURRENCY WON SIGN                  Currency
  9916. 032    170    10/10   CURRENCY NEW SHEQEL SIGN                 Currency
  9917. 032    171    10/11   CURRENCY DONG SIGN                 Currency
  9918. 032    172    10/12   CURRENCY EURO SIGN                 Currency
  9919.  
  9920.  
  9921. 253    001    00/01   3270 DUPLICATE                     3270
  9922. 253    002    00/02   3270 FIELDMARK                     3270
  9923. 253    003    00/03   3270 RIGHT2                     3270
  9924. 253    004    00/04   3270 LEFT2                     3270
  9925. 253    005    00/05   3270 BACKTAB                     3270
  9926. 253    006    00/06   3270 ERASEEOF                     3270
  9927. 253    007    00/07   3270 ERASEINPUT                     3270
  9928. 253    008    00/08   3270 RESET                     3270
  9929. 253    009    00/09   3270 QUIT                      3270
  9930. 253    010    00/10   3270 PA1                         3270
  9931. 253    011    00/11   3270 PA2                         3270
  9932. 253    012    00/12   3270 PA3                         3270
  9933. 253    013    00/13   3270 TEST                      3270
  9934. 253    014    00/14   3270 ATTN                      3270
  9935. 253    015    00/15   3270 CURSORBLINK                     3270
  9936. 253    016    01/01   3270 ALTCURSOR                     3270
  9937. 253    017    01/02   3270 KEYCLICK                     3270
  9938. 253    018    01/03   3270 JUMP                      3270
  9939. 253    019    01/04   3270 IDENT                     3270
  9940. 253    020    01/05   3270 RULE                      3270
  9941. 253    021    01/06   3270 COPY                      3270
  9942. 253    022    01/07   3270 PLAY                      3270
  9943. 253    023    01/08   3270 SETUP                     3270
  9944. 253    024    01/09   3270 RECORD                     3270
  9945. 253    025    01/10   3270 CHANGESCREEN                  3270
  9946. 253    026    01/11   3270 DELETEWORD                     3270
  9947. 253    027    01/12   3270 EXSELECT                     3270
  9948. 253    028    01/13   3270 CURSORSELECT                  3270
  9949. 253    029    01/14   3270 PRINTSCREEN                     3270
  9950. 253    030    01/15   3270 ENTER                     3270
  9951.  
  9952.  
  9953. 255    008    00/08   BACKSPACE, BACK SPACE, BACK CHAR             Keyboard
  9954. 255    009    00/09   TAB                         Keyboard
  9955. 255    010    00/10   LINEFEED, LF                     Keyboard
  9956. 255    011    00/11   CLEAR                         Keyboard
  9957. 255    013    00/13   RETURN, ENTER                     Keyboard
  9958. 255    019    01/03   PAUSE, HOLD                     Keyboard
  9959. 255    020    01/04   SCROLL LOCK                     Keyboard
  9960.  
  9961.  
  9962.  
  9963.  
  9964.                  147
  9965.  
  9966.  
  9967.  
  9968.  
  9969.  
  9970. X Protocol                    X11, Release 6.4
  9971.  
  9972.  
  9973. -----------------------------------------------------------------------------------
  9974. Byte   Byte   Code    Name                         Set
  9975.  3    4     Pos
  9976. -----------------------------------------------------------------------------------
  9977. 255    021    01/05   SYS REQ, SYSTEM REQUEST                 Keyboard
  9978. 255    027    01/11   ESCAPE                         Keyboard
  9979. 255    032    02/00   MULTI-KEY CHARACTER PREFACE             Keyboard
  9980. 255    033    02/01   KANJI, KANJI CONVERT                 Keyboard
  9981. 255    034    02/02   MUHENKAN                         Keyboard
  9982. 255    035    02/03   HENKAN MODE                     Keyboard
  9983. 255    036    02/04   ROMAJI                         Keyboard
  9984. 255    037    02/05   HIRAGANA                         Keyboard
  9985. 255    038    02/06   KATAKANA                         Keyboard
  9986. 255    039    02/07   HIRAGANA/KATAKANA TOGGLE                 Keyboard
  9987. 255    040    02/08   ZENKAKU                         Keyboard
  9988. 255    041    02/09   HANKAKU                         Keyboard
  9989. 255    042    02/10   ZENKAKU/HANKAKU TOGGLE                 Keyboard
  9990. 255    043    02/11   TOUROKU                         Keyboard
  9991. 255    044    02/12   MASSYO                         Keyboard
  9992. 255    045    02/13   KANA LOCK                      Keyboard
  9993. 255    046    02/14   KANA SHIFT                     Keyboard
  9994. 255    047    02/15   EISU SHIFT                     Keyboard
  9995. 255    048    03/00   EISU TOGGLE                     Keyboard
  9996. 255    049    03/01   HANGUL START/STOP (TOGGLE)             Keyboard
  9997. 255    050    03/02   HANGUL START                     Keyboard
  9998. 255    051    03/03   HANGUL END, ENGLISH START              Keyboard
  9999. 255    052    03/04   START HANGUL/HANJA CONVERSION             Keyboard
  10000. 255    053    03/05   HANGUL JAMO MODE                     Keyboard
  10001. 255    054    03/06   HANGUL ROMAJA MODE                 Keyboard
  10002. 255    055    03/07   HANGUL CODE INPUT                  Keyboard
  10003. 255    056    03/08   HANGUL JEONJA MODE                 Keyboard
  10004. 255    057    03/09   HANGUL BANJA MODE                  Keyboard
  10005. 255    058    03/10   HANGUL PREHANJA CONVERSION             Keyboard
  10006. 255    059    03/11   HANGUL POSTHANJA CONVERSION             Keyboard
  10007. 255    060    03/12   HANGUL SINGLE CANDIDATE                 Keyboard
  10008. 255    061    03/13   HANGUL MULTIPLE CANDIDATE              Keyboard
  10009. 255    062    03/14   HANGUL PREVIOUS CANDIDATE              Keyboard
  10010. 255    063    03/15   HANGUL SPECIAL SYMBOLS                 Keyboard
  10011. 255    080    05/00   HOME                         Keyboard
  10012. 255    081    05/01   LEFT, MOVE LEFT, LEFT ARROW             Keyboard
  10013. 255    082    05/02   UP, MOVE UP, UP ARROW                 Keyboard
  10014. 255    083    05/03   RIGHT, MOVE RIGHT, RIGHT ARROW             Keyboard
  10015. 255    084    05/04   DOWN, MOVE DOWN, DOWN ARROW             Keyboard
  10016. 255    085    05/05   PRIOR, PREVIOUS, PAGE UP                 Keyboard
  10017. 255    086    05/06   NEXT, PAGE DOWN                     Keyboard
  10018. 255    087    05/07   END, EOL                         Keyboard
  10019. 255    088    05/08   BEGIN, BOL                     Keyboard
  10020. 255    096    06/00   SELECT, MARK                     Keyboard
  10021. 255    097    06/01   PRINT                         Keyboard
  10022. 255    098    06/02   EXECUTE, RUN, DO                     Keyboard
  10023. 255    099    06/03   INSERT, INSERT HERE                 Keyboard
  10024. 255    101    06/05   UNDO, OOPS                     Keyboard
  10025. 255    102    06/06   REDO, AGAIN                     Keyboard
  10026.  
  10027.  
  10028.  
  10029.  
  10030.                  148
  10031.  
  10032.  
  10033.  
  10034.  
  10035.  
  10036. X Protocol                    X11, Release 6.4
  10037.  
  10038.  
  10039. -----------------------------------------------------------------------------------
  10040. Byte   Byte   Code    Name                         Set
  10041.  3    4     Pos
  10042. -----------------------------------------------------------------------------------
  10043. 255    103    06/07   MENU                         Keyboard
  10044. 255    104    06/08   FIND, SEARCH                     Keyboard
  10045. 255    105    06/09   CANCEL, STOP, ABORT, EXIT              Keyboard
  10046. 255    106    06/10   HELP                         Keyboard
  10047. 255    107    06/11   BREAK                         Keyboard
  10048. 255    126    07/14   MODE SWITCH, SCRIPT SWITCH, CHARACTER SET SWITCH     Keyboard
  10049. 255    127    07/15   NUM LOCK                         Keyboard
  10050. 255    128    08/00   KEYPAD SPACE                     Keyboard
  10051. 255    137    08/09   KEYPAD TAB                     Keyboard
  10052. 255    141    08/13   KEYPAD ENTER                     Keyboard
  10053. 255    145    09/01   KEYPAD F1, PF1, A                  Keyboard
  10054. 255    146    09/02   KEYPAD F2, PF2, B                  Keyboard
  10055. 255    147    09/03   KEYPAD F3, PF3, C                  Keyboard
  10056. 255    148    09/04   KEYPAD F4, PF4, D                  Keyboard
  10057. 255    149    09/05   KEYPAD HOME                     Keyboard
  10058. 255    150    09/06   KEYPAD LEFT                     Keyboard
  10059. 255    151    09/07   KEYPAD UP                      Keyboard
  10060. 255    152    09/08   KEYPAD RIGHT                     Keyboard
  10061. 255    153    09/09   KEYPAD DOWN                     Keyboard
  10062. 255    154    09/10   KEYPAD PRIOR, PAGE UP                 Keyboard
  10063. 255    155    09/11   KEYPAD NEXT, PAGE DOWN                 Keyboard
  10064. 255    156    09/12   KEYPAD END                     Keyboard
  10065. 255    157    09/13   KEYPAD BEGIN                     Keyboard
  10066. 255    158    09/14   KEYPAD INSERT                     Keyboard
  10067. 255    159    09/15   KEYPAD DELETE                     Keyboard
  10068. 255    170    10/10   KEYPAD MULTIPLICATION SIGN, ASTERISK         Keyboard
  10069. 255    171    10/11   KEYPAD PLUS SIGN                     Keyboard
  10070. 255    172    10/12   KEYPAD SEPARATOR, COMMA                 Keyboard
  10071. 255    173    10/13   KEYPAD MINUS SIGN, HYPHEN              Keyboard
  10072. 255    174    10/14   KEYPAD DECIMAL POINT, FULL STOP             Keyboard
  10073. 255    175    10/15   KEYPAD DIVISION SIGN, SOLIDUS             Keyboard
  10074. 255    176    11/00   KEYPAD DIGIT ZERO                  Keyboard
  10075. 255    177    11/01   KEYPAD DIGIT ONE                     Keyboard
  10076. 255    178    11/02   KEYPAD DIGIT TWO                     Keyboard
  10077. 255    179    11/03   KEYPAD DIGIT THREE                 Keyboard
  10078. 255    180    11/04   KEYPAD DIGIT FOUR                  Keyboard
  10079. 255    181    11/05   KEYPAD DIGIT FIVE                  Keyboard
  10080. 255    182    11/06   KEYPAD DIGIT SIX                     Keyboard
  10081. 255    183    11/07   KEYPAD DIGIT SEVEN                 Keyboard
  10082. 255    184    11/08   KEYPAD DIGIT EIGHT                 Keyboard
  10083. 255    185    11/09   KEYPAD DIGIT NINE                  Keyboard
  10084. 255    189    11/13   KEYPAD EQUALS SIGN                 Keyboard
  10085. 255    190    11/14   F1                         Keyboard
  10086. 255    191    11/15   F2                         Keyboard
  10087. 255    192    12/00   F3                         Keyboard
  10088. 255    193    12/01   F4                         Keyboard
  10089. 255    194    12/02   F5                         Keyboard
  10090. 255    195    12/03   F6                         Keyboard
  10091. 255    196    12/04   F7                         Keyboard
  10092.  
  10093.  
  10094.  
  10095.  
  10096.                  149
  10097.  
  10098.  
  10099.  
  10100.  
  10101.  
  10102. X Protocol                    X11, Release 6.4
  10103.  
  10104.  
  10105. -----------------------------------------------------------------------------------
  10106. Byte   Byte   Code    Name                         Set
  10107.  3    4     Pos
  10108. -----------------------------------------------------------------------------------
  10109. 255    197    12/05   F8                         Keyboard
  10110. 255    198    12/06   F9                         Keyboard
  10111. 255    199    12/07   F10                         Keyboard
  10112. 255    200    12/08   F11, L1                         Keyboard
  10113. 255    201    12/09   F12, L2                         Keyboard
  10114. 255    202    12/10   F13, L3                         Keyboard
  10115. 255    203    12/11   F14, L4                         Keyboard
  10116. 255    204    12/12   F15, L5                         Keyboard
  10117. 255    205    12/13   F16, L6                         Keyboard
  10118. 255    206    12/14   F17, L7                         Keyboard
  10119. 255    207    12/15   F18, L8                         Keyboard
  10120. 255    208    13/00   F19, L9                         Keyboard
  10121. 255    209    13/01   F20, L10                         Keyboard
  10122. 255    210    13/02   F21, R1                         Keyboard
  10123. 255    211    13/03   F22, R2                         Keyboard
  10124. 255    212    13/04   F23, R3                         Keyboard
  10125. 255    213    13/05   F24, R4                         Keyboard
  10126. 255    214    13/06   F25, R5                         Keyboard
  10127. 255    215    13/07   F26, R6                         Keyboard
  10128. 255    216    13/08   F27, R7                         Keyboard
  10129. 255    217    13/09   F28, R8                         Keyboard
  10130. 255    218    13/10   F29, R9                         Keyboard
  10131. 255    219    13/11   F30, R10                         Keyboard
  10132. 255    220    13/12   F31, R11                         Keyboard
  10133. 255    221    13/13   F32, R12                         Keyboard
  10134. 255    222    13/14   F33, R13                         Keyboard
  10135. 255    223    13/15   F34, R14                         Keyboard
  10136. 255    224    14/00   F35, R15                         Keyboard
  10137. 255    225    14/01   LEFT SHIFT                     Keyboard
  10138. 255    226    14/02   RIGHT SHIFT                     Keyboard
  10139. 255    227    14/03   LEFT CONTROL                     Keyboard
  10140. 255    228    14/04   RIGHT CONTROL                     Keyboard
  10141. 255    229    14/05   CAPS LOCK                      Keyboard
  10142. 255    230    14/06   SHIFT LOCK                     Keyboard
  10143. 255    231    14/07   LEFT META                      Keyboard
  10144. 255    232    14/08   RIGHT META                     Keyboard
  10145. 255    233    14/09   LEFT ALT                         Keyboard
  10146. 255    234    14/10   RIGHT ALT                      Keyboard
  10147. 255    235    14/11   LEFT SUPER                     Keyboard
  10148. 255    236    14/12   RIGHT SUPER                     Keyboard
  10149. 255    237    14/13   LEFT HYPER                     Keyboard
  10150. 255    238    14/14   RIGHT HYPER                     Keyboard
  10151. 255    255    15/15   DELETE, RUBOUT                     Keyboard
  10152. -----------------------------------------------------------------------------------
  10153.  
  10154.  
  10155.  
  10156.  
  10157.  
  10158.  
  10159.  
  10160.  
  10161.  
  10162.                  150
  10163.  
  10164.  
  10165.  
  10166.  
  10167.  
  10168. X Protocol                    X11, Release 6.4
  10169.  
  10170.  
  10171.  
  10172.  
  10173.              Appendix B
  10174.  
  10175.              Protocol Encoding
  10176.  
  10177.  
  10178.  
  10179.  
  10180. Syntactic Conventions
  10181.  
  10182. All numbers are in decimal, unless prefixed with #x, in
  10183. which case they are in hexadecimal (base 16).
  10184.  
  10185. The general syntax used to describe requests, replies,
  10186. errors, events, and compound types is:
  10187.  
  10188.  
  10189.      NameofThing
  10190.        encode-form
  10191.        ...
  10192.        encode-form
  10193.  
  10194.  
  10195. Each encode-form describes a single component.
  10196.  
  10197. For components described in the protocol as:
  10198.  
  10199.  
  10200.      name: TYPE
  10201.  
  10202.  
  10203. the encode-form is:
  10204.  
  10205.  
  10206.      N           TYPE name
  10207.  
  10208.  
  10209. N is the number of bytes occupied in the data stream, and
  10210. TYPE is the interpretation of those bytes.  For example,
  10211.  
  10212.  
  10213.      depth: CARD8
  10214.  
  10215.  
  10216. becomes:
  10217.  
  10218.  
  10219.      1           CARD8          depth
  10220.  
  10221.  
  10222. For components with a static numeric value the encode-form
  10223. is:
  10224.  
  10225.  
  10226.  
  10227.  
  10228.                  151
  10229.  
  10230.  
  10231.  
  10232.  
  10233.  
  10234. X Protocol                    X11, Release 6.4
  10235.  
  10236.  
  10237.      N           value          name
  10238.  
  10239.  
  10240. The value is always interpreted as an N-byte unsigned inte-
  10241. ger.  For example, the first two bytes of a Window error are
  10242. always zero (indicating an error in general) and three
  10243. (indicating the Window error in particular):
  10244.  
  10245.  
  10246.      1           0    Error
  10247.      1           3    code
  10248.  
  10249.  
  10250. For components described in the protocol as:
  10251.  
  10252.      name: {Name1,..., NameI}
  10253.  
  10254. the encode-form is:
  10255.  
  10256.  
  10257.      N            name
  10258.            value1 Name1
  10259.            ...
  10260.            valueI NameI
  10261.  
  10262.  
  10263. The value is always interpreted as an N-byte unsigned inte-
  10264. ger.  Note that the size of N is sometimes larger than that
  10265. strictly required to encode the values.  For example:
  10266.  
  10267.      class: {InputOutput, InputOnly, CopyFromParent}
  10268.  
  10269. becomes:
  10270.  
  10271.  
  10272.      2                  class
  10273.            0    CopyFromParent
  10274.            1    InputOutput
  10275.            2    InputOnly
  10276.  
  10277.  
  10278. For components described in the protocol as:
  10279.  
  10280.      NAME: TYPE or Alternative1...or AlternativeI
  10281.  
  10282. the encode-form is:
  10283.  
  10284.  
  10285.      N           TYPE          NAME
  10286.            value1     Alternative1
  10287.            ...
  10288.            valueI     AlternativeI
  10289.  
  10290.  
  10291.  
  10292.  
  10293.  
  10294.                  152
  10295.  
  10296.  
  10297.  
  10298.  
  10299.  
  10300. X Protocol                    X11, Release 6.4
  10301.  
  10302.  
  10303. The alternative values are guaranteed not to conflict with
  10304. the encoding of TYPE.  For example:
  10305.  
  10306.      destination: WINDOW or PointerWindow or InputFocus
  10307.  
  10308. becomes:
  10309.  
  10310.  
  10311.      4           WINDOW          destination
  10312.            0    PointerWindow
  10313.            1    InputFocus
  10314.  
  10315.  
  10316. For components described in the protocol as:
  10317.  
  10318.  
  10319.      value-mask: BITMASK
  10320.  
  10321.  
  10322. the encode-form is:
  10323.  
  10324.  
  10325.      N           BITMASK          value-mask
  10326.            mask1     mask-name1
  10327.            ...
  10328.            maskI     mask-nameI
  10329.  
  10330.  
  10331. The individual bits in the mask are specified and named, and
  10332. N is 2 or 4.  The most-significant bit in a BITMASK is
  10333. reserved for use in defining chained (multiword) bitmasks,
  10334. as extensions augment existing core requests.  The precise
  10335. interpretation of this bit is not yet defined here, although
  10336. a probable mechanism is that a 1-bit indicates that another
  10337. N bytes of bitmask follows, with bits within the overall
  10338. mask still interpreted from least-significant to most-sig-
  10339. nificant with an N-byte unit, with N-byte units interpreted
  10340. in stream order, and with the overall mask being byte-
  10341. swapped in individual N-byte units.
  10342.  
  10343. For LISTofVALUE encodings, the request is followed by a sec-
  10344. tion of the form:
  10345.  
  10346.  
  10347.      VALUEs
  10348.       encode-form
  10349.       ...
  10350.       encode-form
  10351.  
  10352.  
  10353. listing an encode-form for each VALUE.    The NAME in each
  10354. encode-form keys to the corresponding BITMASK bit.  The
  10355. encoding of a VALUE always occupies four bytes, but the num-
  10356. ber of bytes specified in the encoding-form indicates how
  10357.  
  10358.  
  10359.  
  10360.                  153
  10361.  
  10362.  
  10363.  
  10364.  
  10365.  
  10366. X Protocol                    X11, Release 6.4
  10367.  
  10368.  
  10369. many of the least-significant bytes are actually used; the
  10370. remaining bytes are unused and their values do not matter.
  10371.  
  10372. In various cases, the number of bytes occupied by a compo-
  10373. nent will be specified by a lowercase single-letter variable
  10374. name instead of a specific numeric value, and often some
  10375. other component will have its value specified as a simple
  10376. numeric expression involving these variables.  Components
  10377. specified with such expressions are always interpreted as
  10378. unsigned integers.  The scope of such variables is always
  10379. just the enclosing request, reply, error, event, or compound
  10380. type structure.  For example:
  10381.  
  10382.  
  10383.      2           3+n          request length
  10384.      4n        LISTofPOINT    points
  10385.  
  10386.  
  10387. For unused bytes (the values of the bytes are undefined and
  10388. do no matter), the encode-form is:
  10389.  
  10390.  
  10391.      N             unused
  10392.  
  10393.  
  10394. If the number of unused bytes is variable, the encode-form
  10395. typically is:
  10396.  
  10397.  
  10398.      p             unused, p=pad(E)
  10399.  
  10400.  
  10401. where E is some expression, and pad(E) is the number of
  10402. bytes needed to round E up to a multiple of four.
  10403.  
  10404.  
  10405.      pad(E) = (4 - (E mod 4)) mod 4
  10406.  
  10407.  
  10408. Common Types
  10409.  
  10410. LISTofFOO
  10411.  
  10412.      In this document the LISTof notation strictly means
  10413.      some number of repetitions of the FOO encoding; the
  10414.      actual length of the list is encoded elsewhere.
  10415.  
  10416. SETofFOO
  10417.  
  10418.      A set is always represented by a bitmask, with a 1-bit
  10419.      indicating presence in the set.
  10420.  
  10421. BITMASK: CARD32
  10422.  
  10423.  
  10424.  
  10425.  
  10426.                  154
  10427.  
  10428.  
  10429.  
  10430.  
  10431.  
  10432. X Protocol                    X11, Release 6.4
  10433.  
  10434.  
  10435. WINDOW: CARD32
  10436.  
  10437. PIXMAP: CARD32
  10438.  
  10439. CURSOR: CARD32
  10440.  
  10441. FONT: CARD32
  10442.  
  10443. GCONTEXT: CARD32
  10444.  
  10445. COLORMAP: CARD32
  10446.  
  10447. DRAWABLE: CARD32
  10448.  
  10449. FONTABLE: CARD32
  10450.  
  10451. ATOM: CARD32
  10452.  
  10453. VISUALID: CARD32
  10454.  
  10455. BYTE: 8-bit value
  10456.  
  10457. INT8: 8-bit signed integer
  10458.  
  10459. INT16: 16-bit signed integer
  10460.  
  10461. INT32: 32-bit signed integer
  10462.  
  10463. CARD8: 8-bit unsigned integer
  10464.  
  10465. CARD16: 16-bit unsigned integer
  10466.  
  10467. CARD32: 32-bit unsigned integer
  10468.  
  10469. TIMESTAMP: CARD32
  10470.  
  10471.  
  10472. BITGRAVITY
  10473.        0     Forget
  10474.        1     NorthWest
  10475.        2     North
  10476.        3     NorthEast
  10477.        4     West
  10478.        5     Center
  10479.        6     East
  10480.        7     SouthWest
  10481.        8     South
  10482.        9     SouthEast
  10483.        10     Static
  10484.  
  10485.  
  10486.  
  10487. WINGRAVITY
  10488.        0     Unmap
  10489.  
  10490.  
  10491.  
  10492.                  155
  10493.  
  10494.  
  10495.  
  10496.  
  10497.  
  10498. X Protocol                    X11, Release 6.4
  10499.  
  10500.  
  10501.        1     NorthWest
  10502.        2     North
  10503.        3     NorthEast
  10504.        4     West
  10505.        5     Center
  10506.        6     East
  10507.        7     SouthWest
  10508.        8     South
  10509.        9     SouthEast
  10510.        10     Static
  10511.  
  10512.  
  10513.  
  10514. BOOL
  10515.        0     False
  10516.        1     True
  10517.  
  10518.  
  10519.  
  10520. SETofEVENT
  10521.        #x00000001KeyPress
  10522.        #x00000002KeyRelease
  10523.        #x00000004ButtonPress
  10524.        #x00000008ButtonRelease
  10525.        #x00000010EnterWindow
  10526.        #x00000020LeaveWindow
  10527.        #x00000040PointerMotion
  10528.        #x00000080PointerMotionHint
  10529.        #x00000100Button1Motion
  10530.        #x00000200Button2Motion
  10531.        #x00000400Button3Motion
  10532.        #x00000800Button4Motion
  10533.        #x00001000Button5Motion
  10534.        #x00002000ButtonMotion
  10535.        #x00004000KeymapState
  10536.        #x00008000Exposure
  10537.        #x00010000VisibilityChange
  10538.        #x00020000StructureNotify
  10539.        #x00040000ResizeRedirect
  10540.        #x00080000SubstructureNotify
  10541.        #x00100000SubstructureRedirect
  10542.        #x00200000FocusChange
  10543.        #x00400000PropertyChange
  10544.        #x00800000ColormapChange
  10545.        #x01000000OwnerGrabButton
  10546.        #xFE000000unused but must be zero
  10547.  
  10548.  
  10549.  
  10550. SETofPOINTEREVENT
  10551.        encodings are the same as for SETofEVENT, except with
  10552.        #xFFFF8003unused but must be zero
  10553.  
  10554.  
  10555.  
  10556.  
  10557.  
  10558.                  156
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564. X Protocol                    X11, Release 6.4
  10565.  
  10566.  
  10567. SETofDEVICEEVENT
  10568.        encodings are the same as for SETofEVENT, except with
  10569.        #xFFFFC0B0unused but must be zero
  10570.  
  10571. KEYSYM: CARD32
  10572.  
  10573. KEYCODE: CARD8
  10574.  
  10575. BUTTON: CARD8
  10576.  
  10577.  
  10578. SETofKEYBUTMASK
  10579.        #x0001     Shift
  10580.        #x0002     Lock
  10581.        #x0004     Control
  10582.        #x0008     Mod1
  10583.        #x0010     Mod2
  10584.        #x0020     Mod3
  10585.        #x0040     Mod4
  10586.        #x0080     Mod5
  10587.        #x0100     Button1
  10588.        #x0200     Button2
  10589.        #x0400     Button3
  10590.        #x0800     Button4
  10591.        #x1000     Button5
  10592.        #xE000     unused but must be zero
  10593.  
  10594.  
  10595.  
  10596. SETofKEYMASK
  10597.        encodings are the same as for SETofKEYBUTMASK, except with
  10598.        #xFF00     unused but must be zero
  10599.  
  10600.  
  10601. STRING8: LISTofCARD8
  10602.  
  10603. STRING16: LISTofCHAR2B
  10604.  
  10605.  
  10606. CHAR2B
  10607.   1  CARD8     byte1
  10608.   1  CARD8     byte2
  10609.  
  10610.  
  10611.  
  10612. POINT
  10613.   2  INT16     x
  10614.   2  INT16     y
  10615.  
  10616.  
  10617.  
  10618. RECTANGLE
  10619.   2  INT16     x
  10620.   2  INT16     y
  10621.  
  10622.  
  10623.  
  10624.                  157
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630. X Protocol                    X11, Release 6.4
  10631.  
  10632.  
  10633.   2  CARD16    width
  10634.   2  CARD16    height
  10635.  
  10636.  
  10637.  
  10638. ARC
  10639.   2  INT16     x
  10640.   2  INT16     y
  10641.   2  CARD16    width
  10642.   2  CARD16    height
  10643.   2  INT16     angle1
  10644.   2  INT16     angle2
  10645.  
  10646.  
  10647.  
  10648. HOST
  10649.   1             family
  10650.      0           Internet
  10651.      1           DECnet
  10652.      2           Chaos
  10653.   1             unused
  10654.   2  n             length of address
  10655.   n  LISTofBYTE      address
  10656.   p             unused, p=pad(n)
  10657.  
  10658.  
  10659.  
  10660. STR
  10661.   1  n             length of name in bytes
  10662.   n  STRING8         name
  10663.  
  10664.  
  10665. Errors
  10666.  
  10667.  
  10668. Request
  10669.   1  0             Error
  10670.   1  1             code
  10671.   2  CARD16         sequence number
  10672.   4             unused
  10673.   2  CARD16         minor opcode
  10674.   1  CARD8         major opcode
  10675.   21             unused
  10676.  
  10677.  
  10678.  
  10679. Value
  10680.   1  0             Error
  10681.   1  2             code
  10682.   2  CARD16         sequence number
  10683.   4  <32-bits>         bad value
  10684.   2  CARD16         minor opcode
  10685.   1  CARD8         major opcode
  10686.   21             unused
  10687.  
  10688.  
  10689.  
  10690.                  158
  10691.  
  10692.  
  10693.  
  10694.  
  10695.  
  10696. X Protocol                    X11, Release 6.4
  10697.  
  10698.  
  10699. Window
  10700.   1  0             Error
  10701.   1  3             code
  10702.   2  CARD16         sequence number
  10703.   4  CARD32         bad resource id
  10704.   2  CARD16         minor opcode
  10705.   1  CARD8         major opcode
  10706.   21             unused
  10707.  
  10708.  
  10709.  
  10710. Pixmap
  10711.   1  0             Error
  10712.   1  4             code
  10713.   2  CARD16         sequence number
  10714.   4  CARD32         bad resource id
  10715.   2  CARD16         minor opcode
  10716.   1  CARD8         major opcode
  10717.   21             unused
  10718.  
  10719.  
  10720.  
  10721. Atom
  10722.   1  0             Error
  10723.   1  5             code
  10724.   2  CARD16         sequence number
  10725.   4  CARD32         bad atom id
  10726.   2  CARD16         minor opcode
  10727.   1  CARD8         major opcode
  10728.   21             unused
  10729.  
  10730.  
  10731.  
  10732. Cursor
  10733.   1  0             Error
  10734.   1  6             code
  10735.   2  CARD16         sequence number
  10736.   4  CARD32         bad resource id
  10737.   2  CARD16         minor opcode
  10738.   1  CARD8         major opcode
  10739.   21             unused
  10740.  
  10741.  
  10742.  
  10743. Font
  10744.   1  0             Error
  10745.   1  7             code
  10746.   2  CARD16         sequence number
  10747.   4  CARD32         bad resource id
  10748.   2  CARD16         minor opcode
  10749.   1  CARD8         major opcode
  10750.   21             unused
  10751.  
  10752.  
  10753.  
  10754.  
  10755.  
  10756.                  159
  10757.  
  10758.  
  10759.  
  10760.  
  10761.  
  10762. X Protocol                    X11, Release 6.4
  10763.  
  10764.  
  10765. Match
  10766.   1  0             Error
  10767.   1  8             code
  10768.   2  CARD16         sequence number
  10769.   4             unused
  10770.   2  CARD16         minor opcode
  10771.   1  CARD8         major opcode
  10772.   21             unused
  10773.  
  10774.  
  10775.  
  10776. Drawable
  10777.   1  0             Error
  10778.   1  9             code
  10779.   2  CARD16         sequence number
  10780.   4  CARD32         bad resource id
  10781.   2  CARD16         minor opcode
  10782.   1  CARD8         major opcode
  10783.   21             unused
  10784.  
  10785.  
  10786.  
  10787. Access
  10788.   1  0             Error
  10789.   1  10          code
  10790.   2  CARD16         sequence number
  10791.   4             unused
  10792.   2  CARD16         minor opcode
  10793.   1  CARD8         major opcode
  10794.   21             unused
  10795.  
  10796.  
  10797.  
  10798. Alloc
  10799.   1  0             Error
  10800.   1  11          code
  10801.   2  CARD16         sequence number
  10802.   4             unused
  10803.   2  CARD16         minor opcode
  10804.   1  CARD8         major opcode
  10805.   21             unused
  10806.  
  10807.  
  10808.  
  10809. Colormap
  10810.   1  0             Error
  10811.   1  12          code
  10812.   2  CARD16         sequence number
  10813.   4  CARD32         bad resource id
  10814.   2  CARD16         minor opcode
  10815.   1  CARD8         major opcode
  10816.   21             unused
  10817.  
  10818.  
  10819.  
  10820.  
  10821.  
  10822.                  160
  10823.  
  10824.  
  10825.  
  10826.  
  10827.  
  10828. X Protocol                    X11, Release 6.4
  10829.  
  10830.  
  10831. GContext
  10832.   1  0             Error
  10833.   1  13          code
  10834.   2  CARD16         sequence number
  10835.   4  CARD32         bad resource id
  10836.   2  CARD16         minor opcode
  10837.   1  CARD8         major opcode
  10838.   21             unused
  10839.  
  10840.  
  10841.  
  10842. IDChoice
  10843.   1  0             Error
  10844.   1  14          code
  10845.   2  CARD16         sequence number
  10846.   4  CARD32         bad resource id
  10847.   2  CARD16         minor opcode
  10848.   1  CARD8         major opcode
  10849.   21             unused
  10850.  
  10851.  
  10852.  
  10853. Name
  10854.   1  0             Error
  10855.   1  15          code
  10856.   2  CARD16         sequence number
  10857.   4             unused
  10858.   2  CARD16         minor opcode
  10859.   1  CARD8         major opcode
  10860.   21             unused
  10861.  
  10862.  
  10863.  
  10864. Length
  10865.   1  0             Error
  10866.   1  16          code
  10867.   2  CARD16         sequence number
  10868.   4             unused
  10869.   2  CARD16         minor opcode
  10870.   1  CARD8         major opcode
  10871.   21             unused
  10872.  
  10873.  
  10874.  
  10875. Implementation
  10876.   1  0             Error
  10877.   1  17          code
  10878.   2  CARD16         sequence number
  10879.   4             unused
  10880.   2  CARD16         minor opcode
  10881.   1  CARD8         major opcode
  10882.   21             unused
  10883.  
  10884.  
  10885.  
  10886.  
  10887.  
  10888.                  161
  10889.  
  10890.  
  10891.  
  10892.  
  10893.  
  10894. X Protocol                    X11, Release 6.4
  10895.  
  10896.  
  10897. Keyboards
  10898.  
  10899. KEYCODE values are always greater than 7 (and less than
  10900. 256).
  10901.  
  10902. KEYSYM values with the bit #x10000000 set are reserved as
  10903. vendor-specific.
  10904.  
  10905. The names and encodings of the standard KEYSYM values are
  10906. contained in Appendix A, Keysym Encoding.
  10907.  
  10908. Pointers
  10909.  
  10910. BUTTON values are numbered starting with one.
  10911.  
  10912. Predefined Atoms
  10913.  
  10914.  
  10915. PRIMARY      1          WM_NORMAL_HINTS  40
  10916. SECONDARY     2          WM_SIZE_HINTS    41
  10917. ARC         3          WM_ZOOM_HINTS    42
  10918. ATOM         4          MIN_SPACE        43
  10919. BITMAP         5          NORM_SPACE       44
  10920. CARDINAL     6          MAX_SPACE        45
  10921. COLORMAP     7          END_SPACE        46
  10922. CURSOR         8          SUPERSCRIPT_X    47
  10923. CUT_BUFFER0     9          SUPERSCRIPT_Y    48
  10924. CUT_BUFFER1     10          SUBSCRIPT_X      49
  10925. CUT_BUFFER2     11          SUBSCRIPT_Y      50
  10926. CUT_BUFFER3     12          UNDERLINE_POSITION51
  10927. CUT_BUFFER4     13          UNDERLINE_THICKNESS52
  10928. CUT_BUFFER5     14          STRIKEOUT_ASCENT 53
  10929. CUT_BUFFER6     15          STRIKEOUT_DESCENT54
  10930. CUT_BUFFER7     16          ITALIC_ANGLE     55
  10931. DRAWABLE     17          X_HEIGHT           56
  10932. FONT         18          QUAD_WIDTH       57
  10933. INTEGER      19          WEIGHT           58
  10934. PIXMAP         20          POINT_SIZE       59
  10935. POINT         21          RESOLUTION       60
  10936. RECTANGLE     22          COPYRIGHT        61
  10937. RESOURCE_MANAGER 23          NOTICE           62
  10938. RGB_COLOR_MAP     24          FONT_NAME        63
  10939. RGB_BEST_MAP     25          FAMILY_NAME      64
  10940. RGB_BLUE_MAP     26          FULL_NAME        65
  10941. RGB_DEFAULT_MAP  27          CAP_HEIGHT       66
  10942. RGB_GRAY_MAP     28          WM_CLASS           67
  10943. RGB_GREEN_MAP     29          WM_TRANSIENT_FOR 68
  10944. RGB_RED_MAP     30
  10945. STRING         31
  10946. VISUALID     32
  10947. WINDOW         33
  10948. WM_COMMAND     34
  10949. WM_HINTS     35
  10950. WM_CLIENT_MACHINE          36
  10951.  
  10952.  
  10953.  
  10954.                  162
  10955.  
  10956.  
  10957.  
  10958.  
  10959.  
  10960. X Protocol                    X11, Release 6.4
  10961.  
  10962.  
  10963. WM_ICON_NAME     37
  10964. WM_ICON_SIZE     38
  10965. WM_NAME      39
  10966.  
  10967.  
  10968. Connection Setup
  10969.  
  10970. For TCP connections, displays on a given host are numbered
  10971. starting from 0, and the server for display N listens and
  10972. accepts connections on port 6000 + N.  For DECnet connec-
  10973. tions, displays on a given host are numbered starting from
  10974. 0, and the server for display N listens and accepts connec-
  10975. tions on the object name obtained by concatenating ``X$X''
  10976. with the decimal representation of N, for example, X$X0 and
  10977. X$X1.
  10978.  
  10979. Information sent by the client at connection setup:
  10980.  
  10981.  
  10982.   1             byte-order
  10983.      #x42      MSB first
  10984.      #x6C      LSB first
  10985.   1             unused
  10986.   2  CARD16         protocol-major-version
  10987.   2  CARD16         protocol-minor-version
  10988.   2  n             length of authorization-protocol-name
  10989.   2  d             length of authorization-protocol-data
  10990.   2             unused
  10991.   n  STRING8         authorization-protocol-name
  10992.   p             unused, p=pad(n)
  10993.   d  STRING8         authorization-protocol-data
  10994.   q             unused, q=pad(d)
  10995.  
  10996.  
  10997. Except where explicitly noted in the protocol, all 16-bit
  10998. and 32-bit quantities sent by the client must be transmitted
  10999. with the specified byte order, and all 16-bit and 32-bit
  11000. quantities returned by the server will be transmitted with
  11001. this byte order.
  11002.  
  11003. Information received by the client if the connection is
  11004. refused:
  11005.  
  11006.  
  11007.   1  0             Failed
  11008.   1  n             length of reason in bytes
  11009.   2  CARD16         protocol-major-version
  11010.   2  CARD16         protocol-minor-version
  11011.   2  (n+p)/4         length in 4-byte units of ``additional data''
  11012.   n  STRING8         reason
  11013.   p             unused, p=pad(n)
  11014.  
  11015.  
  11016.  
  11017.  
  11018.  
  11019.  
  11020.                  163
  11021.  
  11022.  
  11023.  
  11024.  
  11025.  
  11026. X Protocol                    X11, Release 6.4
  11027.  
  11028.  
  11029. Information received by the client if further authentication
  11030. is required:
  11031.  
  11032.  
  11033.   1  2             Authenticate
  11034.   5             unused
  11035.   2  (n+p)/4         length in 4-byte units of ``additional data''
  11036.   n  STRING8         reason
  11037.   p             unused, p=pad(n)
  11038.  
  11039.  
  11040. Information received by the client if the connection is
  11041. accepted:
  11042.  
  11043.  
  11044.   1  1             Success
  11045.   1             unused
  11046.   2  CARD16         protocol-major-version
  11047.   2  CARD16         protocol-minor-version
  11048.   2  8+2n+(v+p+m)/4     length in 4-byte units of ``additional data''
  11049.   4  CARD32         release-number
  11050.   4  CARD32         resource-id-base
  11051.   4  CARD32         resource-id-mask
  11052.   4  CARD32         motion-buffer-size
  11053.   2  v             length of vendor
  11054.   2  CARD16         maximum-request-length
  11055.   1  CARD8         number of SCREENs in roots
  11056.   1  n             number for FORMATs in pixmap-formats
  11057.   1             image-byte-order
  11058.      0           LSBFirst
  11059.      1           MSBFirst
  11060.   1             bitmap-format-bit-order
  11061.      0           LeastSignificant
  11062.      1           MostSignificant
  11063.   1  CARD8         bitmap-format-scanline-unit
  11064.   1  CARD8         bitmap-format-scanline-pad
  11065.   1  KEYCODE         min-keycode
  11066.   1  KEYCODE         max-keycode
  11067.   4             unused
  11068.   v  STRING8         vendor
  11069.   p             unused, p=pad(v)
  11070.   8n LISTofFORMAT     pixmap-formats
  11071.   m  LISTofSCREEN     roots (m is always a multiple of 4)
  11072.  
  11073.  
  11074.  
  11075. FORMAT
  11076.   1  CARD8         depth
  11077.   1  CARD8         bits-per-pixel
  11078.   1  CARD8         scanline-pad
  11079.   5             unused
  11080.  
  11081.  
  11082.  
  11083.  
  11084.  
  11085.  
  11086.                  164
  11087.  
  11088.  
  11089.  
  11090.  
  11091.  
  11092. X Protocol                    X11, Release 6.4
  11093.  
  11094.  
  11095. SCREEN
  11096.   4  WINDOW         root
  11097.   4  COLORMAP         default-colormap
  11098.   4  CARD32         white-pixel
  11099.   4  CARD32         black-pixel
  11100.   4  SETofEVENT      current-input-masks
  11101.   2  CARD16         width-in-pixels
  11102.   2  CARD16         height-in-pixels
  11103.   2  CARD16         width-in-millimeters
  11104.   2  CARD16         height-in-millimeters
  11105.   2  CARD16         min-installed-maps
  11106.   2  CARD16         max-installed-maps
  11107.   4  VISUALID         root-visual
  11108.   1             backing-stores
  11109.      0           Never
  11110.      1           WhenMapped
  11111.      2           Always
  11112.   1  BOOL         save-unders
  11113.   1  CARD8         root-depth
  11114.   1  CARD8         number of DEPTHs in allowed-depths
  11115.   n  LISTofDEPTH     allowed-depths (n is always a multiple of 4)
  11116.  
  11117.  
  11118.  
  11119. DEPTH
  11120.   1  CARD8         depth
  11121.   1             unused
  11122.   2  n             number of VISUALTYPES in visuals
  11123.   4             unused
  11124.   24n           LISTofVISUALTYPEvisuals
  11125.  
  11126.  
  11127.  
  11128. VISUALTYPE
  11129.   4  VISUALID         visual-id
  11130.   1             class
  11131.      0           StaticGray
  11132.      1           GrayScale
  11133.      2           StaticColor
  11134.      3           PseudoColor
  11135.      4           TrueColor
  11136.      5           DirectColor
  11137.   1  CARD8         bits-per-rgb-value
  11138.   2  CARD16         colormap-entries
  11139.   4  CARD32         red-mask
  11140.   4  CARD32         green-mask
  11141.   4  CARD32         blue-mask
  11142.   4             unused
  11143.  
  11144.  
  11145. Requests
  11146.  
  11147.  
  11148. CreateWindow
  11149.  
  11150.  
  11151.  
  11152.                  165
  11153.  
  11154.  
  11155.  
  11156.  
  11157.  
  11158. X Protocol                    X11, Release 6.4
  11159.  
  11160.  
  11161.   1  1             opcode
  11162.   1  CARD8         depth
  11163.   2  8+n         request length
  11164.   4  WINDOW         wid
  11165.   4  WINDOW         parent
  11166.   2  INT16         x
  11167.   2  INT16         y
  11168.   2  CARD16         width
  11169.   2  CARD16         height
  11170.   2  CARD16         border-width
  11171.   2             class
  11172.      0           CopyFromParent
  11173.      1           InputOutput
  11174.      2           InputOnly
  11175.   4  VISUALID         visual
  11176.      0           CopyFromParent
  11177.   4  BITMASK         value-mask (has n bits set to 1)
  11178.      #x00000001      background-pixmap
  11179.      #x00000002      background-pixel
  11180.      #x00000004      border-pixmap
  11181.      #x00000008      border-pixel
  11182.      #x00000010      bit-gravity
  11183.      #x00000020      win-gravity
  11184.      #x00000040      backing-store
  11185.      #x00000080      backing-planes
  11186.      #x00000100      backing-pixel
  11187.      #x00000200      override-redirect
  11188.      #x00000400      save-under
  11189.      #x00000800      event-mask
  11190.      #x00001000      do-not-propagate-mask
  11191.      #x00002000      colormap
  11192.      #x00004000      cursor
  11193.   4n LISTofVALUE     value-list
  11194.  
  11195.  
  11196.   VALUEs
  11197.   4  PIXMAP         background-pixmap
  11198.      0           None
  11199.      1           ParentRelative
  11200.   4  CARD32         background-pixel
  11201.   4  PIXMAP         border-pixmap
  11202.      0           CopyFromParent
  11203.   4  CARD32         border-pixel
  11204.   1  BITGRAVITY      bit-gravity
  11205.   1  WINGRAVITY      win-gravity
  11206.   1             backing-store
  11207.      0           NotUseful
  11208.      1           WhenMapped
  11209.      2           Always
  11210.   4  CARD32         backing-planes
  11211.   4  CARD32         backing-pixel
  11212.   1  BOOL         override-redirect
  11213.   1  BOOL         save-under
  11214.   4  SETofEVENT      event-mask
  11215.  
  11216.  
  11217.  
  11218.                  166
  11219.  
  11220.  
  11221.  
  11222.  
  11223.  
  11224. X Protocol                    X11, Release 6.4
  11225.  
  11226.  
  11227.   4  SETofDEVICEEVENT     do-not-propagate-mask
  11228.   4  COLORMAP         colormap
  11229.      0           CopyFromParent
  11230.   4  CURSOR         cursor
  11231.      0           None
  11232.  
  11233.  
  11234.  
  11235. ChangeWindowAttributes
  11236.   1  2             opcode
  11237.   1             unused
  11238.   2  3+n         request length
  11239.   4  WINDOW         window
  11240.   4  BITMASK         value-mask (has n bits set to 1)
  11241.      encodings are the same as for CreateWindow
  11242.   4n LISTofVALUE     value-list
  11243.      encodings are the same as for CreateWindow
  11244.  
  11245.  
  11246.  
  11247. GetWindowAttributes
  11248.   1  3             opcode
  11249.   1             unused
  11250.   2  2             request length
  11251.   4  WINDOW         window
  11252.  
  11253.  
  11254.  ->
  11255.   1  1             Reply
  11256.   1             backing-store
  11257.      0           NotUseful
  11258.      1           WhenMapped
  11259.      2           Always
  11260.   2  CARD16         sequence number
  11261.   4  3             reply length
  11262.   4  VISUALID         visual
  11263.   2             class
  11264.      1           InputOutput
  11265.      2           InputOnly
  11266.   1  BITGRAVITY      bit-gravity
  11267.   1  WINGRAVITY      win-gravity
  11268.   4  CARD32         backing-planes
  11269.   4  CARD32         backing-pixel
  11270.   1  BOOL         save-under
  11271.   1  BOOL         map-is-installed
  11272.   1             map-state
  11273.      0           Unmapped
  11274.      1           Unviewable
  11275.      2           Viewable
  11276.   1  BOOL         override-redirect
  11277.   4  COLORMAP         colormap
  11278.      0           None
  11279.   4  SETofEVENT      all-event-masks
  11280.   4  SETofEVENT      your-event-mask
  11281.  
  11282.  
  11283.  
  11284.                  167
  11285.  
  11286.  
  11287.  
  11288.  
  11289.  
  11290. X Protocol                    X11, Release 6.4
  11291.  
  11292.  
  11293.   2  SETofDEVICEEVENT     do-not-propagate-mask
  11294.   2             unused
  11295.  
  11296.  
  11297.  
  11298. DestroyWindow
  11299.   1  4             opcode
  11300.   1             unused
  11301.   2  2             request length
  11302.   4  WINDOW         window
  11303.  
  11304.  
  11305.  
  11306. DestroySubwindows
  11307.   1  5             opcode
  11308.   1             unused
  11309.   2  2             request length
  11310.   4  WINDOW         window
  11311.  
  11312.  
  11313.  
  11314. ChangeSaveSet
  11315.   1  6             opcode
  11316.   1             mode
  11317.      0           Insert
  11318.      1           Delete
  11319.   2  2             request length
  11320.   4  WINDOW         window
  11321.  
  11322.  
  11323.  
  11324. ReparentWindow
  11325.   1  7             opcode
  11326.   1             unused
  11327.   2  4             request length
  11328.   4  WINDOW         window
  11329.   4  WINDOW         parent
  11330.   2  INT16         x
  11331.   2  INT16         y
  11332.  
  11333.  
  11334.  
  11335. MapWindow
  11336.   1  8             opcode
  11337.   1             unused
  11338.   2  2             request length
  11339.   4  WINDOW         window
  11340.  
  11341.  
  11342.  
  11343. MapSubwindows
  11344.   1  9             opcode
  11345.   1             unused
  11346.   2  2             request length
  11347.  
  11348.  
  11349.  
  11350.                  168
  11351.  
  11352.  
  11353.  
  11354.  
  11355.  
  11356. X Protocol                    X11, Release 6.4
  11357.  
  11358.  
  11359.   4  WINDOW         window
  11360.  
  11361.  
  11362.  
  11363. UnmapWindow
  11364.   1  10          opcode
  11365.   1             unused
  11366.   2  2             request length
  11367.   4  WINDOW         window
  11368.  
  11369.  
  11370.  
  11371. UnmapSubwindows
  11372.   1  11          opcode
  11373.   1             unused
  11374.   2  2             request length
  11375.   4  WINDOW         window
  11376.  
  11377.  
  11378.  
  11379. ConfigureWindow
  11380.   1  12          opcode
  11381.   1             unused
  11382.   2  3+n         request length
  11383.   4  WINDOW         window
  11384.   2  BITMASK         value-mask (has n bits set to 1)
  11385.      #x0001    x
  11386.      #x0002    y
  11387.      #x0004    width
  11388.      #x0008    height
  11389.      #x0010    border-width
  11390.      #x0020    sibling
  11391.      #x0040    stack-mode
  11392.   2             unused
  11393.   4n LISTofVALUE     value-list
  11394.  
  11395.  
  11396.   VALUEs
  11397.   2  INT16         x
  11398.   2  INT16         y
  11399.   2  CARD16         width
  11400.   2  CARD16         height
  11401.   2  CARD16         border-width
  11402.   4  WINDOW         sibling
  11403.   1             stack-mode
  11404.      0           Above
  11405.      1           Below
  11406.      2           TopIf
  11407.      3           BottomIf
  11408.      4           Opposite
  11409.  
  11410.  
  11411.  
  11412. CirculateWindow
  11413.  
  11414.  
  11415.  
  11416.                  169
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422. X Protocol                    X11, Release 6.4
  11423.  
  11424.  
  11425.   1  13          opcode
  11426.   1             direction
  11427.      0           RaiseLowest
  11428.      1           LowerHighest
  11429.   2  2             request length
  11430.   4  WINDOW         window
  11431.  
  11432.  
  11433.  
  11434. GetGeometry
  11435.   1  14          opcode
  11436.   1             unused
  11437.   2  2             request length
  11438.   4  DRAWABLE         drawable
  11439.  
  11440.  
  11441.  ->
  11442.   1  1             Reply
  11443.   1  CARD8         depth
  11444.   2  CARD16         sequence number
  11445.   4  0             reply length
  11446.   4  WINDOW         root
  11447.   2  INT16         x
  11448.   2  INT16         y
  11449.   2  CARD16         width
  11450.   2  CARD16         height
  11451.   2  CARD16         border-width
  11452.   10             unused
  11453.  
  11454.  
  11455.  
  11456. QueryTree
  11457.   1  15          opcode
  11458.   1             unused
  11459.   2  2             request length
  11460.   4  WINDOW         window
  11461.  
  11462.  
  11463.  ->
  11464.   1  1             Reply
  11465.   1             unused
  11466.   2  CARD16         sequence number
  11467.   4  n             reply length
  11468.   4  WINDOW         root
  11469.   4  WINDOW         parent
  11470.      0           None
  11471.   2  n             number of WINDOWs in children
  11472.   14             unused
  11473.   4n LISTofWINDOW     children
  11474.  
  11475.  
  11476.  
  11477. InternAtom
  11478.   1  16          opcode
  11479.  
  11480.  
  11481.  
  11482.                  170
  11483.  
  11484.  
  11485.  
  11486.  
  11487.  
  11488. X Protocol                    X11, Release 6.4
  11489.  
  11490.  
  11491.   1  BOOL         only-if-exists
  11492.   2  2+(n+p)/4         request length
  11493.   2  n             length of name
  11494.   2             unused
  11495.   n  STRING8         name
  11496.   p             unused, p=pad(n)
  11497.  
  11498.  
  11499.  ->
  11500.   1  1             Reply
  11501.   1             unused
  11502.   2  CARD16         sequence number
  11503.   4  0             reply length
  11504.   4  ATOM         atom
  11505.      0           None
  11506.   20             unused
  11507.  
  11508.  
  11509.  
  11510. GetAtomName
  11511.   1  17          opcode
  11512.   1             unused
  11513.   2  2             request length
  11514.   4  ATOM         atom
  11515.  
  11516.  
  11517.  ->
  11518.   1  1             Reply
  11519.   1             unused
  11520.   2  CARD16         sequence number
  11521.   4  (n+p)/4         reply length
  11522.   2  n             length of name
  11523.   22             unused
  11524.   n  STRING8         name
  11525.   p             unused, p=pad(n)
  11526.  
  11527.  
  11528.  
  11529. ChangeProperty
  11530.   1  18          opcode
  11531.   1             mode
  11532.      0           Replace
  11533.      1           Prepend
  11534.      2           Append
  11535.   2  6+(n+p)/4         request length
  11536.   4  WINDOW         window
  11537.   4  ATOM         property
  11538.   4  ATOM         type
  11539.   1  CARD8         format
  11540.   3             unused
  11541.   4  CARD32         length of data in format units
  11542.              (= n for format = 8)
  11543.              (= n/2 for format = 16)
  11544.              (= n/4 for format = 32)
  11545.  
  11546.  
  11547.  
  11548.                  171
  11549.  
  11550.  
  11551.  
  11552.  
  11553.  
  11554. X Protocol                    X11, Release 6.4
  11555.  
  11556.  
  11557.   n  LISTofBYTE      data
  11558.              (n is a multiple of 2 for format = 16)
  11559.              (n is a multiple of 4 for format = 32)
  11560.   p             unused, p=pad(n)
  11561.  
  11562.  
  11563.  
  11564. DeleteProperty
  11565.   1  19          opcode
  11566.   1             unused
  11567.   2  3             request length
  11568.   4  WINDOW         window
  11569.   4  ATOM         property
  11570.  
  11571.  
  11572.  
  11573. GetProperty
  11574.   1  20          opcode
  11575.   1  BOOL         delete
  11576.   2  6             request length
  11577.   4  WINDOW         window
  11578.   4  ATOM         property
  11579.   4  ATOM         type
  11580.      0           AnyPropertyType
  11581.   4  CARD32         long-offset
  11582.   4  CARD32         long-length
  11583.  
  11584.  
  11585.  ->
  11586.   1  1             Reply
  11587.   1  CARD8         format
  11588.   2  CARD16         sequence number
  11589.   4  (n+p)/4         reply length
  11590.   4  ATOM         type
  11591.      0           None
  11592.   4  CARD32         bytes-after
  11593.   4  CARD32         length of value in format units
  11594.              (= 0 for format = 0)
  11595.              (= n for format = 8)
  11596.              (= n/2 for format = 16)
  11597.              (= n/4 for format = 32)
  11598.   12             unused
  11599.   n  LISTofBYTE      value
  11600.              (n is zero for format = 0)
  11601.              (n is a multiple of 2 for format = 16)
  11602.              (n is a multiple of 4 for format = 32)
  11603.   p             unused, p=pad(n)
  11604.  
  11605.  
  11606.  
  11607. ListProperties
  11608.   1  21          opcode
  11609.   1             unused
  11610.   2  2             request length
  11611.  
  11612.  
  11613.  
  11614.                  172
  11615.  
  11616.  
  11617.  
  11618.  
  11619.  
  11620. X Protocol                    X11, Release 6.4
  11621.  
  11622.  
  11623.   4  WINDOW         window
  11624.  
  11625.  
  11626.  ->
  11627.   1  1             Reply
  11628.   1             unused
  11629.   2  CARD16         sequence number
  11630.   4  n             reply length
  11631.   2  n             number of ATOMs in atoms
  11632.   22             unused
  11633.   4n LISTofATOM      atoms
  11634.  
  11635.  
  11636.  
  11637. SetSelectionOwner
  11638.   1  22          opcode
  11639.   1             unused
  11640.   2  4             request length
  11641.   4  WINDOW         owner
  11642.      0           None
  11643.   4  ATOM         selection
  11644.   4  TIMESTAMP         time
  11645.      0           CurrentTime
  11646.  
  11647.  
  11648.  
  11649. GetSelectionOwner
  11650.   1  23          opcode
  11651.   1             unused
  11652.   2  2             request length
  11653.   4  ATOM         selection
  11654.  
  11655.  
  11656.  ->
  11657.   1  1             Reply
  11658.   1             unused
  11659.   2  CARD16         sequence number
  11660.   4  0             reply length
  11661.   4  WINDOW         owner
  11662.      0           None
  11663.   20             unused
  11664.  
  11665.  
  11666.  
  11667. ConvertSelection
  11668.   1  24          opcode
  11669.   1             unused
  11670.   2  6             request length
  11671.   4  WINDOW         requestor
  11672.   4  ATOM         selection
  11673.   4  ATOM         target
  11674.   4  ATOM         property
  11675.      0           None
  11676.   4  TIMESTAMP         time
  11677.  
  11678.  
  11679.  
  11680.                  173
  11681.  
  11682.  
  11683.  
  11684.  
  11685.  
  11686. X Protocol                    X11, Release 6.4
  11687.  
  11688.  
  11689.      0           CurrentTime
  11690.  
  11691.  
  11692.  
  11693. SendEvent
  11694.   1  25          opcode
  11695.   1  BOOL         propagate
  11696.   2  11          request length
  11697.   4  WINDOW         destination
  11698.      0           PointerWindow
  11699.      1           InputFocus
  11700.   4  SETofEVENT      event-mask
  11701.   32             event
  11702.      standard event format (see the Events section)
  11703.  
  11704.  
  11705.  
  11706. GrabPointer
  11707.   1  26          opcode
  11708.   1  BOOL         owner-events
  11709.   2  6             request length
  11710.   4  WINDOW         grab-window
  11711.   2  SETofPOINTEREVENT     event-mask
  11712.   1             pointer-mode
  11713.      0           Synchronous
  11714.      1           Asynchronous
  11715.   1             keyboard-mode
  11716.      0           Synchronous
  11717.      1           Asynchronous
  11718.   4  WINDOW         confine-to
  11719.      0           None
  11720.   4  CURSOR         cursor
  11721.      0           None
  11722.   4  TIMESTAMP         time
  11723.      0           CurrentTime
  11724.  
  11725.  
  11726.  ->
  11727.   1  1             Reply
  11728.   1             status
  11729.      0           Success
  11730.      1           AlreadyGrabbed
  11731.      2           InvalidTime
  11732.      3           NotViewable
  11733.      4           Frozen
  11734.   2  CARD16         sequence number
  11735.   4  0             reply length
  11736.   24             unused
  11737.  
  11738.  
  11739.  
  11740. UngrabPointer
  11741.   1  27          opcode
  11742.   1             unused
  11743.  
  11744.  
  11745.  
  11746.                  174
  11747.  
  11748.  
  11749.  
  11750.  
  11751.  
  11752. X Protocol                    X11, Release 6.4
  11753.  
  11754.  
  11755.   2  2             request length
  11756.   4  TIMESTAMP         time
  11757.      0           CurrentTime
  11758.  
  11759.  
  11760.  
  11761. GrabButton
  11762.   1  28          opcode
  11763.   1  BOOL         owner-events
  11764.   2  6             request length
  11765.   4  WINDOW         grab-window
  11766.   2  SETofPOINTEREVENT     event-mask
  11767.   1             pointer-mode
  11768.      0           Synchronous
  11769.      1           Asynchronous
  11770.   1             keyboard-mode
  11771.      0           Synchronous
  11772.      1           Asynchronous
  11773.   4  WINDOW         confine-to
  11774.      0           None
  11775.   4  CURSOR         cursor
  11776.      0           None
  11777.   1  BUTTON         button
  11778.      0           AnyButton
  11779.   1             unused
  11780.   2  SETofKEYMASK     modifiers
  11781.      #x8000    AnyModifier
  11782.  
  11783.  
  11784.  
  11785. UngrabButton
  11786.   1  29          opcode
  11787.   1  BUTTON         button
  11788.      0           AnyButton
  11789.   2  3             request length
  11790.   4  WINDOW         grab-window
  11791.   2  SETofKEYMASK     modifiers
  11792.      #x8000    AnyModifier
  11793.   2             unused
  11794.  
  11795.  
  11796.  
  11797. ChangeActivePointerGrab
  11798.   1  30          opcode
  11799.   1             unused
  11800.   2  4             request length
  11801.   4  CURSOR         cursor
  11802.      0           None
  11803.   4  TIMESTAMP         time
  11804.      0           CurrentTime
  11805.   2  SETofPOINTEREVENT     event-mask
  11806.   2             unused
  11807.  
  11808.  
  11809.  
  11810.  
  11811.  
  11812.                  175
  11813.  
  11814.  
  11815.  
  11816.  
  11817.  
  11818. X Protocol                    X11, Release 6.4
  11819.  
  11820.  
  11821. GrabKeyboard
  11822.   1  31          opcode
  11823.   1  BOOL         owner-events
  11824.   2  4             request length
  11825.   4  WINDOW         grab-window
  11826.   4  TIMESTAMP         time
  11827.      0           CurrentTime
  11828.   1             pointer-mode
  11829.      0           Synchronous
  11830.      1           Asynchronous
  11831.   1             keyboard-mode
  11832.      0           Synchronous
  11833.      1           Asynchronous
  11834.   2             unused
  11835.  
  11836.  
  11837.  ->
  11838.   1  1             Reply
  11839.   1             status
  11840.      0           Success
  11841.      1           AlreadyGrabbed
  11842.      2           InvalidTime
  11843.      3           NotViewable
  11844.      4           Frozen
  11845.   2  CARD16         sequence number
  11846.   4  0             reply length
  11847.   24             unused
  11848.  
  11849.  
  11850.  
  11851. UngrabKeyboard
  11852.   1  32          opcode
  11853.   1             unused
  11854.   2  2             request length
  11855.   4  TIMESTAMP         time
  11856.      0           CurrentTime
  11857.  
  11858.  
  11859.  
  11860. GrabKey
  11861.   1  33          opcode
  11862.   1  BOOL         owner-events
  11863.   2  4             request length
  11864.   4  WINDOW         grab-window
  11865.   2  SETofKEYMASK     modifiers
  11866.      #x8000    AnyModifier
  11867.   1  KEYCODE         key
  11868.      0           AnyKey
  11869.   1             pointer-mode
  11870.      0           Synchronous
  11871.      1           Asynchronous
  11872.   1             keyboard-mode
  11873.      0           Synchronous
  11874.      1           Asynchronous
  11875.  
  11876.  
  11877.  
  11878.                  176
  11879.  
  11880.  
  11881.  
  11882.  
  11883.  
  11884. X Protocol                    X11, Release 6.4
  11885.  
  11886.  
  11887.   3             unused
  11888.  
  11889.  
  11890.  
  11891. UngrabKey
  11892.   1  34          opcode
  11893.   1  KEYCODE         key
  11894.      0           AnyKey
  11895.   2  3             request length
  11896.   4  WINDOW         grab-window
  11897.   2  SETofKEYMASK     modifiers
  11898.      #x8000    AnyModifier
  11899.   2             unused
  11900.  
  11901.  
  11902.  
  11903. AllowEvents
  11904.   1  35          opcode
  11905.   1             mode
  11906.      0           AsyncPointer
  11907.      1           SyncPointer
  11908.      2           ReplayPointer
  11909.      3           AsyncKeyboard
  11910.      4           SyncKeyboard
  11911.      5           ReplayKeyboard
  11912.      6           AsyncBoth
  11913.      7           SyncBoth
  11914.   2  2             request length
  11915.   4  TIMESTAMP         time
  11916.      0           CurrentTime
  11917.  
  11918.  
  11919.  
  11920. GrabServer
  11921.   1  36          opcode
  11922.   1             unused
  11923.   2  1             request length
  11924.  
  11925.  
  11926.  
  11927. UngrabServer
  11928.   1  37          opcode
  11929.   1             unused
  11930.   2  1             request length
  11931.  
  11932.  
  11933.  
  11934. QueryPointer
  11935.   1  38          opcode
  11936.   1             unused
  11937.   2  2             request length
  11938.   4  WINDOW         window
  11939.  
  11940.  
  11941.  
  11942.  
  11943.  
  11944.                  177
  11945.  
  11946.  
  11947.  
  11948.  
  11949.  
  11950. X Protocol                    X11, Release 6.4
  11951.  
  11952.  
  11953.  ->
  11954.   1  1             Reply
  11955.   1  BOOL         same-screen
  11956.   2  CARD16         sequence number
  11957.   4  0             reply length
  11958.   4  WINDOW         root
  11959.   4  WINDOW         child
  11960.      0           None
  11961.   2  INT16         root-x
  11962.   2  INT16         root-y
  11963.   2  INT16         win-x
  11964.   2  INT16         win-y
  11965.   2  SETofKEYBUTMASK     mask
  11966.   6             unused
  11967.  
  11968.  
  11969.  
  11970. GetMotionEvents
  11971.   1  39          opcode
  11972.   1             unused
  11973.   2  4             request length
  11974.   4  WINDOW         window
  11975.   4  TIMESTAMP         start
  11976.      0           CurrentTime
  11977.   4  TIMESTAMP         stop
  11978.      0           CurrentTime
  11979.  
  11980.  
  11981.  ->
  11982.   1  1             Reply
  11983.   1             unused
  11984.   2  CARD16         sequence number
  11985.   4  2n          reply length
  11986.   4  n             number of TIMECOORDs in events
  11987.   20             unused
  11988.   8n LISTofTIMECOORD     events
  11989.  
  11990.  
  11991.  
  11992.   TIMECOORD
  11993.   4  TIMESTAMP         time
  11994.   2  INT16         x
  11995.   2  INT16         y
  11996.  
  11997.  
  11998.  
  11999. TranslateCoordinates
  12000.   1  40          opcode
  12001.   1             unused
  12002.   2  4             request length
  12003.   4  WINDOW         src-window
  12004.   4  WINDOW         dst-window
  12005.   2  INT16         src-x
  12006.   2  INT16         src-y
  12007.  
  12008.  
  12009.  
  12010.                  178
  12011.  
  12012.  
  12013.  
  12014.  
  12015.  
  12016. X Protocol                    X11, Release 6.4
  12017.  
  12018.  
  12019.  ->
  12020.   1  1             Reply
  12021.   1  BOOL         same-screen
  12022.   2  CARD16         sequence number
  12023.   4  0             reply length
  12024.   4  WINDOW         child
  12025.      0           None
  12026.   2  INT16         dst-x
  12027.   2  INT16         dst-y
  12028.   16             unused
  12029.  
  12030.  
  12031.  
  12032. WarpPointer
  12033.   1  41          opcode
  12034.   1             unused
  12035.   2  6             request length
  12036.   4  WINDOW         src-window
  12037.      0           None
  12038.   4  WINDOW         dst-window
  12039.      0           None
  12040.   2  INT16         src-x
  12041.   2  INT16         src-y
  12042.   2  CARD16         src-width
  12043.   2  CARD16         src-height
  12044.   2  INT16         dst-x
  12045.   2  INT16         dst-y
  12046.  
  12047.  
  12048.  
  12049. SetInputFocus
  12050.   1  42          opcode
  12051.   1             revert-to
  12052.      0           None
  12053.      1           PointerRoot
  12054.      2           Parent
  12055.   2  3             request length
  12056.   4  WINDOW         focus
  12057.      0           None
  12058.      1           PointerRoot
  12059.   4  TIMESTAMP         time
  12060.      0           CurrentTime
  12061.  
  12062.  
  12063.  
  12064. GetInputFocus
  12065.   1  43          opcode
  12066.   1             unused
  12067.   2  1             request length
  12068.  
  12069.  
  12070.  ->
  12071.   1  1             Reply
  12072.   1             revert-to
  12073.  
  12074.  
  12075.  
  12076.                  179
  12077.  
  12078.  
  12079.  
  12080.  
  12081.  
  12082. X Protocol                    X11, Release 6.4
  12083.  
  12084.  
  12085.      0           None
  12086.      1           PointerRoot
  12087.      2           Parent
  12088.   2  CARD16         sequence number
  12089.   4  0             reply length
  12090.   4  WINDOW         focus
  12091.      0           None
  12092.      1           PointerRoot
  12093.   20             unused
  12094.  
  12095.  
  12096.  
  12097. QueryKeymap
  12098.   1  44          opcode
  12099.   1             unused
  12100.   2  1             request length
  12101.  
  12102.  
  12103.  ->
  12104.   1  1             Reply
  12105.   1             unused
  12106.   2  CARD16         sequence number
  12107.   4  2             reply length
  12108.   32 LISTofCARD8     keys
  12109.  
  12110.  
  12111.  
  12112. OpenFont
  12113.   1  45          opcode
  12114.   1             unused
  12115.   2  3+(n+p)/4         request length
  12116.   4  FONT         fid
  12117.   2  n             length of name
  12118.   2             unused
  12119.   n  STRING8         name
  12120.   p             unused, p=pad(n)
  12121.  
  12122.  
  12123.  
  12124. CloseFont
  12125.   1  46          opcode
  12126.   1             unused
  12127.   2  2             request length
  12128.   4  FONT         font
  12129.  
  12130.  
  12131.  
  12132. QueryFont
  12133.   1  47          opcode
  12134.   1             unused
  12135.   2  2             request length
  12136.   4  FONTABLE         font
  12137.  
  12138.  
  12139.  
  12140.  
  12141.  
  12142.                  180
  12143.  
  12144.  
  12145.  
  12146.  
  12147.  
  12148. X Protocol                    X11, Release 6.4
  12149.  
  12150.  
  12151.  ->
  12152.   1  1             Reply
  12153.   1             unused
  12154.   2  CARD16         sequence number
  12155.   4  7+2n+3m         reply length
  12156.   12 CHARINFO         min-bounds
  12157.   4             unused
  12158.   12 CHARINFO         max-bounds
  12159.   4             unused
  12160.   2  CARD16         min-char-or-byte2
  12161.   2  CARD16         max-char-or-byte2
  12162.   2  CARD16         default-char
  12163.   2  n             number of FONTPROPs in properties
  12164.   1             draw-direction
  12165.      0           LeftToRight
  12166.      1           RightToLeft
  12167.   1  CARD8         min-byte1
  12168.   1  CARD8         max-byte1
  12169.   1  BOOL         all-chars-exist
  12170.   2  INT16         font-ascent
  12171.   2  INT16         font-descent
  12172.   4  m             number of CHARINFOs in char-infos
  12173.   8n LISTofFONTPROP     properties
  12174.   12m           LISTofCHARINFOchar-infos
  12175.  
  12176.  
  12177.   FONTPROP
  12178.   4  ATOM         name
  12179.   4  <32-bits>         value
  12180.  
  12181.  
  12182.  
  12183.   CHARINFO
  12184.   2  INT16         left-side-bearing
  12185.   2  INT16         right-side-bearing
  12186.   2  INT16         character-width
  12187.   2  INT16         ascent
  12188.   2  INT16         descent
  12189.   2  CARD16         attributes
  12190.  
  12191.  
  12192.  
  12193. QueryTextExtents
  12194.   1  48          opcode
  12195.   1  BOOL         odd length, True if p = 2
  12196.   2  2+(2n+p)/4      request length
  12197.   4  FONTABLE         font
  12198.   2n STRING16         string
  12199.   p             unused, p=pad(2n)
  12200.  
  12201.  
  12202.  ->
  12203.   1  1             Reply
  12204.   1             draw-direction
  12205.  
  12206.  
  12207.  
  12208.                  181
  12209.  
  12210.  
  12211.  
  12212.  
  12213.  
  12214. X Protocol                    X11, Release 6.4
  12215.  
  12216.  
  12217.      0           LeftToRight
  12218.      1           RightToLeft
  12219.   2  CARD16         sequence number
  12220.   4  0             reply length
  12221.   2  INT16         font-ascent
  12222.   2  INT16         font-descent
  12223.   2  INT16         overall-ascent
  12224.   2  INT16         overall-descent
  12225.   4  INT32         overall-width
  12226.   4  INT32         overall-left
  12227.   4  INT32         overall-right
  12228.   4             unused
  12229.  
  12230.  
  12231.  
  12232. ListFonts
  12233.   1  49          opcode
  12234.   1             unused
  12235.   2  2+(n+p)/4         request length
  12236.   2  CARD16         max-names
  12237.   2  n             length of pattern
  12238.   n  STRING8         pattern
  12239.   p             unused, p=pad(n)
  12240.  
  12241.  
  12242.  ->
  12243.   1  1             Reply
  12244.   1             unused
  12245.   2  CARD16         sequence number
  12246.   4  (n+p)/4         reply length
  12247.   2  CARD16         number of STRs in names
  12248.   22             unused
  12249.   n  LISTofSTR         names
  12250.   p             unused, p=pad(n)
  12251.  
  12252.  
  12253.  
  12254. ListFontsWithInfo
  12255.   1  50          opcode
  12256.   1             unused
  12257.   2  2+(n+p)/4         request length
  12258.   2  CARD16         max-names
  12259.   2  n             length of pattern
  12260.   n  STRING8         pattern
  12261.   p             unused, p=pad(n)
  12262.  
  12263.  
  12264.  -> (except for last in series)
  12265.   1  1             Reply
  12266.   1  n             length of name in bytes
  12267.   2  CARD16         sequence number
  12268.   4  7+2m+(n+p)/4     reply length
  12269.   12 CHARINFO         min-bounds
  12270.   4             unused
  12271.  
  12272.  
  12273.  
  12274.                  182
  12275.  
  12276.  
  12277.  
  12278.  
  12279.  
  12280. X Protocol                    X11, Release 6.4
  12281.  
  12282.  
  12283.   12 CHARINFO         max-bounds
  12284.   4             unused
  12285.   2  CARD16         min-char-or-byte2
  12286.   2  CARD16         max-char-or-byte2
  12287.   2  CARD16         default-char
  12288.   2  m             number of FONTPROPs in properties
  12289.   1             draw-direction
  12290.      0           LeftToRight
  12291.      1           RightToLeft
  12292.   1  CARD8         min-byte1
  12293.   1  CARD8         max-byte1
  12294.   1  BOOL         all-chars-exist
  12295.   2  INT16         font-ascent
  12296.   2  INT16         font-descent
  12297.   4  CARD32         replies-hint
  12298.   8m LISTofFONTPROP     properties
  12299.   n  STRING8         name
  12300.   p             unused, p=pad(n)
  12301.  
  12302.  
  12303.   FONTPROP
  12304.   encodings are the same as for QueryFont
  12305.  
  12306.   CHARINFO
  12307.   encodings are the same as for QueryFont
  12308.  
  12309.  
  12310.  -> (last in series)
  12311.   1  1             Reply
  12312.   1  0             last-reply indicator
  12313.   2  CARD16         sequence number
  12314.   4  7             reply length
  12315.   52             unused
  12316.  
  12317.  
  12318.  
  12319. SetFontPath
  12320.   1  51          opcode
  12321.   1             unused
  12322.   2  2+(n+p)/4         request length
  12323.   2  CARD16         number of STRs in path
  12324.   2             unused
  12325.   n  LISTofSTR         path
  12326.   p             unused, p=pad(n)
  12327.  
  12328.  
  12329.  
  12330. GetFontPath
  12331.   1  52          opcode
  12332.   1             unused
  12333.   2  1             request list
  12334.  
  12335.  
  12336.  ->
  12337.  
  12338.  
  12339.  
  12340.                  183
  12341.  
  12342.  
  12343.  
  12344.  
  12345.  
  12346. X Protocol                    X11, Release 6.4
  12347.  
  12348.  
  12349.   1  1             Reply
  12350.   1             unused
  12351.   2  CARD16         sequence number
  12352.   4  (n+p)/4         reply length
  12353.   2  CARD16         number of STRs in path
  12354.   22             unused
  12355.   n  LISTofSTR         path
  12356.   p             unused, p=pad(n)
  12357.  
  12358.  
  12359.  
  12360. CreatePixmap
  12361.   1  53          opcode
  12362.   1  CARD8         depth
  12363.   2  4             request length
  12364.   4  PIXMAP         pid
  12365.   4  DRAWABLE         drawable
  12366.   2  CARD16         width
  12367.   2  CARD16         height
  12368.  
  12369.  
  12370.  
  12371. FreePixmap
  12372.   1  54          opcode
  12373.   1             unused
  12374.   2  2             request length
  12375.   4  PIXMAP         pixmap
  12376.  
  12377.  
  12378.  
  12379. CreateGC
  12380.   1  55          opcode
  12381.   1             unused
  12382.   2  4+n         request length
  12383.   4  GCONTEXT         cid
  12384.   4  DRAWABLE         drawable
  12385.   4  BITMASK         value-mask (has n bits set to 1)
  12386.      #x00000001      function
  12387.      #x00000002      plane-mask
  12388.      #x00000004      foreground
  12389.      #x00000008      background
  12390.      #x00000010      line-width
  12391.      #x00000020      line-style
  12392.      #x00000040      cap-style
  12393.      #x00000080      join-style
  12394.      #x00000100      fill-style
  12395.      #x00000200      fill-rule
  12396.      #x00000400      tile
  12397.      #x00000800      stipple
  12398.      #x00001000      tile-stipple-x-origin
  12399.      #x00002000      tile-stipple-y-origin
  12400.      #x00004000      font
  12401.      #x00008000      subwindow-mode
  12402.      #x00010000      graphics-exposures
  12403.  
  12404.  
  12405.  
  12406.                  184
  12407.  
  12408.  
  12409.  
  12410.  
  12411.  
  12412. X Protocol                    X11, Release 6.4
  12413.  
  12414.  
  12415.      #x00020000      clip-x-origin
  12416.      #x00040000      clip-y-origin
  12417.      #x00080000      clip-mask
  12418.      #x00100000      dash-offset
  12419.      #x00200000      dashes
  12420.      #x00400000      arc-mode
  12421.   4n LISTofVALUE     value-list
  12422.  
  12423.  
  12424.   VALUEs
  12425.   1             function
  12426.      0           Clear
  12427.      1           And
  12428.      2           AndReverse
  12429.      3           Copy
  12430.      4           AndInverted
  12431.      5           NoOp
  12432.      6           Xor
  12433.      7           Or
  12434.      8           Nor
  12435.      9           Equiv
  12436.      10        Invert
  12437.      11        OrReverse
  12438.      12        CopyInverted
  12439.      13        OrInverted
  12440.      14        Nand
  12441.      15        Set
  12442.   4  CARD32         plane-mask
  12443.   4  CARD32         foreground
  12444.   4  CARD32         background
  12445.   2  CARD16         line-width
  12446.   1             line-style
  12447.      0           Solid
  12448.      1           OnOffDash
  12449.      2           DoubleDash
  12450.   1             cap-style
  12451.      0           NotLast
  12452.      1           Butt
  12453.      2           Round
  12454.      3           Projecting
  12455.   1             join-style
  12456.      0           Miter
  12457.      1           Round
  12458.      2           Bevel
  12459.   1             fill-style
  12460.      0           Solid
  12461.      1           Tiled
  12462.      2           Stippled
  12463.      3           OpaqueStippled
  12464.   1             fill-rule
  12465.      0           EvenOdd
  12466.      1           Winding
  12467.   4  PIXMAP         tile
  12468.   4  PIXMAP         stipple
  12469.  
  12470.  
  12471.  
  12472.                  185
  12473.  
  12474.  
  12475.  
  12476.  
  12477.  
  12478. X Protocol                    X11, Release 6.4
  12479.  
  12480.  
  12481.   2  INT16         tile-stipple-x-origin
  12482.   2  INT16         tile-stipple-y-origin
  12483.   4  FONT         font
  12484.   1             subwindow-mode
  12485.      0           ClipByChildren
  12486.      1           IncludeInferiors
  12487.   1  BOOL         graphics-exposures
  12488.   2  INT16         clip-x-origin
  12489.   2  INT16         clip-y-origin
  12490.   4  PIXMAP         clip-mask
  12491.      0           None
  12492.   2  CARD16         dash-offset
  12493.   1  CARD8         dashes
  12494.   1             arc-mode
  12495.      0           Chord
  12496.      1           PieSlice
  12497.  
  12498.  
  12499.  
  12500. ChangeGC
  12501.   1  56          opcode
  12502.   1             unused
  12503.   2  3+n         request length
  12504.   4  GCONTEXT         gc
  12505.   4  BITMASK         value-mask (has n bits set to 1)
  12506.      encodings are the same as for CreateGC
  12507.   4n LISTofVALUE     value-list
  12508.      encodings are the same as for CreateGC
  12509.  
  12510.  
  12511.  
  12512. CopyGC
  12513.   1  57          opcode
  12514.   1             unused
  12515.   2  4             request length
  12516.   4  GCONTEXT         src-gc
  12517.   4  GCONTEXT         dst-gc
  12518.   4  BITMASK         value-mask
  12519.      encodings are the same as for CreateGC
  12520.  
  12521.  
  12522.  
  12523. SetDashes
  12524.   1  58          opcode
  12525.   1             unused
  12526.   2  3+(n+p)/4         request length
  12527.   4  GCONTEXT         gc
  12528.   2  CARD16         dash-offset
  12529.   2  n             length of dashes
  12530.   n  LISTofCARD8     dashes
  12531.   p             unused, p=pad(n)
  12532.  
  12533.  
  12534.  
  12535.  
  12536.  
  12537.  
  12538.                  186
  12539.  
  12540.  
  12541.  
  12542.  
  12543.  
  12544. X Protocol                    X11, Release 6.4
  12545.  
  12546.  
  12547. SetClipRectangles
  12548.   1  59          opcode
  12549.   1             ordering
  12550.      0           UnSorted
  12551.      1           YSorted
  12552.      2           YXSorted
  12553.      3           YXBanded
  12554.   2  3+2n         request length
  12555.   4  GCONTEXT         gc
  12556.   2  INT16         clip-x-origin
  12557.   2  INT16         clip-y-origin
  12558.   8n LISTofRECTANGLE     rectangles
  12559.  
  12560.  
  12561.  
  12562. FreeGC
  12563.   1  60          opcode
  12564.   1             unused
  12565.   2  2             request length
  12566.   4  GCONTEXT         gc
  12567.  
  12568.  
  12569.  
  12570. ClearArea
  12571.   1  61          opcode
  12572.   1  BOOL         exposures
  12573.   2  4             request length
  12574.   4  WINDOW         window
  12575.   2  INT16         x
  12576.   2  INT16         y
  12577.   2  CARD16         width
  12578.   2  CARD16         height
  12579.  
  12580.  
  12581.  
  12582. CopyArea
  12583.   1  62          opcode
  12584.   1             unused
  12585.   2  7             request length
  12586.   4  DRAWABLE         src-drawable
  12587.   4  DRAWABLE         dst-drawable
  12588.   4  GCONTEXT         gc
  12589.   2  INT16         src-x
  12590.   2  INT16         src-y
  12591.   2  INT16         dst-x
  12592.   2  INT16         dst-y
  12593.   2  CARD16         width
  12594.   2  CARD16         height
  12595.  
  12596.  
  12597.  
  12598. CopyPlane
  12599.   1  63          opcode
  12600.   1             unused
  12601.  
  12602.  
  12603.  
  12604.                  187
  12605.  
  12606.  
  12607.  
  12608.  
  12609.  
  12610. X Protocol                    X11, Release 6.4
  12611.  
  12612.  
  12613.   2  8             request length
  12614.   4  DRAWABLE         src-drawable
  12615.   4  DRAWABLE         dst-drawable
  12616.   4  GCONTEXT         gc
  12617.   2  INT16         src-x
  12618.   2  INT16         src-y
  12619.   2  INT16         dst-x
  12620.   2  INT16         dst-y
  12621.   2  CARD16         width
  12622.   2  CARD16         height
  12623.   4  CARD32         bit-plane
  12624.  
  12625.  
  12626.  
  12627. PolyPoint
  12628.   1  64          opcode
  12629.   1             coordinate-mode
  12630.      0           Origin
  12631.      1           Previous
  12632.   2  3+n         request length
  12633.   4  DRAWABLE         drawable
  12634.   4  GCONTEXT         gc
  12635.   4n LISTofPOINT     points
  12636.  
  12637.  
  12638.  
  12639. PolyLine
  12640.   1  65          opcode
  12641.   1             coordinate-mode
  12642.      0           Origin
  12643.      1           Previous
  12644.   2  3+n         request length
  12645.   4  DRAWABLE         drawable
  12646.   4  GCONTEXT         gc
  12647.   4n LISTofPOINT     points
  12648.  
  12649.  
  12650.  
  12651. PolySegment
  12652.   1  66          opcode
  12653.   1             unused
  12654.   2  3+2n         request length
  12655.   4  DRAWABLE         drawable
  12656.   4  GCONTEXT         gc
  12657.   8n LISTofSEGMENT     segments
  12658.  
  12659.  
  12660.   SEGMENT
  12661.   2  INT16         x1
  12662.   2  INT16         y1
  12663.   2  INT16         x2
  12664.   2  INT16         y2
  12665.  
  12666.  
  12667.  
  12668.  
  12669.  
  12670.                  188
  12671.  
  12672.  
  12673.  
  12674.  
  12675.  
  12676. X Protocol                    X11, Release 6.4
  12677.  
  12678.  
  12679. PolyRectangle
  12680.   1  67          opcode
  12681.   1             unused
  12682.   2  3+2n         request length
  12683.   4  DRAWABLE         drawable
  12684.   4  GCONTEXT         gc
  12685.   8n LISTofRECTANGLE     rectangles
  12686.  
  12687.  
  12688.  
  12689. PolyArc
  12690.   1  68          opcode
  12691.   1             unused
  12692.   2  3+3n         request length
  12693.   4  DRAWABLE         drawable
  12694.   4  GCONTEXT         gc
  12695.   12n           LISTofARC arcs
  12696.  
  12697.  
  12698.  
  12699. FillPoly
  12700.   1  69          opcode
  12701.   1             unused
  12702.   2  4+n         request length
  12703.   4  DRAWABLE         drawable
  12704.   4  GCONTEXT         gc
  12705.   1             shape
  12706.      0           Complex
  12707.      1           Nonconvex
  12708.      2           Convex
  12709.   1             coordinate-mode
  12710.      0           Origin
  12711.      1           Previous
  12712.   2             unused
  12713.   4n LISTofPOINT     points
  12714.  
  12715.  
  12716.  
  12717. PolyFillRectangle
  12718.   1  70          opcode
  12719.   1             unused
  12720.   2  3+2n         request length
  12721.   4  DRAWABLE         drawable
  12722.   4  GCONTEXT         gc
  12723.   8n LISTofRECTANGLE     rectangles
  12724.  
  12725.  
  12726.  
  12727. PolyFillArc
  12728.   1  71          opcode
  12729.   1             unused
  12730.   2  3+3n         request length
  12731.   4  DRAWABLE         drawable
  12732.   4  GCONTEXT         gc
  12733.  
  12734.  
  12735.  
  12736.                  189
  12737.  
  12738.  
  12739.  
  12740.  
  12741.  
  12742. X Protocol                    X11, Release 6.4
  12743.  
  12744.  
  12745.   12n           LISTofARC arcs
  12746.  
  12747.  
  12748.  
  12749. PutImage
  12750.   1  72          opcode
  12751.   1             format
  12752.      0           Bitmap
  12753.      1           XYPixmap
  12754.      2           ZPixmap
  12755.   2  6+(n+p)/4         request length
  12756.   4  DRAWABLE         drawable
  12757.   4  GCONTEXT         gc
  12758.   2  CARD16         width
  12759.   2  CARD16         height
  12760.   2  INT16         dst-x
  12761.   2  INT16         dst-y
  12762.   1  CARD8         left-pad
  12763.   1  CARD8         depth
  12764.   2             unused
  12765.   n  LISTofBYTE      data
  12766.   p             unused, p=pad(n)
  12767.  
  12768.  
  12769.  
  12770. GetImage
  12771.   1  73          opcode
  12772.   1             format
  12773.      1           XYPixmap
  12774.      2           ZPixmap
  12775.   2  5             request length
  12776.   4  DRAWABLE         drawable
  12777.   2  INT16         x
  12778.   2  INT16         y
  12779.   2  CARD16         width
  12780.   2  CARD16         height
  12781.   4  CARD32         plane-mask
  12782.  
  12783.  
  12784.  ->
  12785.   1  1             Reply
  12786.   1  CARD8         depth
  12787.   2  CARD16         sequence number
  12788.   4  (n+p)/4         reply length
  12789.   4  VISUALID         visual
  12790.      0           None
  12791.   20             unused
  12792.   n  LISTofBYTE      data
  12793.   p             unused, p=pad(n)
  12794.  
  12795.  
  12796.  
  12797. PolyText8
  12798.   1  74          opcode
  12799.  
  12800.  
  12801.  
  12802.                  190
  12803.  
  12804.  
  12805.  
  12806.  
  12807.  
  12808. X Protocol                    X11, Release 6.4
  12809.  
  12810.  
  12811.   1             unused
  12812.   2  4+(n+p)/4         request length
  12813.   4  DRAWABLE         drawable
  12814.   4  GCONTEXT         gc
  12815.   2  INT16         x
  12816.   2  INT16         y
  12817.   n  LISTofTEXTITEM8     items
  12818.   p             unused, p=pad(n)  (p is always 0 or 1)
  12819.  
  12820.  
  12821.   TEXTITEM8
  12822.   1  m             length of string (cannot be 255)
  12823.   1  INT8         delta
  12824.   m  STRING8         string
  12825.   or
  12826.   1  255         font-shift indicator
  12827.   1             font byte 3 (most-significant)
  12828.   1             font byte 2
  12829.   1             font byte 1
  12830.   1             font byte 0 (least-significant)
  12831.  
  12832.  
  12833.  
  12834. PolyText16
  12835.   1  75          opcode
  12836.   1             unused
  12837.   2  4+(n+p)/4         request length
  12838.   4  DRAWABLE         drawable
  12839.   4  GCONTEXT         gc
  12840.   2  INT16         x
  12841.   2  INT16         y
  12842.   n  LISTofTEXTITEM16     items
  12843.   p             unused, p=pad(n)  (p must be 0 or 1)
  12844.  
  12845.  
  12846.   TEXTITEM16
  12847.   1  m             number of CHAR2Bs in string (cannot be 255)
  12848.   1  INT8         delta
  12849.   2m STRING16         string
  12850.   or
  12851.   1  255         font-shift indicator
  12852.   1             font byte 3 (most-significant)
  12853.   1             font byte 2
  12854.   1             font byte 1
  12855.   1             font byte 0 (least-significant)
  12856.  
  12857.  
  12858.  
  12859. ImageText8
  12860.   1  76          opcode
  12861.   1  n             length of string
  12862.   2  4+(n+p)/4         request length
  12863.   4  DRAWABLE         drawable
  12864.   4  GCONTEXT         gc
  12865.  
  12866.  
  12867.  
  12868.                  191
  12869.  
  12870.  
  12871.  
  12872.  
  12873.  
  12874. X Protocol                    X11, Release 6.4
  12875.  
  12876.  
  12877.   2  INT16         x
  12878.   2  INT16         y
  12879.   n  STRING8         string
  12880.   p             unused, p=pad(n)
  12881.  
  12882.  
  12883.  
  12884. ImageText16
  12885.   1  77          opcode
  12886.   1  n             number of CHAR2Bs in string
  12887.   2  4+(2n+p)/4      request length
  12888.   4  DRAWABLE         drawable
  12889.   4  GCONTEXT         gc
  12890.   2  INT16         x
  12891.   2  INT16         y
  12892.   2n STRING16         string
  12893.   p             unused, p=pad(2n)
  12894.  
  12895.  
  12896.  
  12897. CreateColormap
  12898.   1  78          opcode
  12899.   1             alloc
  12900.      0           None
  12901.      1           All
  12902.   2  4             request length
  12903.   4  COLORMAP         mid
  12904.   4  WINDOW         window
  12905.   4  VISUALID         visual
  12906.  
  12907.  
  12908.  
  12909. FreeColormap
  12910.   1  79          opcode
  12911.   1             unused
  12912.   2  2             request length
  12913.   4  COLORMAP         cmap
  12914.  
  12915.  
  12916.  
  12917. CopyColormapAndFree
  12918.   1  80          opcode
  12919.   1             unused
  12920.   2  3             request length
  12921.   4  COLORMAP         mid
  12922.   4  COLORMAP         src-cmap
  12923.  
  12924.  
  12925.  
  12926. InstallColormap
  12927.   1  81          opcode
  12928.   1             unused
  12929.   2  2             request length
  12930.   4  COLORMAP         cmap
  12931.  
  12932.  
  12933.  
  12934.                  192
  12935.  
  12936.  
  12937.  
  12938.  
  12939.  
  12940. X Protocol                    X11, Release 6.4
  12941.  
  12942.  
  12943. UninstallColormap
  12944.   1  82          opcode
  12945.   1             unused
  12946.   2  2             request length
  12947.   4  COLORMAP         cmap
  12948.  
  12949.  
  12950.  
  12951. ListInstalledColormaps
  12952.   1  83          opcode
  12953.   1             unused
  12954.   2  2             request length
  12955.   4  WINDOW         window
  12956.  
  12957.  
  12958.  ->
  12959.   1  1             Reply
  12960.   1             unused
  12961.   2  CARD16         sequence number
  12962.   4  n             reply length
  12963.   2  n             number of COLORMAPs in cmaps
  12964.   22             unused
  12965.   4n LISTofCOLORMAP     cmaps
  12966.  
  12967.  
  12968.  
  12969. AllocColor
  12970.   1  84          opcode
  12971.   1             unused
  12972.   2  4             request length
  12973.   4  COLORMAP         cmap
  12974.   2  CARD16         red
  12975.   2  CARD16         green
  12976.   2  CARD16         blue
  12977.   2             unused
  12978.  
  12979.  
  12980.  ->
  12981.   1  1             Reply
  12982.   1             unused
  12983.   2  CARD16         sequence number
  12984.   4  0             reply length
  12985.   2  CARD16         red
  12986.   2  CARD16         green
  12987.   2  CARD16         blue
  12988.   2             unused
  12989.   4  CARD32         pixel
  12990.   12             unused
  12991.  
  12992.  
  12993.  
  12994. AllocNamedColor
  12995.   1  85          opcode
  12996.   1             unused
  12997.  
  12998.  
  12999.  
  13000.                  193
  13001.  
  13002.  
  13003.  
  13004.  
  13005.  
  13006. X Protocol                    X11, Release 6.4
  13007.  
  13008.  
  13009.   2  3+(n+p)/4         request length
  13010.   4  COLORMAP         cmap
  13011.   2  n             length of name
  13012.   2             unused
  13013.   n  STRING8         name
  13014.   p             unused, p=pad(n)
  13015.  
  13016.  
  13017.  ->
  13018.   1  1             Reply
  13019.   1             unused
  13020.   2  CARD16         sequence number
  13021.   4  0             reply length
  13022.   4  CARD32         pixel
  13023.   2  CARD16         exact-red
  13024.   2  CARD16         exact-green
  13025.   2  CARD16         exact-blue
  13026.   2  CARD16         visual-red
  13027.   2  CARD16         visual-green
  13028.   2  CARD16         visual-blue
  13029.   8             unused
  13030.  
  13031.  
  13032.  
  13033. AllocColorCells
  13034.   1  86          opcode
  13035.   1  BOOL         contiguous
  13036.   2  3             request length
  13037.   4  COLORMAP         cmap
  13038.   2  CARD16         colors
  13039.   2  CARD16         planes
  13040.  
  13041.  
  13042.  ->
  13043.   1  1             Reply
  13044.   1             unused
  13045.   2  CARD16         sequence number
  13046.   4  n+m         reply length
  13047.   2  n             number of CARD32s in pixels
  13048.   2  m             number of CARD32s in masks
  13049.   20             unused
  13050.   4n LISTofCARD32     pixels
  13051.   4m LISTofCARD32     masks
  13052.  
  13053.  
  13054.  
  13055. AllocColorPlanes
  13056.   1  87          opcode
  13057.   1  BOOL         contiguous
  13058.   2  4             request length
  13059.   4  COLORMAP         cmap
  13060.   2  CARD16         colors
  13061.   2  CARD16         reds
  13062.   2  CARD16         greens
  13063.  
  13064.  
  13065.  
  13066.                  194
  13067.  
  13068.  
  13069.  
  13070.  
  13071.  
  13072. X Protocol                    X11, Release 6.4
  13073.  
  13074.  
  13075.   2  CARD16         blues
  13076.  
  13077.  
  13078.  ->
  13079.   1  1             Reply
  13080.   1             unused
  13081.   2  CARD16         sequence number
  13082.   4  n             reply length
  13083.   2  n             number of CARD32s in pixels
  13084.   2             unused
  13085.   4  CARD32         red-mask
  13086.   4  CARD32         green-mask
  13087.   4  CARD32         blue-mask
  13088.   8             unused
  13089.   4n LISTofCARD32     pixels
  13090.  
  13091.  
  13092.  
  13093. FreeColors
  13094.   1  88          opcode
  13095.   1             unused
  13096.   2  3+n         request length
  13097.   4  COLORMAP         cmap
  13098.   4  CARD32         plane-mask
  13099.   4n LISTofCARD32     pixels
  13100.  
  13101.  
  13102.  
  13103. StoreColors
  13104.   1  89          opcode
  13105.   1             unused
  13106.   2  2+3n         request length
  13107.   4  COLORMAP         cmap
  13108.   12n           LISTofCOLORITEMitems
  13109.  
  13110.  
  13111.   COLORITEM
  13112.   4  CARD32         pixel
  13113.   2  CARD16         red
  13114.   2  CARD16         green
  13115.   2  CARD16         blue
  13116.   1             do-red, do-green, do-blue
  13117.      #x01      do-red (1 is True, 0 is False)
  13118.      #x02      do-green (1 is True, 0 is False)
  13119.      #x04      do-blue (1 is True, 0 is False)
  13120.      #xF8      unused
  13121.   1             unused
  13122.  
  13123.  
  13124.  
  13125. StoreNamedColor
  13126.   1  90          opcode
  13127.   1             do-red, do-green, do-blue
  13128.      #x01      do-red (1 is True, 0 is False)
  13129.  
  13130.  
  13131.  
  13132.                  195
  13133.  
  13134.  
  13135.  
  13136.  
  13137.  
  13138. X Protocol                    X11, Release 6.4
  13139.  
  13140.  
  13141.      #x02      do-green (1 is True, 0 is False)
  13142.      #x04      do-blue (1 is True, 0 is False)
  13143.      #xF8      unused
  13144.   2  4+(n+p)/4         request length
  13145.   4  COLORMAP         cmap
  13146.   4  CARD32         pixel
  13147.   2  n             length of name
  13148.   2             unused
  13149.   n  STRING8         name
  13150.   p             unused, p=pad(n)
  13151.  
  13152.  
  13153.  
  13154. QueryColors
  13155.   1  91          opcode
  13156.   1             unused
  13157.   2  2+n         request length
  13158.   4  COLORMAP         cmap
  13159.   4n LISTofCARD32     pixels
  13160.  
  13161.  
  13162.  ->
  13163.   1  1             Reply
  13164.   1             unused
  13165.   2  CARD16         sequence number
  13166.   4  2n          reply length
  13167.   2  n             number of RGBs in colors
  13168.   22             unused
  13169.   8n LISTofRGB         colors
  13170.  
  13171.  
  13172.   RGB
  13173.   2  CARD16         red
  13174.   2  CARD16         green
  13175.   2  CARD16         blue
  13176.   2             unused
  13177.  
  13178.  
  13179.  
  13180. LookupColor
  13181.   1  92          opcode
  13182.   1             unused
  13183.   2  3+(n+p)/4         request length
  13184.   4  COLORMAP         cmap
  13185.   2  n             length of name
  13186.   2             unused
  13187.   n  STRING8         name
  13188.   p             unused, p=pad(n)
  13189.  
  13190.  
  13191.  ->
  13192.   1  1             Reply
  13193.   1             unused
  13194.   2  CARD16         sequence number
  13195.  
  13196.  
  13197.  
  13198.                  196
  13199.  
  13200.  
  13201.  
  13202.  
  13203.  
  13204. X Protocol                    X11, Release 6.4
  13205.  
  13206.  
  13207.   4  0             reply length
  13208.   2  CARD16         exact-red
  13209.   2  CARD16         exact-green
  13210.   2  CARD16         exact-blue
  13211.   2  CARD16         visual-red
  13212.   2  CARD16         visual-green
  13213.   2  CARD16         visual-blue
  13214.   12             unused
  13215.  
  13216.  
  13217.  
  13218. CreateCursor
  13219.   1  93          opcode
  13220.   1             unused
  13221.   2  8             request length
  13222.   4  CURSOR         cid
  13223.   4  PIXMAP         source
  13224.   4  PIXMAP         mask
  13225.      0           None
  13226.   2  CARD16         fore-red
  13227.   2  CARD16         fore-green
  13228.   2  CARD16         fore-blue
  13229.   2  CARD16         back-red
  13230.   2  CARD16         back-green
  13231.   2  CARD16         back-blue
  13232.   2  CARD16         x
  13233.   2  CARD16         y
  13234.  
  13235.  
  13236.  
  13237. CreateGlyphCursor
  13238.   1  94          opcode
  13239.   1             unused
  13240.   2  8             request length
  13241.   4  CURSOR         cid
  13242.   4  FONT         source-font
  13243.   4  FONT         mask-font
  13244.      0           None
  13245.   2  CARD16         source-char
  13246.   2  CARD16         mask-char
  13247.   2  CARD16         fore-red
  13248.   2  CARD16         fore-green
  13249.   2  CARD16         fore-blue
  13250.   2  CARD16         back-red
  13251.   2  CARD16         back-green
  13252.   2  CARD16         back-blue
  13253.  
  13254.  
  13255.  
  13256. FreeCursor
  13257.   1  95          opcode
  13258.   1             unused
  13259.   2  2             request length
  13260.   4  CURSOR         cursor
  13261.  
  13262.  
  13263.  
  13264.                  197
  13265.  
  13266.  
  13267.  
  13268.  
  13269.  
  13270. X Protocol                    X11, Release 6.4
  13271.  
  13272.  
  13273. RecolorCursor
  13274.   1  96          opcode
  13275.   1             unused
  13276.   2  5             request length
  13277.   4  CURSOR         cursor
  13278.   2  CARD16         fore-red
  13279.   2  CARD16         fore-green
  13280.   2  CARD16         fore-blue
  13281.   2  CARD16         back-red
  13282.   2  CARD16         back-green
  13283.   2  CARD16         back-blue
  13284.  
  13285.  
  13286.  
  13287. QueryBestSize
  13288.   1  97          opcode
  13289.   1             class
  13290.      0           Cursor
  13291.      1           Tile
  13292.      2           Stipple
  13293.   2  3             request length
  13294.   4  DRAWABLE         drawable
  13295.   2  CARD16         width
  13296.   2  CARD16         height
  13297.  
  13298.  
  13299.  ->
  13300.   1  1             Reply
  13301.   1             unused
  13302.   2  CARD16         sequence number
  13303.   4  0             reply length
  13304.   2  CARD16         width
  13305.   2  CARD16         height
  13306.   20             unused
  13307.  
  13308.  
  13309.  
  13310. QueryExtension
  13311.   1  98          opcode
  13312.   1             unused
  13313.   2  2+(n+p)/4         request length
  13314.   2  n             length of name
  13315.   2             unused
  13316.   n  STRING8         name
  13317.   p             unused, p=pad(n)
  13318.  
  13319.  
  13320.  ->
  13321.   1  1             Reply
  13322.   1             unused
  13323.   2  CARD16         sequence number
  13324.   4  0             reply length
  13325.   1  BOOL         present
  13326.   1  CARD8         major-opcode
  13327.  
  13328.  
  13329.  
  13330.                  198
  13331.  
  13332.  
  13333.  
  13334.  
  13335.  
  13336. X Protocol                    X11, Release 6.4
  13337.  
  13338.  
  13339.   1  CARD8         first-event
  13340.   1  CARD8         first-error
  13341.   20             unused
  13342.  
  13343.  
  13344.  
  13345. ListExtensions
  13346.   1  99          opcode
  13347.   1             unused
  13348.   2  1             request length
  13349.  
  13350.  
  13351.  ->
  13352.   1  1             Reply
  13353.   1  CARD8         number of STRs in names
  13354.   2  CARD16         sequence number
  13355.   4  (n+p)/4         reply length
  13356.   24             unused
  13357.   n  LISTofSTR         names
  13358.   p             unused, p=pad(n)
  13359.  
  13360.  
  13361.  
  13362. ChangeKeyboardMapping
  13363.   1  100         opcode
  13364.   1  n             keycode-count
  13365.   2  2+nm         request length
  13366.   1  KEYCODE         first-keycode
  13367.   1  m             keysyms-per-keycode
  13368.   2             unused
  13369.   4nm           LISTofKEYSYMkeysyms
  13370.  
  13371.  
  13372.  
  13373. GetKeyboardMapping
  13374.   1  101         opcode
  13375.   1             unused
  13376.   2  2             request length
  13377.   1  KEYCODE         first-keycode
  13378.   1  m             count
  13379.   2             unused
  13380.  
  13381.  
  13382.  ->
  13383.   1  1             Reply
  13384.   1  n             keysyms-per-keycode
  13385.   2  CARD16         sequence number
  13386.   4  nm          reply length (m = count field from the request)
  13387.   24             unused
  13388.   4nm           LISTofKEYSYMkeysyms
  13389.  
  13390.  
  13391.  
  13392. ChangeKeyboardControl
  13393.  
  13394.  
  13395.  
  13396.                  199
  13397.  
  13398.  
  13399.  
  13400.  
  13401.  
  13402. X Protocol                    X11, Release 6.4
  13403.  
  13404.  
  13405.   1  102         opcode
  13406.   1             unused
  13407.   2  2+n         request length
  13408.   4  BITMASK         value-mask (has n bits set to 1)
  13409.      #x0001    key-click-percent
  13410.      #x0002    bell-percent
  13411.      #x0004    bell-pitch
  13412.      #x0008    bell-duration
  13413.      #x0010    led
  13414.      #x0020    led-mode
  13415.      #x0040    key
  13416.      #x0080    auto-repeat-mode
  13417.   4n LISTofVALUE     value-list
  13418.  
  13419.  
  13420.   VALUEs
  13421.   1  INT8         key-click-percent
  13422.   1  INT8         bell-percent
  13423.   2  INT16         bell-pitch
  13424.   2  INT16         bell-duration
  13425.   1  CARD8         led
  13426.   1             led-mode
  13427.      0           Off
  13428.      1           On
  13429.   1  KEYCODE         key
  13430.   1             auto-repeat-mode
  13431.      0           Off
  13432.      1           On
  13433.      2           Default
  13434.  
  13435.  
  13436.  
  13437. GetKeyboardControl
  13438.   1  103         opcode
  13439.   1             unused
  13440.   2  1             request length
  13441.  
  13442.  
  13443.  ->
  13444.   1  1             Reply
  13445.   1             global-auto-repeat
  13446.      0           Off
  13447.      1           On
  13448.   2  CARD16         sequence number
  13449.   4  5             reply length
  13450.   4  CARD32         led-mask
  13451.   1  CARD8         key-click-percent
  13452.   1  CARD8         bell-percent
  13453.   2  CARD16         bell-pitch
  13454.   2  CARD16         bell-duration
  13455.   2             unused
  13456.   32 LISTofCARD8     auto-repeats
  13457.  
  13458.  
  13459.  
  13460.  
  13461.  
  13462.                  200
  13463.  
  13464.  
  13465.  
  13466.  
  13467.  
  13468. X Protocol                    X11, Release 6.4
  13469.  
  13470.  
  13471. Bell
  13472.   1  104         opcode
  13473.   1  INT8         percent
  13474.   2  1             request length
  13475.  
  13476.  
  13477.  
  13478. ChangePointerControl
  13479.   1  105         opcode
  13480.   1             unused
  13481.   2  3             request length
  13482.   2  INT16         acceleration-numerator
  13483.   2  INT16         acceleration-denominator
  13484.   2  INT16         threshold
  13485.   1  BOOL         do-acceleration
  13486.   1  BOOL         do-threshold
  13487.  
  13488.  
  13489.  
  13490. GetPointerControl
  13491.   1  106         opcode
  13492.   1             unused
  13493.   2  1             request length
  13494.  
  13495.  
  13496.  ->
  13497.   1  1             Reply
  13498.   1             unused
  13499.   2  CARD16         sequence number
  13500.   4  0             reply length
  13501.   2  CARD16         acceleration-numerator
  13502.   2  CARD16         acceleration-denominator
  13503.   2  CARD16         threshold
  13504.   18             unused
  13505.  
  13506.  
  13507.  
  13508. SetScreenSaver
  13509.   1  107         opcode
  13510.   1             unused
  13511.   2  3             request length
  13512.   2  INT16         timeout
  13513.   2  INT16         interval
  13514.   1             prefer-blanking
  13515.      0           No
  13516.      1           Yes
  13517.      2           Default
  13518.   1             allow-exposures
  13519.      0           No
  13520.      1           Yes
  13521.      2           Default
  13522.   2             unused
  13523.  
  13524.  
  13525.  
  13526.  
  13527.  
  13528.                  201
  13529.  
  13530.  
  13531.  
  13532.  
  13533.  
  13534. X Protocol                    X11, Release 6.4
  13535.  
  13536.  
  13537. GetScreenSaver
  13538.   1  108         opcode
  13539.   1             unused
  13540.   2  1             request length
  13541.  
  13542.  
  13543.  ->
  13544.   1  1             Reply
  13545.   1             unused
  13546.   2  CARD16         sequence number
  13547.   4  0             reply length
  13548.   2  CARD16         timeout
  13549.   2  CARD16         interval
  13550.   1             prefer-blanking
  13551.      0           No
  13552.      1           Yes
  13553.   1             allow-exposures
  13554.      0           No
  13555.      1           Yes
  13556.   18             unused
  13557.  
  13558.  
  13559.  
  13560. ChangeHosts
  13561.   1  109         opcode
  13562.   1             mode
  13563.      0           Insert
  13564.      1           Delete
  13565.   2  2+(n+p)/4         request length
  13566.   1             family
  13567.      0           Internet
  13568.      1           DECnet
  13569.      2           Chaos
  13570.   1             unused
  13571.   2  n             length of address
  13572.   n  LISTofCARD8     address
  13573.   p             unused, p=pad(n)
  13574.  
  13575.  
  13576.  
  13577. ListHosts
  13578.   1  110         opcode
  13579.   1             unused
  13580.   2  1             request length
  13581.  
  13582.  
  13583.  ->
  13584.   1  1             Reply
  13585.   1             mode
  13586.      0           Disabled
  13587.      1           Enabled
  13588.   2  CARD16         sequence number
  13589.   4  n/4         reply length
  13590.   2  CARD16         number of HOSTs in hosts
  13591.  
  13592.  
  13593.  
  13594.                  202
  13595.  
  13596.  
  13597.  
  13598.  
  13599.  
  13600. X Protocol                    X11, Release 6.4
  13601.  
  13602.  
  13603.   22             unused
  13604.   n  LISTofHOST      hosts (n always a multiple of 4)
  13605.  
  13606.  
  13607.  
  13608. SetAccessControl
  13609.   1  111         opcode
  13610.   1             mode
  13611.      0           Disable
  13612.      1           Enable
  13613.   2  1             request length
  13614.  
  13615.  
  13616.  
  13617. SetCloseDownMode
  13618.   1  112         opcode
  13619.   1             mode
  13620.      0           Destroy
  13621.      1           RetainPermanent
  13622.      2           RetainTemporary
  13623.   2  1             request length
  13624.  
  13625.  
  13626.  
  13627. KillClient
  13628.   1  113         opcode
  13629.   1             unused
  13630.   2  2             request length
  13631.   4  CARD32         resource
  13632.      0           AllTemporary
  13633.  
  13634.  
  13635.  
  13636. RotateProperties
  13637.   1  114         opcode
  13638.   1             unused
  13639.   2  3+n         request length
  13640.   4  WINDOW         window
  13641.   2  n             number of properties
  13642.   2  INT16         delta
  13643.   4n LISTofATOM      properties
  13644.  
  13645.  
  13646.  
  13647. ForceScreenSaver
  13648.   1  115         opcode
  13649.   1             mode
  13650.      0           Reset
  13651.      1           Activate
  13652.   2  1             request length
  13653.  
  13654.  
  13655.  
  13656. SetPointerMapping
  13657.  
  13658.  
  13659.  
  13660.                  203
  13661.  
  13662.  
  13663.  
  13664.  
  13665.  
  13666. X Protocol                    X11, Release 6.4
  13667.  
  13668.  
  13669.   1  116         opcode
  13670.   1  n             length of map
  13671.   2  1+(n+p)/4         request length
  13672.   n  LISTofCARD8     map
  13673.   p             unused, p=pad(n)
  13674.  
  13675.  
  13676.  ->
  13677.   1  1             Reply
  13678.   1             status
  13679.      0           Success
  13680.      1           Busy
  13681.   2  CARD16         sequence number
  13682.   4  0             reply length
  13683.   24             unused
  13684.  
  13685.  
  13686.  
  13687. GetPointerMapping
  13688.   1  117         opcode
  13689.   1             unused
  13690.   2  1             request length
  13691.  
  13692.  
  13693.  ->
  13694.   1  1             Reply
  13695.   1  n             length of map
  13696.   2  CARD16         sequence number
  13697.   4  (n+p)/4         reply length
  13698.   24             unused
  13699.   n  LISTofCARD8     map
  13700.   p             unused, p=pad(n)
  13701.  
  13702.  
  13703.  
  13704. SetModifierMapping
  13705.   1  118         opcode
  13706.   1  n             keycodes-per-modifier
  13707.   2  1+2n         request length
  13708.   8n LISTofKEYCODE     keycodes
  13709.  
  13710.  
  13711.  ->
  13712.   1  1             Reply
  13713.   1             status
  13714.      0           Success
  13715.      1           Busy
  13716.      2           Failed
  13717.   2  CARD16         sequence number
  13718.   4  0             reply length
  13719.   24             unused
  13720.  
  13721.  
  13722.  
  13723.  
  13724.  
  13725.  
  13726.                  204
  13727.  
  13728.  
  13729.  
  13730.  
  13731.  
  13732. X Protocol                    X11, Release 6.4
  13733.  
  13734.  
  13735. GetModifierMapping
  13736.   1  119         opcode
  13737.   1             unused
  13738.   2  1             request length
  13739.  
  13740.  
  13741.  ->
  13742.   1  1             Reply
  13743.   1  n             keycodes-per-modifier
  13744.   2  CARD16         sequence number
  13745.   4  2n          reply length
  13746.   24             unused
  13747.   8n LISTofKEYCODE     keycodes
  13748.  
  13749.  
  13750.  
  13751. NoOperation
  13752.   1  127         opcode
  13753.   1             unused
  13754.   2  1+n         request length
  13755.   4n             unused
  13756.  
  13757.  
  13758. Events
  13759.  
  13760.  
  13761. KeyPress
  13762.   1  2             code
  13763.   1  KEYCODE         detail
  13764.   2  CARD16         sequence number
  13765.   4  TIMESTAMP         time
  13766.   4  WINDOW         root
  13767.   4  WINDOW         event
  13768.   4  WINDOW         child
  13769.      0           None
  13770.   2  INT16         root-x
  13771.   2  INT16         root-y
  13772.   2  INT16         event-x
  13773.   2  INT16         event-y
  13774.   2  SETofKEYBUTMASK     state
  13775.   1  BOOL         same-screen
  13776.   1             unused
  13777.  
  13778.  
  13779.  
  13780. KeyRelease
  13781.   1  3             code
  13782.   1  KEYCODE         detail
  13783.   2  CARD16         sequence number
  13784.   4  TIMESTAMP         time
  13785.   4  WINDOW         root
  13786.   4  WINDOW         event
  13787.   4  WINDOW         child
  13788.      0           None
  13789.  
  13790.  
  13791.  
  13792.                  205
  13793.  
  13794.  
  13795.  
  13796.  
  13797.  
  13798. X Protocol                    X11, Release 6.4
  13799.  
  13800.  
  13801.   2  INT16         root-x
  13802.   2  INT16         root-y
  13803.   2  INT16         event-x
  13804.   2  INT16         event-y
  13805.   2  SETofKEYBUTMASK     state
  13806.   1  BOOL         same-screen
  13807.   1             unused
  13808.  
  13809.  
  13810.  
  13811. ButtonPress
  13812.   1  4             code
  13813.   1  BUTTON         detail
  13814.   2  CARD16         sequence number
  13815.   4  TIMESTAMP         time
  13816.   4  WINDOW         root
  13817.   4  WINDOW         event
  13818.   4  WINDOW         child
  13819.      0           None
  13820.   2  INT16         root-x
  13821.   2  INT16         root-y
  13822.   2  INT16         event-x
  13823.   2  INT16         event-y
  13824.   2  SETofKEYBUTMASK     state
  13825.   1  BOOL         same-screen
  13826.   1             unused
  13827.  
  13828.  
  13829.  
  13830. ButtonRelease
  13831.   1  5             code
  13832.   1  BUTTON         detail
  13833.   2  CARD16         sequence number
  13834.   4  TIMESTAMP         time
  13835.   4  WINDOW         root
  13836.   4  WINDOW         event
  13837.   4  WINDOW         child
  13838.      0           None
  13839.   2  INT16         root-x
  13840.   2  INT16         root-y
  13841.   2  INT16         event-x
  13842.   2  INT16         event-y
  13843.   2  SETofKEYBUTMASK     state
  13844.   1  BOOL         same-screen
  13845.   1             unused
  13846.  
  13847.  
  13848.  
  13849. MotionNotify
  13850.   1  6             code
  13851.   1             detail
  13852.      0           Normal
  13853.      1           Hint
  13854.   2  CARD16         sequence number
  13855.  
  13856.  
  13857.  
  13858.                  206
  13859.  
  13860.  
  13861.  
  13862.  
  13863.  
  13864. X Protocol                    X11, Release 6.4
  13865.  
  13866.  
  13867.   4  TIMESTAMP         time
  13868.   4  WINDOW         root
  13869.   4  WINDOW         event
  13870.   4  WINDOW         child
  13871.      0           None
  13872.   2  INT16         root-x
  13873.   2  INT16         root-y
  13874.   2  INT16         event-x
  13875.   2  INT16         event-y
  13876.   2  SETofKEYBUTMASK     state
  13877.   1  BOOL         same-screen
  13878.   1             unused
  13879.  
  13880.  
  13881.  
  13882. EnterNotify
  13883.   1  7             code
  13884.   1             detail
  13885.      0           Ancestor
  13886.      1           Virtual
  13887.      2           Inferior
  13888.      3           Nonlinear
  13889.      4           NonlinearVirtual
  13890.   2  CARD16         sequence number
  13891.   4  TIMESTAMP         time
  13892.   4  WINDOW         root
  13893.   4  WINDOW         event
  13894.   4  WINDOW         child
  13895.      0           None
  13896.   2  INT16         root-x
  13897.   2  INT16         root-y
  13898.   2  INT16         event-x
  13899.   2  INT16         event-y
  13900.   2  SETofKEYBUTMASK     state
  13901.   1             mode
  13902.      0           Normal
  13903.      1           Grab
  13904.      2           Ungrab
  13905.   1             same-screen, focus
  13906.      #x01      focus (1 is True, 0 is False)
  13907.      #x02      same-screen (1 is True, 0 is False)
  13908.      #xFC      unused
  13909.  
  13910.  
  13911.  
  13912. LeaveNotify
  13913.   1  8             code
  13914.   1             detail
  13915.      0           Ancestor
  13916.      1           Virtual
  13917.      2           Inferior
  13918.      3           Nonlinear
  13919.      4           NonlinearVirtual
  13920.   2  CARD16         sequence number
  13921.  
  13922.  
  13923.  
  13924.                  207
  13925.  
  13926.  
  13927.  
  13928.  
  13929.  
  13930. X Protocol                    X11, Release 6.4
  13931.  
  13932.  
  13933.   4  TIMESTAMP         time
  13934.   4  WINDOW         root
  13935.   4  WINDOW         event
  13936.   4  WINDOW         child
  13937.      0           None
  13938.   2  INT16         root-x
  13939.   2  INT16         root-y
  13940.   2  INT16         event-x
  13941.   2  INT16         event-y
  13942.   2  SETofKEYBUTMASK     state
  13943.   1             mode
  13944.      0           Normal
  13945.      1           Grab
  13946.      2           Ungrab
  13947.   1             same-screen, focus
  13948.      #x01      focus (1 is True, 0 is False)
  13949.      #x02      same-screen (1 is True, 0 is False)
  13950.      #xFC      unused
  13951.  
  13952.  
  13953.  
  13954. FocusIn
  13955.   1  9             code
  13956.   1             detail
  13957.      0           Ancestor
  13958.      1           Virtual
  13959.      2           Inferior
  13960.      3           Nonlinear
  13961.      4           NonlinearVirtual
  13962.      5           Pointer
  13963.      6           PointerRoot
  13964.      7           None
  13965.   2  CARD16         sequence number
  13966.   4  WINDOW         event
  13967.   1             mode
  13968.      0           Normal
  13969.      1           Grab
  13970.      2           Ungrab
  13971.      3           WhileGrabbed
  13972.   23             unused
  13973.  
  13974.  
  13975.  
  13976. FocusOut
  13977.   1  10          code
  13978.   1             detail
  13979.      0           Ancestor
  13980.      1           Virtual
  13981.      2           Inferior
  13982.      3           Nonlinear
  13983.      4           NonlinearVirtual
  13984.      5           Pointer
  13985.      6           PointerRoot
  13986.      7           None
  13987.  
  13988.  
  13989.  
  13990.                  208
  13991.  
  13992.  
  13993.  
  13994.  
  13995.  
  13996. X Protocol                    X11, Release 6.4
  13997.  
  13998.  
  13999.   2  CARD16         sequence number
  14000.   4  WINDOW         event
  14001.   1             mode
  14002.      0           Normal
  14003.      1           Grab
  14004.      2           Ungrab
  14005.      3           WhileGrabbed
  14006.   23             unused
  14007.  
  14008.  
  14009.  
  14010. KeymapNotify
  14011.   1  11          code
  14012.   31 LISTofCARD8     keys (byte for keycodes 0-7 is omitted)
  14013.  
  14014.  
  14015.  
  14016. Expose
  14017.   1  12          code
  14018.   1             unused
  14019.   2  CARD16         sequence number
  14020.   4  WINDOW         window
  14021.   2  CARD16         x
  14022.   2  CARD16         y
  14023.   2  CARD16         width
  14024.   2  CARD16         height
  14025.   2  CARD16         count
  14026.   14             unused
  14027.  
  14028.  
  14029.  
  14030. GraphicsExposure
  14031.   1  13          code
  14032.   1             unused
  14033.   2  CARD16         sequence number
  14034.   4  DRAWABLE         drawable
  14035.   2  CARD16         x
  14036.   2  CARD16         y
  14037.   2  CARD16         width
  14038.   2  CARD16         height
  14039.   2  CARD16         minor-opcode
  14040.   2  CARD16         count
  14041.   1  CARD8         major-opcode
  14042.   11             unused
  14043.  
  14044.  
  14045.  
  14046. NoExposure
  14047.   1  14          code
  14048.   1             unused
  14049.   2  CARD16         sequence number
  14050.   4  DRAWABLE         drawable
  14051.   2  CARD16         minor-opcode
  14052.   1  CARD8         major-opcode
  14053.  
  14054.  
  14055.  
  14056.                  209
  14057.  
  14058.  
  14059.  
  14060.  
  14061.  
  14062. X Protocol                    X11, Release 6.4
  14063.  
  14064.  
  14065.   21             unused
  14066.  
  14067.  
  14068.  
  14069. VisibilityNotify
  14070.   1  15          code
  14071.   1             unused
  14072.   2  CARD16         sequence number
  14073.   4  WINDOW         window
  14074.   1             state
  14075.      0           Unobscured
  14076.      1           PartiallyObscured
  14077.      2           FullyObscured
  14078.   23             unused
  14079.  
  14080.  
  14081.  
  14082. CreateNotify
  14083.   1  16          code
  14084.   1             unused
  14085.   2  CARD16         sequence number
  14086.   4  WINDOW         parent
  14087.   4  WINDOW         window
  14088.   2  INT16         x
  14089.   2  INT16         y
  14090.   2  CARD16         width
  14091.   2  CARD16         height
  14092.   2  CARD16         border-width
  14093.   1  BOOL         override-redirect
  14094.   9             unused
  14095.  
  14096.  
  14097.  
  14098. DestroyNotify
  14099.   1  17          code
  14100.   1             unused
  14101.   2  CARD16         sequence number
  14102.   4  WINDOW         event
  14103.   4  WINDOW         window
  14104.   20             unused
  14105.  
  14106.  
  14107.  
  14108. UnmapNotify
  14109.   1  18          code
  14110.   1             unused
  14111.   2  CARD16         sequence number
  14112.   4  WINDOW         event
  14113.   4  WINDOW         window
  14114.   1  BOOL         from-configure
  14115.   19             unused
  14116.  
  14117.  
  14118.  
  14119.  
  14120.  
  14121.  
  14122.                  210
  14123.  
  14124.  
  14125.  
  14126.  
  14127.  
  14128. X Protocol                    X11, Release 6.4
  14129.  
  14130.  
  14131. MapNotify
  14132.   1  19          code
  14133.   1             unused
  14134.   2  CARD16         sequence number
  14135.   4  WINDOW         event
  14136.   4  WINDOW         window
  14137.   1  BOOL         override-redirect
  14138.   19             unused
  14139.  
  14140.  
  14141.  
  14142. MapRequest
  14143.   1  20          code
  14144.   1             unused
  14145.   2  CARD16         sequence number
  14146.   4  WINDOW         parent
  14147.   4  WINDOW         window
  14148.   20             unused
  14149.  
  14150.  
  14151.  
  14152. ReparentNotify
  14153.   1  21          code
  14154.   1             unused
  14155.   2  CARD16         sequence number
  14156.   4  WINDOW         event
  14157.   4  WINDOW         window
  14158.   4  WINDOW         parent
  14159.   2  INT16         x
  14160.   2  INT16         y
  14161.   1  BOOL         override-redirect
  14162.   11             unused
  14163.  
  14164.  
  14165.  
  14166. ConfigureNotify
  14167.   1  22          code
  14168.   1             unused
  14169.   2  CARD16         sequence number
  14170.   4  WINDOW         event
  14171.   4  WINDOW         window
  14172.   4  WINDOW         above-sibling
  14173.      0           None
  14174.   2  INT16         x
  14175.   2  INT16         y
  14176.   2  CARD16         width
  14177.   2  CARD16         height
  14178.   2  CARD16         border-width
  14179.   1  BOOL         override-redirect
  14180.   5             unused
  14181.  
  14182.  
  14183.  
  14184. ConfigureRequest
  14185.  
  14186.  
  14187.  
  14188.                  211
  14189.  
  14190.  
  14191.  
  14192.  
  14193.  
  14194. X Protocol                    X11, Release 6.4
  14195.  
  14196.  
  14197.   1  23          code
  14198.   1             stack-mode
  14199.      0           Above
  14200.      1           Below
  14201.      2           TopIf
  14202.      3           BottomIf
  14203.      4           Opposite
  14204.   2  CARD16         sequence number
  14205.   4  WINDOW         parent
  14206.   4  WINDOW         window
  14207.   4  WINDOW         sibling
  14208.      0           None
  14209.   2  INT16         x
  14210.   2  INT16         y
  14211.   2  CARD16         width
  14212.   2  CARD16         height
  14213.   2  CARD16         border-width
  14214.   2  BITMASK         value-mask
  14215.      #x0001    x
  14216.      #x0002    y
  14217.      #x0004    width
  14218.      #x0008    height
  14219.      #x0010    border-width
  14220.      #x0020    sibling
  14221.      #x0040    stack-mode
  14222.   4             unused
  14223.  
  14224.  
  14225.  
  14226. GravityNotify
  14227.   1  24          code
  14228.   1             unused
  14229.   2  CARD16         sequence number
  14230.   4  WINDOW         event
  14231.   4  WINDOW         window
  14232.   2  INT16         x
  14233.   2  INT16         y
  14234.   16             unused
  14235.  
  14236.  
  14237.  
  14238. ResizeRequest
  14239.   1  25          code
  14240.   1             unused
  14241.   2  CARD16         sequence number
  14242.   4  WINDOW         window
  14243.   2  CARD16         width
  14244.   2  CARD16         height
  14245.   20             unused
  14246.  
  14247.  
  14248.  
  14249. CirculateNotify
  14250.   1  26          code
  14251.  
  14252.  
  14253.  
  14254.                  212
  14255.  
  14256.  
  14257.  
  14258.  
  14259.  
  14260. X Protocol                    X11, Release 6.4
  14261.  
  14262.  
  14263.   1             unused
  14264.   2  CARD16         sequence number
  14265.   4  WINDOW         event
  14266.   4  WINDOW         window
  14267.   4  WINDOW         unused
  14268.   1             place
  14269.      0           Top
  14270.      1           Bottom
  14271.   15             unused
  14272.  
  14273.  
  14274.  
  14275. CirculateRequest
  14276.   1  27          code
  14277.   1             unused
  14278.   2  CARD16         sequence number
  14279.   4  WINDOW         parent
  14280.   4  WINDOW         window
  14281.   4             unused
  14282.   1             place
  14283.      0           Top
  14284.      1           Bottom
  14285.   15             unused
  14286.  
  14287.  
  14288.  
  14289. PropertyNotify
  14290.   1  28          code
  14291.   1             unused
  14292.   2  CARD16         sequence number
  14293.   4  WINDOW         window
  14294.   4  ATOM         atom
  14295.   4  TIMESTAMP         time
  14296.   1             state
  14297.      0           NewValue
  14298.      1           Deleted
  14299.   15             unused
  14300.  
  14301.  
  14302.  
  14303. SelectionClear
  14304.   1  29          code
  14305.   1             unused
  14306.   2  CARD16         sequence number
  14307.   4  TIMESTAMP         time
  14308.   4  WINDOW         owner
  14309.   4  ATOM         selection
  14310.   16             unused
  14311.  
  14312.  
  14313.  
  14314. SelectionRequest
  14315.   1  30          code
  14316.   1             unused
  14317.  
  14318.  
  14319.  
  14320.                  213
  14321.  
  14322.  
  14323.  
  14324.  
  14325.  
  14326. X Protocol                    X11, Release 6.4
  14327.  
  14328.  
  14329.   2  CARD16         sequence number
  14330.   4  TIMESTAMP         time
  14331.      0           CurrentTime
  14332.   4  WINDOW         owner
  14333.   4  WINDOW         requestor
  14334.   4  ATOM         selection
  14335.   4  ATOM         target
  14336.   4  ATOM         property
  14337.      0           None
  14338.   4             unused
  14339.  
  14340.  
  14341.  
  14342. SelectionNotify
  14343.   1  31          code
  14344.   1             unused
  14345.   2  CARD16         sequence number
  14346.   4  TIMESTAMP         time
  14347.      0           CurrentTime
  14348.   4  WINDOW         requestor
  14349.   4  ATOM         selection
  14350.   4  ATOM         target
  14351.   4  ATOM         property
  14352.      0           None
  14353.   8             unused
  14354.  
  14355.  
  14356.  
  14357. ColormapNotify
  14358.   1  32          code
  14359.   1             unused
  14360.   2  CARD16         sequence number
  14361.   4  WINDOW         window
  14362.   4  COLORMAP         colormap
  14363.      0           None
  14364.   1  BOOL         new
  14365.   1             state
  14366.      0           Uninstalled
  14367.      1           Installed
  14368.   18             unused
  14369.  
  14370.  
  14371.  
  14372. ClientMessage
  14373.   1  33          code
  14374.   1  CARD8         format
  14375.   2  CARD16         sequence number
  14376.   4  WINDOW         window
  14377.   4  ATOM         type
  14378.   20             data
  14379.  
  14380.  
  14381.  
  14382. MappingNotify
  14383.  
  14384.  
  14385.  
  14386.                  214
  14387.  
  14388.  
  14389.  
  14390.  
  14391.  
  14392. X Protocol                    X11, Release 6.4
  14393.  
  14394.  
  14395.   1  34          code
  14396.   1             unused
  14397.   2  CARD16         sequence number
  14398.   1             request
  14399.      0           Modifier
  14400.      1           Keyboard
  14401.      2           Pointer
  14402.   1  KEYCODE         first-keycode
  14403.   1  CARD8         count
  14404.   25             unused
  14405.  
  14406.  
  14407.  
  14408.  
  14409.  
  14410.  
  14411.  
  14412.  
  14413.  
  14414.  
  14415.  
  14416.  
  14417.  
  14418.  
  14419.  
  14420.  
  14421.  
  14422.  
  14423.  
  14424.  
  14425.  
  14426.  
  14427.  
  14428.  
  14429.  
  14430.  
  14431.  
  14432.  
  14433.  
  14434.  
  14435.  
  14436.  
  14437.  
  14438.  
  14439.  
  14440.  
  14441.  
  14442.  
  14443.  
  14444.  
  14445.  
  14446.  
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  
  14452.                  215
  14453.  
  14454.  
  14455.  
  14456.  
  14457.  
  14458. X Protocol                    X11, Release 6.4
  14459.  
  14460.  
  14461.  
  14462.  
  14463.               Glossary
  14464.  
  14465.  
  14466.  
  14467. Access control list
  14468.  
  14469.      X maintains a list of hosts from which client programs
  14470.      can be run.  By default, only programs on the local
  14471.      host and hosts specified in an initial list read by the
  14472.      server can use the display.  Clients on the local host
  14473.      can change this access control list.  Some server
  14474.      implementations can also implement other authorization
  14475.      mechanisms in addition to or in place of this mecha-
  14476.      nism.  The action of this mechanism can be conditional
  14477.      based on the authorization protocol name and data
  14478.      received by the server at connection setup.
  14479.  
  14480. Active grab
  14481.  
  14482.      A grab is active when the pointer or keyboard is actu-
  14483.      ally owned by the single grabbing client.
  14484.  
  14485. Ancestors
  14486.  
  14487.      If W is an inferior of A, then A is an ancestor of W.
  14488.  
  14489. Atom
  14490.  
  14491.      An atom is a unique ID corresponding to a string name.
  14492.      Atoms are used to identify properties, types, and
  14493.      selections.
  14494.  
  14495. Background
  14496.  
  14497.      An InputOutput window can have a background, which is
  14498.      defined as a pixmap.  When regions of the window have
  14499.      their contents lost or invalidated, the server will
  14500.      automatically tile those regions with the background.
  14501.  
  14502. Backing store
  14503.  
  14504.      When a server maintains the contents of a window, the
  14505.      pixels saved off screen are known as a backing store.
  14506.  
  14507.  
  14508.  
  14509.  
  14510.  
  14511.  
  14512.  
  14513.  
  14514.  
  14515.  
  14516.  
  14517.  
  14518.                  216
  14519.  
  14520.  
  14521.  
  14522.  
  14523.  
  14524. X Protocol                    X11, Release 6.4
  14525.  
  14526.  
  14527. Bit gravity
  14528.  
  14529.      When a window is resized, the contents of the window
  14530.      are not necessarily discarded.  It is possible to
  14531.      request that the server relocate the previous contents
  14532.      to some region of the window (though no guarantees are
  14533.      made).  This attraction of window contents for some
  14534.      location of a window is known as bit gravity.
  14535.  
  14536. Bit plane
  14537.  
  14538.      When a pixmap or window is thought of as a stack of
  14539.      bitmaps, each bitmap is called a bit plane or plane.
  14540.  
  14541. Bitmap
  14542.  
  14543.      A bitmap is a pixmap of depth one.
  14544.  
  14545. Border
  14546.  
  14547.      An InputOutput window can have a border of equal thick-
  14548.      ness on all four sides of the window.  A pixmap defines
  14549.      the contents of the border, and the server automati-
  14550.      cally maintains the contents of the border.  Exposure
  14551.      events are never generated for border regions.
  14552.  
  14553. Button grabbing
  14554.  
  14555.      Buttons on the pointer may be passively grabbed by a
  14556.      client.  When the button is pressed, the pointer is
  14557.      then actively grabbed by the client.
  14558.  
  14559. Byte order
  14560.  
  14561.      For image (pixmap/bitmap) data, the server defines the
  14562.      byte order, and clients with different native byte
  14563.      ordering must swap bytes as necessary.  For all other
  14564.      parts of the protocol, the client defines the byte
  14565.      order, and the server swaps bytes as necessary.
  14566.  
  14567. Children
  14568.  
  14569.      The children of a window are its first-level subwin-
  14570.      dows.
  14571.  
  14572.  
  14573.  
  14574.  
  14575.  
  14576.  
  14577.  
  14578.  
  14579.  
  14580.  
  14581.  
  14582.  
  14583.  
  14584.                  217
  14585.  
  14586.  
  14587.  
  14588.  
  14589.  
  14590. X Protocol                    X11, Release 6.4
  14591.  
  14592.  
  14593. Client
  14594.  
  14595.      An application program connects to the window system
  14596.      server by some interprocess communication path, such as
  14597.      a TCP connection or a shared memory buffer.  This pro-
  14598.      gram is referred to as a client of the window system
  14599.      server.  More precisely, the client is the communica-
  14600.      tion path itself; a program with multiple paths open to
  14601.      the server is viewed as multiple clients by the proto-
  14602.      col.  Resource lifetimes are controlled by connection
  14603.      lifetimes, not by program lifetimes.
  14604.  
  14605. Clipping region
  14606.  
  14607.      In a graphics context, a bitmap or list of rectangles
  14608.      can be specified to restrict output to a particular
  14609.      region of the window.  The image defined by the bitmap
  14610.      or rectangles is called a clipping region.
  14611.  
  14612. Colormap
  14613.  
  14614.      A colormap consists of a set of entries defining color
  14615.      values.  The colormap associated with a window is used
  14616.      to display the contents of the window; each pixel value
  14617.      indexes the colormap to produce RGB values that drive
  14618.      the guns of a monitor.  Depending on hardware limita-
  14619.      tions, one or more colormaps may be installed at one
  14620.      time, so that windows associated with those maps dis-
  14621.      play with correct colors.
  14622.  
  14623. Connection
  14624.  
  14625.      The interprocess communication path between the server
  14626.      and client program is known as a connection.  A client
  14627.      program typically (but not necessarily) has one connec-
  14628.      tion to the server over which requests and events are
  14629.      sent.
  14630.  
  14631. Containment
  14632.  
  14633.      A window ``contains'' the pointer if the window is
  14634.      viewable and the hotspot of the cursor is within a vis-
  14635.      ible region of the window or a visible region of one of
  14636.      its inferiors.  The border of the window is included as
  14637.      part of the window for containment.  The pointer is
  14638.      ``in'' a window if the window contains the pointer but
  14639.      no inferior contains the pointer.
  14640.  
  14641.  
  14642.  
  14643.  
  14644.  
  14645.  
  14646.  
  14647.  
  14648.  
  14649.  
  14650.                  218
  14651.  
  14652.  
  14653.  
  14654.  
  14655.  
  14656. X Protocol                    X11, Release 6.4
  14657.  
  14658.  
  14659. Coordinate system
  14660.  
  14661.      The coordinate system has the X axis horizontal and the
  14662.      Y axis vertical, with the origin [0, 0] at the upper
  14663.      left.  Coordinates are integral, in terms of pixels,
  14664.      and coincide with pixel centers.  Each window and
  14665.      pixmap has its own coordinate system.  For a window,
  14666.      the origin is inside the border at the inside upper
  14667.      left.
  14668.  
  14669. Cursor
  14670.  
  14671.      A cursor is the visible shape of the pointer on a
  14672.      screen.  It consists of a hot spot, a source bitmap, a
  14673.      shape bitmap, and a pair of colors.  The cursor defined
  14674.      for a window controls the visible appearance when the
  14675.      pointer is in that window.
  14676.  
  14677. Depth
  14678.  
  14679.      The depth of a window or pixmap is the number of bits
  14680.      per pixel that it has.  The depth of a graphics context
  14681.      is the depth of the drawables it can be used in con-
  14682.      junction with for graphics output.
  14683.  
  14684. Device
  14685.  
  14686.      Keyboards, mice, tablets, track-balls, button boxes,
  14687.      and so on are all collectively known as input devices.
  14688.      The core protocol only deals with two devices, ``the
  14689.      keyboard'' and ``the pointer.''
  14690.  
  14691. DirectColor
  14692.  
  14693.      DirectColor is a class of colormap in which a pixel
  14694.      value is decomposed into three separate subfields for
  14695.      indexing.    The first subfield indexes an array to pro-
  14696.      duce red intensity values.  The second subfield indexes
  14697.      a second array to produce blue intensity values.  The
  14698.      third subfield indexes a third array to produce green
  14699.      intensity values.    The RGB values can be changed dynam-
  14700.      ically.
  14701.  
  14702. Display
  14703.  
  14704.      A server, together with its screens and input devices,
  14705.      is called a display.
  14706.  
  14707.  
  14708.  
  14709.  
  14710.  
  14711.  
  14712.  
  14713.  
  14714.  
  14715.  
  14716.                  219
  14717.  
  14718.  
  14719.  
  14720.  
  14721.  
  14722. X Protocol                    X11, Release 6.4
  14723.  
  14724.  
  14725. Drawable
  14726.  
  14727.      Both windows and pixmaps can be used as sources and
  14728.      destinations in graphics operations.  These windows and
  14729.      pixmaps are collectively known as drawables.  However,
  14730.      an InputOnly window cannot be used as a source or des-
  14731.      tination in a graphics operation.
  14732.  
  14733. Event
  14734.  
  14735.      Clients are informed of information asynchronously by
  14736.      means of events.  These events can be generated either
  14737.      asynchronously from devices or as side effects of
  14738.      client requests.  Events are grouped into types.  The
  14739.      server never sends events to a client unless the client
  14740.      has specificially asked to be informed of that type of
  14741.      event.  However, other clients can force events to be
  14742.      sent to other clients.  Events are typically reported
  14743.      relative to a window.
  14744.  
  14745. Event mask
  14746.  
  14747.      Events are requested relative to a window.  The set of
  14748.      event types that a client requests relative to a window
  14749.      is described by using an event mask.
  14750.  
  14751. Event synchronization
  14752.  
  14753.      There are certain race conditions possible when demul-
  14754.      tiplexing device events to clients (in particular
  14755.      deciding where pointer and keyboard events should be
  14756.      sent when in the middle of window management opera-
  14757.      tions).  The event synchronization mechanism allows
  14758.      synchronous processing of device events.
  14759.  
  14760. Event propagation
  14761.  
  14762.      Device-related events propagate from the source window
  14763.      to ancestor windows until some client has expressed
  14764.      interest in handling that type of event or until the
  14765.      event is discarded explicitly.
  14766.  
  14767. Event source
  14768.  
  14769.      The window the pointer is in is the source of a device-
  14770.      related event.
  14771.  
  14772. Exposure event
  14773.  
  14774.      Servers do not guarantee to preserve the contents of
  14775.      windows when windows are obscured or reconfigured.
  14776.      Exposure events are sent to clients to inform them when
  14777.      contents of regions of windows have been lost.
  14778.  
  14779.  
  14780.  
  14781.  
  14782.                  220
  14783.  
  14784.  
  14785.  
  14786.  
  14787.  
  14788. X Protocol                    X11, Release 6.4
  14789.  
  14790.  
  14791. Extension
  14792.  
  14793.      Named extensions to the core protocol can be defined to
  14794.      extend the system.  Extension to output requests,
  14795.      resources, and event types are all possible and are
  14796.      expected.
  14797.  
  14798. Focus window
  14799.  
  14800.      The focus window is another term for the input focus.
  14801.  
  14802. Font
  14803.  
  14804.      A font is a matrix of glyphs (typically characters).
  14805.      The protocol does no translation or interpretation of
  14806.      character sets.  The client simply indicates values
  14807.      used to index the glyph array.  A font contains addi-
  14808.      tional metric information to determine interglyph and
  14809.      interline spacing.
  14810.  
  14811. GC, GContext
  14812.  
  14813.      GC and gcontext are abbreviations for graphics context.
  14814.  
  14815. Glyph
  14816.  
  14817.      A glyph is an image, typically of a character, in a
  14818.      font.
  14819.  
  14820. Grab
  14821.  
  14822.      Keyboard keys, the keyboard, pointer buttons, the
  14823.      pointer, and the server can be grabbed for exclusive
  14824.      use by a client.  In general, these facilities are not
  14825.      intended to be used by normal applications but are
  14826.      intended for various input and window managers to
  14827.      implement various styles of user interfaces.
  14828.  
  14829. Graphics context
  14830.  
  14831.      Various information for graphics output is stored in a
  14832.      graphics context such as foreground pixel, background
  14833.      pixel, line width, clipping region, and so on.  A
  14834.      graphics context can only be used with drawables that
  14835.      have the same root and the same depth as the graphics
  14836.      context.
  14837.  
  14838. Gravity
  14839.  
  14840.      See bit gravity and window gravity.
  14841.  
  14842.  
  14843.  
  14844.  
  14845.  
  14846.  
  14847.  
  14848.                  221
  14849.  
  14850.  
  14851.  
  14852.  
  14853.  
  14854. X Protocol                    X11, Release 6.4
  14855.  
  14856.  
  14857. GrayScale
  14858.  
  14859.      GrayScale can be viewed as a degenerate case of
  14860.      PseudoColor, in which the red, green, and blue values
  14861.      in any given colormap entry are equal, thus producing
  14862.      shades of gray.  The gray values can be changed dynami-
  14863.      cally.
  14864.  
  14865. Hotspot
  14866.  
  14867.      A cursor has an associated hotspot that defines the
  14868.      point in the cursor corresponding to the coordinates
  14869.      reported for the pointer.
  14870.  
  14871. Identifier
  14872.  
  14873.      An identifier is a unique value associated with a
  14874.      resource that clients use to name that resource.  The
  14875.      identifier can be used over any connection.
  14876.  
  14877. Inferiors
  14878.  
  14879.      The inferiors of a window are all of the subwindows
  14880.      nested below it: the children, the children's children,
  14881.      and so on.
  14882.  
  14883. Input focus
  14884.  
  14885.      The input focus is normally a window defining the scope
  14886.      for processing of keyboard input.    If a generated key-
  14887.      board event would normally be reported to this window
  14888.      or one of its inferiors, the event is reported nor-
  14889.      mally.  Otherwise, the event is reported with respect
  14890.      to the focus window.  The input focus also can be set
  14891.      such that all keyboard events are discarded and such
  14892.      that the focus window is dynamically taken to be the
  14893.      root window of whatever screen the pointer is on at
  14894.      each keyboard event.
  14895.  
  14896. Input manager
  14897.  
  14898.      Control over keyboard input is typically provided by an
  14899.      input manager client.
  14900.  
  14901. InputOnly window
  14902.  
  14903.      An InputOnly window is a window that cannot be used for
  14904.      graphics requests.  InputOnly windows are invisible and
  14905.      can be used to control such things as cursors, input
  14906.      event generation, and grabbing.  InputOnly windows can-
  14907.      not have InputOutput windows as inferiors.
  14908.  
  14909.  
  14910.  
  14911.  
  14912.  
  14913.  
  14914.                  222
  14915.  
  14916.  
  14917.  
  14918.  
  14919.  
  14920. X Protocol                    X11, Release 6.4
  14921.  
  14922.  
  14923. InputOutput window
  14924.  
  14925.      An InputOutput window is the normal kind of opaque win-
  14926.      dow, used for both input and output.  InputOutput win-
  14927.      dows can have both InputOutput and InputOnly windows as
  14928.      inferiors.
  14929.  
  14930. Key grabbing
  14931.  
  14932.      Keys on the keyboard can be passively grabbed by a
  14933.      client.  When the key is pressed, the keyboard is then
  14934.      actively grabbed by the client.
  14935.  
  14936. Keyboard grabbing
  14937.  
  14938.      A client can actively grab control of the keyboard, and
  14939.      key events will be sent to that client rather than the
  14940.      client the events would normally have been sent to.
  14941.  
  14942. Keysym
  14943.  
  14944.      An encoding of a symbol on a keycap on a keyboard.
  14945.  
  14946. Mapped
  14947.  
  14948.      A window is said to be mapped if a map call has been
  14949.      performed on it.  Unmapped windows and their inferiors
  14950.      are never viewable or visible.
  14951.  
  14952. Modifier keys
  14953.  
  14954.      Shift, Control, Meta, Super, Hyper, Alt, Compose,
  14955.      Apple, CapsLock, ShiftLock, and similar keys are called
  14956.      modifier keys.
  14957.  
  14958. Monochrome
  14959.  
  14960.      Monochrome is a special case of StaticGray in which
  14961.      there are only two colormap entries.
  14962.  
  14963. Obscure
  14964.  
  14965.      A window is obscured if some other window obscures it.
  14966.      Window A obscures window B if both are viewable
  14967.      InputOutput windows, A is higher in the global stacking
  14968.      order, and the rectangle defined by the outside edges
  14969.      of A intersects the rectangle defined by the outside
  14970.      edges of B.  Note the distinction between obscure and
  14971.      occludes.    Also note that window borders are included
  14972.      in the calculation and that a window can be obscured
  14973.      and yet still have visible regions.
  14974.  
  14975.  
  14976.  
  14977.  
  14978.  
  14979.  
  14980.                  223
  14981.  
  14982.  
  14983.  
  14984.  
  14985.  
  14986. X Protocol                    X11, Release 6.4
  14987.  
  14988.  
  14989. Occlude
  14990.  
  14991.      A window is occluded if some other window occludes it.
  14992.      Window A occludes window B if both are mapped, A is
  14993.      higher in the global stacking order, and the rectangle
  14994.      defined by the outside edges of A intersects the rect-
  14995.      angle defined by the outside edges of B.  Note the dis-
  14996.      tinction between occludes and obscures.  Also note that
  14997.      window borders are included in the calculation.
  14998.  
  14999. Padding
  15000.  
  15001.      Some padding bytes are inserted in the data stream to
  15002.      maintain alignment of the protocol requests on natural
  15003.      boundaries.  This increases ease of portability to some
  15004.      machine architectures.
  15005.  
  15006. Parent window
  15007.  
  15008.      If C is a child of P, then P is the parent of C.
  15009.  
  15010. Passive grab
  15011.  
  15012.      Grabbing a key or button is a passive grab.  The grab
  15013.      activates when the key or button is actually pressed.
  15014.  
  15015. Pixel value
  15016.  
  15017.      A pixel is an N-bit value, where N is the number of bit
  15018.      planes used in a particular window or pixmap (that is,
  15019.      N is the depth of the window or pixmap).  For a window,
  15020.      a pixel value indexes a colormap to derive an actual
  15021.      color to be displayed.
  15022.  
  15023. Pixmap
  15024.  
  15025.      A pixmap is a three-dimensional array of bits.  A
  15026.      pixmap is normally thought of as a two-dimensional
  15027.      array of pixels, where each pixel can be a value from 0
  15028.      to (2^N)-1 and where N is the depth (z axis) of the
  15029.      pixmap.  A pixmap can also be thought of as a stack of
  15030.      N bitmaps.
  15031.  
  15032. Plane
  15033.  
  15034.      When a pixmap or window is thought of as a stack of
  15035.      bitmaps, each bitmap is called a plane or bit plane.
  15036.  
  15037.  
  15038.  
  15039.  
  15040.  
  15041.  
  15042.  
  15043.  
  15044.  
  15045.  
  15046.                  224
  15047.  
  15048.  
  15049.  
  15050.  
  15051.  
  15052. X Protocol                    X11, Release 6.4
  15053.  
  15054.  
  15055. Plane mask
  15056.  
  15057.      Graphics operations can be restricted to only affect a
  15058.      subset of bit planes of a destination.  A plane mask is
  15059.      a bit mask describing which planes are to be modified.
  15060.      The plane mask is stored in a graphics context.
  15061.  
  15062. Pointer
  15063.  
  15064.      The pointer is the pointing device attached to the cur-
  15065.      sor and tracked on the screens.
  15066.  
  15067. Pointer grabbing
  15068.  
  15069.      A client can actively grab control of the pointer.
  15070.      Then button and motion events will be sent to that
  15071.      client rather than the client the events would normally
  15072.      have been sent to.
  15073.  
  15074. Pointing device
  15075.  
  15076.      A pointing device is typically a mouse, tablet, or some
  15077.      other device with effective dimensional motion.  There
  15078.      is only one visible cursor defined by the core proto-
  15079.      col, and it tracks whatever pointing device is attached
  15080.      as the pointer.
  15081.  
  15082. Property
  15083.  
  15084.      Windows may have associated properties, which consist
  15085.      of a name, a type, a data format, and some data.  The
  15086.      protocol places no interpretation on properties.  They
  15087.      are intended as a general-purpose naming mechanism for
  15088.      clients.  For example, clients might use properties to
  15089.      share information such as resize hints, program names,
  15090.      and icon formats with a window manager.
  15091.  
  15092. Property list
  15093.  
  15094.      The property list of a window is the list of properties
  15095.      that have been defined for the window.
  15096.  
  15097. PseudoColor
  15098.  
  15099.      PseudoColor is a class of colormap in which a pixel
  15100.      value indexes the colormap to produce independent red,
  15101.      green, and blue values; that is, the colormap is viewed
  15102.      as an array of triples (RGB values).  The RGB values
  15103.      can be changed dynamically.
  15104.  
  15105.  
  15106.  
  15107.  
  15108.  
  15109.  
  15110.  
  15111.  
  15112.                  225
  15113.  
  15114.  
  15115.  
  15116.  
  15117.  
  15118. X Protocol                    X11, Release 6.4
  15119.  
  15120.  
  15121. Redirecting control
  15122.  
  15123.      Window managers (or client programs) may want to
  15124.      enforce window layout policy in various ways.  When a
  15125.      client attempts to change the size or position of a
  15126.      window, the operation may be redirected to a specified
  15127.      client rather than the operation actually being per-
  15128.      formed.
  15129.  
  15130. Reply
  15131.  
  15132.      Information requested by a client program is sent back
  15133.      to the client with a reply.  Both events and replies
  15134.      are multiplexed on the same connection.  Most requests
  15135.      do not generate replies, although some requests gener-
  15136.      ate multiple replies.
  15137.  
  15138. Request
  15139.  
  15140.      A command to the server is called a request.  It is a
  15141.      single block of data sent over a connection.
  15142.  
  15143. Resource
  15144.  
  15145.      Windows, pixmaps, cursors, fonts, graphics contexts,
  15146.      and colormaps are known as resources.  They all have
  15147.      unique identifiers associated with them for naming pur-
  15148.      poses.  The lifetime of a resource usually is bounded
  15149.      by the lifetime of the connection over which the
  15150.      resource was created.
  15151.  
  15152. RGB values
  15153.  
  15154.      Red, green, and blue (RGB) intensity values are used to
  15155.      define color.  These values are always represented as
  15156.      16-bit unsigned numbers, with 0 being the minimum
  15157.      intensity and 65535 being the maximum intensity.  The
  15158.      server scales the values to match the display hardware.
  15159.  
  15160. Root
  15161.  
  15162.      The root of a pixmap, colormap, or graphics context is
  15163.      the same as the root of whatever drawable was used when
  15164.      the pixmap, colormap, or graphics context was created.
  15165.      The root of a window is the root window under which the
  15166.      window was created.
  15167.  
  15168. Root window
  15169.  
  15170.      Each screen has a root window covering it.  It cannot
  15171.      be reconfigured or unmapped, but it otherwise acts as a
  15172.      full-fledged window.  A root window has no parent.
  15173.  
  15174.  
  15175.  
  15176.  
  15177.  
  15178.                  226
  15179.  
  15180.  
  15181.  
  15182.  
  15183.  
  15184. X Protocol                    X11, Release 6.4
  15185.  
  15186.  
  15187. Save set
  15188.  
  15189.      The save set of a client is a list of other clients'
  15190.      windows that, if they are inferiors of one of the
  15191.      client's windows at connection close, should not be
  15192.      destroyed and that should be remapped if currently
  15193.      unmapped.    Save sets are typically used by window man-
  15194.      agers to avoid lost windows if the manager terminates
  15195.      abnormally.
  15196.  
  15197. Scanline
  15198.  
  15199.      A scanline is a list of pixel or bit values viewed as a
  15200.      horizontal row (all values having the same y coordi-
  15201.      nate) of an image, with the values ordered by increas-
  15202.      ing x coordinate.
  15203.  
  15204. Scanline order
  15205.  
  15206.      An image represented in scanline order contains scan-
  15207.      lines ordered by increasing y coordinate.
  15208.  
  15209. Screen
  15210.  
  15211.      A server can provide several independent screens, which
  15212.      typically have physically independent monitors.  This
  15213.      would be the expected configuration when there is only
  15214.      a single keyboard and pointer shared among the screens.
  15215.  
  15216. Selection
  15217.  
  15218.      A selection can be thought of as an indirect property
  15219.      with dynamic type; that is, rather than having the
  15220.      property stored in the server, it is maintained by some
  15221.      client (the ``owner'').  A selection is global in
  15222.      nature and is thought of as belonging to the user
  15223.      (although maintained by clients), rather than as being
  15224.      private to a particular window subhierarchy or a par-
  15225.      ticular set of clients.  When a client asks for the
  15226.      contents of a selection, it specifies a selection
  15227.      ``target type''.  This target type can be used to con-
  15228.      trol the transmitted representation of the contents.
  15229.      For example, if the selection is ``the last thing the
  15230.      user clicked on'' and that is currently an image, then
  15231.      the target type might specify whether the contents of
  15232.      the image should be sent in XY format or Z format.  The
  15233.      target type can also be used to control the class of
  15234.      contents transmitted; for example, asking for the
  15235.      ``looks'' (fonts, line spacing, indentation, and so on)
  15236.      of a paragraph selection rather than the text of the
  15237.      paragraph.  The target type can also be used for other
  15238.      purposes.    The protocol does not constrain the seman-
  15239.      tics.
  15240.  
  15241.  
  15242.  
  15243.  
  15244.                  227
  15245.  
  15246.  
  15247.  
  15248.  
  15249.  
  15250. X Protocol                    X11, Release 6.4
  15251.  
  15252.  
  15253. Server
  15254.  
  15255.      The server provides the basic windowing mechanism.  It
  15256.      handles connections from clients, multiplexes graphics
  15257.      requests onto the screens, and demultiplexes input back
  15258.      to the appropriate clients.
  15259.  
  15260. Server grabbing
  15261.  
  15262.      The server can be grabbed by a single client for exclu-
  15263.      sive use.    This prevents processing of any requests
  15264.      from other client connections until the grab is com-
  15265.      pleted.  This is typically only a transient state for
  15266.      such things as rubber-banding, pop-up menus, or to exe-
  15267.      cute requests indivisibly.
  15268.  
  15269. Sibling
  15270.  
  15271.      Children of the same parent window are known as sibling
  15272.      windows.
  15273.  
  15274. Stacking order
  15275.  
  15276.      Sibling windows may stack on top of each other.  Win-
  15277.      dows above other windows both obscure and occlude those
  15278.      lower windows.  This is similar to paper on a desk.
  15279.      The relationship between sibling windows is known as
  15280.      the stacking order.
  15281.  
  15282. StaticColor
  15283.  
  15284.      StaticColor can be viewed as a degenerate case of Pseu-
  15285.      doColor in which the RGB values are predefined and
  15286.      read-only.
  15287.  
  15288. StaticGray
  15289.  
  15290.      StaticGray can be viewed as a degenerate case of
  15291.      GrayScale in which the gray values are predefined and
  15292.      read-only.  The values are typically linear or near-
  15293.      linear increasing ramps.
  15294.  
  15295. Stipple
  15296.  
  15297.      A stipple pattern is a bitmap that is used to tile a
  15298.      region that will serve as an additional clip mask for a
  15299.      fill operation with the foreground color.
  15300.  
  15301.  
  15302.  
  15303.  
  15304.  
  15305.  
  15306.  
  15307.  
  15308.  
  15309.  
  15310.                  228
  15311.  
  15312.  
  15313.  
  15314.  
  15315.  
  15316. X Protocol                    X11, Release 6.4
  15317.  
  15318.  
  15319. String Equivalence
  15320.  
  15321.      Two ISO Latin-1 STRING8 values are considered equal if
  15322.      they are the same length and if corresponding bytes are
  15323.      either equal or are equivalent as follows:  decimal
  15324.      values 65 to 90 inclusive (characters ``A'' to ``Z'')
  15325.      are pairwise equivalent to decimal values 97 to 122
  15326.      inclusive (characters ``a'' to ``z''), decimal values
  15327.      192 to 214 inclusive (characters ``A grave'' to ``O
  15328.      diaeresis'') are pairwise equivalent to decimal values
  15329.      224 to 246 inclusive (characters ``a grave'' to ``o
  15330.      diaeresis''), and decimal values 216 to 222 inclusive
  15331.      (characters ``O oblique'' to ``THORN'') are pairwise
  15332.      equivalent to decimal values 246 to 254 inclusive
  15333.      (characters ``o oblique'' to ``thorn'').
  15334.  
  15335. Tile
  15336.  
  15337.      A pixmap can be replicated in two dimensions to tile a
  15338.      region.  The pixmap itself is also known as a tile.
  15339.  
  15340. Timestamp
  15341.  
  15342.      A timestamp is a time value, expressed in milliseconds.
  15343.      It typically is the time since the last server reset.
  15344.      Timestamp values wrap around (after about 49.7 days).
  15345.      The server, given its current time is represented by
  15346.      timestamp T, always interprets timestamps from clients
  15347.      by treating half of the timestamp space as being ear-
  15348.      lier in time than T and half of the timestamp space as
  15349.      being later in time than T.  One timestamp value (named
  15350.      CurrentTime) is never generated by the server.  This
  15351.      value is reserved for use in requests to represent the
  15352.      current server time.
  15353.  
  15354. TrueColor
  15355.  
  15356.      TrueColor can be viewed as a degenerate case of Direct-
  15357.      Color in which the subfields in the pixel value
  15358.      directly encode the corresponding RGB values; that is,
  15359.      the colormap has predefined read-only RGB values.    The
  15360.      values are typically linear or near-linear increasing
  15361.      ramps.
  15362.  
  15363. Type
  15364.  
  15365.      A type is an arbitrary atom used to identify the inter-
  15366.      pretation of property data.  Types are completely unin-
  15367.      terpreted by the server and are solely for the benefit
  15368.      of clients.
  15369.  
  15370.  
  15371.  
  15372.  
  15373.  
  15374.  
  15375.  
  15376.                  229
  15377.  
  15378.  
  15379.  
  15380.  
  15381.  
  15382. X Protocol                    X11, Release 6.4
  15383.  
  15384.  
  15385. Viewable
  15386.  
  15387.      A window is viewable if it and all of its ancestors are
  15388.      mapped.  This does not imply that any portion of the
  15389.      window is actually visible.  Graphics requests can be
  15390.      performed on a window when it is not viewable, but out-
  15391.      put will not be retained unless the server is maintain-
  15392.      ing backing store.
  15393.  
  15394. Visible
  15395.  
  15396.      A region of a window is visible if someone looking at
  15397.      the screen can actually see it; that is, the window is
  15398.      viewable and the region is not occluded by any other
  15399.      window.
  15400.  
  15401. Window gravity
  15402.  
  15403.      When windows are resized, subwindows may be reposi-
  15404.      tioned automatically relative to some position in the
  15405.      window.  This attraction of a subwindow to some part of
  15406.      its parent is known as window gravity.
  15407.  
  15408. Window manager
  15409.  
  15410.      Manipulation of windows on the screen and much of the
  15411.      user interface (policy) is typically provided by a win-
  15412.      dow manager client.
  15413.  
  15414. XYFormat
  15415.  
  15416.      The data for a pixmap is said to be in XY format if it
  15417.      is organized as a set of bitmaps representing individ-
  15418.      ual bit planes, with the planes appearing from most-
  15419.      significant to least-significant in bit order.
  15420.  
  15421. ZFormat
  15422.  
  15423.      The data for a pixmap is said to be in Z format if it
  15424.      is organized as a set of pixel values in scanline
  15425.      order.
  15426.  
  15427.  
  15428.  
  15429.  
  15430.  
  15431.  
  15432.  
  15433.  
  15434.  
  15435.  
  15436.  
  15437.  
  15438.  
  15439.  
  15440.  
  15441.  
  15442.                  230
  15443.  
  15444.  
  15445.  
  15446.  
  15447.  
  15448. X Protocol                    X11, Release 6.4
  15449.  
  15450.  
  15451.  
  15452.              Table of Contents
  15453.  
  15454.  
  15455. Acknowledgments  . . . . . . . . . . . . . . . . . . . . iii
  15456. 1. Protocol Formats  . . . . . . . . . . . . . . . . . .   1
  15457. 2. Syntactic Conventions . . . . . . . . . . . . . . . .   2
  15458. 3. Common Types  . . . . . . . . . . . . . . . . . . . .   3
  15459. 4. Errors  . . . . . . . . . . . . . . . . . . . . . . .   5
  15460. 5. Keyboards . . . . . . . . . . . . . . . . . . . . . .   8
  15461. 6. Pointers  . . . . . . . . . . . . . . . . . . . . . .  10
  15462. 7. Predefined Atoms  . . . . . . . . . . . . . . . . . .  10
  15463. 8. Connection Setup  . . . . . . . . . . . . . . . . . .  11
  15464. 9. Requests  . . . . . . . . . . . . . . . . . . . . . .  17
  15465. 10. Connection Close . . . . . . . . . . . . . . . . . . 104
  15466. 11. Events . . . . . . . . . . . . . . . . . . . . . . . 105
  15467. 12. Flow Control and Concurrency . . . . . . . . . . . . 122
  15468. Appendix A - KEYSYM Encoding . . . . . . . . . . . . . . 123
  15469. Appendix B - Protocol Encoding . . . . . . . . . . . . . 151
  15470. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 216
  15471. Index  . . . . . . . . . . . . . . . . . . . . . . . . . 231
  15472.  
  15473.  
  15474.  
  15475.  
  15476.  
  15477.  
  15478.  
  15479.  
  15480.  
  15481.  
  15482.  
  15483.  
  15484.  
  15485.  
  15486.  
  15487.  
  15488.  
  15489.  
  15490.  
  15491.  
  15492.  
  15493.  
  15494.  
  15495.  
  15496.  
  15497.  
  15498.  
  15499.  
  15500.  
  15501.  
  15502.  
  15503.  
  15504.  
  15505.  
  15506.  
  15507.  
  15508.  
  15509.  
  15510.  
  15511.