[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/xelb 1f9470c 01/42: First commit
From: |
Chris Feng |
Subject: |
[elpa] externals/xelb 1f9470c 01/42: First commit |
Date: |
Thu, 17 Sep 2015 23:16:36 +0000 |
branch: externals/xelb
commit 1f9470c57081da9bc3bece5810bfb62c22e2abaa
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
First commit
---
COPYING | 674 +++++++++++++
Makefile | 32 +
README | 9 +
el_client.el | 578 +++++++++++
xcb-bigreq.el | 21 +
xcb-composite.el | 87 ++
xcb-damage.el | 83 ++
xcb-dpms.el | 79 ++
xcb-dri2.el | 273 +++++
xcb-dri3.el | 86 ++
xcb-ge.el | 25 +
xcb-glx.el | 1681 +++++++++++++++++++++++++++++++
xcb-present.el | 206 ++++
xcb-randr.el | 946 +++++++++++++++++
xcb-record.el | 181 ++++
xcb-render.el | 729 ++++++++++++++
xcb-res.el | 156 +++
xcb-screensaver.el | 134 +++
xcb-shape.el | 152 +++
xcb-shm.el | 137 +++
xcb-sync.el | 296 ++++++
xcb-types.el | 625 ++++++++++++
xcb-xc_misc.el | 48 +
xcb-xevie.el | 70 ++
xcb-xf86dri.el | 170 ++++
xcb-xf86vidmode.el | 517 ++++++++++
xcb-xfixes.el | 396 ++++++++
xcb-xinerama.el | 86 ++
xcb-xinput.el | 2770 ++++++++++++++++++++++++++++++++++++++++++++++++++
xcb-xkb.el | 2246 +++++++++++++++++++++++++++++++++++++++++
xcb-xprint.el | 354 +++++++
xcb-xproto.el | 2848 ++++++++++++++++++++++++++++++++++++++++++++++++++++
xcb-xselinux.el | 333 ++++++
xcb-xtest.el | 58 ++
xcb-xv.el | 474 +++++++++
xcb-xvmc.el | 151 +++
xcb.el | 682 +++++++++++++
37 files changed, 18393 insertions(+), 0 deletions(-)
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9b2fe7d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,32 @@
+PROTO_PATH := ../xcb-proto/src
+
+EMACS_BIN := emacs -Q
+
+EXTENSIONS := bigreq dpms ge present render shape xf86dri xinerama xprint \
+xtest composite dri2 glx randr res shm xc_misc xf86vidmode xinput xvmc \
+damage dri3 record screensaver sync xevie xfixes xkb xselinux xv
+# EXTENSIONS := render randr xkb
+
+LIBS = xcb-xproto.el $(addprefix xcb-,$(addsuffix .el,$(EXTENSIONS)))
+
+all: clean $(LIBS)
+
+xcb-%.el: $(PROTO_PATH)/%.xml
+ @echo -n "\n"Generating address@hidden
+ @$(EMACS_BIN) --script ./el_client.el $< > $@
+
+xcb-composite.el: xcb-xfixes.el
+xcb-damage.el: xcb-xfixes.el
+xcb-xvmc.el: xcb-xv.el
+xcb-randr.el: xcb-render.el
+xcb-xfixes.el: xcb-render.el xcb-shape.el
+xcb-present.el: xcb-randr.el
+xcb-present.el: xcb-xfixes.el
+xcb-present.el: xcb-sync.el
+xcb-xv.el: xcb-shm.el
+xcb-xinput.el: xcb-xfixes.el
+
+.PHONY: clean
+
+clean:
+ @rm -vf $(LIBS)
diff --git a/README b/README
new file mode 100644
index 0000000..5d87558
--- /dev/null
+++ b/README
@@ -0,0 +1,9 @@
+X protocol Emacs Lisp Binding
+=============================
+
+XELB (X protocol Emacs Lisp Binding) is a pure Elisp implementation of the X
+protocol based on the XML description files from XCB project. It features an
+object-oriented API and permits a certain degree of concurrency.
+
+While XELB is developed and tested on Emacs 25, it should also work on recent
+versions of Emacs 24.
diff --git a/el_client.el b/el_client.el
new file mode 100644
index 0000000..66d7a89
--- /dev/null
+++ b/el_client.el
@@ -0,0 +1,578 @@
+;;; el_client.el --- XELB Code Generator -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 Chris Feng
+
+;; Author: Chris Feng <address@hidden>
+;; Keywords: unix
+
+;; This file is not part of GNU Emacs.
+
+;; This file is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this file. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; el_client is responsible for converting XCB XML description files into Elisp
+;; libraries. Here are a few design guidelines:
+;; + The generated codes should be human-readable and conform to the Elisp
+;; coding conventions. Names mentioned in X specifications are preferred.
+;; + Deprecated features such as <valueparam> should be dropped, for
+;; - they would generate incompatible codes, and
+;; - they are probably already dropped upstream.
+;; + All documentations (within <doc> tags) and comments should be stripped
+;; out to reduce the overall amount of code. XELB application developers are
+;; then encouraged to refer to the corresponding specifications to get an
+;; authoritative explanation.
+
+;; This file is only intended to be run as a script.
+
+;; References:
+;; + xcb/proto (git://anongit.freedesktop.org/xcb/proto)
+
+;;; Code:
+
+(require 'cl-lib)
+
+(setq pp-escape-newlines nil)
+
+;;;; Variables
+
+(defvar prefix "xcb:" "Namespace of this module.")
+(make-variable-buffer-local 'prefix)
+
+(defvar error-alist nil "Record X errors in this module.")
+(make-variable-buffer-local 'error-alist)
+
+(defvar event-alist nil "Record X events in this module.")
+(make-variable-buffer-local 'event-alist)
+
+;;;; Helper functions
+
+(defsubst node-name (node)
+ "Return the tag name of node NODE."
+ (car node))
+
+(defsubst node-attr (node attr)
+ "Return the attribute ATTR of node NODE."
+ (cdr (assoc attr (cadr node))))
+
+(defsubst escape-name (name)
+ "Replace underscores in NAME with dashes."
+ (replace-regexp-in-string "_" "-" name))
+
+(defsubst node-name-escape (node)
+ "Return the tag name of node NODE and escape it."
+ (escape-name (node-name node)))
+
+(defsubst node-attr-escape (node attr)
+ "Return the attribute ATTR of node NODE and escape it."
+ (escape-name (node-attr node attr)))
+
+(defsubst node-subnodes (node)
+ "Return all the subnodes of node NODE as a list."
+ (cddr node))
+
+(defsubst node-subnode (node)
+ "Return the (only) subnode of node NODE with useless contents skipped."
+ (let ((result (node-subnodes node)))
+ (catch 'break
+ (dolist (i result)
+ (unless (and (listp i)
+ (or (eq (node-name i) 'comment) (eq (node-name i) 'doc)))
+ (throw 'break i))))))
+
+;;;; Entry & root element
+
+(defun parse (file)
+ "Parse an XCB protocol description file FILE (XML)."
+ (let (result header)
+ (with-temp-buffer
+ (insert-file-contents file)
+ (setq result (libxml-parse-xml-region (point-min) (point-max) nil t))
+ (cl-assert (eq 'xcb (node-name result)))
+ (setq header (node-attr result 'header))
+ (unless (string= header "xproto")
+ (setq prefix (concat prefix header ":")))
+ ;; Print header
+ (princ (format "\
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `%s' by `el_client.el'.
+\n(require 'xcb-types)\n\n" (file-name-nondirectory file)))
+ ;; Print extension info (if any)
+ (let ((extension-xname (node-attr result 'extension-xname))
+ (extension-name (node-attr result 'extension-name))
+ (major-version (node-attr result 'major-version))
+ (minor-version (node-attr result 'minor-version)))
+ (when extension-xname
+ (pp `(defconst ,(intern (concat prefix "-extension-xname"))
+ ,extension-xname)))
+ (when extension-name
+ (pp `(defconst ,(intern (concat prefix "-extension-name"))
+ ,extension-name)))
+ (when major-version
+ (pp `(defconst ,(intern (concat prefix "-major-version"))
+ ,(string-to-number major-version))))
+ (when minor-version
+ (pp `(defconst ,(intern (concat prefix "-minor-version"))
+ ,(string-to-number minor-version))))
+ (when (or extension-xname extension-name major-version minor-version)
+ (princ "\n")))
+ ;; Print contents
+ (dolist (i (node-subnodes result))
+ (let ((result (parse-top-level-element i)))
+ (when result ;skip <doc>, comments, etc
+ (dolist (j result)
+ (pp j))
+ (princ "\n"))))
+ ;; Print error/event alists
+ (when error-alist
+ (pp `(defconst ,(intern (concat prefix "error-number-class-alist"))
+ ',error-alist "(error-number . error-class) alist"))
+ (princ "\n"))
+ (when event-alist
+ (pp `(defconst ,(intern (concat prefix "event-number-class-alist"))
+ ',event-alist "(event-number . event-class) alist"))
+ (princ "\n"))
+ ;; Print footer
+ (princ (format "\n\n(provide 'xcb-%s)\n" header)))))
+
+;;;; XCB: top-level elements
+
+(defun parse-top-level-element (node)
+ "Parse a top-level element."
+ (pcase (node-name node)
+ (`import (parse-import node))
+ (`struct (parse-struct node))
+ (`union (parse-union node))
+ ((or `xidtype `xidunion)
+ (parse-xidtype node)) ;they are basically the same
+ (`enum (parse-enum node))
+ (`typedef (parse-typedef node))
+ (`request (parse-request node))
+ (`event (parse-event node))
+ (`error (parse-error node))
+ (`eventcopy (parse-eventcopy node))
+ (`errorcopy (parse-errorcopy node))
+ ((or `comment `doc)) ;ignored
+ (x (error "Unsupported top-level element: <%s>" x))))
+
+(defun parse-import (node)
+ "Parse <import>."
+ (let ((header (intern (concat "xcb-" (node-subnode node)))))
+ (require header)
+ `((require ',header))))
+
+(defun parse-struct (node)
+ "Parse <struct>."
+ (let ((name (intern (concat prefix (node-attr node 'name))))
+ (contents (node-subnodes node))
+ (pad-count 0)
+ result)
+ (setq contents
+ (apply 'nconc
+ (mapcar (lambda (i)
+ (setq result (parse-structure-content i))
+ (when (eq (node-name i) 'pad) ;rename pad~
+ (setq result
+ `((,(intern (format "pad~%d" pad-count))
+ ,@(cdar result))))
+ (setq pad-count (1+ pad-count)))
+ result)
+ contents)))
+ `((defclass ,name (xcb:-struct) ,contents))))
+
+(defun parse-union (node)
+ "Parse <union>."
+ (let ((name (intern (concat prefix (node-attr node 'name))))
+ (contents (node-subnodes node)))
+ (setq contents
+ (apply 'nconc
+ (mapcar (lambda (i)
+ (parse-structure-content i))
+ contents)))
+ `((defclass ,name (xcb:-union) ,contents))))
+
+(defun parse-xidtype (node)
+ "Parse <xidtype>."
+ (let ((name (intern (concat prefix (node-attr node 'name)))))
+ `((xcb:deftypealias ',name 'xcb:-u4))))
+
+(defun parse-enum (node)
+ "Parse <enum>."
+ (let ((name-prefix (concat prefix (node-attr node 'name) ":"))
+ (items (node-subnodes node))
+ (value 0))
+ (delq nil ;remove nil's produced by tags like <doc>
+ (mapcar (lambda (i)
+ (when (eq (node-name i) 'item) ;only handle <item> tags
+ (let* ((name (node-attr i 'name))
+ (name (intern (concat name-prefix name)))
+ (expression (node-subnode i)))
+ (if expression
+ (setq value (parse-expression expression))
+ (setq value (1+ value)))
+ `(defconst ,name ,value))))
+ items))))
+
+(defun parse-typedef (node)
+ "Parse <typedef>."
+ (let* ((oldname (node-attr node 'oldname))
+ (oldname (or (intern-soft (concat "xcb:" oldname))
+ (intern (concat prefix oldname))))
+ (newname (intern (concat prefix (node-attr node 'newname)))))
+ `((xcb:deftypealias ',newname ',oldname))))
+
+(defun parse-request (node)
+ "Parse <request>.
+
+The `combine-adjacent' attribute is simply ignored."
+ (let* ((name (intern (concat prefix (node-attr node 'name))))
+ (opcode (string-to-int (node-attr node 'opcode)))
+ (contents `((~opcode :initform ,opcode :type xcb:-u1)))
+ (subnodes (node-subnodes node))
+ (pad-count 0)
+ (reply-pad-count 0)
+ expressions
+ result reply-result reply-name reply-contents)
+ (dolist (i subnodes)
+ (if (not (eq (node-name i) 'reply))
+ (progn
+ (setq result (parse-structure-content i))
+ (pcase (node-name i)
+ (`pad ;rename pad~
+ (setq result
+ `((,(intern (format "pad~%d" pad-count))
+ ,@(cdar result))))
+ (setq pad-count (1+ pad-count))
+ (setq contents (nconc contents result)))
+ (`exprfield ;split into field and expression
+ (setq contents (nconc contents (list (car result))))
+ (setq expressions (nconc expressions (list (cadr result)))))
+ (_ (setq contents (nconc contents result)))))
+ ;; Parse <reply>
+ (setq reply-name
+ (intern (concat prefix (node-attr node 'name) "~reply")))
+ (setq reply-contents (node-subnodes i))
+ (setq reply-contents
+ (apply 'nconc
+ (mapcar (lambda (j)
+ (setq reply-result (parse-structure-content j))
+ (when (eq (node-name j) 'pad) ;rename pad~
+ (setq reply-result
+ `((,(intern (format "pad~%d"
+ reply-pad-count))
+ ,@(cdar reply-result))))
+ (setq reply-pad-count (1+ reply-pad-count)))
+ reply-result)
+ reply-contents)))))
+ (delq nil contents)
+ (delq nil
+ `((defclass ,name (xcb:-request) ,contents)
+ ;; The optional expressions
+ ,(when expressions
+ `(cl-defmethod xcb:marshal ((obj ,name) connection) nil
+ ,@expressions
+ (cl-call-next-method obj connection)))
+ ;; The optional reply body
+ ,(when reply-name
+ (delq nil reply-contents)
+ `(defclass ,reply-name (xcb:-reply) ,reply-contents))))))
+
+(defun parse-event (node)
+ "Parse <event>.
+
+The `no-sequence-number' is ignored here since it's only used for
+KeymapNotify event; instead, we handle this case in `xcb:unmarshal'."
+ (let ((name (intern (concat prefix (node-attr node 'name))))
+ (event-number (string-to-int (node-attr node 'number)))
+ (xge (node-attr node 'xge))
+ (contents (node-subnodes node))
+ (pad-count 0)
+ result)
+ (setq contents
+ (apply 'nconc
+ (mapcar (lambda (i)
+ (setq result (parse-structure-content i))
+ (when (eq (node-name i) 'pad) ;rename pad~
+ (setq result
+ `((,(intern (format "pad~%d" pad-count))
+ ,@(cdar result))))
+ (setq pad-count (1+ pad-count)))
+ result)
+ contents)))
+ (when xge ;generic event
+ (setq contents
+ (append
+ '((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16))
+ contents)))
+ (setq event-alist (nconc event-alist `((,event-number . ,name))))
+ `((defclass ,name (xcb:-event) ,contents))))
+
+(defun parse-error (node)
+ "Parse <error>."
+ (let ((name (intern (concat prefix (node-attr node 'name))))
+ (error-number (string-to-int (node-attr node 'number)))
+ (contents (node-subnodes node))
+ (pad-count 0)
+ result)
+ (setq contents
+ (apply 'nconc
+ (mapcar (lambda (i)
+ (setq result (parse-structure-content i))
+ (when (eq (node-name i) 'pad) ;rename pad~
+ (setq result
+ `((,(intern (format "pad~%d" pad-count))
+ ,@(cdar result))))
+ (setq pad-count (1+ pad-count)))
+ result)
+ contents)))
+ (setq error-alist (nconc error-alist `((,error-number . ,name))))
+ `((defclass ,name (xcb:-error) ,contents))))
+
+(defun parse-eventcopy (node)
+ "Parse <eventcopy>."
+ (let* ((name (intern (concat prefix (node-attr node 'name))))
+ (refname (node-attr node 'ref))
+ (refname (or (intern-soft (concat "xcb:" refname))
+ (intern (concat prefix refname))))
+ (event-number (string-to-int (node-attr node 'number))))
+ (setq event-alist (nconc event-alist `((,event-number . ,name))))
+ `((defclass ,name (xcb:-event ,refname) nil)))) ;shadow the method of ref
+
+(defun parse-errorcopy (node)
+ "Parse <errorcopy>."
+ (let* ((name (intern (concat prefix (node-attr node 'name))))
+ (refname (node-attr node 'ref))
+ (refname (or (intern-soft (concat "xcb:" refname))
+ (intern (concat prefix refname))))
+ (error-number (string-to-int (node-attr node 'number))))
+ (setq error-alist (nconc error-alist `((,error-number . ,name))))
+ `((defclass ,name (xcb:-error ,refname) nil)))) ;shadow the method of ref
+
+;;;; XCB: structure contents
+
+(defun parse-structure-content (node)
+ "Parse a structure content."
+ (pcase (node-name node)
+ (`pad (parse-pad node))
+ (`field (parse-field node))
+ (`fd (parse-fd node))
+ (`list (parse-list node))
+ (`exprfield (parse-exprfield node))
+ (`switch (parse-switch node))
+ ((or `comment `doc)) ;simply ignored
+ (x (error "Unsupported structure content: <%s>" x))))
+
+;; The car of the result shall be renamed to prevent duplication of slot names
+(defun parse-pad (node)
+ "Parse <pad>."
+ (let ((bytes (node-attr node 'bytes))
+ (align (node-attr node 'align)))
+ (if bytes
+ `((pad~ :initform ,(string-to-int bytes) :type xcb:-pad))
+ (if align
+ `((pad~ :initform ,(string-to-int align) :type xcb:-pad-align))
+ (error "Invalid <pad> field")))))
+
+(defun parse-field (node)
+ "Parse <field>."
+ (let* ((name (intern (node-attr-escape node 'name)))
+ (type (node-attr node 'type))
+ (type (or (intern-soft (concat "xcb:" type)) ;extension or xproto
+ (intern (concat prefix type)))))
+ `((,name :initarg ,(intern (concat ":" (symbol-name name))) :type ,type))))
+
+(defun parse-fd (node)
+ "Parse <fd>."
+ (let ((name (intern (node-attr-escape node 'name))))
+ `((,name :type xcb:-fd))))
+
+(defun parse-list (node)
+ "Parse <list>."
+ (let* ((name (intern (node-attr-escape node 'name)))
+ (name-alt (intern (concat (node-attr-escape node 'name) "~")))
+ (type (node-attr node 'type))
+ (type (or (intern-soft (concat "xcb:" type))
+ (intern (concat prefix type))))
+ (size (parse-expression (node-subnode node))))
+ `((,name :initarg ,(intern (concat ":" (symbol-name name)))
+ :type xcb:-ignore)
+ (,name-alt :initform '(name ,name type ,type size ,size)
+ :type xcb:-list))))
+
+;; The car of result is the field declaration, and the cadr is the expression
+;; to be evaluated.
+(defun parse-exprfield (node)
+ "Parse <exprfield>."
+ (let* ((name (intern (node-attr-escape node 'name)))
+ (type (node-attr node 'type))
+ (type (or (intern-soft (concat "xcb:" type))
+ (intern (concat prefix type))))
+ (value (parse-expression (node-subnode node))))
+ `((,name :type ,type)
+ (setf (slot-value obj ',name) ',value))))
+
+;; The only difference between <bitcase> and <case> is whether the `condition'
+;; is a list
+;; The name attribute of <bitcase> and <case> seems not useful here.
+(defun parse-switch (node)
+ "Parse <switch>."
+ (let ((name (intern (node-attr-escape node 'name)))
+ (expression (parse-expression (car (node-subnodes node))))
+ (cases (cdr (node-subnodes node)))
+ (pad-count 10) ;avoid naming duplication (as only one <swith> allowed)
+ fields fields-name)
+ ;; Avoid duplicated slot names by appending "*" if necessary
+ (let (names name)
+ (dolist (case cases)
+ (pcase (node-name case)
+ ((or `bitcase `case)
+ (dolist (field (node-subnodes case))
+ (pcase (node-name field)
+ ((or `enumref `pad `doc `comment))
+ (_
+ (setq name (node-attr field 'name))
+ (when (member name names)
+ (while (member name names)
+ (setq name (concat name "*")))
+ (setcdr (assoc 'name (cadr field)) name))
+ (cl-pushnew name names :test 'equal))))))))
+ (setq cases
+ (mapcar (lambda (i)
+ (let ((case-name (node-name i))
+ condition name-list tmp)
+ (when (or (eq case-name 'bitcase) (eq case-name 'case))
+ (dolist (j (node-subnodes i))
+ (pcase (node-name j)
+ (`enumref
+ (setq condition
+ (nconc condition (list (parse-enumref j)))))
+ (x
+ (setq tmp (parse-structure-content j))
+ (when (eq x 'pad) ;rename pad~
+ (setq tmp
+ `((,(intern (format "pad~%d" pad-count))
+ ,@(cdar tmp))))
+ (setq pad-count (1+ pad-count)))
+ (setq fields (nconc fields tmp))
+ (setq name-list
+ (nconc name-list (list (caar tmp)))))))
+ (when (eq case-name 'bitcase)
+ (setq condition (if (= 1 (length condition))
+ (car condition)
+ `(logior ,@condition)))))
+ `(,condition ,@name-list)))
+ cases))
+ `((,name :initform '(expression ,expression cases ,cases)
+ :type xcb:-switch)
+ ,@fields)))
+
+;;;; XCB: expressions
+
+(defun parse-expression (node)
+ "Parse an expression."
+ (when node
+ (pcase (node-name node)
+ (`op (parse-op node))
+ (`fieldref (parse-fieldref node))
+ (`paramref (parse-paramref node))
+ (`value (parse-value node))
+ (`bit (parse-bit node))
+ (`enumref (parse-enumref node))
+ (`unop (parse-unop node))
+ (`sumof (parse-sumof node))
+ (`popcount (parse-popcount node))
+ (`listelement-ref (parse-listelement-ref node))
+ ((or `comment `doc)) ;simply ignored
+ (x (error "Unsupported expression: <%s>" x)))))
+
+(defun parse-op (node)
+ "Parse <op>."
+ (let* ((subnodes (node-subnodes node))
+ (x (parse-expression (car subnodes)))
+ (y (parse-expression (cadr subnodes))))
+ (pcase (node-attr node 'op)
+ ("+" `(+ ,x ,y))
+ ("-" `(- ,x ,y))
+ ("*" `(* ,x ,y))
+ ("/" `(/ ,x ,y))
+ ("&" `(logand ,x ,y))
+ ("<<" `(lsh ,x ,y))
+ (x (error "Unsupported operator: `%s'" x)))))
+
+(defun parse-fieldref (node)
+ "Parse <fieldref>."
+ `(xcb:-fieldref ',(intern (escape-name (node-subnode node)))))
+
+(defun parse-paramref (node)
+ "Parse <paramref>."
+ `(xcb:-paramref ',(intern (escape-name (node-subnode node)))))
+
+(defun parse-value (node)
+ "Parse <value>."
+ (string-to-int (replace-regexp-in-string "^0x" "#x" (node-subnode node))))
+
+(defun parse-bit (node)
+ "Parse <bit>."
+ (let ((bit (string-to-int (node-subnode node))))
+ (cl-assert (and (<= 0 bit) (>= 31 bit)))
+ (lsh 1 bit)))
+
+(defun parse-enumref (node)
+ "Parse <enumref>."
+ (let ((name (concat (node-attr node 'ref) ":" (node-subnode node))))
+ (or (intern-soft (concat "xcb:" name))
+ (intern (concat prefix name)))))
+
+(defun parse-unop (node)
+ "Parse <unop>."
+ (cl-assert (string= "~" (node-attr node 'op)))
+ `(lognot (parse-expression (node-subnode node))))
+
+(defun parse-sumof (node)
+ "Parse <sumof>."
+ (let* ((ref (intern (node-attr-escape node 'ref)))
+ (expression (node-subnode node))
+ (list-data `(slot-value obj ',ref)))
+ (if (not expression)
+ `(apply '+ ,list-data)
+ (setq expression (parse-expression expression))
+ `(apply '+ (mapcar (lambda (i)
+ (eval ',expression (list (nconc '(obj) i))))
+ ,list-data)))))
+
+(defun parse-popcount (node)
+ "Parse <popcount>."
+ (let ((expression (parse-expression (node-subnode node))))
+ `(xcb:-popcount ,expression)))
+
+(defun parse-listelement-ref (node)
+ "Parse <listelement-ref>."
+ 'obj) ;a list element is internally named 'obj'
+
+;;;; The entry
+
+(setq debug-on-error t)
+(setq edebug-all-forms t)
+
+(if (not argv)
+ (error "Usage: el_client.el <protocol.xml> [additional_load_paths]")
+ (add-to-list 'load-path default-directory)
+ (dolist (i (cdr argv))
+ (add-to-list 'load-path i))
+ (require 'xcb-types)
+ (parse (car argv)))
+
+;;; el_client.el ends here
diff --git a/xcb-bigreq.el b/xcb-bigreq.el
new file mode 100644
index 0000000..4f24dfc
--- /dev/null
+++ b/xcb-bigreq.el
@@ -0,0 +1,21 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `bigreq.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:bigreq:-extension-xname "BIG-REQUESTS")
+(defconst xcb:bigreq:-extension-name "BigRequests")
+(defconst xcb:bigreq:-major-version 0)
+(defconst xcb:bigreq:-minor-version 0)
+
+(defclass xcb:bigreq:Enable
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:bigreq:Enable~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (maximum-request-length :initarg :maximum-request-length :type xcb:CARD32)))
+
+
+
+(provide 'xcb-bigreq)
diff --git a/xcb-composite.el b/xcb-composite.el
new file mode 100644
index 0000000..77c1807
--- /dev/null
+++ b/xcb-composite.el
@@ -0,0 +1,87 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `composite.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:composite:-extension-xname "Composite")
+(defconst xcb:composite:-extension-name "Composite")
+(defconst xcb:composite:-major-version 0)
+(defconst xcb:composite:-minor-version 4)
+
+(require 'xcb-xproto)
+
+(require 'xcb-xfixes)
+
+(defconst xcb:composite:Redirect:Automatic 0)
+(defconst xcb:composite:Redirect:Manual 1)
+
+(defclass xcb:composite:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD32)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD32)))
+(defclass xcb:composite:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:composite:RedirectWindow
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (update :initarg :update :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:composite:RedirectSubwindows
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (update :initarg :update :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:composite:UnredirectWindow
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (update :initarg :update :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:composite:UnredirectSubwindows
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (update :initarg :update :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:composite:CreateRegionFromBorderClip
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (region :initarg :region :type xcb:composite:REGION)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:composite:NameWindowPixmap
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)))
+
+(defclass xcb:composite:GetOverlayWindow
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:composite:GetOverlayWindow~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (overlay-win :initarg :overlay-win :type xcb:WINDOW)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:composite:ReleaseOverlayWindow
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+
+
+
+(provide 'xcb-composite)
diff --git a/xcb-damage.el b/xcb-damage.el
new file mode 100644
index 0000000..9cf4362
--- /dev/null
+++ b/xcb-damage.el
@@ -0,0 +1,83 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `damage.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:damage:-extension-xname "DAMAGE")
+(defconst xcb:damage:-extension-name "Damage")
+(defconst xcb:damage:-major-version 1)
+(defconst xcb:damage:-minor-version 1)
+
+(require 'xcb-xproto)
+
+(require 'xcb-xfixes)
+
+(xcb:deftypealias 'xcb:damage:DAMAGE 'xcb:-u4)
+
+(defconst xcb:damage:ReportLevel:RawRectangles 0)
+(defconst xcb:damage:ReportLevel:DeltaRectangles 1)
+(defconst xcb:damage:ReportLevel:BoundingBox 2)
+(defconst xcb:damage:ReportLevel:NonEmpty 3)
+
+(defclass xcb:damage:BadDamage
+ (xcb:-error)
+ nil)
+
+(defclass xcb:damage:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD32)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD32)))
+(defclass xcb:damage:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:damage:Create
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (damage :initarg :damage :type xcb:damage:DAMAGE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (level :initarg :level :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:damage:Destroy
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (damage :initarg :damage :type xcb:damage:DAMAGE)))
+
+(defclass xcb:damage:Subtract
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (damage :initarg :damage :type xcb:damage:DAMAGE)
+ (repair :initarg :repair :type xcb:damage:REGION)
+ (parts :initarg :parts :type xcb:damage:REGION)))
+
+(defclass xcb:damage:Add
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (region :initarg :region :type xcb:damage:REGION)))
+
+(defclass xcb:damage:Notify
+ (xcb:-event)
+ ((level :initarg :level :type xcb:CARD8)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (damage :initarg :damage :type xcb:damage:DAMAGE)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (area :initarg :area :type xcb:RECTANGLE)
+ (geometry :initarg :geometry :type xcb:RECTANGLE)))
+
+(defconst xcb:damage:error-number-class-alist
+ '((0 . xcb:damage:BadDamage))
+ "(error-number . error-class) alist")
+
+(defconst xcb:damage:event-number-class-alist
+ '((0 . xcb:damage:Notify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-damage)
diff --git a/xcb-dpms.el b/xcb-dpms.el
new file mode 100644
index 0000000..bd6411d
--- /dev/null
+++ b/xcb-dpms.el
@@ -0,0 +1,79 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `dpms.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:dpms:-extension-xname "DPMS")
+(defconst xcb:dpms:-extension-name "DPMS")
+(defconst xcb:dpms:-major-version 0)
+(defconst xcb:dpms:-minor-version 0)
+
+(defclass xcb:dpms:GetVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD16)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD16)))
+(defclass xcb:dpms:GetVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major-version :initarg :server-major-version :type xcb:CARD16)
+ (server-minor-version :initarg :server-minor-version :type xcb:CARD16)))
+
+(defclass xcb:dpms:Capable
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)))
+(defclass xcb:dpms:Capable~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (capable :initarg :capable :type xcb:BOOL)
+ (pad~1 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:dpms:GetTimeouts
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)))
+(defclass xcb:dpms:GetTimeouts~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (standby-timeout :initarg :standby-timeout :type xcb:CARD16)
+ (suspend-timeout :initarg :suspend-timeout :type xcb:CARD16)
+ (off-timeout :initarg :off-timeout :type xcb:CARD16)
+ (pad~1 :initform 18 :type xcb:-pad)))
+
+(defclass xcb:dpms:SetTimeouts
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (standby-timeout :initarg :standby-timeout :type xcb:CARD16)
+ (suspend-timeout :initarg :suspend-timeout :type xcb:CARD16)
+ (off-timeout :initarg :off-timeout :type xcb:CARD16)))
+
+(defclass xcb:dpms:Enable
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)))
+
+(defclass xcb:dpms:Disable
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)))
+
+(defconst xcb:dpms:DPMSMode:On 0)
+(defconst xcb:dpms:DPMSMode:Standby 1)
+(defconst xcb:dpms:DPMSMode:Suspend 2)
+(defconst xcb:dpms:DPMSMode:Off 3)
+
+(defclass xcb:dpms:ForceLevel
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (power-level :initarg :power-level :type xcb:CARD16)))
+
+(defclass xcb:dpms:Info
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)))
+(defclass xcb:dpms:Info~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (power-level :initarg :power-level :type xcb:CARD16)
+ (state :initarg :state :type xcb:BOOL)
+ (pad~1 :initform 21 :type xcb:-pad)))
+
+
+
+(provide 'xcb-dpms)
diff --git a/xcb-dri2.el b/xcb-dri2.el
new file mode 100644
index 0000000..f30db9f
--- /dev/null
+++ b/xcb-dri2.el
@@ -0,0 +1,273 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `dri2.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:dri2:-extension-xname "DRI2")
+(defconst xcb:dri2:-extension-name "DRI2")
+(defconst xcb:dri2:-major-version 1)
+(defconst xcb:dri2:-minor-version 4)
+
+(require 'xcb-xproto)
+
+(defconst xcb:dri2:Attachment:BufferFrontLeft 0)
+(defconst xcb:dri2:Attachment:BufferBackLeft 1)
+(defconst xcb:dri2:Attachment:BufferFrontRight 2)
+(defconst xcb:dri2:Attachment:BufferBackRight 3)
+(defconst xcb:dri2:Attachment:BufferDepth 4)
+(defconst xcb:dri2:Attachment:BufferStencil 5)
+(defconst xcb:dri2:Attachment:BufferAccum 6)
+(defconst xcb:dri2:Attachment:BufferFakeFrontLeft 7)
+(defconst xcb:dri2:Attachment:BufferFakeFrontRight 8)
+(defconst xcb:dri2:Attachment:BufferDepthStencil 9)
+(defconst xcb:dri2:Attachment:BufferHiz 10)
+
+(defconst xcb:dri2:DriverType:DRI 0)
+(defconst xcb:dri2:DriverType:VDPAU 1)
+
+(defconst xcb:dri2:EventType:ExchangeComplete 1)
+(defconst xcb:dri2:EventType:BlitComplete 2)
+(defconst xcb:dri2:EventType:FlipComplete 3)
+
+(defclass xcb:dri2:DRI2Buffer
+ (xcb:-struct)
+ ((attachment :initarg :attachment :type xcb:CARD32)
+ (name :initarg :name :type xcb:CARD32)
+ (pitch :initarg :pitch :type xcb:CARD32)
+ (cpp :initarg :cpp :type xcb:CARD32)
+ (flags :initarg :flags :type xcb:CARD32)))
+
+(defclass xcb:dri2:AttachFormat
+ (xcb:-struct)
+ ((attachment :initarg :attachment :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)))
+
+(defclass xcb:dri2:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+(defclass xcb:dri2:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+
+(defclass xcb:dri2:Connect
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (driver-type :initarg :driver-type :type xcb:CARD32)))
+(defclass xcb:dri2:Connect~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (driver-name-length :initarg :driver-name-length :type xcb:CARD32)
+ (device-name-length :initarg :device-name-length :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (driver-name :initarg :driver-name :type xcb:-ignore)
+ (driver-name~ :initform
+ '(name driver-name type xcb:char size
+ (xcb:-fieldref 'driver-name-length))
+ :type xcb:-list)
+ (alignment-pad :initarg :alignment-pad :type xcb:-ignore)
+ (alignment-pad~ :initform
+ '(name alignment-pad type xcb:void size
+ (-
+ (logand
+ (+
+ (xcb:-fieldref 'driver-name-length)
+ 3)
+ (lognot
+ (parse-expression
+ (node-subnode node))))
+ (xcb:-fieldref 'driver-name-length)))
+ :type xcb:-list)
+ (device-name :initarg :device-name :type xcb:-ignore)
+ (device-name~ :initform
+ '(name device-name type xcb:char size
+ (xcb:-fieldref 'device-name-length))
+ :type xcb:-list)))
+
+(defclass xcb:dri2:Authenticate
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (magic :initarg :magic :type xcb:CARD32)))
+(defclass xcb:dri2:Authenticate~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (authenticated :initarg :authenticated :type xcb:CARD32)))
+
+(defclass xcb:dri2:CreateDrawable
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+
+(defclass xcb:dri2:DestroyDrawable
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+
+(defclass xcb:dri2:GetBuffers
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (count :initarg :count :type xcb:CARD32)
+ (attachments :initarg :attachments :type xcb:-ignore)
+ (attachments~ :initform
+ '(name attachments type xcb:CARD32 size nil)
+ :type xcb:-list)))
+(defclass xcb:dri2:GetBuffers~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (count :initarg :count :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (buffers :initarg :buffers :type xcb:-ignore)
+ (buffers~ :initform
+ '(name buffers type xcb:dri2:DRI2Buffer size
+ (xcb:-fieldref 'count))
+ :type xcb:-list)))
+
+(defclass xcb:dri2:CopyRegion
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (region :initarg :region :type xcb:CARD32)
+ (dest :initarg :dest :type xcb:CARD32)
+ (src :initarg :src :type xcb:CARD32)))
+(defclass xcb:dri2:CopyRegion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:dri2:GetBuffersWithFormat
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (count :initarg :count :type xcb:CARD32)
+ (attachments :initarg :attachments :type xcb:-ignore)
+ (attachments~ :initform
+ '(name attachments type xcb:dri2:AttachFormat size nil)
+ :type xcb:-list)))
+(defclass xcb:dri2:GetBuffersWithFormat~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (count :initarg :count :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (buffers :initarg :buffers :type xcb:-ignore)
+ (buffers~ :initform
+ '(name buffers type xcb:dri2:DRI2Buffer size
+ (xcb:-fieldref 'count))
+ :type xcb:-list)))
+
+(defclass xcb:dri2:SwapBuffers
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (target-msc-hi :initarg :target-msc-hi :type xcb:CARD32)
+ (target-msc-lo :initarg :target-msc-lo :type xcb:CARD32)
+ (divisor-hi :initarg :divisor-hi :type xcb:CARD32)
+ (divisor-lo :initarg :divisor-lo :type xcb:CARD32)
+ (remainder-hi :initarg :remainder-hi :type xcb:CARD32)
+ (remainder-lo :initarg :remainder-lo :type xcb:CARD32)))
+(defclass xcb:dri2:SwapBuffers~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (swap-hi :initarg :swap-hi :type xcb:CARD32)
+ (swap-lo :initarg :swap-lo :type xcb:CARD32)))
+
+(defclass xcb:dri2:GetMSC
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+(defclass xcb:dri2:GetMSC~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ust-hi :initarg :ust-hi :type xcb:CARD32)
+ (ust-lo :initarg :ust-lo :type xcb:CARD32)
+ (msc-hi :initarg :msc-hi :type xcb:CARD32)
+ (msc-lo :initarg :msc-lo :type xcb:CARD32)
+ (sbc-hi :initarg :sbc-hi :type xcb:CARD32)
+ (sbc-lo :initarg :sbc-lo :type xcb:CARD32)))
+
+(defclass xcb:dri2:WaitMSC
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (target-msc-hi :initarg :target-msc-hi :type xcb:CARD32)
+ (target-msc-lo :initarg :target-msc-lo :type xcb:CARD32)
+ (divisor-hi :initarg :divisor-hi :type xcb:CARD32)
+ (divisor-lo :initarg :divisor-lo :type xcb:CARD32)
+ (remainder-hi :initarg :remainder-hi :type xcb:CARD32)
+ (remainder-lo :initarg :remainder-lo :type xcb:CARD32)))
+(defclass xcb:dri2:WaitMSC~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ust-hi :initarg :ust-hi :type xcb:CARD32)
+ (ust-lo :initarg :ust-lo :type xcb:CARD32)
+ (msc-hi :initarg :msc-hi :type xcb:CARD32)
+ (msc-lo :initarg :msc-lo :type xcb:CARD32)
+ (sbc-hi :initarg :sbc-hi :type xcb:CARD32)
+ (sbc-lo :initarg :sbc-lo :type xcb:CARD32)))
+
+(defclass xcb:dri2:WaitSBC
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (target-sbc-hi :initarg :target-sbc-hi :type xcb:CARD32)
+ (target-sbc-lo :initarg :target-sbc-lo :type xcb:CARD32)))
+(defclass xcb:dri2:WaitSBC~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ust-hi :initarg :ust-hi :type xcb:CARD32)
+ (ust-lo :initarg :ust-lo :type xcb:CARD32)
+ (msc-hi :initarg :msc-hi :type xcb:CARD32)
+ (msc-lo :initarg :msc-lo :type xcb:CARD32)
+ (sbc-hi :initarg :sbc-hi :type xcb:CARD32)
+ (sbc-lo :initarg :sbc-lo :type xcb:CARD32)))
+
+(defclass xcb:dri2:SwapInterval
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (interval :initarg :interval :type xcb:CARD32)))
+
+(defclass xcb:dri2:GetParam
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (param :initarg :param :type xcb:CARD32)))
+(defclass xcb:dri2:GetParam~reply
+ (xcb:-reply)
+ ((is-param-recognized :initarg :is-param-recognized :type xcb:BOOL)
+ (value-hi :initarg :value-hi :type xcb:CARD32)
+ (value-lo :initarg :value-lo :type xcb:CARD32)))
+
+(defclass xcb:dri2:BufferSwapComplete
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event-type :initarg :event-type :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (ust-hi :initarg :ust-hi :type xcb:CARD32)
+ (ust-lo :initarg :ust-lo :type xcb:CARD32)
+ (msc-hi :initarg :msc-hi :type xcb:CARD32)
+ (msc-lo :initarg :msc-lo :type xcb:CARD32)
+ (sbc :initarg :sbc :type xcb:CARD32)))
+
+(defclass xcb:dri2:InvalidateBuffers
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+
+(defconst xcb:dri2:event-number-class-alist
+ '((0 . xcb:dri2:BufferSwapComplete)
+ (1 . xcb:dri2:InvalidateBuffers))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-dri2)
diff --git a/xcb-dri3.el b/xcb-dri3.el
new file mode 100644
index 0000000..7c11eb0
--- /dev/null
+++ b/xcb-dri3.el
@@ -0,0 +1,86 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `dri3.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:dri3:-extension-xname "DRI3")
+(defconst xcb:dri3:-extension-name "DRI3")
+(defconst xcb:dri3:-major-version 1)
+(defconst xcb:dri3:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(defclass xcb:dri3:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+(defclass xcb:dri3:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+
+(defclass xcb:dri3:Open
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (provider :initarg :provider :type xcb:CARD32)))
+(defclass xcb:dri3:Open~reply
+ (xcb:-reply)
+ ((nfd :initarg :nfd :type xcb:CARD8)
+ (device-fd :type xcb:-fd)
+ (pad~0 :initform 24 :type xcb:-pad)))
+
+(defclass xcb:dri3:PixmapFromBuffer
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (size :initarg :size :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (stride :initarg :stride :type xcb:CARD16)
+ (depth :initarg :depth :type xcb:CARD8)
+ (bpp :initarg :bpp :type xcb:CARD8)
+ (pixmap-fd :type xcb:-fd)))
+
+(defclass xcb:dri3:BufferFromPixmap
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)))
+(defclass xcb:dri3:BufferFromPixmap~reply
+ (xcb:-reply)
+ ((nfd :initarg :nfd :type xcb:CARD8)
+ (size :initarg :size :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (stride :initarg :stride :type xcb:CARD16)
+ (depth :initarg :depth :type xcb:CARD8)
+ (bpp :initarg :bpp :type xcb:CARD8)
+ (pixmap-fd :type xcb:-fd)
+ (pad~0 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:dri3:FenceFromFD
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (fence :initarg :fence :type xcb:CARD32)
+ (initially-triggered :initarg :initially-triggered :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (fence-fd :type xcb:-fd)))
+
+(defclass xcb:dri3:FDFromFence
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (fence :initarg :fence :type xcb:CARD32)))
+(defclass xcb:dri3:FDFromFence~reply
+ (xcb:-reply)
+ ((nfd :initarg :nfd :type xcb:CARD8)
+ (fence-fd :type xcb:-fd)
+ (pad~0 :initform 24 :type xcb:-pad)))
+
+
+
+(provide 'xcb-dri3)
diff --git a/xcb-ge.el b/xcb-ge.el
new file mode 100644
index 0000000..34d0293
--- /dev/null
+++ b/xcb-ge.el
@@ -0,0 +1,25 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `ge.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:ge:-extension-xname "Generic Event Extension")
+(defconst xcb:ge:-extension-name "GenericEvent")
+(defconst xcb:ge:-major-version 1)
+(defconst xcb:ge:-minor-version 0)
+
+(defclass xcb:ge:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD16)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD16)))
+(defclass xcb:ge:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+
+
+(provide 'xcb-ge)
diff --git a/xcb-glx.el b/xcb-glx.el
new file mode 100644
index 0000000..6036b41
--- /dev/null
+++ b/xcb-glx.el
@@ -0,0 +1,1681 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `glx.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:glx:-extension-xname "GLX")
+(defconst xcb:glx:-extension-name "Glx")
+(defconst xcb:glx:-major-version 1)
+(defconst xcb:glx:-minor-version 4)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:glx:PIXMAP 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:CONTEXT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:PBUFFER 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:WINDOW 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:FBCONFIG 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:DRAWABLE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:glx:FLOAT32 'xcb:glx:float)
+
+(xcb:deftypealias 'xcb:glx:FLOAT64 'xcb:glx:double)
+
+(xcb:deftypealias 'xcb:glx:BOOL32 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:glx:CONTEXT_TAG 'xcb:CARD32)
+
+(defclass xcb:glx:Generic
+ (xcb:-error)
+ ((bad-value :initarg :bad-value :type xcb:CARD32)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (pad~0 :initform 21 :type xcb:-pad)))
+
+(defclass xcb:glx:BadContext
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadContextState
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadDrawable
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadPixmap
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadContextTag
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadCurrentWindow
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadRenderRequest
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadLargeRequest
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:UnsupportedPrivateRequest
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadFBConfig
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadPbuffer
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadCurrentDrawable
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:BadWindow
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:GLXBadProfileARB
+ (xcb:-error xcb:glx:Generic)
+ nil)
+
+(defclass xcb:glx:PbufferClobber
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event-type :initarg :event-type :type xcb:CARD16)
+ (draw-type :initarg :draw-type :type xcb:CARD16)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)
+ (b-mask :initarg :b-mask :type xcb:CARD32)
+ (aux-buffer :initarg :aux-buffer :type xcb:CARD16)
+ (x :initarg :x :type xcb:CARD16)
+ (y :initarg :y :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (count :initarg :count :type xcb:CARD16)
+ (pad~1 :initform 4 :type xcb:-pad)))
+
+(defclass xcb:glx:BufferSwapComplete
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event-type :initarg :event-type :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)
+ (ust-hi :initarg :ust-hi :type xcb:CARD32)
+ (ust-lo :initarg :ust-lo :type xcb:CARD32)
+ (msc-hi :initarg :msc-hi :type xcb:CARD32)
+ (msc-lo :initarg :msc-lo :type xcb:CARD32)
+ (sbc :initarg :sbc :type xcb:CARD32)))
+
+(defconst xcb:glx:PBCET:Damaged 32791)
+(defconst xcb:glx:PBCET:Saved 32792)
+
+(defconst xcb:glx:PBCDT:Window 32793)
+(defconst xcb:glx:PBCDT:Pbuffer 32794)
+
+(defclass xcb:glx:Render
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:glx:RenderLarge
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (request-num :initarg :request-num :type xcb:CARD16)
+ (request-total :initarg :request-total :type xcb:CARD16)
+ (data-len :initarg :data-len :type xcb:CARD32)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (xcb:-fieldref 'data-len))
+ :type xcb:-list)))
+
+(defclass xcb:glx:CreateContext
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (screen :initarg :screen :type xcb:CARD32)
+ (share-list :initarg :share-list :type xcb:glx:CONTEXT)
+ (is-direct :initarg :is-direct :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:glx:DestroyContext
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)))
+
+(defclass xcb:glx:MakeCurrent
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)
+ (context :initarg :context :type xcb:glx:CONTEXT)
+ (old-context-tag :initarg :old-context-tag :type xcb:glx:CONTEXT_TAG)))
+(defclass xcb:glx:MakeCurrent~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:glx:IsDirect
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)))
+(defclass xcb:glx:IsDirect~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (is-direct :initarg :is-direct :type xcb:BOOL)
+ (pad~1 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:glx:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+(defclass xcb:glx:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:glx:WaitGL
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+
+(defclass xcb:glx:WaitX
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+
+(defclass xcb:glx:CopyContext
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (src :initarg :src :type xcb:glx:CONTEXT)
+ (dest :initarg :dest :type xcb:glx:CONTEXT)
+ (mask :initarg :mask :type xcb:CARD32)
+ (src-context-tag :initarg :src-context-tag :type xcb:glx:CONTEXT_TAG)))
+
+(defconst xcb:glx:GC:GL_CURRENT_BIT 1)
+(defconst xcb:glx:GC:GL_POINT_BIT 2)
+(defconst xcb:glx:GC:GL_LINE_BIT 4)
+(defconst xcb:glx:GC:GL_POLYGON_BIT 8)
+(defconst xcb:glx:GC:GL_POLYGON_STIPPLE_BIT 16)
+(defconst xcb:glx:GC:GL_PIXEL_MODE_BIT 32)
+(defconst xcb:glx:GC:GL_LIGHTING_BIT 64)
+(defconst xcb:glx:GC:GL_FOG_BIT 128)
+(defconst xcb:glx:GC:GL_DEPTH_BUFFER_BIT 256)
+(defconst xcb:glx:GC:GL_ACCUM_BUFFER_BIT 512)
+(defconst xcb:glx:GC:GL_STENCIL_BUFFER_BIT 1024)
+(defconst xcb:glx:GC:GL_VIEWPORT_BIT 2048)
+(defconst xcb:glx:GC:GL_TRANSFORM_BIT 4096)
+(defconst xcb:glx:GC:GL_ENABLE_BIT 8192)
+(defconst xcb:glx:GC:GL_COLOR_BUFFER_BIT 16384)
+(defconst xcb:glx:GC:GL_HINT_BIT 32768)
+(defconst xcb:glx:GC:GL_EVAL_BIT 65536)
+(defconst xcb:glx:GC:GL_LIST_BIT 131072)
+(defconst xcb:glx:GC:GL_TEXTURE_BIT 262144)
+(defconst xcb:glx:GC:GL_SCISSOR_BIT 524288)
+(defconst xcb:glx:GC:GL_ALL_ATTRIB_BITS 16777215)
+
+(defclass xcb:glx:SwapBuffers
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)))
+
+(defclass xcb:glx:UseXFont
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (font :initarg :font :type xcb:FONT)
+ (first :initarg :first :type xcb:CARD32)
+ (count :initarg :count :type xcb:CARD32)
+ (list-base :initarg :list-base :type xcb:CARD32)))
+
+(defclass xcb:glx:CreateGLXPixmap
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (pixmap :initarg :pixmap :type xcb:glx:xproto:PIXMAP)
+ (glx-pixmap :initarg :glx-pixmap :type xcb:glx:PIXMAP)))
+
+(defclass xcb:glx:GetVisualConfigs
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:glx:GetVisualConfigs~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-visuals :initarg :num-visuals :type xcb:CARD32)
+ (num-properties :initarg :num-properties :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (property-list :initarg :property-list :type xcb:-ignore)
+ (property-list~ :initform
+ '(name property-list type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DestroyGLXPixmap
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (glx-pixmap :initarg :glx-pixmap :type xcb:glx:PIXMAP)))
+
+(defclass xcb:glx:VendorPrivate
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (vendor-code :initarg :vendor-code :type xcb:CARD32)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:glx:VendorPrivateWithReply
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (vendor-code :initarg :vendor-code :type xcb:CARD32)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size nil)
+ :type xcb:-list)))
+(defclass xcb:glx:VendorPrivateWithReply~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (retval :initarg :retval :type xcb:CARD32)
+ (data1 :initarg :data1 :type xcb:-ignore)
+ (data1~ :initform
+ '(name data1 type xcb:BYTE size 24)
+ :type xcb:-list)
+ (data2 :initarg :data2 :type xcb:-ignore)
+ (data2~ :initform
+ '(name data2 type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:QueryExtensionsString
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:glx:QueryExtensionsString~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (pad~2 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:glx:QueryServerString
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (name :initarg :name :type xcb:CARD32)))
+(defclass xcb:glx:QueryServerString~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (str-len :initarg :str-len :type xcb:CARD32)
+ (pad~2 :initform 16 :type xcb:-pad)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'str-len))
+ :type xcb:-list)))
+
+(defclass xcb:glx:ClientInfo
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (str-len :initarg :str-len :type xcb:CARD32)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'str-len))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetFBConfigs
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:glx:GetFBConfigs~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-FB-configs :initarg :num-FB-configs :type xcb:CARD32)
+ (num-properties :initarg :num-properties :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (property-list :initarg :property-list :type xcb:-ignore)
+ (property-list~ :initform
+ '(name property-list type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:glx:CreatePixmap
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (fbconfig :initarg :fbconfig :type xcb:glx:FBCONFIG)
+ (pixmap :initarg :pixmap :type xcb:glx:xproto:PIXMAP)
+ (glx-pixmap :initarg :glx-pixmap :type xcb:glx:PIXMAP)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DestroyPixmap
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (glx-pixmap :initarg :glx-pixmap :type xcb:glx:PIXMAP)))
+
+(defclass xcb:glx:CreateNewContext
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)
+ (fbconfig :initarg :fbconfig :type xcb:glx:FBCONFIG)
+ (screen :initarg :screen :type xcb:CARD32)
+ (render-type :initarg :render-type :type xcb:CARD32)
+ (share-list :initarg :share-list :type xcb:glx:CONTEXT)
+ (is-direct :initarg :is-direct :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:glx:QueryContext
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)))
+(defclass xcb:glx:QueryContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:MakeContextCurrent
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (old-context-tag :initarg :old-context-tag :type xcb:glx:CONTEXT_TAG)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)
+ (read-drawable :initarg :read-drawable :type xcb:glx:DRAWABLE)
+ (context :initarg :context :type xcb:glx:CONTEXT)))
+(defclass xcb:glx:MakeContextCurrent~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:glx:CreatePbuffer
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (fbconfig :initarg :fbconfig :type xcb:glx:FBCONFIG)
+ (pbuffer :initarg :pbuffer :type xcb:glx:PBUFFER)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DestroyPbuffer
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (pbuffer :initarg :pbuffer :type xcb:glx:PBUFFER)))
+
+(defclass xcb:glx:GetDrawableAttributes
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)))
+(defclass xcb:glx:GetDrawableAttributes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:ChangeDrawableAttributes
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:glx:DRAWABLE)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:CreateWindow
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (fbconfig :initarg :fbconfig :type xcb:glx:FBCONFIG)
+ (window :initarg :window :type xcb:glx:xproto:WINDOW)
+ (glx-window :initarg :glx-window :type xcb:glx:WINDOW)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DeleteWindow
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (glxwindow :initarg :glxwindow :type xcb:glx:WINDOW)))
+
+(defclass xcb:glx:SetClientInfoARB
+ (xcb:-request)
+ ((~opcode :initform 33 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (num-versions :initarg :num-versions :type xcb:CARD32)
+ (gl-str-len :initarg :gl-str-len :type xcb:CARD32)
+ (glx-str-len :initarg :glx-str-len :type xcb:CARD32)
+ (gl-versions :initarg :gl-versions :type xcb:-ignore)
+ (gl-versions~ :initform
+ '(name gl-versions type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-versions)
+ 2))
+ :type xcb:-list)
+ (gl-extension-string :initarg :gl-extension-string :type xcb:-ignore)
+ (gl-extension-string~ :initform
+ '(name gl-extension-string type xcb:char size
+ (xcb:-fieldref 'gl-str-len))
+ :type xcb:-list)
+ (glx-extension-string :initarg :glx-extension-string :type xcb:-ignore)
+ (glx-extension-string~ :initform
+ '(name glx-extension-string type xcb:char size
+ (xcb:-fieldref 'glx-str-len))
+ :type xcb:-list)))
+
+(defclass xcb:glx:CreateContextAttribsARB
+ (xcb:-request)
+ ((~opcode :initform 34 :type xcb:-u1)
+ (context :initarg :context :type xcb:glx:CONTEXT)
+ (fbconfig :initarg :fbconfig :type xcb:glx:FBCONFIG)
+ (screen :initarg :screen :type xcb:CARD32)
+ (share-list :initarg :share-list :type xcb:glx:CONTEXT)
+ (is-direct :initarg :is-direct :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (num-attribs :initarg :num-attribs :type xcb:CARD32)
+ (attribs :initarg :attribs :type xcb:-ignore)
+ (attribs~ :initform
+ '(name attribs type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-attribs)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:SetClientInfo2ARB
+ (xcb:-request)
+ ((~opcode :initform 35 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (num-versions :initarg :num-versions :type xcb:CARD32)
+ (gl-str-len :initarg :gl-str-len :type xcb:CARD32)
+ (glx-str-len :initarg :glx-str-len :type xcb:CARD32)
+ (gl-versions :initarg :gl-versions :type xcb:-ignore)
+ (gl-versions~ :initform
+ '(name gl-versions type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'num-versions)
+ 3))
+ :type xcb:-list)
+ (gl-extension-string :initarg :gl-extension-string :type xcb:-ignore)
+ (gl-extension-string~ :initform
+ '(name gl-extension-string type xcb:char size
+ (xcb:-fieldref 'gl-str-len))
+ :type xcb:-list)
+ (glx-extension-string :initarg :glx-extension-string :type xcb:-ignore)
+ (glx-extension-string~ :initform
+ '(name glx-extension-string type xcb:char size
+ (xcb:-fieldref 'glx-str-len))
+ :type xcb:-list)))
+
+(defclass xcb:glx:NewList
+ (xcb:-request)
+ ((~opcode :initform 101 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (list :initarg :list :type xcb:CARD32)
+ (mode :initarg :mode :type xcb:CARD32)))
+
+(defclass xcb:glx:EndList
+ (xcb:-request)
+ ((~opcode :initform 102 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+
+(defclass xcb:glx:DeleteLists
+ (xcb:-request)
+ ((~opcode :initform 103 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (list :initarg :list :type xcb:CARD32)
+ (range :initarg :range :type xcb:INT32)))
+
+(defclass xcb:glx:GenLists
+ (xcb:-request)
+ ((~opcode :initform 104 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (range :initarg :range :type xcb:INT32)))
+(defclass xcb:glx:GenLists~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:CARD32)))
+
+(defclass xcb:glx:FeedbackBuffer
+ (xcb:-request)
+ ((~opcode :initform 105 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (size :initarg :size :type xcb:INT32)
+ (type :initarg :type :type xcb:INT32)))
+
+(defclass xcb:glx:SelectBuffer
+ (xcb:-request)
+ ((~opcode :initform 106 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (size :initarg :size :type xcb:INT32)))
+
+(defclass xcb:glx:RenderMode
+ (xcb:-request)
+ ((~opcode :initform 107 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (mode :initarg :mode :type xcb:CARD32)))
+(defclass xcb:glx:RenderMode~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:CARD32)
+ (n :initarg :n :type xcb:CARD32)
+ (new-mode :initarg :new-mode :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defconst xcb:glx:RM:GL_RENDER 7168)
+(defconst xcb:glx:RM:GL_FEEDBACK 7169)
+(defconst xcb:glx:RM:GL_SELECT 7170)
+
+(defclass xcb:glx:Finish
+ (xcb:-request)
+ ((~opcode :initform 108 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+(defclass xcb:glx:Finish~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:glx:PixelStoref
+ (xcb:-request)
+ ((~opcode :initform 109 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)))
+
+(defclass xcb:glx:PixelStorei
+ (xcb:-request)
+ ((~opcode :initform 110 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)))
+
+(defclass xcb:glx:ReadPixels
+ (xcb:-request)
+ ((~opcode :initform 111 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (x :initarg :x :type xcb:INT32)
+ (y :initarg :y :type xcb:INT32)
+ (width :initarg :width :type xcb:INT32)
+ (height :initarg :height :type xcb:INT32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)
+ (lsb-first :initarg :lsb-first :type xcb:BOOL)))
+(defclass xcb:glx:ReadPixels~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetBooleanv
+ (xcb:-request)
+ ((~opcode :initform 112 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:INT32)))
+(defclass xcb:glx:GetBooleanv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:BOOL)
+ (pad~2 :initform 15 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BOOL size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetClipPlane
+ (xcb:-request)
+ ((~opcode :initform 113 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (plane :initarg :plane :type xcb:INT32)))
+(defclass xcb:glx:GetClipPlane~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT64 size
+ (/
+ (xcb:-fieldref 'length)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetDoublev
+ (xcb:-request)
+ ((~opcode :initform 114 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetDoublev~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT64)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT64 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetError
+ (xcb:-request)
+ ((~opcode :initform 115 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+(defclass xcb:glx:GetError~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (error :initarg :error :type xcb:INT32)))
+
+(defclass xcb:glx:GetFloatv
+ (xcb:-request)
+ ((~opcode :initform 116 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetFloatv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetIntegerv
+ (xcb:-request)
+ ((~opcode :initform 117 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetIntegerv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetLightfv
+ (xcb:-request)
+ ((~opcode :initform 118 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (light :initarg :light :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetLightfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetLightiv
+ (xcb:-request)
+ ((~opcode :initform 119 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (light :initarg :light :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetLightiv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMapdv
+ (xcb:-request)
+ ((~opcode :initform 120 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (query :initarg :query :type xcb:CARD32)))
+(defclass xcb:glx:GetMapdv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT64)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT64 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMapfv
+ (xcb:-request)
+ ((~opcode :initform 121 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (query :initarg :query :type xcb:CARD32)))
+(defclass xcb:glx:GetMapfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMapiv
+ (xcb:-request)
+ ((~opcode :initform 122 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (query :initarg :query :type xcb:CARD32)))
+(defclass xcb:glx:GetMapiv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMaterialfv
+ (xcb:-request)
+ ((~opcode :initform 123 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (face :initarg :face :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetMaterialfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMaterialiv
+ (xcb:-request)
+ ((~opcode :initform 124 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (face :initarg :face :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetMaterialiv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetPixelMapfv
+ (xcb:-request)
+ ((~opcode :initform 125 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (map :initarg :map :type xcb:CARD32)))
+(defclass xcb:glx:GetPixelMapfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetPixelMapuiv
+ (xcb:-request)
+ ((~opcode :initform 126 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (map :initarg :map :type xcb:CARD32)))
+(defclass xcb:glx:GetPixelMapuiv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:CARD32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetPixelMapusv
+ (xcb:-request)
+ ((~opcode :initform 127 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (map :initarg :map :type xcb:CARD32)))
+(defclass xcb:glx:GetPixelMapusv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:CARD16)
+ (pad~2 :initform 16 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD16 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetPolygonStipple
+ (xcb:-request)
+ ((~opcode :initform 128 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (lsb-first :initarg :lsb-first :type xcb:BOOL)))
+(defclass xcb:glx:GetPolygonStipple~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetString
+ (xcb:-request)
+ ((~opcode :initform 129 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (name :initarg :name :type xcb:CARD32)))
+(defclass xcb:glx:GetString~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (pad~2 :initform 16 :type xcb:-pad)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexEnvfv
+ (xcb:-request)
+ ((~opcode :initform 130 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexEnvfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexEnviv
+ (xcb:-request)
+ ((~opcode :initform 131 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexEnviv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexGendv
+ (xcb:-request)
+ ((~opcode :initform 132 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (coord :initarg :coord :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexGendv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT64)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT64 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexGenfv
+ (xcb:-request)
+ ((~opcode :initform 133 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (coord :initarg :coord :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexGenfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexGeniv
+ (xcb:-request)
+ ((~opcode :initform 134 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (coord :initarg :coord :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexGeniv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexImage
+ (xcb:-request)
+ ((~opcode :initform 135 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (level :initarg :level :type xcb:INT32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)))
+(defclass xcb:glx:GetTexImage~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (width :initarg :width :type xcb:INT32)
+ (height :initarg :height :type xcb:INT32)
+ (depth :initarg :depth :type xcb:INT32)
+ (pad~2 :initform 4 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexParameterfv
+ (xcb:-request)
+ ((~opcode :initform 136 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexParameteriv
+ (xcb:-request)
+ ((~opcode :initform 137 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexLevelParameterfv
+ (xcb:-request)
+ ((~opcode :initform 138 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (level :initarg :level :type xcb:INT32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexLevelParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetTexLevelParameteriv
+ (xcb:-request)
+ ((~opcode :initform 139 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (level :initarg :level :type xcb:INT32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetTexLevelParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:IsList
+ (xcb:-request)
+ ((~opcode :initform 141 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (list :initarg :list :type xcb:CARD32)))
+(defclass xcb:glx:IsList~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:BOOL32)))
+
+(defclass xcb:glx:Flush
+ (xcb:-request)
+ ((~opcode :initform 142 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)))
+
+(defclass xcb:glx:AreTexturesResident
+ (xcb:-request)
+ ((~opcode :initform 143 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (n :initarg :n :type xcb:INT32)
+ (textures :initarg :textures :type xcb:-ignore)
+ (textures~ :initform
+ '(name textures type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+(defclass xcb:glx:AreTexturesResident~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:BOOL32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BOOL size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DeleteTextures
+ (xcb:-request)
+ ((~opcode :initform 144 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (n :initarg :n :type xcb:INT32)
+ (textures :initarg :textures :type xcb:-ignore)
+ (textures~ :initform
+ '(name textures type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GenTextures
+ (xcb:-request)
+ ((~opcode :initform 145 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (n :initarg :n :type xcb:INT32)))
+(defclass xcb:glx:GenTextures~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:glx:IsTexture
+ (xcb:-request)
+ ((~opcode :initform 146 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (texture :initarg :texture :type xcb:CARD32)))
+(defclass xcb:glx:IsTexture~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:BOOL32)))
+
+(defclass xcb:glx:GetColorTable
+ (xcb:-request)
+ ((~opcode :initform 147 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)))
+(defclass xcb:glx:GetColorTable~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (width :initarg :width :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetColorTableParameterfv
+ (xcb:-request)
+ ((~opcode :initform 148 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetColorTableParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetColorTableParameteriv
+ (xcb:-request)
+ ((~opcode :initform 149 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetColorTableParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetConvolutionFilter
+ (xcb:-request)
+ ((~opcode :initform 150 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)))
+(defclass xcb:glx:GetConvolutionFilter~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (width :initarg :width :type xcb:INT32)
+ (height :initarg :height :type xcb:INT32)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetConvolutionParameterfv
+ (xcb:-request)
+ ((~opcode :initform 151 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetConvolutionParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetConvolutionParameteriv
+ (xcb:-request)
+ ((~opcode :initform 152 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetConvolutionParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetSeparableFilter
+ (xcb:-request)
+ ((~opcode :initform 153 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)))
+(defclass xcb:glx:GetSeparableFilter~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (row-w :initarg :row-w :type xcb:INT32)
+ (col-h :initarg :col-h :type xcb:INT32)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (rows-and-cols :initarg :rows-and-cols :type xcb:-ignore)
+ (rows-and-cols~ :initform
+ '(name rows-and-cols type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetHistogram
+ (xcb:-request)
+ ((~opcode :initform 154 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)
+ (reset :initarg :reset :type xcb:BOOL)))
+(defclass xcb:glx:GetHistogram~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (width :initarg :width :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetHistogramParameterfv
+ (xcb:-request)
+ ((~opcode :initform 155 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetHistogramParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetHistogramParameteriv
+ (xcb:-request)
+ ((~opcode :initform 156 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetHistogramParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMinmax
+ (xcb:-request)
+ ((~opcode :initform 157 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)
+ (swap-bytes :initarg :swap-bytes :type xcb:BOOL)
+ (reset :initarg :reset :type xcb:BOOL)))
+(defclass xcb:glx:GetMinmax~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMinmaxParameterfv
+ (xcb:-request)
+ ((~opcode :initform 158 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetMinmaxParameterfv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:glx:FLOAT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:glx:FLOAT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetMinmaxParameteriv
+ (xcb:-request)
+ ((~opcode :initform 159 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetMinmaxParameteriv~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetCompressedTexImageARB
+ (xcb:-request)
+ ((~opcode :initform 160 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (level :initarg :level :type xcb:INT32)))
+(defclass xcb:glx:GetCompressedTexImageARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (size :initarg :size :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:glx:DeleteQueriesARB
+ (xcb:-request)
+ ((~opcode :initform 161 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (n :initarg :n :type xcb:INT32)
+ (ids :initarg :ids :type xcb:-ignore)
+ (ids~ :initform
+ '(name ids type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GenQueriesARB
+ (xcb:-request)
+ ((~opcode :initform 162 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (n :initarg :n :type xcb:INT32)))
+(defclass xcb:glx:GenQueriesARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:glx:IsQueryARB
+ (xcb:-request)
+ ((~opcode :initform 163 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (id :initarg :id :type xcb:CARD32)))
+(defclass xcb:glx:IsQueryARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ret-val :initarg :ret-val :type xcb:BOOL32)))
+
+(defclass xcb:glx:GetQueryivARB
+ (xcb:-request)
+ ((~opcode :initform 164 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (target :initarg :target :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetQueryivARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetQueryObjectivARB
+ (xcb:-request)
+ ((~opcode :initform 165 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (id :initarg :id :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetQueryObjectivARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:INT32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:INT32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defclass xcb:glx:GetQueryObjectuivARB
+ (xcb:-request)
+ ((~opcode :initform 166 :type xcb:-u1)
+ (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
+ (id :initarg :id :type xcb:CARD32)
+ (pname :initarg :pname :type xcb:CARD32)))
+(defclass xcb:glx:GetQueryObjectuivARB~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (n :initarg :n :type xcb:CARD32)
+ (datum :initarg :datum :type xcb:CARD32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD32 size
+ (xcb:-fieldref 'n))
+ :type xcb:-list)))
+
+(defconst xcb:glx:error-number-class-alist
+ '((-1 . xcb:glx:Generic)
+ (0 . xcb:glx:BadContext)
+ (1 . xcb:glx:BadContextState)
+ (2 . xcb:glx:BadDrawable)
+ (3 . xcb:glx:BadPixmap)
+ (4 . xcb:glx:BadContextTag)
+ (5 . xcb:glx:BadCurrentWindow)
+ (6 . xcb:glx:BadRenderRequest)
+ (7 . xcb:glx:BadLargeRequest)
+ (8 . xcb:glx:UnsupportedPrivateRequest)
+ (9 . xcb:glx:BadFBConfig)
+ (10 . xcb:glx:BadPbuffer)
+ (11 . xcb:glx:BadCurrentDrawable)
+ (12 . xcb:glx:BadWindow)
+ (13 . xcb:glx:GLXBadProfileARB))
+ "(error-number . error-class) alist")
+
+(defconst xcb:glx:event-number-class-alist
+ '((0 . xcb:glx:PbufferClobber)
+ (1 . xcb:glx:BufferSwapComplete))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-glx)
diff --git a/xcb-present.el b/xcb-present.el
new file mode 100644
index 0000000..137b4d9
--- /dev/null
+++ b/xcb-present.el
@@ -0,0 +1,206 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `present.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:present:-extension-xname "Present")
+(defconst xcb:present:-extension-name "Present")
+(defconst xcb:present:-major-version 1)
+(defconst xcb:present:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(require 'xcb-randr)
+
+(require 'xcb-xfixes)
+
+(require 'xcb-sync)
+
+(defconst xcb:present:Event:ConfigureNotify 0)
+(defconst xcb:present:Event:CompleteNotify 1)
+(defconst xcb:present:Event:IdleNotify 2)
+(defconst xcb:present:Event:RedirectNotify 3)
+
+(defconst xcb:present:EventMask:NoEvent 0)
+(defconst xcb:present:EventMask:ConfigureNotify 1)
+(defconst xcb:present:EventMask:CompleteNotify 2)
+(defconst xcb:present:EventMask:IdleNotify 4)
+(defconst xcb:present:EventMask:RedirectNotify 8)
+
+(defconst xcb:present:Option:None 0)
+(defconst xcb:present:Option:Async 1)
+(defconst xcb:present:Option:Copy 2)
+(defconst xcb:present:Option:UST 4)
+
+(defconst xcb:present:Capability:None 0)
+(defconst xcb:present:Capability:Async 1)
+(defconst xcb:present:Capability:Fence 2)
+(defconst xcb:present:Capability:UST 4)
+
+(defconst xcb:present:CompleteKind:Pixmap 0)
+(defconst xcb:present:CompleteKind:NotifyMSC 1)
+
+(defconst xcb:present:CompleteMode:Copy 0)
+(defconst xcb:present:CompleteMode:Flip 1)
+(defconst xcb:present:CompleteMode:Skip 2)
+
+(defclass xcb:present:Notify
+ (xcb:-struct)
+ ((window :initarg :window :type xcb:WINDOW)
+ (serial :initarg :serial :type xcb:CARD32)))
+
+(defclass xcb:present:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+(defclass xcb:present:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+
+(defclass xcb:present:Pixmap
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)
+ (serial :initarg :serial :type xcb:CARD32)
+ (valid :initarg :valid :type xcb:present:REGION)
+ (update :initarg :update :type xcb:present:REGION)
+ (x-off :initarg :x-off :type xcb:INT16)
+ (y-off :initarg :y-off :type xcb:INT16)
+ (target-crtc :initarg :target-crtc :type xcb:present:CRTC)
+ (wait-fence :initarg :wait-fence :type xcb:present:FENCE)
+ (idle-fence :initarg :idle-fence :type xcb:present:FENCE)
+ (options :initarg :options :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (target-msc :initarg :target-msc :type xcb:present:CARD64)
+ (divisor :initarg :divisor :type xcb:present:CARD64)
+ (remainder :initarg :remainder :type xcb:present:CARD64)
+ (notifies :initarg :notifies :type xcb:-ignore)
+ (notifies~ :initform
+ '(name notifies type xcb:present:Notify size nil)
+ :type xcb:-list)))
+
+(defclass xcb:present:NotifyMSC
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (serial :initarg :serial :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (target-msc :initarg :target-msc :type xcb:present:CARD64)
+ (divisor :initarg :divisor :type xcb:present:CARD64)
+ (remainder :initarg :remainder :type xcb:present:CARD64)))
+
+(xcb:deftypealias 'xcb:present:EVENT 'xcb:-u4)
+
+(defclass xcb:present:SelectInput
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (eid :initarg :eid :type xcb:present:EVENT)
+ (window :initarg :window :type xcb:WINDOW)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+
+(defclass xcb:present:QueryCapabilities
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (target :initarg :target :type xcb:CARD32)))
+(defclass xcb:present:QueryCapabilities~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (capabilities :initarg :capabilities :type xcb:CARD32)))
+
+(defclass xcb:present:Generic
+ (xcb:-event)
+ ((extension :initarg :extension :type xcb:CARD8)
+ (length :initarg :length :type xcb:CARD32)
+ (evtype :initarg :evtype :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (event :initarg :event :type xcb:present:EVENT)))
+
+(defclass xcb:present:ConfigureNotify
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (event :initarg :event :type xcb:present:EVENT)
+ (window :initarg :window :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (off-x :initarg :off-x :type xcb:INT16)
+ (off-y :initarg :off-y :type xcb:INT16)
+ (pixmap-width :initarg :pixmap-width :type xcb:CARD16)
+ (pixmap-height :initarg :pixmap-height :type xcb:CARD16)
+ (pixmap-flags :initarg :pixmap-flags :type xcb:CARD32)))
+
+(defclass xcb:present:CompleteNotify
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (kind :initarg :kind :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (event :initarg :event :type xcb:present:EVENT)
+ (window :initarg :window :type xcb:WINDOW)
+ (serial :initarg :serial :type xcb:CARD32)
+ (ust :initarg :ust :type xcb:present:CARD64)
+ (msc :initarg :msc :type xcb:present:CARD64)))
+
+(defclass xcb:present:IdleNotify
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (event :initarg :event :type xcb:present:EVENT)
+ (window :initarg :window :type xcb:WINDOW)
+ (serial :initarg :serial :type xcb:CARD32)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)
+ (idle-fence :initarg :idle-fence :type xcb:present:FENCE)))
+
+(defclass xcb:present:RedirectNotify
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (update-window :initarg :update-window :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:present:EVENT)
+ (event-window :initarg :event-window :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)
+ (serial :initarg :serial :type xcb:CARD32)
+ (valid-region :initarg :valid-region :type xcb:present:REGION)
+ (update-region :initarg :update-region :type xcb:present:REGION)
+ (valid-rect :initarg :valid-rect :type xcb:RECTANGLE)
+ (update-rect :initarg :update-rect :type xcb:RECTANGLE)
+ (x-off :initarg :x-off :type xcb:INT16)
+ (y-off :initarg :y-off :type xcb:INT16)
+ (target-crtc :initarg :target-crtc :type xcb:present:CRTC)
+ (wait-fence :initarg :wait-fence :type xcb:present:FENCE)
+ (idle-fence :initarg :idle-fence :type xcb:present:FENCE)
+ (options :initarg :options :type xcb:CARD32)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (target-msc :initarg :target-msc :type xcb:present:CARD64)
+ (divisor :initarg :divisor :type xcb:present:CARD64)
+ (remainder :initarg :remainder :type xcb:present:CARD64)
+ (notifies :initarg :notifies :type xcb:-ignore)
+ (notifies~ :initform
+ '(name notifies type xcb:present:Notify size nil)
+ :type xcb:-list)))
+
+(defconst xcb:present:event-number-class-alist
+ '((0 . xcb:present:Generic)
+ (0 . xcb:present:ConfigureNotify)
+ (1 . xcb:present:CompleteNotify)
+ (2 . xcb:present:IdleNotify)
+ (3 . xcb:present:RedirectNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-present)
diff --git a/xcb-randr.el b/xcb-randr.el
new file mode 100644
index 0000000..ed78538
--- /dev/null
+++ b/xcb-randr.el
@@ -0,0 +1,946 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `randr.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:randr:-extension-xname "RANDR")
+(defconst xcb:randr:-extension-name "RandR")
+(defconst xcb:randr:-major-version 1)
+(defconst xcb:randr:-minor-version 4)
+
+(require 'xcb-xproto)
+
+(require 'xcb-render)
+
+(xcb:deftypealias 'xcb:randr:MODE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:randr:CRTC 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:randr:OUTPUT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:randr:PROVIDER 'xcb:-u4)
+
+(defclass xcb:randr:BadOutput
+ (xcb:-error)
+ nil)
+
+(defclass xcb:randr:BadCrtc
+ (xcb:-error)
+ nil)
+
+(defclass xcb:randr:BadMode
+ (xcb:-error)
+ nil)
+
+(defclass xcb:randr:BadProvider
+ (xcb:-error)
+ nil)
+
+(defconst xcb:randr:Rotation:Rotate_0 1)
+(defconst xcb:randr:Rotation:Rotate_90 2)
+(defconst xcb:randr:Rotation:Rotate_180 4)
+(defconst xcb:randr:Rotation:Rotate_270 8)
+(defconst xcb:randr:Rotation:Reflect_X 16)
+(defconst xcb:randr:Rotation:Reflect_Y 32)
+
+(defclass xcb:randr:ScreenSize
+ (xcb:-struct)
+ ((width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (mwidth :initarg :mwidth :type xcb:CARD16)
+ (mheight :initarg :mheight :type xcb:CARD16)))
+
+(defclass xcb:randr:RefreshRates
+ (xcb:-struct)
+ ((nRates :initarg :nRates :type xcb:CARD16)
+ (rates :initarg :rates :type xcb:-ignore)
+ (rates~ :initform
+ '(name rates type xcb:CARD16 size
+ (xcb:-fieldref 'nRates))
+ :type xcb:-list)))
+
+(defclass xcb:randr:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)))
+(defclass xcb:randr:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defconst xcb:randr:SetConfig:Success 0)
+(defconst xcb:randr:SetConfig:InvalidConfigTime 1)
+(defconst xcb:randr:SetConfig:InvalidTime 2)
+(defconst xcb:randr:SetConfig:Failed 3)
+
+(defclass xcb:randr:SetScreenConfig
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (sizeID :initarg :sizeID :type xcb:CARD16)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (rate :initarg :rate :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:randr:SetScreenConfig~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (new-timestamp :initarg :new-timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (subpixel-order :initarg :subpixel-order :type xcb:CARD16)
+ (pad~0 :initform 10 :type xcb:-pad)))
+
+(defconst xcb:randr:NotifyMask:ScreenChange 1)
+(defconst xcb:randr:NotifyMask:CrtcChange 2)
+(defconst xcb:randr:NotifyMask:OutputChange 4)
+(defconst xcb:randr:NotifyMask:OutputProperty 8)
+(defconst xcb:randr:NotifyMask:ProviderChange 16)
+(defconst xcb:randr:NotifyMask:ProviderProperty 32)
+(defconst xcb:randr:NotifyMask:ResourceChange 64)
+
+(defclass xcb:randr:SelectInput
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (enable :initarg :enable :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:randr:GetScreenInfo
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetScreenInfo~reply
+ (xcb:-reply)
+ ((rotations :initarg :rotations :type xcb:CARD8)
+ (root :initarg :root :type xcb:WINDOW)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (nSizes :initarg :nSizes :type xcb:CARD16)
+ (sizeID :initarg :sizeID :type xcb:CARD16)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (rate :initarg :rate :type xcb:CARD16)
+ (nInfo :initarg :nInfo :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (sizes :initarg :sizes :type xcb:-ignore)
+ (sizes~ :initform
+ '(name sizes type xcb:randr:ScreenSize size
+ (xcb:-fieldref 'nSizes))
+ :type xcb:-list)
+ (rates :initarg :rates :type xcb:-ignore)
+ (rates~ :initform
+ '(name rates type xcb:randr:RefreshRates size
+ (-
+ (xcb:-fieldref 'nInfo)
+ (xcb:-fieldref 'nSizes)))
+ :type xcb:-list)))
+
+(defclass xcb:randr:GetScreenSizeRange
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetScreenSizeRange~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (min-width :initarg :min-width :type xcb:CARD16)
+ (min-height :initarg :min-height :type xcb:CARD16)
+ (max-width :initarg :max-width :type xcb:CARD16)
+ (max-height :initarg :max-height :type xcb:CARD16)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:randr:SetScreenSize
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (mm-width :initarg :mm-width :type xcb:CARD32)
+ (mm-height :initarg :mm-height :type xcb:CARD32)))
+
+(defconst xcb:randr:ModeFlag:HsyncPositive 1)
+(defconst xcb:randr:ModeFlag:HsyncNegative 2)
+(defconst xcb:randr:ModeFlag:VsyncPositive 4)
+(defconst xcb:randr:ModeFlag:VsyncNegative 8)
+(defconst xcb:randr:ModeFlag:Interlace 16)
+(defconst xcb:randr:ModeFlag:DoubleScan 32)
+(defconst xcb:randr:ModeFlag:Csync 64)
+(defconst xcb:randr:ModeFlag:CsyncPositive 128)
+(defconst xcb:randr:ModeFlag:CsyncNegative 256)
+(defconst xcb:randr:ModeFlag:HskewPresent 512)
+(defconst xcb:randr:ModeFlag:Bcast 1024)
+(defconst xcb:randr:ModeFlag:PixelMultiplex 2048)
+(defconst xcb:randr:ModeFlag:DoubleClock 4096)
+(defconst xcb:randr:ModeFlag:HalveClock 8192)
+
+(defclass xcb:randr:ModeInfo
+ (xcb:-struct)
+ ((id :initarg :id :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (dot-clock :initarg :dot-clock :type xcb:CARD32)
+ (hsync-start :initarg :hsync-start :type xcb:CARD16)
+ (hsync-end :initarg :hsync-end :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vsync-start :initarg :vsync-start :type xcb:CARD16)
+ (vsync-end :initarg :vsync-end :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (mode-flags :initarg :mode-flags :type xcb:CARD32)))
+
+(defclass xcb:randr:GetScreenResources
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetScreenResources~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (num-crtcs :initarg :num-crtcs :type xcb:CARD16)
+ (num-outputs :initarg :num-outputs :type xcb:CARD16)
+ (num-modes :initarg :num-modes :type xcb:CARD16)
+ (names-len :initarg :names-len :type xcb:CARD16)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (crtcs :initarg :crtcs :type xcb:-ignore)
+ (crtcs~ :initform
+ '(name crtcs type xcb:randr:CRTC size
+ (xcb:-fieldref 'num-crtcs))
+ :type xcb:-list)
+ (outputs :initarg :outputs :type xcb:-ignore)
+ (outputs~ :initform
+ '(name outputs type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-outputs))
+ :type xcb:-list)
+ (modes :initarg :modes :type xcb:-ignore)
+ (modes~ :initform
+ '(name modes type xcb:randr:ModeInfo size
+ (xcb:-fieldref 'num-modes))
+ :type xcb:-list)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:BYTE size
+ (xcb:-fieldref 'names-len))
+ :type xcb:-list)))
+
+(defconst xcb:randr:Connection:Connected 0)
+(defconst xcb:randr:Connection:Disconnected 1)
+(defconst xcb:randr:Connection:Unknown 2)
+
+(defclass xcb:randr:GetOutputInfo
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)))
+(defclass xcb:randr:GetOutputInfo~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (mm-width :initarg :mm-width :type xcb:CARD32)
+ (mm-height :initarg :mm-height :type xcb:CARD32)
+ (connection :initarg :connection :type xcb:CARD8)
+ (subpixel-order :initarg :subpixel-order :type xcb:CARD8)
+ (num-crtcs :initarg :num-crtcs :type xcb:CARD16)
+ (num-modes :initarg :num-modes :type xcb:CARD16)
+ (num-preferred :initarg :num-preferred :type xcb:CARD16)
+ (num-clones :initarg :num-clones :type xcb:CARD16)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (crtcs :initarg :crtcs :type xcb:-ignore)
+ (crtcs~ :initform
+ '(name crtcs type xcb:randr:CRTC size
+ (xcb:-fieldref 'num-crtcs))
+ :type xcb:-list)
+ (modes :initarg :modes :type xcb:-ignore)
+ (modes~ :initform
+ '(name modes type xcb:randr:MODE size
+ (xcb:-fieldref 'num-modes))
+ :type xcb:-list)
+ (clones :initarg :clones :type xcb:-ignore)
+ (clones~ :initform
+ '(name clones type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-clones))
+ :type xcb:-list)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:BYTE size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:randr:ListOutputProperties
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)))
+(defclass xcb:randr:ListOutputProperties~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-atoms :initarg :num-atoms :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (atoms :initarg :atoms :type xcb:-ignore)
+ (atoms~ :initform
+ '(name atoms type xcb:ATOM size
+ (xcb:-fieldref 'num-atoms))
+ :type xcb:-list)))
+
+(defclass xcb:randr:QueryOutputProperty
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (property :initarg :property :type xcb:ATOM)))
+(defclass xcb:randr:QueryOutputProperty~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pending :initarg :pending :type xcb:BOOL)
+ (range :initarg :range :type xcb:BOOL)
+ (immutable :initarg :immutable :type xcb:BOOL)
+ (pad~1 :initform 21 :type xcb:-pad)
+ (validValues :initarg :validValues :type xcb:-ignore)
+ (validValues~ :initform
+ '(name validValues type xcb:INT32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:randr:ConfigureOutputProperty
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (property :initarg :property :type xcb:ATOM)
+ (pending :initarg :pending :type xcb:BOOL)
+ (range :initarg :range :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (values :initarg :values :type xcb:-ignore)
+ (values~ :initform
+ '(name values type xcb:INT32 size nil)
+ :type xcb:-list)))
+
+(defclass xcb:randr:ChangeOutputProperty
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (format :initarg :format :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (num-units :initarg :num-units :type xcb:CARD32)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:void size
+ (/
+ (*
+ (xcb:-fieldref 'num-units)
+ (xcb:-fieldref 'format))
+ 8))
+ :type xcb:-list)))
+
+(defclass xcb:randr:DeleteOutputProperty
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defclass xcb:randr:GetOutputProperty
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (long-offset :initarg :long-offset :type xcb:CARD32)
+ (long-length :initarg :long-length :type xcb:CARD32)
+ (delete :initarg :delete :type xcb:BOOL)
+ (pending :initarg :pending :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:randr:GetOutputProperty~reply
+ (xcb:-reply)
+ ((format :initarg :format :type xcb:CARD8)
+ (type :initarg :type :type xcb:ATOM)
+ (bytes-after :initarg :bytes-after :type xcb:CARD32)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (pad~0 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'num-items)
+ (/
+ (xcb:-fieldref 'format)
+ 8)))
+ :type xcb:-list)))
+
+(defclass xcb:randr:CreateMode
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (mode-info :initarg :mode-info :type xcb:randr:ModeInfo)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size nil)
+ :type xcb:-list)))
+(defclass xcb:randr:CreateMode~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (mode :initarg :mode :type xcb:randr:MODE)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:randr:DestroyMode
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:randr:MODE)))
+
+(defclass xcb:randr:AddOutputMode
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (mode :initarg :mode :type xcb:randr:MODE)))
+
+(defclass xcb:randr:DeleteOutputMode
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (mode :initarg :mode :type xcb:randr:MODE)))
+
+(defclass xcb:randr:GetCrtcInfo
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)))
+(defclass xcb:randr:GetCrtcInfo~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (mode :initarg :mode :type xcb:randr:MODE)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (rotations :initarg :rotations :type xcb:CARD16)
+ (num-outputs :initarg :num-outputs :type xcb:CARD16)
+ (num-possible-outputs :initarg :num-possible-outputs :type xcb:CARD16)
+ (outputs :initarg :outputs :type xcb:-ignore)
+ (outputs~ :initform
+ '(name outputs type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-outputs))
+ :type xcb:-list)
+ (possible :initarg :possible :type xcb:-ignore)
+ (possible~ :initform
+ '(name possible type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-possible-outputs))
+ :type xcb:-list)))
+
+(defclass xcb:randr:SetCrtcConfig
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (mode :initarg :mode :type xcb:randr:MODE)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (outputs :initarg :outputs :type xcb:-ignore)
+ (outputs~ :initform
+ '(name outputs type xcb:randr:OUTPUT size nil)
+ :type xcb:-list)))
+(defclass xcb:randr:SetCrtcConfig~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (pad~0 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:randr:GetCrtcGammaSize
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)))
+(defclass xcb:randr:GetCrtcGammaSize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (size :initarg :size :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)))
+
+(defclass xcb:randr:GetCrtcGamma
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)))
+(defclass xcb:randr:GetCrtcGamma~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (size :initarg :size :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (red :initarg :red :type xcb:-ignore)
+ (red~ :initform
+ '(name red type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)
+ (green :initarg :green :type xcb:-ignore)
+ (green~ :initform
+ '(name green type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)
+ (blue :initarg :blue :type xcb:-ignore)
+ (blue~ :initform
+ '(name blue type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)))
+
+(defclass xcb:randr:SetCrtcGamma
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (size :initarg :size :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (red :initarg :red :type xcb:-ignore)
+ (red~ :initform
+ '(name red type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)
+ (green :initarg :green :type xcb:-ignore)
+ (green~ :initform
+ '(name green type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)
+ (blue :initarg :blue :type xcb:-ignore)
+ (blue~ :initform
+ '(name blue type xcb:CARD16 size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)))
+
+(defclass xcb:randr:GetScreenResourcesCurrent
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetScreenResourcesCurrent~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (num-crtcs :initarg :num-crtcs :type xcb:CARD16)
+ (num-outputs :initarg :num-outputs :type xcb:CARD16)
+ (num-modes :initarg :num-modes :type xcb:CARD16)
+ (names-len :initarg :names-len :type xcb:CARD16)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (crtcs :initarg :crtcs :type xcb:-ignore)
+ (crtcs~ :initform
+ '(name crtcs type xcb:randr:CRTC size
+ (xcb:-fieldref 'num-crtcs))
+ :type xcb:-list)
+ (outputs :initarg :outputs :type xcb:-ignore)
+ (outputs~ :initform
+ '(name outputs type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-outputs))
+ :type xcb:-list)
+ (modes :initarg :modes :type xcb:-ignore)
+ (modes~ :initform
+ '(name modes type xcb:randr:ModeInfo size
+ (xcb:-fieldref 'num-modes))
+ :type xcb:-list)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:BYTE size
+ (xcb:-fieldref 'names-len))
+ :type xcb:-list)))
+
+(defconst xcb:randr:Transform:Unit 1)
+(defconst xcb:randr:Transform:ScaleUp 2)
+(defconst xcb:randr:Transform:ScaleDown 4)
+(defconst xcb:randr:Transform:Projective 8)
+
+(defclass xcb:randr:SetCrtcTransform
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (transform :initarg :transform :type xcb:randr:TRANSFORM)
+ (filter-len :initarg :filter-len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (filter-name :initarg :filter-name :type xcb:-ignore)
+ (filter-name~ :initform
+ '(name filter-name type xcb:char size
+ (xcb:-fieldref 'filter-len))
+ :type xcb:-list)
+ (filter-params :initarg :filter-params :type xcb:-ignore)
+ (filter-params~ :initform
+ '(name filter-params type xcb:randr:FIXED size nil)
+ :type xcb:-list)))
+
+(defclass xcb:randr:GetCrtcTransform
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)))
+(defclass xcb:randr:GetCrtcTransform~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pending-transform :initarg :pending-transform :type xcb:randr:TRANSFORM)
+ (has-transforms :initarg :has-transforms :type xcb:BOOL)
+ (pad~1 :initform 3 :type xcb:-pad)
+ (current-transform :initarg :current-transform :type xcb:randr:TRANSFORM)
+ (pad~2 :initform 4 :type xcb:-pad)
+ (pending-len :initarg :pending-len :type xcb:CARD16)
+ (pending-nparams :initarg :pending-nparams :type xcb:CARD16)
+ (current-len :initarg :current-len :type xcb:CARD16)
+ (current-nparams :initarg :current-nparams :type xcb:CARD16)
+ (pending-filter-name :initarg :pending-filter-name :type xcb:-ignore)
+ (pending-filter-name~ :initform
+ '(name pending-filter-name type xcb:char size
+ (xcb:-fieldref 'pending-len))
+ :type xcb:-list)
+ (pending-params :initarg :pending-params :type xcb:-ignore)
+ (pending-params~ :initform
+ '(name pending-params type xcb:randr:FIXED size
+ (xcb:-fieldref 'pending-nparams))
+ :type xcb:-list)
+ (current-filter-name :initarg :current-filter-name :type xcb:-ignore)
+ (current-filter-name~ :initform
+ '(name current-filter-name type xcb:char size
+ (xcb:-fieldref 'current-len))
+ :type xcb:-list)
+ (current-params :initarg :current-params :type xcb:-ignore)
+ (current-params~ :initform
+ '(name current-params type xcb:randr:FIXED size
+ (xcb:-fieldref 'current-nparams))
+ :type xcb:-list)))
+
+(defclass xcb:randr:GetPanning
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)))
+(defclass xcb:randr:GetPanning~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (left :initarg :left :type xcb:CARD16)
+ (top :initarg :top :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (track-left :initarg :track-left :type xcb:CARD16)
+ (track-top :initarg :track-top :type xcb:CARD16)
+ (track-width :initarg :track-width :type xcb:CARD16)
+ (track-height :initarg :track-height :type xcb:CARD16)
+ (border-left :initarg :border-left :type xcb:INT16)
+ (border-top :initarg :border-top :type xcb:INT16)
+ (border-right :initarg :border-right :type xcb:INT16)
+ (border-bottom :initarg :border-bottom :type xcb:INT16)))
+
+(defclass xcb:randr:SetPanning
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (left :initarg :left :type xcb:CARD16)
+ (top :initarg :top :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (track-left :initarg :track-left :type xcb:CARD16)
+ (track-top :initarg :track-top :type xcb:CARD16)
+ (track-width :initarg :track-width :type xcb:CARD16)
+ (track-height :initarg :track-height :type xcb:CARD16)
+ (border-left :initarg :border-left :type xcb:INT16)
+ (border-top :initarg :border-top :type xcb:INT16)
+ (border-right :initarg :border-right :type xcb:INT16)
+ (border-bottom :initarg :border-bottom :type xcb:INT16)))
+(defclass xcb:randr:SetPanning~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)))
+
+(defclass xcb:randr:SetOutputPrimary
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (output :initarg :output :type xcb:randr:OUTPUT)))
+
+(defclass xcb:randr:GetOutputPrimary
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetOutputPrimary~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (output :initarg :output :type xcb:randr:OUTPUT)))
+
+(defclass xcb:randr:GetProviders
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:randr:GetProviders~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (num-providers :initarg :num-providers :type xcb:CARD16)
+ (pad~1 :initform 18 :type xcb:-pad)
+ (providers :initarg :providers :type xcb:-ignore)
+ (providers~ :initform
+ '(name providers type xcb:randr:PROVIDER size
+ (xcb:-fieldref 'num-providers))
+ :type xcb:-list)))
+
+(defconst xcb:randr:ProviderCapability:SourceOutput 1)
+(defconst xcb:randr:ProviderCapability:SinkOutput 2)
+(defconst xcb:randr:ProviderCapability:SourceOffload 4)
+(defconst xcb:randr:ProviderCapability:SinkOffload 8)
+
+(defclass xcb:randr:GetProviderInfo
+ (xcb:-request)
+ ((~opcode :initform 33 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)))
+(defclass xcb:randr:GetProviderInfo~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (capabilities :initarg :capabilities :type xcb:CARD32)
+ (num-crtcs :initarg :num-crtcs :type xcb:CARD16)
+ (num-outputs :initarg :num-outputs :type xcb:CARD16)
+ (num-associated-providers :initarg :num-associated-providers :type
xcb:CARD16)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~0 :initform 8 :type xcb:-pad)
+ (crtcs :initarg :crtcs :type xcb:-ignore)
+ (crtcs~ :initform
+ '(name crtcs type xcb:randr:CRTC size
+ (xcb:-fieldref 'num-crtcs))
+ :type xcb:-list)
+ (outputs :initarg :outputs :type xcb:-ignore)
+ (outputs~ :initform
+ '(name outputs type xcb:randr:OUTPUT size
+ (xcb:-fieldref 'num-outputs))
+ :type xcb:-list)
+ (associated-providers :initarg :associated-providers :type xcb:-ignore)
+ (associated-providers~ :initform
+ '(name associated-providers type xcb:randr:PROVIDER
size
+ (xcb:-fieldref 'num-associated-providers))
+ :type xcb:-list)
+ (associated-capability :initarg :associated-capability :type xcb:-ignore)
+ (associated-capability~ :initform
+ '(name associated-capability type xcb:CARD32 size
+ (xcb:-fieldref 'num-associated-providers))
+ :type xcb:-list)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:randr:SetProviderOffloadSink
+ (xcb:-request)
+ ((~opcode :initform 34 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (sink-provider :initarg :sink-provider :type xcb:randr:PROVIDER)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)))
+
+(defclass xcb:randr:SetProviderOutputSource
+ (xcb:-request)
+ ((~opcode :initform 35 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (source-provider :initarg :source-provider :type xcb:randr:PROVIDER)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)))
+
+(defclass xcb:randr:ListProviderProperties
+ (xcb:-request)
+ ((~opcode :initform 36 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)))
+(defclass xcb:randr:ListProviderProperties~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-atoms :initarg :num-atoms :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (atoms :initarg :atoms :type xcb:-ignore)
+ (atoms~ :initform
+ '(name atoms type xcb:ATOM size
+ (xcb:-fieldref 'num-atoms))
+ :type xcb:-list)))
+
+(defclass xcb:randr:QueryProviderProperty
+ (xcb:-request)
+ ((~opcode :initform 37 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (property :initarg :property :type xcb:ATOM)))
+(defclass xcb:randr:QueryProviderProperty~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pending :initarg :pending :type xcb:BOOL)
+ (range :initarg :range :type xcb:BOOL)
+ (immutable :initarg :immutable :type xcb:BOOL)
+ (pad~1 :initform 21 :type xcb:-pad)
+ (valid-values :initarg :valid-values :type xcb:-ignore)
+ (valid-values~ :initform
+ '(name valid-values type xcb:INT32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:randr:ConfigureProviderProperty
+ (xcb:-request)
+ ((~opcode :initform 38 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (property :initarg :property :type xcb:ATOM)
+ (pending :initarg :pending :type xcb:BOOL)
+ (range :initarg :range :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (values :initarg :values :type xcb:-ignore)
+ (values~ :initform
+ '(name values type xcb:INT32 size nil)
+ :type xcb:-list)))
+
+(defclass xcb:randr:ChangeProviderProperty
+ (xcb:-request)
+ ((~opcode :initform 39 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (format :initarg :format :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:void size
+ (*
+ (xcb:-fieldref 'num-items)
+ (/
+ (xcb:-fieldref 'format)
+ 8)))
+ :type xcb:-list)))
+
+(defclass xcb:randr:DeleteProviderProperty
+ (xcb:-request)
+ ((~opcode :initform 40 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defclass xcb:randr:GetProviderProperty
+ (xcb:-request)
+ ((~opcode :initform 41 :type xcb:-u1)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (long-offset :initarg :long-offset :type xcb:CARD32)
+ (long-length :initarg :long-length :type xcb:CARD32)
+ (delete :initarg :delete :type xcb:BOOL)
+ (pending :initarg :pending :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:randr:GetProviderProperty~reply
+ (xcb:-reply)
+ ((format :initarg :format :type xcb:CARD8)
+ (type :initarg :type :type xcb:ATOM)
+ (bytes-after :initarg :bytes-after :type xcb:CARD32)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (pad~0 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:void size
+ (*
+ (xcb:-fieldref 'num-items)
+ (/
+ (xcb:-fieldref 'format)
+ 8)))
+ :type xcb:-list)))
+
+(defclass xcb:randr:ScreenChangeNotify
+ (xcb:-event)
+ ((rotation :initarg :rotation :type xcb:CARD8)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (request-window :initarg :request-window :type xcb:WINDOW)
+ (sizeID :initarg :sizeID :type xcb:CARD16)
+ (subpixel-order :initarg :subpixel-order :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (mwidth :initarg :mwidth :type xcb:CARD16)
+ (mheight :initarg :mheight :type xcb:CARD16)))
+
+(defconst xcb:randr:Notify:CrtcChange 0)
+(defconst xcb:randr:Notify:OutputChange 1)
+(defconst xcb:randr:Notify:OutputProperty 2)
+(defconst xcb:randr:Notify:ProviderChange 3)
+(defconst xcb:randr:Notify:ProviderProperty 4)
+(defconst xcb:randr:Notify:ResourceChange 5)
+
+(defclass xcb:randr:CrtcChange
+ (xcb:-struct)
+ ((timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (window :initarg :window :type xcb:WINDOW)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (mode :initarg :mode :type xcb:randr:MODE)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:randr:OutputChange
+ (xcb:-struct)
+ ((timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP)
+ (window :initarg :window :type xcb:WINDOW)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (crtc :initarg :crtc :type xcb:randr:CRTC)
+ (mode :initarg :mode :type xcb:randr:MODE)
+ (rotation :initarg :rotation :type xcb:CARD16)
+ (connection :initarg :connection :type xcb:CARD8)
+ (subpixel-order :initarg :subpixel-order :type xcb:CARD8)))
+
+(defclass xcb:randr:OutputProperty
+ (xcb:-struct)
+ ((window :initarg :window :type xcb:WINDOW)
+ (output :initarg :output :type xcb:randr:OUTPUT)
+ (atom :initarg :atom :type xcb:ATOM)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 11 :type xcb:-pad)))
+
+(defclass xcb:randr:ProviderChange
+ (xcb:-struct)
+ ((timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (window :initarg :window :type xcb:WINDOW)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (pad~0 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:randr:ProviderProperty
+ (xcb:-struct)
+ ((window :initarg :window :type xcb:WINDOW)
+ (provider :initarg :provider :type xcb:randr:PROVIDER)
+ (atom :initarg :atom :type xcb:ATOM)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (state :initarg :state :type xcb:CARD8)
+ (pad~0 :initform 11 :type xcb:-pad)))
+
+(defclass xcb:randr:ResourceChange
+ (xcb:-struct)
+ ((timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (window :initarg :window :type xcb:WINDOW)
+ (pad~0 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:randr:NotifyData
+ (xcb:-union)
+ ((cc :initarg :cc :type xcb:randr:CrtcChange)
+ (oc :initarg :oc :type xcb:randr:OutputChange)
+ (op :initarg :op :type xcb:randr:OutputProperty)
+ (pc :initarg :pc :type xcb:randr:ProviderChange)
+ (pp :initarg :pp :type xcb:randr:ProviderProperty)
+ (rc :initarg :rc :type xcb:randr:ResourceChange)))
+
+(defclass xcb:randr:Notify
+ (xcb:-event)
+ ((subCode :initarg :subCode :type xcb:CARD8)
+ (u :initarg :u :type xcb:randr:NotifyData)))
+
+(defconst xcb:randr:error-number-class-alist
+ '((0 . xcb:randr:BadOutput)
+ (1 . xcb:randr:BadCrtc)
+ (2 . xcb:randr:BadMode)
+ (3 . xcb:randr:BadProvider))
+ "(error-number . error-class) alist")
+
+(defconst xcb:randr:event-number-class-alist
+ '((0 . xcb:randr:ScreenChangeNotify)
+ (1 . xcb:randr:Notify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-randr)
diff --git a/xcb-record.el b/xcb-record.el
new file mode 100644
index 0000000..b89327c
--- /dev/null
+++ b/xcb-record.el
@@ -0,0 +1,181 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `record.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:record:-extension-xname "RECORD")
+(defconst xcb:record:-extension-name "Record")
+(defconst xcb:record:-major-version 1)
+(defconst xcb:record:-minor-version 13)
+
+(xcb:deftypealias 'xcb:record:CONTEXT 'xcb:-u4)
+
+(defclass xcb:record:Range8
+ (xcb:-struct)
+ ((first :initarg :first :type xcb:CARD8)
+ (last :initarg :last :type xcb:CARD8)))
+
+(defclass xcb:record:Range16
+ (xcb:-struct)
+ ((first :initarg :first :type xcb:CARD16)
+ (last :initarg :last :type xcb:CARD16)))
+
+(defclass xcb:record:ExtRange
+ (xcb:-struct)
+ ((major :initarg :major :type xcb:record:Range8)
+ (minor :initarg :minor :type xcb:record:Range16)))
+
+(defclass xcb:record:Range
+ (xcb:-struct)
+ ((core-requests :initarg :core-requests :type xcb:record:Range8)
+ (core-replies :initarg :core-replies :type xcb:record:Range8)
+ (ext-requests :initarg :ext-requests :type xcb:record:ExtRange)
+ (ext-replies :initarg :ext-replies :type xcb:record:ExtRange)
+ (delivered-events :initarg :delivered-events :type xcb:record:Range8)
+ (device-events :initarg :device-events :type xcb:record:Range8)
+ (errors :initarg :errors :type xcb:record:Range8)
+ (client-started :initarg :client-started :type xcb:BOOL)
+ (client-died :initarg :client-died :type xcb:BOOL)))
+
+(xcb:deftypealias 'xcb:record:ElementHeader 'xcb:CARD8)
+
+(defconst xcb:record:HType:FromServerTime 1)
+(defconst xcb:record:HType:FromClientTime 2)
+(defconst xcb:record:HType:FromClientSequence 4)
+
+(xcb:deftypealias 'xcb:record:ClientSpec 'xcb:CARD32)
+
+(defconst xcb:record:CS:CurrentClients 1)
+(defconst xcb:record:CS:FutureClients 2)
+(defconst xcb:record:CS:AllClients 3)
+
+(defclass xcb:record:ClientInfo
+ (xcb:-struct)
+ ((client-resource :initarg :client-resource :type xcb:record:ClientSpec)
+ (num-ranges :initarg :num-ranges :type xcb:CARD32)
+ (ranges :initarg :ranges :type xcb:-ignore)
+ (ranges~ :initform
+ '(name ranges type xcb:record:Range size
+ (xcb:-fieldref 'num-ranges))
+ :type xcb:-list)))
+
+(defclass xcb:record:BadContext
+ (xcb:-error)
+ ((invalid-record :initarg :invalid-record :type xcb:CARD32)))
+
+(defclass xcb:record:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+(defclass xcb:record:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+
+(defclass xcb:record:CreateContext
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)
+ (element-header :initarg :element-header :type xcb:record:ElementHeader)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (num-client-specs :initarg :num-client-specs :type xcb:CARD32)
+ (num-ranges :initarg :num-ranges :type xcb:CARD32)
+ (client-specs :initarg :client-specs :type xcb:-ignore)
+ (client-specs~ :initform
+ '(name client-specs type xcb:record:ClientSpec size
+ (xcb:-fieldref 'num-client-specs))
+ :type xcb:-list)
+ (ranges :initarg :ranges :type xcb:-ignore)
+ (ranges~ :initform
+ '(name ranges type xcb:record:Range size
+ (xcb:-fieldref 'num-ranges))
+ :type xcb:-list)))
+
+(defclass xcb:record:RegisterClients
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)
+ (element-header :initarg :element-header :type xcb:record:ElementHeader)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (num-client-specs :initarg :num-client-specs :type xcb:CARD32)
+ (num-ranges :initarg :num-ranges :type xcb:CARD32)
+ (client-specs :initarg :client-specs :type xcb:-ignore)
+ (client-specs~ :initform
+ '(name client-specs type xcb:record:ClientSpec size
+ (xcb:-fieldref 'num-client-specs))
+ :type xcb:-list)
+ (ranges :initarg :ranges :type xcb:-ignore)
+ (ranges~ :initform
+ '(name ranges type xcb:record:Range size
+ (xcb:-fieldref 'num-ranges))
+ :type xcb:-list)))
+
+(defclass xcb:record:UnregisterClients
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)
+ (num-client-specs :initarg :num-client-specs :type xcb:CARD32)
+ (client-specs :initarg :client-specs :type xcb:-ignore)
+ (client-specs~ :initform
+ '(name client-specs type xcb:record:ClientSpec size
+ (xcb:-fieldref 'num-client-specs))
+ :type xcb:-list)))
+
+(defclass xcb:record:GetContext
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)))
+(defclass xcb:record:GetContext~reply
+ (xcb:-reply)
+ ((enabled :initarg :enabled :type xcb:BOOL)
+ (element-header :initarg :element-header :type xcb:record:ElementHeader)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (num-intercepted-clients :initarg :num-intercepted-clients :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (intercepted-clients :initarg :intercepted-clients :type xcb:-ignore)
+ (intercepted-clients~ :initform
+ '(name intercepted-clients type xcb:record:ClientInfo
size
+ (xcb:-fieldref 'num-intercepted-clients))
+ :type xcb:-list)))
+
+(defclass xcb:record:EnableContext
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)))
+(defclass xcb:record:EnableContext~reply
+ (xcb:-reply)
+ ((category :initarg :category :type xcb:CARD8)
+ (element-header :initarg :element-header :type xcb:record:ElementHeader)
+ (client-swapped :initarg :client-swapped :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (xid-base :initarg :xid-base :type xcb:CARD32)
+ (server-time :initarg :server-time :type xcb:CARD32)
+ (rec-sequence-num :initarg :rec-sequence-num :type xcb:CARD32)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:record:DisableContext
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)))
+
+(defclass xcb:record:FreeContext
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (context :initarg :context :type xcb:record:CONTEXT)))
+
+(defconst xcb:record:error-number-class-alist
+ '((0 . xcb:record:BadContext))
+ "(error-number . error-class) alist")
+
+
+
+(provide 'xcb-record)
diff --git a/xcb-render.el b/xcb-render.el
new file mode 100644
index 0000000..841a021
--- /dev/null
+++ b/xcb-render.el
@@ -0,0 +1,729 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `render.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:render:-extension-xname "RENDER")
+(defconst xcb:render:-extension-name "Render")
+(defconst xcb:render:-major-version 0)
+(defconst xcb:render:-minor-version 11)
+
+(require 'xcb-xproto)
+
+(defconst xcb:render:PictType:Indexed 0)
+(defconst xcb:render:PictType:Direct 1)
+
+(defconst xcb:render:Picture:None 0)
+
+(defconst xcb:render:PictOp:Clear 0)
+(defconst xcb:render:PictOp:Src 1)
+(defconst xcb:render:PictOp:Dst 2)
+(defconst xcb:render:PictOp:Over 3)
+(defconst xcb:render:PictOp:OverReverse 4)
+(defconst xcb:render:PictOp:In 5)
+(defconst xcb:render:PictOp:InReverse 6)
+(defconst xcb:render:PictOp:Out 7)
+(defconst xcb:render:PictOp:OutReverse 8)
+(defconst xcb:render:PictOp:Atop 9)
+(defconst xcb:render:PictOp:AtopReverse 10)
+(defconst xcb:render:PictOp:Xor 11)
+(defconst xcb:render:PictOp:Add 12)
+(defconst xcb:render:PictOp:Saturate 13)
+(defconst xcb:render:PictOp:DisjointClear 16)
+(defconst xcb:render:PictOp:DisjointSrc 17)
+(defconst xcb:render:PictOp:DisjointDst 18)
+(defconst xcb:render:PictOp:DisjointOver 19)
+(defconst xcb:render:PictOp:DisjointOverReverse 20)
+(defconst xcb:render:PictOp:DisjointIn 21)
+(defconst xcb:render:PictOp:DisjointInReverse 22)
+(defconst xcb:render:PictOp:DisjointOut 23)
+(defconst xcb:render:PictOp:DisjointOutReverse 24)
+(defconst xcb:render:PictOp:DisjointAtop 25)
+(defconst xcb:render:PictOp:DisjointAtopReverse 26)
+(defconst xcb:render:PictOp:DisjointXor 27)
+(defconst xcb:render:PictOp:ConjointClear 32)
+(defconst xcb:render:PictOp:ConjointSrc 33)
+(defconst xcb:render:PictOp:ConjointDst 34)
+(defconst xcb:render:PictOp:ConjointOver 35)
+(defconst xcb:render:PictOp:ConjointOverReverse 36)
+(defconst xcb:render:PictOp:ConjointIn 37)
+(defconst xcb:render:PictOp:ConjointInReverse 38)
+(defconst xcb:render:PictOp:ConjointOut 39)
+(defconst xcb:render:PictOp:ConjointOutReverse 40)
+(defconst xcb:render:PictOp:ConjointAtop 41)
+(defconst xcb:render:PictOp:ConjointAtopReverse 42)
+(defconst xcb:render:PictOp:ConjointXor 43)
+(defconst xcb:render:PictOp:Multiply 48)
+(defconst xcb:render:PictOp:Screen 49)
+(defconst xcb:render:PictOp:Overlay 50)
+(defconst xcb:render:PictOp:Darken 51)
+(defconst xcb:render:PictOp:Lighten 52)
+(defconst xcb:render:PictOp:ColorDodge 53)
+(defconst xcb:render:PictOp:ColorBurn 54)
+(defconst xcb:render:PictOp:HardLight 55)
+(defconst xcb:render:PictOp:SoftLight 56)
+(defconst xcb:render:PictOp:Difference 57)
+(defconst xcb:render:PictOp:Exclusion 58)
+(defconst xcb:render:PictOp:HSLHue 59)
+(defconst xcb:render:PictOp:HSLSaturation 60)
+(defconst xcb:render:PictOp:HSLColor 61)
+(defconst xcb:render:PictOp:HSLLuminosity 62)
+
+(defconst xcb:render:PolyEdge:Sharp 0)
+(defconst xcb:render:PolyEdge:Smooth 1)
+
+(defconst xcb:render:PolyMode:Precise 0)
+(defconst xcb:render:PolyMode:Imprecise 1)
+
+(defconst xcb:render:CP:Repeat 1)
+(defconst xcb:render:CP:AlphaMap 2)
+(defconst xcb:render:CP:AlphaXOrigin 4)
+(defconst xcb:render:CP:AlphaYOrigin 8)
+(defconst xcb:render:CP:ClipXOrigin 16)
+(defconst xcb:render:CP:ClipYOrigin 32)
+(defconst xcb:render:CP:ClipMask 64)
+(defconst xcb:render:CP:GraphicsExposure 128)
+(defconst xcb:render:CP:SubwindowMode 256)
+(defconst xcb:render:CP:PolyEdge 512)
+(defconst xcb:render:CP:PolyMode 1024)
+(defconst xcb:render:CP:Dither 2048)
+(defconst xcb:render:CP:ComponentAlpha 4096)
+
+(defconst xcb:render:SubPixel:Unknown 0)
+(defconst xcb:render:SubPixel:HorizontalRGB 1)
+(defconst xcb:render:SubPixel:HorizontalBGR 2)
+(defconst xcb:render:SubPixel:VerticalRGB 3)
+(defconst xcb:render:SubPixel:VerticalBGR 4)
+(defconst xcb:render:SubPixel:None 5)
+
+(defconst xcb:render:Repeat:None 0)
+(defconst xcb:render:Repeat:Normal 1)
+(defconst xcb:render:Repeat:Pad 2)
+(defconst xcb:render:Repeat:Reflect 3)
+
+(xcb:deftypealias 'xcb:render:GLYPH 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:render:GLYPHSET 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:render:PICTURE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:render:PICTFORMAT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:render:FIXED 'xcb:INT32)
+
+(defclass xcb:render:PictFormat
+ (xcb:-error)
+ nil)
+
+(defclass xcb:render:Picture
+ (xcb:-error)
+ nil)
+
+(defclass xcb:render:PictOp
+ (xcb:-error)
+ nil)
+
+(defclass xcb:render:GlyphSet
+ (xcb:-error)
+ nil)
+
+(defclass xcb:render:Glyph
+ (xcb:-error)
+ nil)
+
+(defclass xcb:render:DIRECTFORMAT
+ (xcb:-struct)
+ ((red-shift :initarg :red-shift :type xcb:CARD16)
+ (red-mask :initarg :red-mask :type xcb:CARD16)
+ (green-shift :initarg :green-shift :type xcb:CARD16)
+ (green-mask :initarg :green-mask :type xcb:CARD16)
+ (blue-shift :initarg :blue-shift :type xcb:CARD16)
+ (blue-mask :initarg :blue-mask :type xcb:CARD16)
+ (alpha-shift :initarg :alpha-shift :type xcb:CARD16)
+ (alpha-mask :initarg :alpha-mask :type xcb:CARD16)))
+
+(defclass xcb:render:PICTFORMINFO
+ (xcb:-struct)
+ ((id :initarg :id :type xcb:render:PICTFORMAT)
+ (type :initarg :type :type xcb:CARD8)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (direct :initarg :direct :type xcb:render:DIRECTFORMAT)
+ (colormap :initarg :colormap :type xcb:COLORMAP)))
+
+(defclass xcb:render:PICTVISUAL
+ (xcb:-struct)
+ ((visual :initarg :visual :type xcb:VISUALID)
+ (format :initarg :format :type xcb:render:PICTFORMAT)))
+
+(defclass xcb:render:PICTDEPTH
+ (xcb:-struct)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (num-visuals :initarg :num-visuals :type xcb:CARD16)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (visuals :initarg :visuals :type xcb:-ignore)
+ (visuals~ :initform
+ '(name visuals type xcb:render:PICTVISUAL size
+ (xcb:-fieldref 'num-visuals))
+ :type xcb:-list)))
+
+(defclass xcb:render:PICTSCREEN
+ (xcb:-struct)
+ ((num-depths :initarg :num-depths :type xcb:CARD32)
+ (fallback :initarg :fallback :type xcb:render:PICTFORMAT)
+ (depths :initarg :depths :type xcb:-ignore)
+ (depths~ :initform
+ '(name depths type xcb:render:PICTDEPTH size
+ (xcb:-fieldref 'num-depths))
+ :type xcb:-list)))
+
+(defclass xcb:render:INDEXVALUE
+ (xcb:-struct)
+ ((pixel :initarg :pixel :type xcb:CARD32)
+ (red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (alpha :initarg :alpha :type xcb:CARD16)))
+
+(defclass xcb:render:COLOR
+ (xcb:-struct)
+ ((red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (alpha :initarg :alpha :type xcb:CARD16)))
+
+(defclass xcb:render:POINTFIX
+ (xcb:-struct)
+ ((x :initarg :x :type xcb:render:FIXED)
+ (y :initarg :y :type xcb:render:FIXED)))
+
+(defclass xcb:render:LINEFIX
+ (xcb:-struct)
+ ((p1 :initarg :p1 :type xcb:render:POINTFIX)
+ (p2 :initarg :p2 :type xcb:render:POINTFIX)))
+
+(defclass xcb:render:TRIANGLE
+ (xcb:-struct)
+ ((p1 :initarg :p1 :type xcb:render:POINTFIX)
+ (p2 :initarg :p2 :type xcb:render:POINTFIX)
+ (p3 :initarg :p3 :type xcb:render:POINTFIX)))
+
+(defclass xcb:render:TRAPEZOID
+ (xcb:-struct)
+ ((top :initarg :top :type xcb:render:FIXED)
+ (bottom :initarg :bottom :type xcb:render:FIXED)
+ (left :initarg :left :type xcb:render:LINEFIX)
+ (right :initarg :right :type xcb:render:LINEFIX)))
+
+(defclass xcb:render:GLYPHINFO
+ (xcb:-struct)
+ ((width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (x-off :initarg :x-off :type xcb:INT16)
+ (y-off :initarg :y-off :type xcb:INT16)))
+
+(defclass xcb:render:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD32)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD32)))
+(defclass xcb:render:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:render:QueryPictFormats
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)))
+(defclass xcb:render:QueryPictFormats~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-formats :initarg :num-formats :type xcb:CARD32)
+ (num-screens :initarg :num-screens :type xcb:CARD32)
+ (num-depths :initarg :num-depths :type xcb:CARD32)
+ (num-visuals :initarg :num-visuals :type xcb:CARD32)
+ (num-subpixel :initarg :num-subpixel :type xcb:CARD32)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (formats :initarg :formats :type xcb:-ignore)
+ (formats~ :initform
+ '(name formats type xcb:render:PICTFORMINFO size
+ (xcb:-fieldref 'num-formats))
+ :type xcb:-list)
+ (screens :initarg :screens :type xcb:-ignore)
+ (screens~ :initform
+ '(name screens type xcb:render:PICTSCREEN size
+ (xcb:-fieldref 'num-screens))
+ :type xcb:-list)
+ (subpixels :initarg :subpixels :type xcb:-ignore)
+ (subpixels~ :initform
+ '(name subpixels type xcb:CARD32 size
+ (xcb:-fieldref 'num-subpixel))
+ :type xcb:-list)))
+
+(defclass xcb:render:QueryPictIndexValues
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (format :initarg :format :type xcb:render:PICTFORMAT)))
+(defclass xcb:render:QueryPictIndexValues~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-values :initarg :num-values :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (values :initarg :values :type xcb:-ignore)
+ (values~ :initform
+ '(name values type xcb:render:INDEXVALUE size
+ (xcb:-fieldref 'num-values))
+ :type xcb:-list)))
+
+(defclass xcb:render:CreatePicture
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (pid :initarg :pid :type xcb:render:PICTURE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (format :initarg :format :type xcb:render:PICTFORMAT)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:render:CP:Repeat repeat)
+ (xcb:render:CP:AlphaMap alphamap)
+ (xcb:render:CP:AlphaXOrigin alphaxorigin)
+ (xcb:render:CP:AlphaYOrigin alphayorigin)
+ (xcb:render:CP:ClipXOrigin clipxorigin)
+ (xcb:render:CP:ClipYOrigin clipyorigin)
+ (xcb:render:CP:ClipMask clipmask)
+ (xcb:render:CP:GraphicsExposure graphicsexposure)
+ (xcb:render:CP:SubwindowMode subwindowmode)
+ (xcb:render:CP:PolyEdge polyedge)
+ (xcb:render:CP:PolyMode polymode)
+ (xcb:render:CP:Dither dither)
+ (xcb:render:CP:ComponentAlpha componentalpha)))
+ :type xcb:-switch)
+ (repeat :initarg :repeat :type xcb:CARD32)
+ (alphamap :initarg :alphamap :type xcb:render:PICTURE)
+ (alphaxorigin :initarg :alphaxorigin :type xcb:INT32)
+ (alphayorigin :initarg :alphayorigin :type xcb:INT32)
+ (clipxorigin :initarg :clipxorigin :type xcb:INT32)
+ (clipyorigin :initarg :clipyorigin :type xcb:INT32)
+ (clipmask :initarg :clipmask :type xcb:PIXMAP)
+ (graphicsexposure :initarg :graphicsexposure :type xcb:CARD32)
+ (subwindowmode :initarg :subwindowmode :type xcb:CARD32)
+ (polyedge :initarg :polyedge :type xcb:CARD32)
+ (polymode :initarg :polymode :type xcb:CARD32)
+ (dither :initarg :dither :type xcb:ATOM)
+ (componentalpha :initarg :componentalpha :type xcb:CARD32)))
+
+(defclass xcb:render:ChangePicture
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:render:CP:Repeat repeat)
+ (xcb:render:CP:AlphaMap alphamap)
+ (xcb:render:CP:AlphaXOrigin alphaxorigin)
+ (xcb:render:CP:AlphaYOrigin alphayorigin)
+ (xcb:render:CP:ClipXOrigin clipxorigin)
+ (xcb:render:CP:ClipYOrigin clipyorigin)
+ (xcb:render:CP:ClipMask clipmask)
+ (xcb:render:CP:GraphicsExposure graphicsexposure)
+ (xcb:render:CP:SubwindowMode subwindowmode)
+ (xcb:render:CP:PolyEdge polyedge)
+ (xcb:render:CP:PolyMode polymode)
+ (xcb:render:CP:Dither dither)
+ (xcb:render:CP:ComponentAlpha componentalpha)))
+ :type xcb:-switch)
+ (repeat :initarg :repeat :type xcb:CARD32)
+ (alphamap :initarg :alphamap :type xcb:render:PICTURE)
+ (alphaxorigin :initarg :alphaxorigin :type xcb:INT32)
+ (alphayorigin :initarg :alphayorigin :type xcb:INT32)
+ (clipxorigin :initarg :clipxorigin :type xcb:INT32)
+ (clipyorigin :initarg :clipyorigin :type xcb:INT32)
+ (clipmask :initarg :clipmask :type xcb:PIXMAP)
+ (graphicsexposure :initarg :graphicsexposure :type xcb:CARD32)
+ (subwindowmode :initarg :subwindowmode :type xcb:CARD32)
+ (polyedge :initarg :polyedge :type xcb:CARD32)
+ (polymode :initarg :polymode :type xcb:CARD32)
+ (dither :initarg :dither :type xcb:ATOM)
+ (componentalpha :initarg :componentalpha :type xcb:CARD32)))
+
+(defclass xcb:render:SetPictureClipRectangles
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (clip-x-origin :initarg :clip-x-origin :type xcb:INT16)
+ (clip-y-origin :initarg :clip-y-origin :type xcb:INT16)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:FreePicture
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)))
+
+(defclass xcb:render:Composite
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (mask :initarg :mask :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (mask-x :initarg :mask-x :type xcb:INT16)
+ (mask-y :initarg :mask-y :type xcb:INT16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:render:Trapezoids
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (traps :initarg :traps :type xcb:-ignore)
+ (traps~ :initform
+ '(name traps type xcb:render:TRAPEZOID size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:Triangles
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (triangles :initarg :triangles :type xcb:-ignore)
+ (triangles~ :initform
+ '(name triangles type xcb:render:TRIANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:TriStrip
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:render:POINTFIX size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:TriFan
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:render:POINTFIX size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CreateGlyphSet
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (gsid :initarg :gsid :type xcb:render:GLYPHSET)
+ (format :initarg :format :type xcb:render:PICTFORMAT)))
+
+(defclass xcb:render:ReferenceGlyphSet
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (gsid :initarg :gsid :type xcb:render:GLYPHSET)
+ (existing :initarg :existing :type xcb:render:GLYPHSET)))
+
+(defclass xcb:render:FreeGlyphSet
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)))
+
+(defclass xcb:render:AddGlyphs
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
+ (glyphs-len :initarg :glyphs-len :type xcb:CARD32)
+ (glyphids :initarg :glyphids :type xcb:-ignore)
+ (glyphids~ :initform
+ '(name glyphids type xcb:CARD32 size
+ (xcb:-fieldref 'glyphs-len))
+ :type xcb:-list)
+ (glyphs :initarg :glyphs :type xcb:-ignore)
+ (glyphs~ :initform
+ '(name glyphs type xcb:render:GLYPHINFO size
+ (xcb:-fieldref 'glyphs-len))
+ :type xcb:-list)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:FreeGlyphs
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
+ (glyphs :initarg :glyphs :type xcb:-ignore)
+ (glyphs~ :initform
+ '(name glyphs type xcb:render:GLYPH size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CompositeGlyphs8
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (glyphcmds :initarg :glyphcmds :type xcb:-ignore)
+ (glyphcmds~ :initform
+ '(name glyphcmds type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CompositeGlyphs16
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (glyphcmds :initarg :glyphcmds :type xcb:-ignore)
+ (glyphcmds~ :initform
+ '(name glyphcmds type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CompositeGlyphs32
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (src :initarg :src :type xcb:render:PICTURE)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT)
+ (glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (glyphcmds :initarg :glyphcmds :type xcb:-ignore)
+ (glyphcmds~ :initform
+ '(name glyphcmds type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:FillRectangles
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (op :initarg :op :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (dst :initarg :dst :type xcb:render:PICTURE)
+ (color :initarg :color :type xcb:render:COLOR)
+ (rects :initarg :rects :type xcb:-ignore)
+ (rects~ :initform
+ '(name rects type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CreateCursor
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (cid :initarg :cid :type xcb:CURSOR)
+ (source :initarg :source :type xcb:render:PICTURE)
+ (x :initarg :x :type xcb:CARD16)
+ (y :initarg :y :type xcb:CARD16)))
+
+(defclass xcb:render:TRANSFORM
+ (xcb:-struct)
+ ((matrix11 :initarg :matrix11 :type xcb:render:FIXED)
+ (matrix12 :initarg :matrix12 :type xcb:render:FIXED)
+ (matrix13 :initarg :matrix13 :type xcb:render:FIXED)
+ (matrix21 :initarg :matrix21 :type xcb:render:FIXED)
+ (matrix22 :initarg :matrix22 :type xcb:render:FIXED)
+ (matrix23 :initarg :matrix23 :type xcb:render:FIXED)
+ (matrix31 :initarg :matrix31 :type xcb:render:FIXED)
+ (matrix32 :initarg :matrix32 :type xcb:render:FIXED)
+ (matrix33 :initarg :matrix33 :type xcb:render:FIXED)))
+
+(defclass xcb:render:SetPictureTransform
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (transform :initarg :transform :type xcb:render:TRANSFORM)))
+
+(defclass xcb:render:QueryFilters
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+(defclass xcb:render:QueryFilters~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-aliases :initarg :num-aliases :type xcb:CARD32)
+ (num-filters :initarg :num-filters :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (aliases :initarg :aliases :type xcb:-ignore)
+ (aliases~ :initform
+ '(name aliases type xcb:CARD16 size
+ (xcb:-fieldref 'num-aliases))
+ :type xcb:-list)
+ (filters :initarg :filters :type xcb:-ignore)
+ (filters~ :initform
+ '(name filters type xcb:STR size
+ (xcb:-fieldref 'num-filters))
+ :type xcb:-list)))
+
+(defclass xcb:render:SetPictureFilter
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (filter-len :initarg :filter-len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (filter :initarg :filter :type xcb:-ignore)
+ (filter~ :initform
+ '(name filter type xcb:char size
+ (xcb:-fieldref 'filter-len))
+ :type xcb:-list)
+ (values :initarg :values :type xcb:-ignore)
+ (values~ :initform
+ '(name values type xcb:render:FIXED size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:ANIMCURSORELT
+ (xcb:-struct)
+ ((cursor :initarg :cursor :type xcb:CURSOR)
+ (delay :initarg :delay :type xcb:CARD32)))
+
+(defclass xcb:render:CreateAnimCursor
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (cid :initarg :cid :type xcb:CURSOR)
+ (cursors :initarg :cursors :type xcb:-ignore)
+ (cursors~ :initform
+ '(name cursors type xcb:render:ANIMCURSORELT size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:SPANFIX
+ (xcb:-struct)
+ ((l :initarg :l :type xcb:render:FIXED)
+ (r :initarg :r :type xcb:render:FIXED)
+ (y :initarg :y :type xcb:render:FIXED)))
+
+(defclass xcb:render:TRAP
+ (xcb:-struct)
+ ((top :initarg :top :type xcb:render:SPANFIX)
+ (bot :initarg :bot :type xcb:render:SPANFIX)))
+
+(defclass xcb:render:AddTraps
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (x-off :initarg :x-off :type xcb:INT16)
+ (y-off :initarg :y-off :type xcb:INT16)
+ (traps :initarg :traps :type xcb:-ignore)
+ (traps~ :initform
+ '(name traps type xcb:render:TRAP size nil)
+ :type xcb:-list)))
+
+(defclass xcb:render:CreateSolidFill
+ (xcb:-request)
+ ((~opcode :initform 33 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (color :initarg :color :type xcb:render:COLOR)))
+
+(defclass xcb:render:CreateLinearGradient
+ (xcb:-request)
+ ((~opcode :initform 34 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (p1 :initarg :p1 :type xcb:render:POINTFIX)
+ (p2 :initarg :p2 :type xcb:render:POINTFIX)
+ (num-stops :initarg :num-stops :type xcb:CARD32)
+ (stops :initarg :stops :type xcb:-ignore)
+ (stops~ :initform
+ '(name stops type xcb:render:FIXED size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)
+ (colors :initarg :colors :type xcb:-ignore)
+ (colors~ :initform
+ '(name colors type xcb:render:COLOR size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)))
+
+(defclass xcb:render:CreateRadialGradient
+ (xcb:-request)
+ ((~opcode :initform 35 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (inner :initarg :inner :type xcb:render:POINTFIX)
+ (outer :initarg :outer :type xcb:render:POINTFIX)
+ (inner-radius :initarg :inner-radius :type xcb:render:FIXED)
+ (outer-radius :initarg :outer-radius :type xcb:render:FIXED)
+ (num-stops :initarg :num-stops :type xcb:CARD32)
+ (stops :initarg :stops :type xcb:-ignore)
+ (stops~ :initform
+ '(name stops type xcb:render:FIXED size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)
+ (colors :initarg :colors :type xcb:-ignore)
+ (colors~ :initform
+ '(name colors type xcb:render:COLOR size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)))
+
+(defclass xcb:render:CreateConicalGradient
+ (xcb:-request)
+ ((~opcode :initform 36 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:render:PICTURE)
+ (center :initarg :center :type xcb:render:POINTFIX)
+ (angle :initarg :angle :type xcb:render:FIXED)
+ (num-stops :initarg :num-stops :type xcb:CARD32)
+ (stops :initarg :stops :type xcb:-ignore)
+ (stops~ :initform
+ '(name stops type xcb:render:FIXED size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)
+ (colors :initarg :colors :type xcb:-ignore)
+ (colors~ :initform
+ '(name colors type xcb:render:COLOR size
+ (xcb:-fieldref 'num-stops))
+ :type xcb:-list)))
+
+(defconst xcb:render:error-number-class-alist
+ '((0 . xcb:render:PictFormat)
+ (1 . xcb:render:Picture)
+ (2 . xcb:render:PictOp)
+ (3 . xcb:render:GlyphSet)
+ (4 . xcb:render:Glyph))
+ "(error-number . error-class) alist")
+
+
+
+(provide 'xcb-render)
diff --git a/xcb-res.el b/xcb-res.el
new file mode 100644
index 0000000..e9c299b
--- /dev/null
+++ b/xcb-res.el
@@ -0,0 +1,156 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `res.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:res:-extension-xname "X-Resource")
+(defconst xcb:res:-extension-name "Res")
+(defconst xcb:res:-major-version 1)
+(defconst xcb:res:-minor-version 2)
+
+(require 'xcb-xproto)
+
+(defclass xcb:res:Client
+ (xcb:-struct)
+ ((resource-base :initarg :resource-base :type xcb:CARD32)
+ (resource-mask :initarg :resource-mask :type xcb:CARD32)))
+
+(defclass xcb:res:Type
+ (xcb:-struct)
+ ((resource-type :initarg :resource-type :type xcb:ATOM)
+ (count :initarg :count :type xcb:CARD32)))
+
+(defconst xcb:res:ClientIdMask:ClientXID 1)
+(defconst xcb:res:ClientIdMask:LocalClientPID 2)
+
+(defclass xcb:res:ClientIdSpec
+ (xcb:-struct)
+ ((client :initarg :client :type xcb:CARD32)
+ (mask :initarg :mask :type xcb:CARD32)))
+
+(defclass xcb:res:ClientIdValue
+ (xcb:-struct)
+ ((spec :initarg :spec :type xcb:res:ClientIdSpec)
+ (length :initarg :length :type xcb:CARD32)
+ (value :initarg :value :type xcb:-ignore)
+ (value~ :initform
+ '(name value type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:res:ResourceIdSpec
+ (xcb:-struct)
+ ((resource :initarg :resource :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD32)))
+
+(defclass xcb:res:ResourceSizeSpec
+ (xcb:-struct)
+ ((spec :initarg :spec :type xcb:res:ResourceIdSpec)
+ (bytes :initarg :bytes :type xcb:CARD32)
+ (ref-count :initarg :ref-count :type xcb:CARD32)
+ (use-count :initarg :use-count :type xcb:CARD32)))
+
+(defclass xcb:res:ResourceSizeValue
+ (xcb:-struct)
+ ((size :initarg :size :type xcb:res:ResourceSizeSpec)
+ (num-cross-references :initarg :num-cross-references :type xcb:CARD32)
+ (cross-references :initarg :cross-references :type xcb:-ignore)
+ (cross-references~ :initform
+ '(name cross-references type xcb:res:ResourceSizeSpec size
+ (xcb:-fieldref 'num-cross-references))
+ :type xcb:-list)))
+
+(defclass xcb:res:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major :initarg :client-major :type xcb:CARD8)
+ (client-minor :initarg :client-minor :type xcb:CARD8)))
+(defclass xcb:res:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major :initarg :server-major :type xcb:CARD16)
+ (server-minor :initarg :server-minor :type xcb:CARD16)))
+
+(defclass xcb:res:QueryClients
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)))
+(defclass xcb:res:QueryClients~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-clients :initarg :num-clients :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (clients :initarg :clients :type xcb:-ignore)
+ (clients~ :initform
+ '(name clients type xcb:res:Client size
+ (xcb:-fieldref 'num-clients))
+ :type xcb:-list)))
+
+(defclass xcb:res:QueryClientResources
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (xid :initarg :xid :type xcb:CARD32)))
+(defclass xcb:res:QueryClientResources~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-types :initarg :num-types :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (types :initarg :types :type xcb:-ignore)
+ (types~ :initform
+ '(name types type xcb:res:Type size
+ (xcb:-fieldref 'num-types))
+ :type xcb:-list)))
+
+(defclass xcb:res:QueryClientPixmapBytes
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (xid :initarg :xid :type xcb:CARD32)))
+(defclass xcb:res:QueryClientPixmapBytes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (bytes :initarg :bytes :type xcb:CARD32)
+ (bytes-overflow :initarg :bytes-overflow :type xcb:CARD32)))
+
+(defclass xcb:res:QueryClientIds
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (num-specs :initarg :num-specs :type xcb:CARD32)
+ (specs :initarg :specs :type xcb:-ignore)
+ (specs~ :initform
+ '(name specs type xcb:res:ClientIdSpec size
+ (xcb:-fieldref 'num-specs))
+ :type xcb:-list)))
+(defclass xcb:res:QueryClientIds~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-ids :initarg :num-ids :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (ids :initarg :ids :type xcb:-ignore)
+ (ids~ :initform
+ '(name ids type xcb:res:ClientIdValue size
+ (xcb:-fieldref 'num-ids))
+ :type xcb:-list)))
+
+(defclass xcb:res:QueryResourceBytes
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (client :initarg :client :type xcb:CARD32)
+ (num-specs :initarg :num-specs :type xcb:CARD32)
+ (specs :initarg :specs :type xcb:-ignore)
+ (specs~ :initform
+ '(name specs type xcb:res:ResourceIdSpec size
+ (xcb:-fieldref 'num-specs))
+ :type xcb:-list)))
+(defclass xcb:res:QueryResourceBytes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-sizes :initarg :num-sizes :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (sizes :initarg :sizes :type xcb:-ignore)
+ (sizes~ :initform
+ '(name sizes type xcb:res:ResourceSizeValue size
+ (xcb:-fieldref 'num-sizes))
+ :type xcb:-list)))
+
+
+
+(provide 'xcb-res)
diff --git a/xcb-screensaver.el b/xcb-screensaver.el
new file mode 100644
index 0000000..233e1e0
--- /dev/null
+++ b/xcb-screensaver.el
@@ -0,0 +1,134 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `screensaver.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:screensaver:-extension-xname "MIT-SCREEN-SAVER")
+(defconst xcb:screensaver:-extension-name "ScreenSaver")
+(defconst xcb:screensaver:-major-version 1)
+(defconst xcb:screensaver:-minor-version 1)
+
+(require 'xcb-xproto)
+
+(defconst xcb:screensaver:Kind:Blanked 0)
+(defconst xcb:screensaver:Kind:Internal 1)
+(defconst xcb:screensaver:Kind:External 2)
+
+(defconst xcb:screensaver:Event:NotifyMask 1)
+(defconst xcb:screensaver:Event:CycleMask 2)
+
+(defconst xcb:screensaver:State:Off 0)
+(defconst xcb:screensaver:State:On 1)
+(defconst xcb:screensaver:State:Cycle 2)
+(defconst xcb:screensaver:State:Disabled 3)
+
+(defclass xcb:screensaver:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD8)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:screensaver:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major-version :initarg :server-major-version :type xcb:CARD16)
+ (server-minor-version :initarg :server-minor-version :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:screensaver:QueryInfo
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+(defclass xcb:screensaver:QueryInfo~reply
+ (xcb:-reply)
+ ((state :initarg :state :type xcb:CARD8)
+ (saver-window :initarg :saver-window :type xcb:WINDOW)
+ (ms-until-server :initarg :ms-until-server :type xcb:CARD32)
+ (ms-since-user-input :initarg :ms-since-user-input :type xcb:CARD32)
+ (event-mask :initarg :event-mask :type xcb:CARD32)
+ (kind :initarg :kind :type xcb:BYTE)
+ (pad~0 :initform 7 :type xcb:-pad)))
+
+(defclass xcb:screensaver:SelectInput
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+
+(defclass xcb:screensaver:SetAttributes
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (class :initarg :class :type xcb:BYTE)
+ (depth :initarg :depth :type xcb:CARD8)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:CW:BackPixmap background-pixmap)
+ (xcb:CW:BackPixel background-pixel)
+ (xcb:CW:BorderPixmap border-pixmap)
+ (xcb:CW:BorderPixel border-pixel)
+ (xcb:CW:BitGravity bit-gravity)
+ (xcb:CW:WinGravity win-gravity)
+ (xcb:CW:BackingStore backing-store)
+ (xcb:CW:BackingPlanes backing-planes)
+ (xcb:CW:BackingPixel backing-pixel)
+ (xcb:CW:OverrideRedirect override-redirect)
+ (xcb:CW:SaveUnder save-under)
+ (xcb:CW:EventMask event-mask)
+ (xcb:CW:DontPropagate do-not-propogate-mask)
+ (xcb:CW:Colormap colormap)
+ (xcb:CW:Cursor cursor)))
+ :type xcb:-switch)
+ (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP)
+ (background-pixel :initarg :background-pixel :type xcb:CARD32)
+ (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP)
+ (border-pixel :initarg :border-pixel :type xcb:CARD32)
+ (bit-gravity :initarg :bit-gravity :type xcb:CARD32)
+ (win-gravity :initarg :win-gravity :type xcb:CARD32)
+ (backing-store :initarg :backing-store :type xcb:CARD32)
+ (backing-planes :initarg :backing-planes :type xcb:CARD32)
+ (backing-pixel :initarg :backing-pixel :type xcb:CARD32)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL32)
+ (save-under :initarg :save-under :type xcb:BOOL32)
+ (event-mask :initarg :event-mask :type xcb:CARD32)
+ (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32)
+ (colormap :initarg :colormap :type xcb:COLORMAP)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+
+(defclass xcb:screensaver:UnsetAttributes
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+
+(defclass xcb:screensaver:Suspend
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (suspend :initarg :suspend :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:screensaver:Notify
+ (xcb:-event)
+ ((state :initarg :state :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (kind :initarg :kind :type xcb:BYTE)
+ (forced :initarg :forced :type xcb:BOOL)
+ (pad~0 :initform 14 :type xcb:-pad)))
+
+(defconst xcb:screensaver:event-number-class-alist
+ '((0 . xcb:screensaver:Notify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-screensaver)
diff --git a/xcb-shape.el b/xcb-shape.el
new file mode 100644
index 0000000..340d586
--- /dev/null
+++ b/xcb-shape.el
@@ -0,0 +1,152 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `shape.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:shape:-extension-xname "SHAPE")
+(defconst xcb:shape:-extension-name "Shape")
+(defconst xcb:shape:-major-version 1)
+(defconst xcb:shape:-minor-version 1)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:shape:OP 'xcb:CARD8)
+
+(xcb:deftypealias 'xcb:shape:KIND 'xcb:CARD8)
+
+(defconst xcb:shape:SO:Set 0)
+(defconst xcb:shape:SO:Union 1)
+(defconst xcb:shape:SO:Intersect 2)
+(defconst xcb:shape:SO:Subtract 3)
+(defconst xcb:shape:SO:Invert 4)
+
+(defconst xcb:shape:SK:Bounding 0)
+(defconst xcb:shape:SK:Clip 1)
+(defconst xcb:shape:SK:Input 2)
+
+(defclass xcb:shape:Notify
+ (xcb:-event)
+ ((shape-kind :initarg :shape-kind :type xcb:shape:KIND)
+ (affected-window :initarg :affected-window :type xcb:WINDOW)
+ (extents-x :initarg :extents-x :type xcb:INT16)
+ (extents-y :initarg :extents-y :type xcb:INT16)
+ (extents-width :initarg :extents-width :type xcb:CARD16)
+ (extents-height :initarg :extents-height :type xcb:CARD16)
+ (server-time :initarg :server-time :type xcb:TIMESTAMP)
+ (shaped :initarg :shaped :type xcb:BOOL)
+ (pad~0 :initform 11 :type xcb:-pad)))
+
+(defclass xcb:shape:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:shape:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+
+(defclass xcb:shape:Rectangles
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (operation :initarg :operation :type xcb:shape:OP)
+ (destination-kind :initarg :destination-kind :type xcb:shape:KIND)
+ (ordering :initarg :ordering :type xcb:BYTE)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)
+ (x-offset :initarg :x-offset :type xcb:INT16)
+ (y-offset :initarg :y-offset :type xcb:INT16)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:shape:Mask
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (operation :initarg :operation :type xcb:shape:OP)
+ (destination-kind :initarg :destination-kind :type xcb:shape:KIND)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)
+ (x-offset :initarg :x-offset :type xcb:INT16)
+ (y-offset :initarg :y-offset :type xcb:INT16)
+ (source-bitmap :initarg :source-bitmap :type xcb:PIXMAP)))
+
+(defclass xcb:shape:Combine
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (operation :initarg :operation :type xcb:shape:OP)
+ (destination-kind :initarg :destination-kind :type xcb:shape:KIND)
+ (source-kind :initarg :source-kind :type xcb:shape:KIND)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)
+ (x-offset :initarg :x-offset :type xcb:INT16)
+ (y-offset :initarg :y-offset :type xcb:INT16)
+ (source-window :initarg :source-window :type xcb:WINDOW)))
+
+(defclass xcb:shape:Offset
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (destination-kind :initarg :destination-kind :type xcb:shape:KIND)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)
+ (x-offset :initarg :x-offset :type xcb:INT16)
+ (y-offset :initarg :y-offset :type xcb:INT16)))
+
+(defclass xcb:shape:QueryExtents
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)))
+(defclass xcb:shape:QueryExtents~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (bounding-shaped :initarg :bounding-shaped :type xcb:BOOL)
+ (clip-shaped :initarg :clip-shaped :type xcb:BOOL)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (bounding-shape-extents-x :initarg :bounding-shape-extents-x :type
xcb:INT16)
+ (bounding-shape-extents-y :initarg :bounding-shape-extents-y :type
xcb:INT16)
+ (bounding-shape-extents-width :initarg :bounding-shape-extents-width :type
xcb:CARD16)
+ (bounding-shape-extents-height :initarg :bounding-shape-extents-height
:type xcb:CARD16)
+ (clip-shape-extents-x :initarg :clip-shape-extents-x :type xcb:INT16)
+ (clip-shape-extents-y :initarg :clip-shape-extents-y :type xcb:INT16)
+ (clip-shape-extents-width :initarg :clip-shape-extents-width :type
xcb:CARD16)
+ (clip-shape-extents-height :initarg :clip-shape-extents-height :type
xcb:CARD16)))
+
+(defclass xcb:shape:SelectInput
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)
+ (enable :initarg :enable :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:shape:InputSelected
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (destination-window :initarg :destination-window :type xcb:WINDOW)))
+(defclass xcb:shape:InputSelected~reply
+ (xcb:-reply)
+ ((enabled :initarg :enabled :type xcb:BOOL)))
+
+(defclass xcb:shape:GetRectangles
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (source-kind :initarg :source-kind :type xcb:shape:KIND)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:shape:GetRectangles~reply
+ (xcb:-reply)
+ ((ordering :initarg :ordering :type xcb:BYTE)
+ (rectangles-len :initarg :rectangles-len :type xcb:CARD32)
+ (pad~0 :initform 20 :type xcb:-pad)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size
+ (xcb:-fieldref 'rectangles-len))
+ :type xcb:-list)))
+
+(defconst xcb:shape:event-number-class-alist
+ '((0 . xcb:shape:Notify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-shape)
diff --git a/xcb-shm.el b/xcb-shm.el
new file mode 100644
index 0000000..52d4afa
--- /dev/null
+++ b/xcb-shm.el
@@ -0,0 +1,137 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `shm.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:shm:-extension-xname "MIT-SHM")
+(defconst xcb:shm:-extension-name "Shm")
+(defconst xcb:shm:-major-version 1)
+(defconst xcb:shm:-minor-version 2)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:shm:SEG 'xcb:-u4)
+
+(defclass xcb:shm:Completion
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (minor-event :initarg :minor-event :type xcb:CARD16)
+ (major-event :initarg :major-event :type xcb:BYTE)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (offset :initarg :offset :type xcb:CARD32)))
+
+(defclass xcb:shm:BadSeg
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:shm:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:shm:QueryVersion~reply
+ (xcb:-reply)
+ ((shared-pixmaps :initarg :shared-pixmaps :type xcb:BOOL)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)
+ (uid :initarg :uid :type xcb:CARD16)
+ (gid :initarg :gid :type xcb:CARD16)
+ (pixmap-format :initarg :pixmap-format :type xcb:CARD8)
+ (pad~0 :initform 15 :type xcb:-pad)))
+
+(defclass xcb:shm:Attach
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (shmid :initarg :shmid :type xcb:CARD32)
+ (read-only :initarg :read-only :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:shm:Detach
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)))
+
+(defclass xcb:shm:PutImage
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (total-width :initarg :total-width :type xcb:CARD16)
+ (total-height :initarg :total-height :type xcb:CARD16)
+ (src-x :initarg :src-x :type xcb:CARD16)
+ (src-y :initarg :src-y :type xcb:CARD16)
+ (src-width :initarg :src-width :type xcb:CARD16)
+ (src-height :initarg :src-height :type xcb:CARD16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)
+ (depth :initarg :depth :type xcb:CARD8)
+ (format :initarg :format :type xcb:CARD8)
+ (send-event :initarg :send-event :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (offset :initarg :offset :type xcb:CARD32)))
+
+(defclass xcb:shm:GetImage
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (plane-mask :initarg :plane-mask :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (offset :initarg :offset :type xcb:CARD32)))
+(defclass xcb:shm:GetImage~reply
+ (xcb:-reply)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (size :initarg :size :type xcb:CARD32)))
+
+(defclass xcb:shm:CreatePixmap
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (pid :initarg :pid :type xcb:PIXMAP)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (offset :initarg :offset :type xcb:CARD32)))
+
+(defclass xcb:shm:AttachFd
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (shm-fd :type xcb:-fd)
+ (read-only :initarg :read-only :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:shm:CreateSegment
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (shmseg :initarg :shmseg :type xcb:shm:SEG)
+ (size :initarg :size :type xcb:CARD32)
+ (read-only :initarg :read-only :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:shm:CreateSegment~reply
+ (xcb:-reply)
+ ((nfd :initarg :nfd :type xcb:CARD8)
+ (shm-fd :type xcb:-fd)
+ (pad~0 :initform 24 :type xcb:-pad)))
+
+(defconst xcb:shm:error-number-class-alist
+ '((0 . xcb:shm:BadSeg))
+ "(error-number . error-class) alist")
+
+(defconst xcb:shm:event-number-class-alist
+ '((0 . xcb:shm:Completion))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-shm)
diff --git a/xcb-sync.el b/xcb-sync.el
new file mode 100644
index 0000000..bdcb6e9
--- /dev/null
+++ b/xcb-sync.el
@@ -0,0 +1,296 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `sync.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:sync:-extension-xname "SYNC")
+(defconst xcb:sync:-extension-name "Sync")
+(defconst xcb:sync:-major-version 3)
+(defconst xcb:sync:-minor-version 1)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:sync:ALARM 'xcb:-u4)
+
+(defconst xcb:sync:ALARMSTATE:Active 0)
+(defconst xcb:sync:ALARMSTATE:Inactive 1)
+(defconst xcb:sync:ALARMSTATE:Destroyed 2)
+
+(xcb:deftypealias 'xcb:sync:COUNTER 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:sync:FENCE 'xcb:-u4)
+
+(defconst xcb:sync:TESTTYPE:PositiveTransition 0)
+(defconst xcb:sync:TESTTYPE:NegativeTransition 1)
+(defconst xcb:sync:TESTTYPE:PositiveComparison 2)
+(defconst xcb:sync:TESTTYPE:NegativeComparison 3)
+
+(defconst xcb:sync:VALUETYPE:Absolute 0)
+(defconst xcb:sync:VALUETYPE:Relative 1)
+
+(defconst xcb:sync:CA:Counter 1)
+(defconst xcb:sync:CA:ValueType 2)
+(defconst xcb:sync:CA:Value 4)
+(defconst xcb:sync:CA:TestType 8)
+(defconst xcb:sync:CA:Delta 16)
+(defconst xcb:sync:CA:Events 32)
+
+(defclass xcb:sync:INT64
+ (xcb:-struct)
+ ((hi :initarg :hi :type xcb:INT32)
+ (lo :initarg :lo :type xcb:CARD32)))
+
+(defclass xcb:sync:SYSTEMCOUNTER
+ (xcb:-struct)
+ ((counter :initarg :counter :type xcb:sync:COUNTER)
+ (resolution :initarg :resolution :type xcb:sync:INT64)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:sync:TRIGGER
+ (xcb:-struct)
+ ((counter :initarg :counter :type xcb:sync:COUNTER)
+ (wait-type :initarg :wait-type :type xcb:CARD32)
+ (wait-value :initarg :wait-value :type xcb:sync:INT64)
+ (test-type :initarg :test-type :type xcb:CARD32)))
+
+(defclass xcb:sync:WAITCONDITION
+ (xcb:-struct)
+ ((trigger :initarg :trigger :type xcb:sync:TRIGGER)
+ (event-threshold :initarg :event-threshold :type xcb:sync:INT64)))
+
+(defclass xcb:sync:Counter
+ (xcb:-error)
+ ((bad-counter :initarg :bad-counter :type xcb:CARD32)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)))
+
+(defclass xcb:sync:Alarm
+ (xcb:-error)
+ ((bad-alarm :initarg :bad-alarm :type xcb:CARD32)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)))
+
+(defclass xcb:sync:Initialize
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (desired-major-version :initarg :desired-major-version :type xcb:CARD8)
+ (desired-minor-version :initarg :desired-minor-version :type xcb:CARD8)))
+(defclass xcb:sync:Initialize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD8)
+ (minor-version :initarg :minor-version :type xcb:CARD8)
+ (pad~1 :initform 22 :type xcb:-pad)))
+
+(defclass xcb:sync:ListSystemCounters
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)))
+(defclass xcb:sync:ListSystemCounters~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (counters-len :initarg :counters-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (counters :initarg :counters :type xcb:-ignore)
+ (counters~ :initform
+ '(name counters type xcb:sync:SYSTEMCOUNTER size
+ (xcb:-fieldref 'counters-len))
+ :type xcb:-list)))
+
+(defclass xcb:sync:CreateCounter
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (id :initarg :id :type xcb:sync:COUNTER)
+ (initial-value :initarg :initial-value :type xcb:sync:INT64)))
+
+(defclass xcb:sync:DestroyCounter
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (counter :initarg :counter :type xcb:sync:COUNTER)))
+
+(defclass xcb:sync:QueryCounter
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (counter :initarg :counter :type xcb:sync:COUNTER)))
+(defclass xcb:sync:QueryCounter~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (counter-value :initarg :counter-value :type xcb:sync:INT64)))
+
+(defclass xcb:sync:Await
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (wait-list :initarg :wait-list :type xcb:-ignore)
+ (wait-list~ :initform
+ '(name wait-list type xcb:sync:WAITCONDITION size nil)
+ :type xcb:-list)))
+
+(defclass xcb:sync:ChangeCounter
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (counter :initarg :counter :type xcb:sync:COUNTER)
+ (amount :initarg :amount :type xcb:sync:INT64)))
+
+(defclass xcb:sync:SetCounter
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (counter :initarg :counter :type xcb:sync:COUNTER)
+ (value :initarg :value :type xcb:sync:INT64)))
+
+(defclass xcb:sync:CreateAlarm
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (id :initarg :id :type xcb:sync:ALARM)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:sync:CA:Counter counter)
+ (xcb:sync:CA:ValueType valueType)
+ (xcb:sync:CA:Value value)
+ (xcb:sync:CA:TestType testType)
+ (xcb:sync:CA:Delta delta)
+ (xcb:sync:CA:Events events)))
+ :type xcb:-switch)
+ (counter :initarg :counter :type xcb:sync:COUNTER)
+ (valueType :initarg :valueType :type xcb:CARD32)
+ (value :initarg :value :type xcb:sync:INT64)
+ (testType :initarg :testType :type xcb:CARD32)
+ (delta :initarg :delta :type xcb:sync:INT64)
+ (events :initarg :events :type xcb:CARD32)))
+
+(defclass xcb:sync:ChangeAlarm
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (id :initarg :id :type xcb:sync:ALARM)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:sync:CA:Counter counter)
+ (xcb:sync:CA:ValueType valueType)
+ (xcb:sync:CA:Value value)
+ (xcb:sync:CA:TestType testType)
+ (xcb:sync:CA:Delta delta)
+ (xcb:sync:CA:Events events)))
+ :type xcb:-switch)
+ (counter :initarg :counter :type xcb:sync:COUNTER)
+ (valueType :initarg :valueType :type xcb:CARD32)
+ (value :initarg :value :type xcb:sync:INT64)
+ (testType :initarg :testType :type xcb:CARD32)
+ (delta :initarg :delta :type xcb:sync:INT64)
+ (events :initarg :events :type xcb:CARD32)))
+
+(defclass xcb:sync:DestroyAlarm
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (alarm :initarg :alarm :type xcb:sync:ALARM)))
+
+(defclass xcb:sync:QueryAlarm
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (alarm :initarg :alarm :type xcb:sync:ALARM)))
+(defclass xcb:sync:QueryAlarm~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (trigger :initarg :trigger :type xcb:sync:TRIGGER)
+ (delta :initarg :delta :type xcb:sync:INT64)
+ (events :initarg :events :type xcb:BOOL)
+ (state :initarg :state :type xcb:CARD8)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:sync:SetPriority
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (id :initarg :id :type xcb:CARD32)
+ (priority :initarg :priority :type xcb:INT32)))
+
+(defclass xcb:sync:GetPriority
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (id :initarg :id :type xcb:CARD32)))
+(defclass xcb:sync:GetPriority~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (priority :initarg :priority :type xcb:INT32)))
+
+(defclass xcb:sync:CreateFence
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (fence :initarg :fence :type xcb:sync:FENCE)
+ (initially-triggered :initarg :initially-triggered :type xcb:BOOL)))
+
+(defclass xcb:sync:TriggerFence
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (fence :initarg :fence :type xcb:sync:FENCE)))
+
+(defclass xcb:sync:ResetFence
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (fence :initarg :fence :type xcb:sync:FENCE)))
+
+(defclass xcb:sync:DestroyFence
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (fence :initarg :fence :type xcb:sync:FENCE)))
+
+(defclass xcb:sync:QueryFence
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (fence :initarg :fence :type xcb:sync:FENCE)))
+(defclass xcb:sync:QueryFence~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (triggered :initarg :triggered :type xcb:BOOL)
+ (pad~1 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:sync:AwaitFence
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (fence-list :initarg :fence-list :type xcb:-ignore)
+ (fence-list~ :initform
+ '(name fence-list type xcb:sync:FENCE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:sync:CounterNotify
+ (xcb:-event)
+ ((kind :initarg :kind :type xcb:CARD8)
+ (counter :initarg :counter :type xcb:sync:COUNTER)
+ (wait-value :initarg :wait-value :type xcb:sync:INT64)
+ (counter-value :initarg :counter-value :type xcb:sync:INT64)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (count :initarg :count :type xcb:CARD16)
+ (destroyed :initarg :destroyed :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:sync:AlarmNotify
+ (xcb:-event)
+ ((kind :initarg :kind :type xcb:CARD8)
+ (alarm :initarg :alarm :type xcb:sync:ALARM)
+ (counter-value :initarg :counter-value :type xcb:sync:INT64)
+ (alarm-value :initarg :alarm-value :type xcb:sync:INT64)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (state :initarg :state :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:sync:error-number-class-alist
+ '((0 . xcb:sync:Counter)
+ (1 . xcb:sync:Alarm))
+ "(error-number . error-class) alist")
+
+(defconst xcb:sync:event-number-class-alist
+ '((0 . xcb:sync:CounterNotify)
+ (1 . xcb:sync:AlarmNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-sync)
diff --git a/xcb-types.el b/xcb-types.el
new file mode 100644
index 0000000..33ddeb3
--- /dev/null
+++ b/xcb-types.el
@@ -0,0 +1,625 @@
+;;; xcb-types.el --- Type definitions for XCB -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 Chris Feng
+
+;; Author: Chris Feng <address@hidden>
+;; Keywords: unix
+
+;; This file is not part of GNU Emacs.
+
+;; This file is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this file. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This library defines various data types frequently used in XELB. Simple
+;; types are defined with `cl-deftype' while others are defined as classes.
+;; Basically, data types are used for converting objects to/from byte arrays
+;; rather than for validation purpose. Classes defined elsewhere should also
+;; support `xcb:marshal' and `xcb:unmarshal' methods in order to be considered
+;; a type. Most classes defined here are direct or indirect subclasses of
+;; `xcb:-struct', which has implemented the fundamental marshalling and
+;; unmarshalling methods. These classes again act as the superclasses for more
+;; concrete ones. You may use `eieio-browse' to easily get an overview of the
+;; inheritance hierarchies of all classes defined.
+
+;; Please pay special attention to the byte order adopted in your application.
+;; The global variable `xcb:lsb' specifies the byte order at the time of
+;; instantiating a class (e.g. via `make-instance'). You may let-bind it to
+;; temporarily change the byte order locally.
+
+;; Todo:
+;; + The current implementation of `eieio-default-eval-maybe' only `eval's a
+;; certain type of forms. If this is changed in the future, we will have to
+;; adapt our codes accordingly.
+;; + STRING16 and CHAR2B should always be big-endian.
+;; + <paramref> for `xcb:-marshal-field'?
+
+;; References:
+;; + X protocol (http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.txt)
+
+;;; Code:
+
+(require 'cl-lib)
+(require 'eieio)
+
+;;;; Fix backward compatibility issues with Emacs < 25
+
+;; The `cl-generic' package on ELPA does not solve all problems
+
+(unless (fboundp 'cl-defmethod)
+ (defalias 'cl-defmethod 'defmethod))
+
+(unless (fboundp 'cl-call-next-method)
+ (defalias 'cl-call-next-method 'call-next-method))
+
+(unless (fboundp 'eieio-class-slots)
+ (defun eieio-class-slots (class)
+ (let* ((tmp (class-v class))
+ (names (eieio--class-public-a tmp))
+ (initforms (eieio--class-public-d tmp))
+ (types (eieio--class-public-type tmp))
+ result)
+ (dotimes (i (length names))
+ (setq result (nconc result (list (vector (elt names i)
+ (elt initforms i)
+ (elt types i))))))
+ result))
+ (defsubst cl--slot-descriptor-name (slot) (elt slot 0))
+ (defsubst cl--slot-descriptor-initform (slot) (elt slot 1))
+ (defsubst cl--slot-descriptor-type (slot) (elt slot 2))
+ ;; More fixes for Emacs < 24.4
+ (unless (fboundp 'eieio--class-public-a)
+ (defsubst eieio--class-public-a (slot) (aref slot class-public-a))
+ (defsubst eieio--class-public-d (slot) (aref slot class-public-d))
+ (defsubst eieio--class-public-type (slot) (aref slot class-public-type))))
+
+;;;; Utility functions
+
+(defsubst xcb:-pack-u1 (value)
+ "1 byte unsigned integer => byte array."
+ (vector value))
+
+(defsubst xcb:-pack-i1 (value)
+ "1 byte signed integer => byte array."
+ (xcb:-pack-u1 (if (>= value 0) value
+ (1+ (logand #xFF (lognot (- value)))))))
+
+(defsubst xcb:-pack-u2 (value)
+ "2 bytes unsigned integer => byte array (MSB first)."
+ (vector (logand (lsh value -8) #xFF) (logand value #xFF)))
+
+(defsubst xcb:-pack-u2-lsb (value)
+ "2 bytes unsigned integer => byte array (LSB first)."
+ (vector (logand value #xFF) (logand (lsh value -8) #xFF)))
+
+(defsubst xcb:-pack-i2 (value)
+ "2 bytes signed integer => byte array (MSB first)."
+ (xcb:-pack-u2 (if (>= value 0) value
+ (1+ (logand #xFFFF (lognot (- value)))))))
+
+(defsubst xcb:-pack-i2-lsb (value)
+ "2 bytes signed integer => byte array (LSB first)."
+ (xcb:-pack-u2-lsb (if (>= value 0) value
+ (1+ (logand #xFFFF (lognot (- value)))))))
+
+(if (/= 0 (lsh 1 32))
+ ;; 64 bit
+ (progn
+ (defsubst xcb:-pack-u4 (value)
+ "4 bytes unsigned integer => byte array (MSB first, 64-bit)."
+ (vector (logand (lsh value -24) #xFF) (logand (lsh value -16) #xFF)
+ (logand (lsh value -8) #xFF) (logand value #xFF)))
+ (defsubst xcb:-pack-u4-lsb (value)
+ "4 byte unsigned integer => byte array (LSB first, 64-bit)."
+ (vector (logand value #xFF) (logand (lsh value -8) #xFF)
+ (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF))))
+ ;; 32 bit (30-bit actually; large numbers are represented as float type)
+ (defsubst xcb:-pack-u4 (value)
+ "4 bytes unsigned integer => byte array (MSB first, 32-bit)."
+ (if (integerp value)
+ (vector (logand (lsh value -24) #xFF) (logand (lsh value -16) #xFF)
+ (logand (lsh value -8) #xFF) (logand value #xFF))
+ (let ((msw (truncate value #x10000))
+ (lsw (truncate (- value (lsh msw 16)))))
+ (vector (logand (lsh msw -8) #xFF) (logand msw #xFF)
+ (logand (lsh lsw -8) #xFF) (logand lsw #xFF)))))
+ (defsubst xcb:-pack-u4-lsb (value)
+ "4 bytes unsigned integer => byte array (LSB first, 32-bit)."
+ (if (integerp value)
+ (vector (logand value #xFF) (logand (lsh value -8) #xFF)
+ (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF))
+ (let ((msw (truncate value #x10000))
+ (lsw (truncate (- value (* msw #x10000)))))
+ (vector (logand lsw #xFF) (logand (lsh lsw -8) #xFF)
+ (logand msw #xFF) (logand (lsh msw -8) #xFF))))))
+
+(defsubst xcb:-pack-i4 (value)
+ "4 bytes signed integer => byte array (MSB first)."
+ (xcb:-pack-u4 (if (>= value 0)
+ value
+ (+ value #x100000000)))) ;treated as float for 32-bit
+
+(defsubst xcb:-pack-i4-lsb (value)
+ "4 bytes signed integer => byte array (LSB first)."
+ (xcb:-pack-u4-lsb (if (>= value 0)
+ value
+ (+ value #x100000000)))) ;treated as float for 32-bit
+
+(defsubst xcb:-unpack-u1 (data)
+ "Byte array => 1 byte unsigned integer."
+ (elt data 0))
+
+(defsubst xcb:-unpack-i1 (data)
+ "Byte array => 1 byte signed integer."
+ (let ((value (xcb:-unpack-u1 data)))
+ (if (= 0 (logand #x80 value))
+ value
+ (- (logand #xFF (lognot (1- value)))))))
+
+(defsubst xcb:-unpack-u2 (data)
+ "Byte array => 2 bytes unsigned integer (MSB first)."
+ (logior (lsh (elt data 0) 8) (elt data 1)))
+
+(defsubst xcb:-unpack-u2-lsb (data)
+ "Byte array => 2 bytes unsigned integer (LSB first)."
+ (logior (elt data 0) (lsh (elt data 1) 8)))
+
+(defsubst xcb:-unpack-i2 (data)
+ "Byte array => 2 bytes signed integer (MSB first)."
+ (let ((value (xcb:-unpack-u2 data)))
+ (if (= 0 (logand #x8000 value))
+ value
+ (- (logand #xFFFF (lognot (1- value)))))))
+
+(defsubst xcb:-unpack-i2-lsb (data)
+ "Byte array => 2 bytes signed integer (LSB first)."
+ (let ((value (xcb:-unpack-u2-lsb data)))
+ (if (= 0 (logand #x8000 value))
+ value
+ (- (logand #xFFFF (lognot (1- value)))))))
+
+(if (/= 0 (lsh 1 32))
+ ;; 64-bit
+ (progn
+ (defsubst xcb:-unpack-u4 (data)
+ "Byte array => 4 bytes unsigned integer (MSB first, 64-bit)."
+ (logior (lsh (elt data 0) 24) (lsh (elt data 1) 16)
+ (lsh (elt data 2) 8) (elt data 3)))
+ (defsubst xcb:-unpack-u4-lsb (data)
+ "Byte array => 4 bytes unsigned integer (LSB first, 64-bit)."
+ (logior (elt data 0) (lsh (elt data 1) 8)
+ (lsh (elt data 2) 16) (lsh (elt data 3) 24))))
+ ;; 32-bit (30-bit actually; large numbers are represented as float type)
+ (defsubst xcb:-unpack-u4 (data)
+ "Byte array => 4 bytes unsigned integer (MSB first, 32-bit)."
+ (let ((msb (elt data 0)))
+ (+ (if (> msb 31) (* msb 16777216.0) (lsh msb 24))
+ (logior (lsh (elt data 1) 16) (lsh (elt data 2) 8) (elt data 3)))))
+ (defsubst xcb:-unpack-u4-lsb (data)
+ "Byte array => 4 bytes unsigned integer (LSB first, 32-bit)."
+ (let ((msb (elt data 3)))
+ (+ (if (> msb 31) (* msb 16777216.0) (lsh msb 24))
+ (logior (elt data 0) (lsh (elt data 1) 8) (lsh (elt data 2) 16))))))
+
+(defsubst xcb:-unpack-i4 (data)
+ "Byte array => 4 bytes signed integer (MSB first)."
+ (let ((value (xcb:-unpack-u4 data)))
+ (if (< value #x80000000) ;treated as float for 32-bit
+ value
+ (- value #x100000000)))) ;treated as float for 32-bit
+
+(defsubst xcb:-unpack-i4-lsb (data)
+ "Byte array => 4 bytes signed integer (LSB first)."
+ (let ((value (xcb:-unpack-u4-lsb data)))
+ (if (< value #x80000000) ;treated as float for 32-bit
+ value
+ (- value #x100000000)))) ;treated as float for 32-bit
+
+(defmacro xcb:-fieldref (field)
+ "Evaluate a <fieldref> field."
+ `(slot-value obj ,field))
+
+(defmacro xcb:-paramref (field)
+ "Evaluate a <paramref> field."
+ `(slot-value ctx ,field))
+
+(defsubst xcb:-popcount (mask)
+ "Return the popcount of integer MASK."
+ (apply '+ (mapcar (lambda (i)
+ (logand (lsh mask i) 1))
+ (number-sequence -31 0)))) ;32-bit number assumed (CARD32)
+
+(defsubst xcb:-request-class->reply-class (request)
+ "Return the reply class corresponding to the request class REQUEST."
+ (intern-soft (concat (symbol-name request) "~reply")))
+
+;;;; Basic types
+
+;; typedef in C
+(defmacro xcb:deftypealias (new-type old-type)
+ "Define NEW-TYPE as an alias of type OLD-TYPE"
+ `(progn
+ (cl-deftype ,(eval new-type) nil ,old-type)
+ (defvaralias ,new-type ,old-type)))
+
+;; 1/2/4 B signed/unsigned integer
+(cl-deftype xcb:-i1 () t)
+(cl-deftype xcb:-i2 () t)
+(cl-deftype xcb:-i4 () t)
+(cl-deftype xcb:-u1 () t)
+(cl-deftype xcb:-u2 () t)
+(cl-deftype xcb:-u4 () t)
+;; <pad>
+(cl-deftype xcb:-pad () t)
+;; <pad> with align attribute
+(cl-deftype xcb:-pad-align () t)
+;; <fd>
+(cl-deftype xcb:-fd () t)
+;; <list>
+(cl-deftype xcb:-list () t)
+;; <switch>
+(cl-deftype xcb:-switch () t)
+;; This type of data is not involved in marshalling/unmarshalling
+(cl-deftype xcb:-ignore () t)
+;; C types and types missing in XCB
+(cl-deftype xcb:void () t)
+(xcb:deftypealias 'xcb:char 'xcb:-u1)
+(xcb:deftypealias 'xcb:BYTE 'xcb:-u1)
+(xcb:deftypealias 'xcb:INT8 'xcb:-i1)
+(xcb:deftypealias 'xcb:INT16 'xcb:-i2)
+(xcb:deftypealias 'xcb:INT32 'xcb:-i4)
+(xcb:deftypealias 'xcb:CARD8 'xcb:-u1)
+(xcb:deftypealias 'xcb:CARD16 'xcb:-u2)
+(xcb:deftypealias 'xcb:CARD32 'xcb:-u4)
+(xcb:deftypealias 'xcb:BOOL 'xcb:-u1)
+
+;;;; Struct type
+
+(defvar xcb:lsb t "t for LSB first (i.e., little-endian), nil otherwise.
+
+Consider let-bind it rather than change its global value.")
+
+(defclass xcb:-struct ()
+ ((~lsb :initarg :~lsb
+ :initform (symbol-value 'xcb:lsb) ;see `eieio-default-eval-maybe'
+ :type xcb:-ignore))
+ :documentation "Struct type.")
+
+(cl-defmethod xcb:marshal ((obj xcb:-struct))
+ "Return the byte-array representation of struct OBJ."
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ result name type value)
+ (catch 'break
+ (dolist (slot slots)
+ (setq type (cl--slot-descriptor-type slot))
+ (unless (or (eq type 'fd) (eq type 'xcb:-ignore))
+ (setq name (cl--slot-descriptor-name slot))
+ (setq value (slot-value obj name))
+ (when (symbolp value) ;see `eieio-default-eval-maybe'
+ (setq value (symbol-value value)))
+ (setq result
+ (vconcat result (xcb:-marshal-field obj type value
+ (length result))))
+ (when (eq type 'xcb:-switch) ;xcb:-switch always finishes a struct
+ (throw 'break 'nil)))))
+ result))
+
+(cl-defmethod xcb:-marshal-field ((obj xcb:-struct) type value &optional pos)
+ "Return the byte-array representation of a field in struct OBJ of type TYPE
+and value VALUE.
+
+The optional POS argument indicates current byte index of the field (used by
+`xcb:-pad-align' type)."
+ (pcase (indirect-variable type)
+ (`xcb:-u1 (xcb:-pack-u1 value))
+ (`xcb:-i1 (xcb:-pack-i1 value))
+ (`xcb:-u2
+ (if (slot-value obj '~lsb) (xcb:-pack-u2-lsb value) (xcb:-pack-u2 value)))
+ (`xcb:-i2
+ (if (slot-value obj '~lsb) (xcb:-pack-i2-lsb value) (xcb:-pack-i2 value)))
+ (`xcb:-u4
+ (if (slot-value obj '~lsb) (xcb:-pack-u4-lsb value) (xcb:-pack-u4 value)))
+ (`xcb:-i4
+ (if (slot-value obj '~lsb) (xcb:-pack-i4-lsb value) (xcb:-pack-i4 value)))
+ (`xcb:void (vector value))
+ (`xcb:-pad
+ (unless (integerp value)
+ (setq value (eval value `((obj . ,obj)))))
+ (make-vector value 0))
+ (`xcb:-pad-align
+ (unless (integerp value)
+ (setq value (eval value `((obj . ,obj)))))
+ (make-vector (% (- 4 (% pos value)) 4) 0))
+ (`xcb:-list
+ (let* ((list-name (plist-get value 'name))
+ (list-type (plist-get value 'type))
+ (list-size (plist-get value 'size))
+ (data (slot-value obj list-name)))
+ (unless (integerp list-size)
+ (setq list-size (eval list-size `((obj . ,obj))))
+ (unless list-size
+ (setq list-size (length data)))) ;list-size can be nil
+ (cl-assert (= list-size (length data)))
+ (mapconcat (lambda (i)
+ (xcb:-marshal-field obj list-type i))
+ data [])))
+ (`xcb:-switch
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ (expression (plist-get value 'expression))
+ (cases (plist-get value 'cases))
+ result condition name-list slot-type)
+ (unless (integerp expression)
+ (setq expression (eval expression `((obj . ,obj)))))
+ (cl-assert (integerp expression))
+ (dolist (i cases)
+ (setq condition (car i))
+ (setq name-list (cdr i))
+ (setq flag nil)
+ (if (symbolp condition)
+ (setq condition (symbol-value condition))
+ (when (and (listp condition) (eq 'logior (car condition)))
+ (setq condition (apply 'logior (cdr condition)))))
+ (cl-assert (or (integerp condition) (listp condition)))
+ (if (integerp condition)
+ (setq flag (/= 0 (logand expression condition)))
+ (while (and (not flag) condition)
+ (setq flag (or flag (= expression (pop condition))))))
+ (when flag
+ (dolist (name name-list)
+ (catch 'break
+ (dolist (slot slots) ;better way to find the slot type?
+ (when (eq name (cl--slot-descriptor-name slot))
+ (setq slot-type (cl--slot-descriptor-type slot))
+ (throw 'break nil))))
+ (setq result
+ (vconcat result
+ (xcb:-marshal-field obj slot-type
+ (slot-value obj name)
+ (+ pos (length result))))))))
+ result))
+ ((and x (guard (child-of-class-p x xcb:-struct)))
+ (xcb:marshal value))
+ (x (error "[XCB] Unsupported type for marshalling: %s" x))))
+
+(cl-defmethod xcb:unmarshal ((obj xcb:-struct) byte-array &optional ctx)
+ "Fill in fields of struct OBJ according to its byte-array representation.
+
+The optional argument CTX is for <paramref>."
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ (result 0)
+ tmp type)
+ (dolist (slot slots)
+ (setq type (cl--slot-descriptor-type slot))
+ (unless (or (eq type 'fd) (eq type 'xcb:-ignore))
+ (setq tmp (xcb:-unmarshal-field obj type byte-array
+ (cl--slot-descriptor-initform slot)
+ ctx))
+ (setf (slot-value obj (cl--slot-descriptor-name slot)) (car tmp))
+ (setq byte-array (substring byte-array (cadr tmp)))
+ (setq result (+ result (cadr tmp)))))
+ result))
+
+(cl-defmethod xcb:-unmarshal-field ((obj xcb:-struct) type data initform
+ &optional ctx)
+ "Return the value of a field in struct OBJ of type TYPE, byte-array
+representation DATA, and default value INITFORM.
+
+The optional argument CTX is for <paramref>.
+
+This method returns a list of two components, with the first being the result
+and the second the consumed length."
+ (pcase (indirect-variable type)
+ (`xcb:-u1 (list (elt data 0) 1))
+ (`xcb:-i1 (let ((result (elt data 0)))
+ (list (if (< result 128) result (- result 255)) 1)))
+ (`xcb:-u2 (list (if (slot-value obj '~lsb)
+ (xcb:-unpack-u2-lsb data) (xcb:-unpack-u2 data))
+ 2))
+ (`xcb:-i2 (list (if (slot-value obj '~lsb)
+ (xcb:-unpack-i2-lsb data) (xcb:-unpack-i2 data))
+ 2))
+ (`xcb:-u4 (list (if (slot-value obj '~lsb)
+ (xcb:-unpack-u4-lsb data) (xcb:-unpack-u4 data))
+ 4))
+ (`xcb:-i4 (list (if (slot-value obj '~lsb)
+ (xcb:-unpack-i4-lsb data) (xcb:-unpack-i4 data))
+ 4))
+ (`xcb:void (list (elt data 0) 1))
+ (`xcb:-pad
+ (unless (integerp initform)
+ (when (eq 'quote (car initform))
+ (setq initform (cadr initform)))
+ (setq initform (eval initform `((obj . ,obj) (ctx . ,ctx)))))
+ (list initform initform))
+ (`xcb:-pad-align ;assume the whole data is aligned
+ (unless (integerp initform)
+ (when (eq 'quote (car initform))
+ (setq initform (cadr initform)))
+ (setq initform (eval initform `((obj . ,obj) (ctx . ,ctx)))))
+ (list initform (% (length data) initform)))
+ (`xcb:-list
+ (when (eq 'quote (car initform)) ;unquote the form
+ (setq initform (cadr initform)))
+ (let ((list-name (plist-get initform 'name))
+ (list-type (plist-get initform 'type))
+ (list-size (plist-get initform 'size)))
+ (unless (integerp list-size)
+ (setq list-size (eval list-size `((obj . ,obj) (ctx . ,ctx)))))
+ (cl-assert (integerp list-size))
+ (pcase list-type
+ (`xcb:char ;as Latin-1 encoded string
+ (setf (slot-value obj list-name)
+ (decode-coding-string
+ (apply 'unibyte-string
+ (append (substring data 0 list-size) nil))
+ 'iso-latin-1))
+ (list initform list-size))
+ (`xcb:void ;for further unmarshalling
+ (setf (slot-value obj list-name) (substring data 0 list-size))
+ (list initform list-size))
+ (x
+ (let ((count 0)
+ result tmp)
+ (dotimes (i list-size)
+ (setq tmp (xcb:-unmarshal-field obj x data nil))
+ (setq result (nconc result (list (car tmp))))
+ (setq data (substring data (cadr tmp)))
+ (setq count (+ count (cadr tmp))))
+ (setf (slot-value obj list-name) result)
+ (list initform count))))))
+ (`xcb:-switch
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ (expression (plist-get initform 'expression))
+ (cases (plist-get initform 'cases))
+ (count 0)
+ condition name-list flag slot-type tmp)
+ (unless (integerp expression)
+ (setq expression (eval expression `((obj . ,obj) (ctx . ,ctx)))))
+ (cl-assert (integerp expression))
+ (dolist (i cases)
+ (setq condition (car i))
+ (setq name-list (cdr i))
+ (setq flag nil)
+ (if (integerp condition)
+ (setq flag (/= 0 (logand expression condition)))
+ (if (eq 'logior (car condition))
+ (setq flag (/= 0 (logand expression
+ (apply 'logior (cdr condition)))))
+ (while (and (not flag) condition)
+ (setq flag (or flag (= expression (pop condition)))))))
+ (when flag
+ (dolist (name name-list)
+ (catch 'break
+ (dolist (slot slots) ;better way to find the slot type?
+ (when (eq name (cl--slot-descriptor-name slot))
+ (setq slot-type (cl--slot-descriptor-type slot))
+ (throw 'break nil))))
+ (setq tmp (xcb:-unmarshal-field obj data nil))
+ (setf (slot-value obj name) (car tmp))
+ (setq count (+ count (cadr tmp)))
+ (setq data (substring data (cadr tmp))))))
+ (list initform count)))
+ ((and x (guard (child-of-class-p x xcb:-struct)))
+ (let* ((struct-obj (make-instance x))
+ (tmp (xcb:unmarshal struct-obj data obj)))
+ (list struct-obj tmp)))
+ (x (error "[XCB] Unsupported type for unmarshalling: %s" x))))
+
+;;;; Types derived directly from `xcb:-struct'
+
+(defclass xcb:-request (xcb:-struct)
+ nil
+ :documentation "X request type.")
+
+(defclass xcb:-reply (xcb:-struct)
+ ((length :initarg :length ;reply length, used in e.g. GetKeyboardMapping
+ :type xcb:-ignore))
+ :documentation "X reply type.")
+;;
+(cl-defmethod xcb:unmarshal ((obj xcb:-reply) byte-array)
+ "Fill in fields in a reply OBJ according to its byte-array representation."
+ (cl-call-next-method obj (vconcat (substring byte-array 1 2)
+ (substring byte-array 8))))
+
+(defclass xcb:-event (xcb:-struct)
+ nil
+ :documentation "Event type.")
+;;
+(cl-defmethod xcb:marshal ((obj xcb:-event) connection &optional sequence)
+ "Return the byte-array representation of event OBJ.
+
+This method is mainly designed for `xcb:SendEvent', where it's used to generate
+synthetic events. The CONNECTION argument is used to retrieve the event number
+for extensions. If SEQUENCE is non-nil, it is used as the sequence number in
+the synthetic event. Otherwise, 0 is assumed.
+
+Note that this method auto pads the result to 32 bytes, as is always the case."
+ (let ((result (cl-call-next-method obj)))
+ (setq result (vconcat
+ `[,(xcb:-error-or-event-class->number
+ connection (eieio-object-class obj))]
+ result))
+ (unless (same-class-p obj xcb:KeymapNotify)
+ (setq result
+ (vconcat (substring result 0 2)
+ (funcall (if (slot-value obj '~lsb) 'xcb:-pack-u2-lsb
+ 'xcb:-pack-u2)
+ (or sequence 0))
+ (substring result 2))))
+ (cl-assert (>= 32 (length result)))
+ (setq result (vconcat result (make-vector (- 32 (length result)) 0)))))
+;;
+(cl-defmethod xcb:unmarshal ((obj xcb:-event) byte-array)
+ "Fill in event OBJ according to its byte-array representation BYTE-ARRAY."
+ (cl-call-next-method obj
+ (if (same-class-p obj xcb:KeymapNotify)
+ (substring byte-array 1) ;strip event code
+ ;; Strip event code & sequence number
+ (vconcat (substring byte-array 1 2)
+ (substring byte-array 4)))))
+
+(defclass xcb:-error (xcb:-struct)
+ nil
+ :documentation "X error type.")
+;;
+(cl-defmethod xcb:unmarshal ((obj xcb:-error) byte-array)
+ "Fill in error OBJ according to its byte-array representation BYTE-ARRAY."
+ (cl-call-next-method obj (substring byte-array 4))) ;skip the first 4 bytes
+
+(defclass xcb:-union (xcb:-struct)
+ nil
+ :documentation "Union type.")
+;;
+(cl-defmethod xcb:marshal ((obj xcb:-union))
+ "Return the byte-array representation of union OBJ.
+
+This result is converted from the first bounded slot."
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ result slot type name)
+ (while (and (not result) slots)
+ (setq slot (pop slots))
+ (setq type (cl--slot-descriptor-type slot)
+ name (cl--slot-descriptor-name slot))
+ (unless (or (not (slot-boundp obj name))
+ (eq type 'xcb:-ignore)
+ ;; Dealing with `xcb:-list' type
+ (and (eq type 'xcb:-list)
+ (not (slot-boundp obj (plist-get (slot-value obj name)
+ 'name)))))
+ (setq result (xcb:-marshal-field obj
+ (cl--slot-descriptor-type slot)
+ (slot-value obj name)))))
+ result))
+;;
+(cl-defmethod xcb:unmarshal ((obj xcb:-union) byte-array &optional ctx)
+ "Fill in every field in union OBJ, according to BYTE-ARRAY.
+
+The optional argument CTX is for <paramref>."
+ (let ((slots (eieio-class-slots (eieio-object-class obj)))
+ consumed tmp type)
+ (dolist (slot slots)
+ (setq type (cl--slot-descriptor-type slot))
+ (unless (eq type 'xcb:-ignore)
+ (setq tmp (xcb:-unmarshal-field obj type byte-array
+ (cl--slot-descriptor-initform slot)
+ ctx))
+ (setf (slot-value obj (cl--slot-descriptor-name slot)) (car tmp))
+ (setq consumed (cadr tmp))))
+ consumed)) ;consume byte-array only once
+
+
+
+(provide 'xcb-types)
+
+;;; xcb-types.el ends here
diff --git a/xcb-xc_misc.el b/xcb-xc_misc.el
new file mode 100644
index 0000000..f641ce9
--- /dev/null
+++ b/xcb-xc_misc.el
@@ -0,0 +1,48 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xc_misc.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xc_misc:-extension-xname "XC-MISC")
+(defconst xcb:xc_misc:-extension-name "XCMisc")
+(defconst xcb:xc_misc:-major-version 1)
+(defconst xcb:xc_misc:-minor-version 1)
+
+(defclass xcb:xc_misc:GetVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD16)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD16)))
+(defclass xcb:xc_misc:GetVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major-version :initarg :server-major-version :type xcb:CARD16)
+ (server-minor-version :initarg :server-minor-version :type xcb:CARD16)))
+
+(defclass xcb:xc_misc:GetXIDRange
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)))
+(defclass xcb:xc_misc:GetXIDRange~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (start-id :initarg :start-id :type xcb:CARD32)
+ (count :initarg :count :type xcb:CARD32)))
+
+(defclass xcb:xc_misc:GetXIDList
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (count :initarg :count :type xcb:CARD32)))
+(defclass xcb:xc_misc:GetXIDList~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (ids-len :initarg :ids-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (ids :initarg :ids :type xcb:-ignore)
+ (ids~ :initform
+ '(name ids type xcb:CARD32 size
+ (xcb:-fieldref 'ids-len))
+ :type xcb:-list)))
+
+
+
+(provide 'xcb-xc_misc)
diff --git a/xcb-xevie.el b/xcb-xevie.el
new file mode 100644
index 0000000..49ab69d
--- /dev/null
+++ b/xcb-xevie.el
@@ -0,0 +1,70 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xevie.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xevie:-extension-xname "XEVIE")
+(defconst xcb:xevie:-extension-name "Xevie")
+(defconst xcb:xevie:-major-version 1)
+(defconst xcb:xevie:-minor-version 0)
+
+(defclass xcb:xevie:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD16)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD16)))
+(defclass xcb:xevie:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major-version :initarg :server-major-version :type xcb:CARD16)
+ (server-minor-version :initarg :server-minor-version :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xevie:Start
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xevie:Start~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)))
+
+(defclass xcb:xevie:End
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (cmap :initarg :cmap :type xcb:CARD32)))
+(defclass xcb:xevie:End~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)))
+
+(defconst xcb:xevie:Datatype:Unmodified 0)
+(defconst xcb:xevie:Datatype:Modified 1)
+
+(defclass xcb:xevie:Event
+ (xcb:-struct)
+ ((pad~0 :initform 32 :type xcb:-pad)))
+
+(defclass xcb:xevie:Send
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (event :initarg :event :type xcb:xevie:Event)
+ (data-type :initarg :data-type :type xcb:CARD32)
+ (pad~0 :initform 64 :type xcb:-pad)))
+(defclass xcb:xevie:Send~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)))
+
+(defclass xcb:xevie:SelectInput
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+(defclass xcb:xevie:SelectInput~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)))
+
+
+
+(provide 'xcb-xevie)
diff --git a/xcb-xf86dri.el b/xcb-xf86dri.el
new file mode 100644
index 0000000..4d34e00
--- /dev/null
+++ b/xcb-xf86dri.el
@@ -0,0 +1,170 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xf86dri.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xf86dri:-extension-xname "XFree86-DRI")
+(defconst xcb:xf86dri:-extension-name "XF86Dri")
+(defconst xcb:xf86dri:-major-version 4)
+(defconst xcb:xf86dri:-minor-version 1)
+
+(defclass xcb:xf86dri:DrmClipRect
+ (xcb:-struct)
+ ((x1 :initarg :x1 :type xcb:INT16)
+ (y1 :initarg :y1 :type xcb:INT16)
+ (x2 :initarg :x2 :type xcb:INT16)
+ (x3 :initarg :x3 :type xcb:INT16)))
+
+(defclass xcb:xf86dri:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:xf86dri:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (dri-major-version :initarg :dri-major-version :type xcb:CARD16)
+ (dri-minor-version :initarg :dri-minor-version :type xcb:CARD16)
+ (dri-minor-patch :initarg :dri-minor-patch :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:QueryDirectRenderingCapable
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xf86dri:QueryDirectRenderingCapable~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (is-capable :initarg :is-capable :type xcb:BOOL)))
+
+(defclass xcb:xf86dri:OpenConnection
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xf86dri:OpenConnection~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (sarea-handle-low :initarg :sarea-handle-low :type xcb:CARD32)
+ (sarea-handle-high :initarg :sarea-handle-high :type xcb:CARD32)
+ (bus-id-len :initarg :bus-id-len :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (bus-id :initarg :bus-id :type xcb:-ignore)
+ (bus-id~ :initform
+ '(name bus-id type xcb:char size
+ (xcb:-fieldref 'bus-id-len))
+ :type xcb:-list)))
+
+(defclass xcb:xf86dri:CloseConnection
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:GetClientDriverName
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xf86dri:GetClientDriverName~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (client-driver-major-version :initarg :client-driver-major-version :type
xcb:CARD32)
+ (client-driver-minor-version :initarg :client-driver-minor-version :type
xcb:CARD32)
+ (client-driver-patch-version :initarg :client-driver-patch-version :type
xcb:CARD32)
+ (client-driver-name-len :initarg :client-driver-name-len :type xcb:CARD32)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (client-driver-name :initarg :client-driver-name :type xcb:-ignore)
+ (client-driver-name~ :initform
+ '(name client-driver-name type xcb:char size
+ (xcb:-fieldref 'client-driver-name-len))
+ :type xcb:-list)))
+
+(defclass xcb:xf86dri:CreateContext
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (visual :initarg :visual :type xcb:CARD32)
+ (context :initarg :context :type xcb:CARD32)))
+(defclass xcb:xf86dri:CreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (hw-context :initarg :hw-context :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:DestroyContext
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (context :initarg :context :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:CreateDrawable
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (drawable :initarg :drawable :type xcb:CARD32)))
+(defclass xcb:xf86dri:CreateDrawable~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (hw-drawable-handle :initarg :hw-drawable-handle :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:DestroyDrawable
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (drawable :initarg :drawable :type xcb:CARD32)))
+
+(defclass xcb:xf86dri:GetDrawableInfo
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (drawable :initarg :drawable :type xcb:CARD32)))
+(defclass xcb:xf86dri:GetDrawableInfo~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (drawable-table-index :initarg :drawable-table-index :type xcb:CARD32)
+ (drawable-table-stamp :initarg :drawable-table-stamp :type xcb:CARD32)
+ (drawable-origin-X :initarg :drawable-origin-X :type xcb:INT16)
+ (drawable-origin-Y :initarg :drawable-origin-Y :type xcb:INT16)
+ (drawable-size-W :initarg :drawable-size-W :type xcb:INT16)
+ (drawable-size-H :initarg :drawable-size-H :type xcb:INT16)
+ (num-clip-rects :initarg :num-clip-rects :type xcb:CARD32)
+ (back-x :initarg :back-x :type xcb:INT16)
+ (back-y :initarg :back-y :type xcb:INT16)
+ (num-back-clip-rects :initarg :num-back-clip-rects :type xcb:CARD32)
+ (clip-rects :initarg :clip-rects :type xcb:-ignore)
+ (clip-rects~ :initform
+ '(name clip-rects type xcb:xf86dri:DrmClipRect size
+ (xcb:-fieldref 'num-clip-rects))
+ :type xcb:-list)
+ (back-clip-rects :initarg :back-clip-rects :type xcb:-ignore)
+ (back-clip-rects~ :initform
+ '(name back-clip-rects type xcb:xf86dri:DrmClipRect size
+ (xcb:-fieldref 'num-back-clip-rects))
+ :type xcb:-list)))
+
+(defclass xcb:xf86dri:GetDeviceInfo
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xf86dri:GetDeviceInfo~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (framebuffer-handle-low :initarg :framebuffer-handle-low :type xcb:CARD32)
+ (framebuffer-handle-high :initarg :framebuffer-handle-high :type xcb:CARD32)
+ (framebuffer-origin-offset :initarg :framebuffer-origin-offset :type
xcb:CARD32)
+ (framebuffer-size :initarg :framebuffer-size :type xcb:CARD32)
+ (framebuffer-stride :initarg :framebuffer-stride :type xcb:CARD32)
+ (device-private-size :initarg :device-private-size :type xcb:CARD32)
+ (device-private :initarg :device-private :type xcb:-ignore)
+ (device-private~ :initform
+ '(name device-private type xcb:CARD32 size
+ (xcb:-fieldref 'device-private-size))
+ :type xcb:-list)))
+
+(defclass xcb:xf86dri:AuthConnection
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (magic :initarg :magic :type xcb:CARD32)))
+(defclass xcb:xf86dri:AuthConnection~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (authenticated :initarg :authenticated :type xcb:CARD32)))
+
+
+
+(provide 'xcb-xf86dri)
diff --git a/xcb-xf86vidmode.el b/xcb-xf86vidmode.el
new file mode 100644
index 0000000..4325ac8
--- /dev/null
+++ b/xcb-xf86vidmode.el
@@ -0,0 +1,517 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xf86vidmode.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xf86vidmode:-extension-xname "XFree86-VidModeExtension")
+(defconst xcb:xf86vidmode:-extension-name "XF86VidMode")
+(defconst xcb:xf86vidmode:-major-version 2)
+(defconst xcb:xf86vidmode:-minor-version 2)
+
+(xcb:deftypealias 'xcb:xf86vidmode:SYNCRANGE 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:xf86vidmode:DOTCLOCK 'xcb:CARD32)
+
+(defconst xcb:xf86vidmode:ModeFlag:Positive_HSync 1)
+(defconst xcb:xf86vidmode:ModeFlag:Negative_HSync 2)
+(defconst xcb:xf86vidmode:ModeFlag:Positive_VSync 4)
+(defconst xcb:xf86vidmode:ModeFlag:Negative_VSync 8)
+(defconst xcb:xf86vidmode:ModeFlag:Interlace 16)
+(defconst xcb:xf86vidmode:ModeFlag:Composite_Sync 32)
+(defconst xcb:xf86vidmode:ModeFlag:Positive_CSync 64)
+(defconst xcb:xf86vidmode:ModeFlag:Negative_CSync 128)
+(defconst xcb:xf86vidmode:ModeFlag:HSkew 256)
+(defconst xcb:xf86vidmode:ModeFlag:Broadcast 512)
+(defconst xcb:xf86vidmode:ModeFlag:Pixmux 1024)
+(defconst xcb:xf86vidmode:ModeFlag:Double_Clock 2048)
+(defconst xcb:xf86vidmode:ModeFlag:Half_Clock 4096)
+
+(defconst xcb:xf86vidmode:ClockFlag:Programable 1)
+
+(defconst xcb:xf86vidmode:Permission:Read 1)
+(defconst xcb:xf86vidmode:Permission:Write 2)
+
+(defclass xcb:xf86vidmode:ModeInfo
+ (xcb:-struct)
+ ((dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD32)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)))
+
+(defclass xcb:xf86vidmode:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:xf86vidmode:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+
+(defclass xcb:xf86vidmode:GetModeLine
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetModeLine~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~2 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:ModModeLine
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:SwitchMode
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (zoom :initarg :zoom :type xcb:CARD16)))
+
+(defclass xcb:xf86vidmode:GetMonitor
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetMonitor~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (vendor-length :initarg :vendor-length :type xcb:CARD8)
+ (model-length :initarg :model-length :type xcb:CARD8)
+ (num-hsync :initarg :num-hsync :type xcb:CARD8)
+ (num-vsync :initarg :num-vsync :type xcb:CARD8)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (hsync :initarg :hsync :type xcb:-ignore)
+ (hsync~ :initform
+ '(name hsync type xcb:xf86vidmode:SYNCRANGE size
+ (xcb:-fieldref 'num-hsync))
+ :type xcb:-list)
+ (vsync :initarg :vsync :type xcb:-ignore)
+ (vsync~ :initform
+ '(name vsync type xcb:xf86vidmode:SYNCRANGE size
+ (xcb:-fieldref 'num-vsync))
+ :type xcb:-list)
+ (vendor :initarg :vendor :type xcb:-ignore)
+ (vendor~ :initform
+ '(name vendor type xcb:char size
+ (xcb:-fieldref 'vendor-length))
+ :type xcb:-list)
+ (alignment-pad :initarg :alignment-pad :type xcb:-ignore)
+ (alignment-pad~ :initform
+ '(name alignment-pad type xcb:void size
+ (-
+ (logand
+ (+
+ (xcb:-fieldref 'vendor-length)
+ 3)
+ (lognot
+ (parse-expression
+ (node-subnode node))))
+ (xcb:-fieldref 'vendor-length)))
+ :type xcb:-list)
+ (model :initarg :model :type xcb:-ignore)
+ (model~ :initform
+ '(name model type xcb:char size
+ (xcb:-fieldref 'model-length))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:LockModeSwitch
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (lock :initarg :lock :type xcb:CARD16)))
+
+(defclass xcb:xf86vidmode:GetAllModeLines
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetAllModeLines~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (modecount :initarg :modecount :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (modeinfo :initarg :modeinfo :type xcb:-ignore)
+ (modeinfo~ :initform
+ '(name modeinfo type xcb:xf86vidmode:ModeInfo size
+ (xcb:-fieldref 'modecount))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:AddModeLine
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (after-dotclock :initarg :after-dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (after-hdisplay :initarg :after-hdisplay :type xcb:CARD16)
+ (after-hsyncstart :initarg :after-hsyncstart :type xcb:CARD16)
+ (after-hsyncend :initarg :after-hsyncend :type xcb:CARD16)
+ (after-htotal :initarg :after-htotal :type xcb:CARD16)
+ (after-hskew :initarg :after-hskew :type xcb:CARD16)
+ (after-vdisplay :initarg :after-vdisplay :type xcb:CARD16)
+ (after-vsyncstart :initarg :after-vsyncstart :type xcb:CARD16)
+ (after-vsyncend :initarg :after-vsyncend :type xcb:CARD16)
+ (after-vtotal :initarg :after-vtotal :type xcb:CARD16)
+ (pad~2 :initform 2 :type xcb:-pad)
+ (after-flags :initarg :after-flags :type xcb:CARD32)
+ (pad~3 :initform 12 :type xcb:-pad)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:DeleteModeLine
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:ValidateModeLine
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+(defclass xcb:xf86vidmode:ValidateModeLine~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (status :initarg :status :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:SwitchToMode
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD32)
+ (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK)
+ (hdisplay :initarg :hdisplay :type xcb:CARD16)
+ (hsyncstart :initarg :hsyncstart :type xcb:CARD16)
+ (hsyncend :initarg :hsyncend :type xcb:CARD16)
+ (htotal :initarg :htotal :type xcb:CARD16)
+ (hskew :initarg :hskew :type xcb:CARD16)
+ (vdisplay :initarg :vdisplay :type xcb:CARD16)
+ (vsyncstart :initarg :vsyncstart :type xcb:CARD16)
+ (vsyncend :initarg :vsyncend :type xcb:CARD16)
+ (vtotal :initarg :vtotal :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (privsize :initarg :privsize :type xcb:CARD32)
+ (private :initarg :private :type xcb:-ignore)
+ (private~ :initform
+ '(name private type xcb:CARD8 size
+ (xcb:-fieldref 'privsize))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:GetViewPort
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetViewPort~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (x :initarg :x :type xcb:CARD32)
+ (y :initarg :y :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:SetViewPort
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (x :initarg :x :type xcb:CARD32)
+ (y :initarg :y :type xcb:CARD32)))
+
+(defclass xcb:xf86vidmode:GetDotClocks
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetDotClocks~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (clocks :initarg :clocks :type xcb:CARD32)
+ (maxclocks :initarg :maxclocks :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (clock :initarg :clock :type xcb:-ignore)
+ (clock~ :initform
+ '(name clock type xcb:CARD32 size
+ (*
+ (- 1
+ (logand
+ (xcb:-fieldref 'flags)
+ 1))
+ (xcb:-fieldref 'clocks)))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:SetClientVersion
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (major :initarg :major :type xcb:CARD16)
+ (minor :initarg :minor :type xcb:CARD16)))
+
+(defclass xcb:xf86vidmode:SetGamma
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (red :initarg :red :type xcb:CARD32)
+ (green :initarg :green :type xcb:CARD32)
+ (blue :initarg :blue :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:GetGamma
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 26 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetGamma~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (red :initarg :red :type xcb:CARD32)
+ (green :initarg :green :type xcb:CARD32)
+ (blue :initarg :blue :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:GetGammaRamp
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (size :initarg :size :type xcb:CARD16)))
+(defclass xcb:xf86vidmode:GetGammaRamp~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (size :initarg :size :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (red :initarg :red :type xcb:-ignore)
+ (red~ :initform
+ '(name red type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)
+ (green :initarg :green :type xcb:-ignore)
+ (green~ :initform
+ '(name green type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)
+ (blue :initarg :blue :type xcb:-ignore)
+ (blue~ :initform
+ '(name blue type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:SetGammaRamp
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (size :initarg :size :type xcb:CARD16)
+ (red :initarg :red :type xcb:-ignore)
+ (red~ :initform
+ '(name red type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)
+ (green :initarg :green :type xcb:-ignore)
+ (green~ :initform
+ '(name green type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)
+ (blue :initarg :blue :type xcb:-ignore)
+ (blue~ :initform
+ '(name blue type xcb:CARD16 size
+ (logand
+ (+
+ (xcb:-fieldref 'size)
+ 1)
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ :type xcb:-list)))
+
+(defclass xcb:xf86vidmode:GetGammaRampSize
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetGammaRampSize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (size :initarg :size :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:GetPermissions
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (screen :initarg :screen :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xf86vidmode:GetPermissions~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (permissions :initarg :permissions :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xf86vidmode:BadClock
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:BadHTimings
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:BadVTimings
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:ModeUnsuitable
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:ExtensionDisabled
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:ClientNotLocal
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xf86vidmode:ZoomLocked
+ (xcb:-error)
+ nil)
+
+(defconst xcb:xf86vidmode:error-number-class-alist
+ '((0 . xcb:xf86vidmode:BadClock)
+ (1 . xcb:xf86vidmode:BadHTimings)
+ (2 . xcb:xf86vidmode:BadVTimings)
+ (3 . xcb:xf86vidmode:ModeUnsuitable)
+ (4 . xcb:xf86vidmode:ExtensionDisabled)
+ (5 . xcb:xf86vidmode:ClientNotLocal)
+ (6 . xcb:xf86vidmode:ZoomLocked))
+ "(error-number . error-class) alist")
+
+
+
+(provide 'xcb-xf86vidmode)
diff --git a/xcb-xfixes.el b/xcb-xfixes.el
new file mode 100644
index 0000000..22c5666
--- /dev/null
+++ b/xcb-xfixes.el
@@ -0,0 +1,396 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xfixes.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xfixes:-extension-xname "XFIXES")
+(defconst xcb:xfixes:-extension-name "XFixes")
+(defconst xcb:xfixes:-major-version 5)
+(defconst xcb:xfixes:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(require 'xcb-render)
+
+(require 'xcb-shape)
+
+(defclass xcb:xfixes:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major-version :initarg :client-major-version :type xcb:CARD32)
+ (client-minor-version :initarg :client-minor-version :type xcb:CARD32)))
+(defclass xcb:xfixes:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD32)
+ (minor-version :initarg :minor-version :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)))
+
+(defconst xcb:xfixes:SaveSetMode:Insert 0)
+(defconst xcb:xfixes:SaveSetMode:Delete 1)
+
+(defconst xcb:xfixes:SaveSetTarget:Nearest 0)
+(defconst xcb:xfixes:SaveSetTarget:Root 1)
+
+(defconst xcb:xfixes:SaveSetMapping:Map 0)
+(defconst xcb:xfixes:SaveSetMapping:Unmap 1)
+
+(defclass xcb:xfixes:ChangeSaveSet
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:BYTE)
+ (target :initarg :target :type xcb:BYTE)
+ (map :initarg :map :type xcb:BYTE)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defconst xcb:xfixes:SelectionEvent:SetSelectionOwner 0)
+(defconst xcb:xfixes:SelectionEvent:SelectionWindowDestroy 1)
+(defconst xcb:xfixes:SelectionEvent:SelectionClientClose 2)
+
+(defconst xcb:xfixes:SelectionEventMask:SetSelectionOwner 1)
+(defconst xcb:xfixes:SelectionEventMask:SelectionWindowDestroy 2)
+(defconst xcb:xfixes:SelectionEventMask:SelectionClientClose 4)
+
+(defclass xcb:xfixes:SelectionNotify
+ (xcb:-event)
+ ((subtype :initarg :subtype :type xcb:CARD8)
+ (window :initarg :window :type xcb:WINDOW)
+ (owner :initarg :owner :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (selection-timestamp :initarg :selection-timestamp :type xcb:TIMESTAMP)
+ (pad~0 :initform 8 :type xcb:-pad)))
+
+(defclass xcb:xfixes:SelectSelectionInput
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+
+(defconst xcb:xfixes:CursorNotify:DisplayCursor 0)
+
+(defconst xcb:xfixes:CursorNotifyMask:DisplayCursor 1)
+
+(defclass xcb:xfixes:CursorNotify
+ (xcb:-event)
+ ((subtype :initarg :subtype :type xcb:CARD8)
+ (window :initarg :window :type xcb:WINDOW)
+ (cursor-serial :initarg :cursor-serial :type xcb:CARD32)
+ (timestamp :initarg :timestamp :type xcb:TIMESTAMP)
+ (name :initarg :name :type xcb:ATOM)
+ (pad~0 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:xfixes:SelectCursorInput
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+
+(defclass xcb:xfixes:GetCursorImage
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)))
+(defclass xcb:xfixes:GetCursorImage~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (xhot :initarg :xhot :type xcb:CARD16)
+ (yhot :initarg :yhot :type xcb:CARD16)
+ (cursor-serial :initarg :cursor-serial :type xcb:CARD32)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (cursor-image :initarg :cursor-image :type xcb:-ignore)
+ (cursor-image~ :initform
+ '(name cursor-image type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'width)
+ (xcb:-fieldref 'height)))
+ :type xcb:-list)))
+
+(xcb:deftypealias 'xcb:xfixes:REGION 'xcb:-u4)
+
+(defclass xcb:xfixes:BadRegion
+ (xcb:-error)
+ nil)
+
+(defconst xcb:xfixes:Region:None 0)
+
+(defclass xcb:xfixes:CreateRegion
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:CreateRegionFromBitmap
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (bitmap :initarg :bitmap :type xcb:PIXMAP)))
+
+(defclass xcb:xfixes:CreateRegionFromWindow
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (window :initarg :window :type xcb:WINDOW)
+ (kind :initarg :kind :type xcb:shape:KIND)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xfixes:CreateRegionFromGC
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (gc :initarg :gc :type xcb:GCONTEXT)))
+
+(defclass xcb:xfixes:CreateRegionFromPicture
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (picture :initarg :picture :type xcb:xfixes:PICTURE)))
+
+(defclass xcb:xfixes:DestroyRegion
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:SetRegion
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:CopyRegion
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (source :initarg :source :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:UnionRegion
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (source1 :initarg :source1 :type xcb:xfixes:REGION)
+ (source2 :initarg :source2 :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:IntersectRegion
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (source1 :initarg :source1 :type xcb:xfixes:REGION)
+ (source2 :initarg :source2 :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:SubtractRegion
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (source1 :initarg :source1 :type xcb:xfixes:REGION)
+ (source2 :initarg :source2 :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:InvertRegion
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (source :initarg :source :type xcb:xfixes:REGION)
+ (bounds :initarg :bounds :type xcb:RECTANGLE)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:TranslateRegion
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (dx :initarg :dx :type xcb:INT16)
+ (dy :initarg :dy :type xcb:INT16)))
+
+(defclass xcb:xfixes:RegionExtents
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (source :initarg :source :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:FetchRegion
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (region :initarg :region :type xcb:xfixes:REGION)))
+(defclass xcb:xfixes:FetchRegion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (extents :initarg :extents :type xcb:RECTANGLE)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size
+ (/
+ (xcb:-fieldref 'length)
+ 2))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:SetGCClipRegion
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (x-origin :initarg :x-origin :type xcb:INT16)
+ (y-origin :initarg :y-origin :type xcb:INT16)))
+
+(defclass xcb:xfixes:SetWindowShapeRegion
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (dest :initarg :dest :type xcb:WINDOW)
+ (dest-kind :initarg :dest-kind :type xcb:shape:KIND)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (x-offset :initarg :x-offset :type xcb:INT16)
+ (y-offset :initarg :y-offset :type xcb:INT16)
+ (region :initarg :region :type xcb:xfixes:REGION)))
+
+(defclass xcb:xfixes:SetPictureClipRegion
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (picture :initarg :picture :type xcb:xfixes:PICTURE)
+ (region :initarg :region :type xcb:xfixes:REGION)
+ (x-origin :initarg :x-origin :type xcb:INT16)
+ (y-origin :initarg :y-origin :type xcb:INT16)))
+
+(defclass xcb:xfixes:SetCursorName
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (nbytes :initarg :nbytes :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'nbytes))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:GetCursorName
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+(defclass xcb:xfixes:GetCursorName~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (atom :initarg :atom :type xcb:ATOM)
+ (nbytes :initarg :nbytes :type xcb:CARD16)
+ (pad~1 :initform 18 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'nbytes))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:GetCursorImageAndName
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)))
+(defclass xcb:xfixes:GetCursorImageAndName~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (xhot :initarg :xhot :type xcb:CARD16)
+ (yhot :initarg :yhot :type xcb:CARD16)
+ (cursor-serial :initarg :cursor-serial :type xcb:CARD32)
+ (cursor-atom :initarg :cursor-atom :type xcb:ATOM)
+ (nbytes :initarg :nbytes :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (cursor-image :initarg :cursor-image :type xcb:-ignore)
+ (cursor-image~ :initform
+ '(name cursor-image type xcb:CARD32 size
+ (*
+ (xcb:-fieldref 'width)
+ (xcb:-fieldref 'height)))
+ :type xcb:-list)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'nbytes))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:ChangeCursor
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (source :initarg :source :type xcb:CURSOR)
+ (destination :initarg :destination :type xcb:CURSOR)))
+
+(defclass xcb:xfixes:ChangeCursorByName
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (src :initarg :src :type xcb:CURSOR)
+ (nbytes :initarg :nbytes :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'nbytes))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:ExpandRegion
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (source :initarg :source :type xcb:xfixes:REGION)
+ (destination :initarg :destination :type xcb:xfixes:REGION)
+ (left :initarg :left :type xcb:CARD16)
+ (right :initarg :right :type xcb:CARD16)
+ (top :initarg :top :type xcb:CARD16)
+ (bottom :initarg :bottom :type xcb:CARD16)))
+
+(defclass xcb:xfixes:HideCursor
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:xfixes:ShowCursor
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(xcb:deftypealias 'xcb:xfixes:BARRIER 'xcb:-u4)
+
+(defconst xcb:xfixes:BarrierDirections:PositiveX 1)
+(defconst xcb:xfixes:BarrierDirections:PositiveY 2)
+(defconst xcb:xfixes:BarrierDirections:NegativeX 4)
+(defconst xcb:xfixes:BarrierDirections:NegativeY 8)
+
+(defclass xcb:xfixes:CreatePointerBarrier
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (barrier :initarg :barrier :type xcb:xfixes:BARRIER)
+ (window :initarg :window :type xcb:WINDOW)
+ (x1 :initarg :x1 :type xcb:CARD16)
+ (y1 :initarg :y1 :type xcb:CARD16)
+ (x2 :initarg :x2 :type xcb:CARD16)
+ (y2 :initarg :y2 :type xcb:CARD16)
+ (directions :initarg :directions :type xcb:CARD32)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (num-devices :initarg :num-devices :type xcb:CARD16)
+ (devices :initarg :devices :type xcb:-ignore)
+ (devices~ :initform
+ '(name devices type xcb:CARD16 size
+ (xcb:-fieldref 'num-devices))
+ :type xcb:-list)))
+
+(defclass xcb:xfixes:DeletePointerBarrier
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (barrier :initarg :barrier :type xcb:xfixes:BARRIER)))
+
+(defconst xcb:xfixes:error-number-class-alist
+ '((0 . xcb:xfixes:BadRegion))
+ "(error-number . error-class) alist")
+
+(defconst xcb:xfixes:event-number-class-alist
+ '((0 . xcb:xfixes:SelectionNotify)
+ (1 . xcb:xfixes:CursorNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xfixes)
diff --git a/xcb-xinerama.el b/xcb-xinerama.el
new file mode 100644
index 0000000..9cfe0ff
--- /dev/null
+++ b/xcb-xinerama.el
@@ -0,0 +1,86 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xinerama.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xinerama:-extension-xname "XINERAMA")
+(defconst xcb:xinerama:-extension-name "Xinerama")
+(defconst xcb:xinerama:-major-version 1)
+(defconst xcb:xinerama:-minor-version 1)
+
+(require 'xcb-xproto)
+
+(defclass xcb:xinerama:ScreenInfo
+ (xcb:-struct)
+ ((x-org :initarg :x-org :type xcb:INT16)
+ (y-org :initarg :y-org :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:xinerama:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major :initarg :major :type xcb:CARD8)
+ (minor :initarg :minor :type xcb:CARD8)))
+(defclass xcb:xinerama:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major :initarg :major :type xcb:CARD16)
+ (minor :initarg :minor :type xcb:CARD16)))
+
+(defclass xcb:xinerama:GetState
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinerama:GetState~reply
+ (xcb:-reply)
+ ((state :initarg :state :type xcb:BYTE)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:xinerama:GetScreenCount
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinerama:GetScreenCount~reply
+ (xcb:-reply)
+ ((screen-count :initarg :screen-count :type xcb:BYTE)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:xinerama:GetScreenSize
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (screen :initarg :screen :type xcb:CARD32)))
+(defclass xcb:xinerama:GetScreenSize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (window :initarg :window :type xcb:WINDOW)
+ (screen :initarg :screen :type xcb:CARD32)))
+
+(defclass xcb:xinerama:IsActive
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)))
+(defclass xcb:xinerama:IsActive~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (state :initarg :state :type xcb:CARD32)))
+
+(defclass xcb:xinerama:QueryScreens
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)))
+(defclass xcb:xinerama:QueryScreens~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (number :initarg :number :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (screen-info :initarg :screen-info :type xcb:-ignore)
+ (screen-info~ :initform
+ '(name screen-info type xcb:xinerama:ScreenInfo size
+ (xcb:-fieldref 'number))
+ :type xcb:-list)))
+
+
+
+(provide 'xcb-xinerama)
diff --git a/xcb-xinput.el b/xcb-xinput.el
new file mode 100644
index 0000000..75c992b
--- /dev/null
+++ b/xcb-xinput.el
@@ -0,0 +1,2770 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xinput.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xinput:-extension-xname "XInputExtension")
+(defconst xcb:xinput:-extension-name "Input")
+(defconst xcb:xinput:-major-version 2)
+(defconst xcb:xinput:-minor-version 3)
+
+(require 'xcb-xfixes)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:xinput:EventClass 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:xinput:KeyCode 'xcb:CARD8)
+
+(xcb:deftypealias 'xcb:xinput:DeviceId 'xcb:CARD16)
+
+(xcb:deftypealias 'xcb:xinput:FP1616 'xcb:INT32)
+
+(defclass xcb:xinput:FP3232
+ (xcb:-struct)
+ ((integral :initarg :integral :type xcb:INT32)
+ (frac :initarg :frac :type xcb:CARD32)))
+
+(defclass xcb:xinput:GetExtensionVersion
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+(defclass xcb:xinput:GetExtensionVersion~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (server-major :initarg :server-major :type xcb:CARD16)
+ (server-minor :initarg :server-minor :type xcb:CARD16)
+ (present :initarg :present :type xcb:BOOL)
+ (pad~0 :initform 19 :type xcb:-pad)))
+
+(defconst xcb:xinput:DeviceUse:IsXPointer 0)
+(defconst xcb:xinput:DeviceUse:IsXKeyboard 1)
+(defconst xcb:xinput:DeviceUse:IsXExtensionDevice 2)
+(defconst xcb:xinput:DeviceUse:IsXExtensionKeyboard 3)
+(defconst xcb:xinput:DeviceUse:IsXExtensionPointer 4)
+
+(defconst xcb:xinput:InputClass:Key 0)
+(defconst xcb:xinput:InputClass:Button 1)
+(defconst xcb:xinput:InputClass:Valuator 2)
+(defconst xcb:xinput:InputClass:Feedback 3)
+(defconst xcb:xinput:InputClass:Proximity 4)
+(defconst xcb:xinput:InputClass:Focus 5)
+(defconst xcb:xinput:InputClass:Other 6)
+
+(defconst xcb:xinput:ValuatorMode:Relative 0)
+(defconst xcb:xinput:ValuatorMode:Absolute 1)
+
+(defclass xcb:xinput:DeviceInfo
+ (xcb:-struct)
+ ((device-type :initarg :device-type :type xcb:ATOM)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (num-class-info :initarg :num-class-info :type xcb:CARD8)
+ (device-use :initarg :device-use :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:xinput:KeyInfo
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (min-keycode :initarg :min-keycode :type xcb:xinput:KeyCode)
+ (max-keycode :initarg :max-keycode :type xcb:xinput:KeyCode)
+ (num-keys :initarg :num-keys :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:ButtonInfo
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (num-buttons :initarg :num-buttons :type xcb:CARD16)))
+
+(defclass xcb:xinput:AxisInfo
+ (xcb:-struct)
+ ((resolution :initarg :resolution :type xcb:CARD32)
+ (minimum :initarg :minimum :type xcb:INT32)
+ (maximum :initarg :maximum :type xcb:INT32)))
+
+(defclass xcb:xinput:ValuatorInfo
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (axes-len :initarg :axes-len :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (motion-size :initarg :motion-size :type xcb:CARD32)
+ (axes :initarg :axes :type xcb:-ignore)
+ (axes~ :initform
+ '(name axes type xcb:xinput:AxisInfo size
+ (xcb:-fieldref 'axes-len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:InputInfo
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (info :initform
+ '(expression
+ (xcb:-fieldref 'class-id)
+ cases
+ (((xcb:xinput:InputClass:Key)
+ min-keycode max-keycode num-keys pad~10)
+ ((xcb:xinput:InputClass:Button)
+ num-buttons)
+ ((xcb:xinput:InputClass:Valuator)
+ axes-len mode motion-size axes)))
+ :type xcb:-switch)
+ (min-keycode :initarg :min-keycode :type xcb:xinput:KeyCode)
+ (max-keycode :initarg :max-keycode :type xcb:xinput:KeyCode)
+ (num-keys :initarg :num-keys :type xcb:CARD16)
+ (pad~10 :initform 2 :type xcb:-pad)
+ (num-buttons :initarg :num-buttons :type xcb:CARD16)
+ (axes-len :initarg :axes-len :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (motion-size :initarg :motion-size :type xcb:CARD32)
+ (axes :initarg :axes :type xcb:-ignore)
+ (axes~ :initform
+ '(name axes type xcb:xinput:AxisInfo size
+ (xcb:-fieldref 'axes-len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceName
+ (xcb:-struct)
+ ((len :initarg :len :type xcb:CARD8)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ListInputDevices
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)))
+(defclass xcb:xinput:ListInputDevices~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (devices-len :initarg :devices-len :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (devices :initarg :devices :type xcb:-ignore)
+ (devices~ :initform
+ '(name devices type xcb:xinput:DeviceInfo size
+ (xcb:-fieldref 'devices-len))
+ :type xcb:-list)
+ (infos :initarg :infos :type xcb:-ignore)
+ (infos~ :initform
+ '(name infos type xcb:xinput:InputInfo size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-fieldref 'num-class-info)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'devices))))
+ :type xcb:-list)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:STR size
+ (xcb:-fieldref 'devices-len))
+ :type xcb:-list)
+ (pad~1 :initform 4 :type xcb:-pad-align)))
+
+(defclass xcb:xinput:InputClassInfo
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (event-type-base :initarg :event-type-base :type xcb:CARD8)))
+
+(defclass xcb:xinput:OpenDevice
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:OpenDevice~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-classes :initarg :num-classes :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (class-info :initarg :class-info :type xcb:-ignore)
+ (class-info~ :initform
+ '(name class-info type xcb:xinput:InputClassInfo size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)
+ (pad~1 :initform 4 :type xcb:-pad-align)))
+
+(defclass xcb:xinput:CloseDevice
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:SetDeviceMode
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:SetDeviceMode~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:SelectExtensionEvent
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:GetSelectedExtensionEvents
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinput:GetSelectedExtensionEvents~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-this-classes :initarg :num-this-classes :type xcb:CARD16)
+ (num-all-classes :initarg :num-all-classes :type xcb:CARD16)
+ (pad~0 :initform 20 :type xcb:-pad)
+ (this-classes :initarg :this-classes :type xcb:-ignore)
+ (this-classes~ :initform
+ '(name this-classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-this-classes))
+ :type xcb:-list)
+ (all-classes :initarg :all-classes :type xcb:-ignore)
+ (all-classes~ :initform
+ '(name all-classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-all-classes))
+ :type xcb:-list)))
+
+(defconst xcb:xinput:PropagateMode:AddToList 0)
+(defconst xcb:xinput:PropagateMode:DeleteFromList 1)
+
+(defclass xcb:xinput:ChangeDeviceDontPropagateList
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:GetDeviceDontPropagateList
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinput:GetDeviceDontPropagateList~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (pad~0 :initform 22 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceTimeCoord
+ (xcb:-struct)
+ ((time :initarg :time :type xcb:TIMESTAMP)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:INT32 size
+ (xcb:-paramref 'num-axes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:GetDeviceMotionEvents
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (start :initarg :start :type xcb:TIMESTAMP)
+ (stop :initarg :stop :type xcb:TIMESTAMP)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceMotionEvents~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-events :initarg :num-events :type xcb:CARD32)
+ (num-axes :initarg :num-axes :type xcb:CARD8)
+ (device-mode :initarg :device-mode :type xcb:CARD8)
+ (pad~0 :initform 18 :type xcb:-pad)
+ (events :initarg :events :type xcb:-ignore)
+ (events~ :initform
+ '(name events type xcb:xinput:DeviceTimeCoord size
+ (xcb:-fieldref 'num-events))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ChangeKeyboardDevice
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:ChangeKeyboardDevice~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:ChangePointerDevice
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (x-axis :initarg :x-axis :type xcb:CARD8)
+ (y-axis :initarg :y-axis :type xcb:CARD8)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+(defclass xcb:xinput:ChangePointerDevice~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:GrabDevice
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (this-device-mode :initarg :this-device-mode :type xcb:CARD8)
+ (other-device-mode :initarg :other-device-mode :type xcb:CARD8)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+(defclass xcb:xinput:GrabDevice~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:UngrabDevice
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:xinput:ModifierDevice:UseXKeyboard 255)
+
+(defclass xcb:xinput:GrabDeviceKey
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (modifier-device :initarg :modifier-device :type xcb:CARD8)
+ (grabbed-device :initarg :grabbed-device :type xcb:CARD8)
+ (key :initarg :key :type xcb:CARD8)
+ (this-device-mode :initarg :this-device-mode :type xcb:CARD8)
+ (other-device-mode :initarg :other-device-mode :type xcb:CARD8)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:UngrabDeviceKey
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (grabWindow :initarg :grabWindow :type xcb:WINDOW)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (modifier-device :initarg :modifier-device :type xcb:CARD8)
+ (key :initarg :key :type xcb:CARD8)
+ (grabbed-device :initarg :grabbed-device :type xcb:CARD8)))
+
+(defclass xcb:xinput:GrabDeviceButton
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (grabbed-device :initarg :grabbed-device :type xcb:CARD8)
+ (modifier-device :initarg :modifier-device :type xcb:CARD8)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (this-device-mode :initarg :this-device-mode :type xcb:CARD8)
+ (other-device-mode :initarg :other-device-mode :type xcb:CARD8)
+ (button :initarg :button :type xcb:CARD8)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:UngrabDeviceButton
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (modifier-device :initarg :modifier-device :type xcb:CARD8)
+ (button :initarg :button :type xcb:CARD8)
+ (grabbed-device :initarg :grabbed-device :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:xinput:DeviceInputMode:AsyncThisDevice 0)
+(defconst xcb:xinput:DeviceInputMode:SyncThisDevice 1)
+(defconst xcb:xinput:DeviceInputMode:ReplayThisDevice 2)
+(defconst xcb:xinput:DeviceInputMode:AsyncOtherDevices 3)
+(defconst xcb:xinput:DeviceInputMode:AsyncAll 4)
+(defconst xcb:xinput:DeviceInputMode:SyncAll 5)
+
+(defclass xcb:xinput:AllowDeviceEvents
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (mode :initarg :mode :type xcb:CARD8)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:GetDeviceFocus
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceFocus~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (focus :initarg :focus :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (revert-to :initarg :revert-to :type xcb:CARD8)
+ (pad~0 :initform 15 :type xcb:-pad)))
+
+(defclass xcb:xinput:SetDeviceFocus
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (focus :initarg :focus :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (revert-to :initarg :revert-to :type xcb:CARD8)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defconst xcb:xinput:FeedbackClass:Keyboard 0)
+(defconst xcb:xinput:FeedbackClass:Pointer 1)
+(defconst xcb:xinput:FeedbackClass:String 2)
+(defconst xcb:xinput:FeedbackClass:Integer 3)
+(defconst xcb:xinput:FeedbackClass:Led 4)
+(defconst xcb:xinput:FeedbackClass:Bell 5)
+
+(defclass xcb:xinput:KbdFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (pitch :initarg :pitch :type xcb:CARD16)
+ (duration :initarg :duration :type xcb:CARD16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)
+ (global-auto-repeat :initarg :global-auto-repeat :type xcb:BOOL)
+ (click :initarg :click :type xcb:CARD8)
+ (percent :initarg :percent :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (auto-repeats :initarg :auto-repeats :type xcb:-ignore)
+ (auto-repeats~ :initform
+ '(name auto-repeats type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:xinput:PtrFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (accel-num :initarg :accel-num :type xcb:CARD16)
+ (accel-denom :initarg :accel-denom :type xcb:CARD16)
+ (threshold :initarg :threshold :type xcb:CARD16)))
+
+(defclass xcb:xinput:IntegerFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (resolution :initarg :resolution :type xcb:CARD32)
+ (min-value :initarg :min-value :type xcb:INT32)
+ (max-value :initarg :max-value :type xcb:INT32)))
+
+(defclass xcb:xinput:StringFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (max-symbols :initarg :max-symbols :type xcb:CARD16)
+ (num-keysyms :initarg :num-keysyms :type xcb:CARD16)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'num-keysyms))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:BellFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (percent :initarg :percent :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (pitch :initarg :pitch :type xcb:CARD16)
+ (duration :initarg :duration :type xcb:CARD16)))
+
+(defclass xcb:xinput:LedFeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)))
+
+(defclass xcb:xinput:FeedbackState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'class-id)
+ cases
+ (((xcb:xinput:FeedbackClass:Keyboard)
+ pitch duration led-mask led-values global-auto-repeat click
percent pad~10 auto-repeats)
+ ((xcb:xinput:FeedbackClass:Pointer)
+ pad~11 accel-num accel-denom threshold)
+ ((xcb:xinput:FeedbackClass:String)
+ max-symbols num-keysyms keysyms)
+ ((xcb:xinput:FeedbackClass:Integer)
+ resolution min-value max-value)
+ ((xcb:xinput:FeedbackClass:Led)
+ led-mask* led-values*)
+ ((xcb:xinput:FeedbackClass:Bell)
+ percent* pad~12 pitch* duration*)))
+ :type xcb:-switch)
+ (pitch :initarg :pitch :type xcb:CARD16)
+ (duration :initarg :duration :type xcb:CARD16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)
+ (global-auto-repeat :initarg :global-auto-repeat :type xcb:BOOL)
+ (click :initarg :click :type xcb:CARD8)
+ (percent :initarg :percent :type xcb:CARD8)
+ (pad~10 :initform 1 :type xcb:-pad)
+ (auto-repeats :initarg :auto-repeats :type xcb:-ignore)
+ (auto-repeats~ :initform
+ '(name auto-repeats type xcb:CARD8 size 32)
+ :type xcb:-list)
+ (pad~11 :initform 2 :type xcb:-pad)
+ (accel-num :initarg :accel-num :type xcb:CARD16)
+ (accel-denom :initarg :accel-denom :type xcb:CARD16)
+ (threshold :initarg :threshold :type xcb:CARD16)
+ (max-symbols :initarg :max-symbols :type xcb:CARD16)
+ (num-keysyms :initarg :num-keysyms :type xcb:CARD16)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'num-keysyms))
+ :type xcb:-list)
+ (resolution :initarg :resolution :type xcb:CARD32)
+ (min-value :initarg :min-value :type xcb:INT32)
+ (max-value :initarg :max-value :type xcb:INT32)
+ (led-mask* :initarg :led-mask* :type xcb:CARD32)
+ (led-values* :initarg :led-values* :type xcb:CARD32)
+ (percent* :initarg :percent* :type xcb:CARD8)
+ (pad~12 :initform 3 :type xcb:-pad)
+ (pitch* :initarg :pitch* :type xcb:CARD16)
+ (duration* :initarg :duration* :type xcb:CARD16)))
+
+(defclass xcb:xinput:GetFeedbackControl
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:GetFeedbackControl~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-feedbacks :initarg :num-feedbacks :type xcb:CARD16)
+ (pad~0 :initform 22 :type xcb:-pad)
+ (feedbacks :initarg :feedbacks :type xcb:-ignore)
+ (feedbacks~ :initform
+ '(name feedbacks type xcb:xinput:FeedbackState size
+ (xcb:-fieldref 'num-feedbacks))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:KbdFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (key :initarg :key :type xcb:xinput:KeyCode)
+ (auto-repeat-mode :initarg :auto-repeat-mode :type xcb:CARD8)
+ (key-click-percent :initarg :key-click-percent :type xcb:INT8)
+ (bell-percent :initarg :bell-percent :type xcb:INT8)
+ (bell-pitch :initarg :bell-pitch :type xcb:INT16)
+ (bell-duration :initarg :bell-duration :type xcb:INT16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)))
+
+(defclass xcb:xinput:PtrFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (num :initarg :num :type xcb:INT16)
+ (denom :initarg :denom :type xcb:INT16)
+ (threshold :initarg :threshold :type xcb:INT16)))
+
+(defclass xcb:xinput:IntegerFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (int-to-display :initarg :int-to-display :type xcb:INT32)))
+
+(defclass xcb:xinput:StringFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (num-keysyms :initarg :num-keysyms :type xcb:CARD16)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'num-keysyms))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:BellFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (percent :initarg :percent :type xcb:INT8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (pitch :initarg :pitch :type xcb:INT16)
+ (duration :initarg :duration :type xcb:INT16)))
+
+(defclass xcb:xinput:LedFeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)))
+
+(defclass xcb:xinput:FeedbackCtl
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD16)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'class-id)
+ cases
+ (((xcb:xinput:FeedbackClass:Keyboard)
+ key auto-repeat-mode key-click-percent bell-percent bell-pitch
bell-duration led-mask led-values)
+ ((xcb:xinput:FeedbackClass:Pointer)
+ pad~10 num denom threshold)
+ ((xcb:xinput:FeedbackClass:String)
+ pad~11 num-keysyms keysyms)
+ ((xcb:xinput:FeedbackClass:Integer)
+ int-to-display)
+ ((xcb:xinput:FeedbackClass:Led)
+ led-mask* led-values*)
+ ((xcb:xinput:FeedbackClass:Bell)
+ percent pad~12 pitch duration)))
+ :type xcb:-switch)
+ (key :initarg :key :type xcb:xinput:KeyCode)
+ (auto-repeat-mode :initarg :auto-repeat-mode :type xcb:CARD8)
+ (key-click-percent :initarg :key-click-percent :type xcb:INT8)
+ (bell-percent :initarg :bell-percent :type xcb:INT8)
+ (bell-pitch :initarg :bell-pitch :type xcb:INT16)
+ (bell-duration :initarg :bell-duration :type xcb:INT16)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (led-values :initarg :led-values :type xcb:CARD32)
+ (pad~10 :initform 2 :type xcb:-pad)
+ (num :initarg :num :type xcb:INT16)
+ (denom :initarg :denom :type xcb:INT16)
+ (threshold :initarg :threshold :type xcb:INT16)
+ (pad~11 :initform 2 :type xcb:-pad)
+ (num-keysyms :initarg :num-keysyms :type xcb:CARD16)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'num-keysyms))
+ :type xcb:-list)
+ (int-to-display :initarg :int-to-display :type xcb:INT32)
+ (led-mask* :initarg :led-mask* :type xcb:CARD32)
+ (led-values* :initarg :led-values* :type xcb:CARD32)
+ (percent :initarg :percent :type xcb:INT8)
+ (pad~12 :initform 3 :type xcb:-pad)
+ (pitch :initarg :pitch :type xcb:INT16)
+ (duration :initarg :duration :type xcb:INT16)))
+
+(defconst xcb:xinput:ChangeFeedbackControlMask:KeyClickPercent 1)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Percent 2)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Pitch 4)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Duration 8)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Led 16)
+(defconst xcb:xinput:ChangeFeedbackControlMask:LedMode 32)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Key 64)
+(defconst xcb:xinput:ChangeFeedbackControlMask:AutoRepeatMode 128)
+(defconst xcb:xinput:ChangeFeedbackControlMask:String 1)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Integer 1)
+(defconst xcb:xinput:ChangeFeedbackControlMask:AccelNum 1)
+(defconst xcb:xinput:ChangeFeedbackControlMask:AccelDenom 2)
+(defconst xcb:xinput:ChangeFeedbackControlMask:Threshold 4)
+
+(defclass xcb:xinput:ChangeFeedbackControl
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (mask :initarg :mask :type xcb:CARD32)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (feedback :initarg :feedback :type xcb:xinput:FeedbackCtl)))
+
+(defclass xcb:xinput:GetDeviceKeyMapping
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (first-keycode :initarg :first-keycode :type xcb:xinput:KeyCode)
+ (count :initarg :count :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceKeyMapping~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ChangeDeviceKeyMapping
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (first-keycode :initarg :first-keycode :type xcb:xinput:KeyCode)
+ (keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:CARD8)
+ (keycode-count :initarg :keycode-count :type xcb:CARD8)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (*
+ (xcb:-fieldref 'keycode-count)
+ (xcb:-fieldref 'keysyms-per-keycode)))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:GetDeviceModifierMapping
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceModifierMapping~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (keymaps :initarg :keymaps :type xcb:-ignore)
+ (keymaps~ :initform
+ '(name keymaps type xcb:CARD8 size
+ (*
+ (xcb:-fieldref 'keycodes-per-modifier)
+ 8))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:SetDeviceModifierMapping
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (keymaps :initarg :keymaps :type xcb:-ignore)
+ (keymaps~ :initform
+ '(name keymaps type xcb:CARD8 size
+ (*
+ (xcb:-fieldref 'keycodes-per-modifier)
+ 8))
+ :type xcb:-list)))
+(defclass xcb:xinput:SetDeviceModifierMapping~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:GetDeviceButtonMapping
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceButtonMapping~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (map-size :initarg :map-size :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (map :initarg :map :type xcb:-ignore)
+ (map~ :initform
+ '(name map type xcb:CARD8 size
+ (xcb:-fieldref 'map-size))
+ :type xcb:-list)
+ (pad~1 :initform 4 :type xcb:-pad-align)))
+
+(defclass xcb:xinput:SetDeviceButtonMapping
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (map-size :initarg :map-size :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (map :initarg :map :type xcb:-ignore)
+ (map~ :initform
+ '(name map type xcb:CARD8 size
+ (xcb:-fieldref 'map-size))
+ :type xcb:-list)))
+(defclass xcb:xinput:SetDeviceButtonMapping~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:KeyState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (num-keys :initarg :num-keys :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ButtonState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (num-buttons :initarg :num-buttons :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defconst xcb:xinput:ValuatorStateModeMask:DeviceModeAbsolute 1)
+(defconst xcb:xinput:ValuatorStateModeMask:OutOfProximity 2)
+
+(defclass xcb:xinput:ValuatorState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (valuators :initarg :valuators :type xcb:-ignore)
+ (valuators~ :initform
+ '(name valuators type xcb:INT32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:InputState
+ (xcb:-struct)
+ ((class-id :initarg :class-id :type xcb:CARD8)
+ (len :initarg :len :type xcb:CARD8)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'class-id)
+ cases
+ (((xcb:xinput:InputClass:Key)
+ num-keys pad~10 keys)
+ ((xcb:xinput:InputClass:Button)
+ num-buttons pad~11 buttons)
+ ((xcb:xinput:InputClass:Valuator)
+ num-valuators mode valuators)))
+ :type xcb:-switch)
+ (num-keys :initarg :num-keys :type xcb:CARD8)
+ (pad~10 :initform 1 :type xcb:-pad)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 32)
+ :type xcb:-list)
+ (num-buttons :initarg :num-buttons :type xcb:CARD8)
+ (pad~11 :initform 1 :type xcb:-pad)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD8 size 32)
+ :type xcb:-list)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (valuators :initarg :valuators :type xcb:-ignore)
+ (valuators~ :initform
+ '(name valuators type xcb:INT32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:QueryDeviceState
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:QueryDeviceState~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-classes :initarg :num-classes :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:InputState size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:SendExtensionEvent
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (destination :initarg :destination :type xcb:WINDOW)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (propagate :initarg :propagate :type xcb:BOOL)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (num-events :initarg :num-events :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (events :initarg :events :type xcb:-ignore)
+ (events~ :initform
+ '(name events type xcb:CARD8 size
+ (*
+ (xcb:-fieldref 'num-events)
+ 32))
+ :type xcb:-list)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:EventClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceBell
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (feedback-id :initarg :feedback-id :type xcb:CARD8)
+ (feedback-class :initarg :feedback-class :type xcb:CARD8)
+ (percent :initarg :percent :type xcb:INT8)))
+
+(defclass xcb:xinput:SetDeviceValuators
+ (xcb:-request)
+ ((~opcode :initform 33 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (first-valuator :initarg :first-valuator :type xcb:CARD8)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (valuators :initarg :valuators :type xcb:-ignore)
+ (valuators~ :initform
+ '(name valuators type xcb:INT32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)))
+(defclass xcb:xinput:SetDeviceValuators~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defconst xcb:xinput:DeviceControl:resolution 1)
+(defconst xcb:xinput:DeviceControl:abs_calib 2)
+(defconst xcb:xinput:DeviceControl:core 3)
+(defconst xcb:xinput:DeviceControl:enable 4)
+(defconst xcb:xinput:DeviceControl:abs_area 5)
+
+(defclass xcb:xinput:DeviceResolutionState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (num-valuators :initarg :num-valuators :type xcb:CARD32)
+ (resolution-values :initarg :resolution-values :type xcb:-ignore)
+ (resolution-values~ :initform
+ '(name resolution-values type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (resolution-min :initarg :resolution-min :type xcb:-ignore)
+ (resolution-min~ :initform
+ '(name resolution-min type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (resolution-max :initarg :resolution-max :type xcb:-ignore)
+ (resolution-max~ :initform
+ '(name resolution-max type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceAbsCalibState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (min-x :initarg :min-x :type xcb:INT32)
+ (max-x :initarg :max-x :type xcb:INT32)
+ (min-y :initarg :min-y :type xcb:INT32)
+ (max-y :initarg :max-y :type xcb:INT32)
+ (flip-x :initarg :flip-x :type xcb:CARD32)
+ (flip-y :initarg :flip-y :type xcb:CARD32)
+ (rotation :initarg :rotation :type xcb:CARD32)
+ (button-threshold :initarg :button-threshold :type xcb:CARD32)))
+
+(defclass xcb:xinput:DeviceAbsAreaState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (offset-x :initarg :offset-x :type xcb:CARD32)
+ (offset-y :initarg :offset-y :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (screen :initarg :screen :type xcb:CARD32)
+ (following :initarg :following :type xcb:CARD32)))
+
+(defclass xcb:xinput:DeviceCoreState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (status :initarg :status :type xcb:CARD8)
+ (iscore :initarg :iscore :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceEnableState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (enable :initarg :enable :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceState
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'control-id)
+ cases
+ (((xcb:xinput:DeviceControl:resolution)
+ num-valuators resolution-values resolution-min resolution-max)
+ ((xcb:xinput:DeviceControl:abs_calib)
+ min-x max-x min-y max-y flip-x flip-y rotation button-threshold)
+ ((xcb:xinput:DeviceControl:core)
+ status iscore pad~10)
+ ((xcb:xinput:DeviceControl:enable)
+ enable pad~11)
+ ((xcb:xinput:DeviceControl:abs_area)
+ offset-x offset-y width height screen following)))
+ :type xcb:-switch)
+ (num-valuators :initarg :num-valuators :type xcb:CARD32)
+ (resolution-values :initarg :resolution-values :type xcb:-ignore)
+ (resolution-values~ :initform
+ '(name resolution-values type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (resolution-min :initarg :resolution-min :type xcb:-ignore)
+ (resolution-min~ :initform
+ '(name resolution-min type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (resolution-max :initarg :resolution-max :type xcb:-ignore)
+ (resolution-max~ :initform
+ '(name resolution-max type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (min-x :initarg :min-x :type xcb:INT32)
+ (max-x :initarg :max-x :type xcb:INT32)
+ (min-y :initarg :min-y :type xcb:INT32)
+ (max-y :initarg :max-y :type xcb:INT32)
+ (flip-x :initarg :flip-x :type xcb:CARD32)
+ (flip-y :initarg :flip-y :type xcb:CARD32)
+ (rotation :initarg :rotation :type xcb:CARD32)
+ (button-threshold :initarg :button-threshold :type xcb:CARD32)
+ (status :initarg :status :type xcb:CARD8)
+ (iscore :initarg :iscore :type xcb:CARD8)
+ (pad~10 :initform 2 :type xcb:-pad)
+ (enable :initarg :enable :type xcb:CARD8)
+ (pad~11 :initform 3 :type xcb:-pad)
+ (offset-x :initarg :offset-x :type xcb:CARD32)
+ (offset-y :initarg :offset-y :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (screen :initarg :screen :type xcb:CARD32)
+ (following :initarg :following :type xcb:CARD32)))
+
+(defclass xcb:xinput:GetDeviceControl
+ (xcb:-request)
+ ((~opcode :initform 34 :type xcb:-u1)
+ (control-id :initarg :control-id :type xcb:CARD16)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceControl~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)
+ (control :initarg :control :type xcb:xinput:DeviceState)))
+
+(defclass xcb:xinput:DeviceResolutionCtl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (first-valuator :initarg :first-valuator :type xcb:CARD8)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (resolution-values :initarg :resolution-values :type xcb:-ignore)
+ (resolution-values~ :initform
+ '(name resolution-values type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceAbsCalibCtl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (min-x :initarg :min-x :type xcb:INT32)
+ (max-x :initarg :max-x :type xcb:INT32)
+ (min-y :initarg :min-y :type xcb:INT32)
+ (max-y :initarg :max-y :type xcb:INT32)
+ (flip-x :initarg :flip-x :type xcb:CARD32)
+ (flip-y :initarg :flip-y :type xcb:CARD32)
+ (rotation :initarg :rotation :type xcb:CARD32)
+ (button-threshold :initarg :button-threshold :type xcb:CARD32)))
+
+(defclass xcb:xinput:DeviceAbsAreaCtrl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (offset-x :initarg :offset-x :type xcb:CARD32)
+ (offset-y :initarg :offset-y :type xcb:CARD32)
+ (width :initarg :width :type xcb:INT32)
+ (height :initarg :height :type xcb:INT32)
+ (screen :initarg :screen :type xcb:INT32)
+ (following :initarg :following :type xcb:CARD32)))
+
+(defclass xcb:xinput:DeviceCoreCtrl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceEnableCtrl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (enable :initarg :enable :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceCtl
+ (xcb:-struct)
+ ((control-id :initarg :control-id :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'control-id)
+ cases
+ (((xcb:xinput:DeviceControl:resolution)
+ first-valuator num-valuators pad~10 resolution-values)
+ ((xcb:xinput:DeviceControl:abs_calib)
+ min-x max-x min-y max-y flip-x flip-y rotation button-threshold)
+ ((xcb:xinput:DeviceControl:core)
+ status pad~11)
+ ((xcb:xinput:DeviceControl:enable)
+ enable pad~12)
+ ((xcb:xinput:DeviceControl:abs_area)
+ offset-x offset-y width height screen following)))
+ :type xcb:-switch)
+ (first-valuator :initarg :first-valuator :type xcb:CARD8)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (pad~10 :initform 2 :type xcb:-pad)
+ (resolution-values :initarg :resolution-values :type xcb:-ignore)
+ (resolution-values~ :initform
+ '(name resolution-values type xcb:CARD32 size
+ (xcb:-fieldref 'num-valuators))
+ :type xcb:-list)
+ (min-x :initarg :min-x :type xcb:INT32)
+ (max-x :initarg :max-x :type xcb:INT32)
+ (min-y :initarg :min-y :type xcb:INT32)
+ (max-y :initarg :max-y :type xcb:INT32)
+ (flip-x :initarg :flip-x :type xcb:CARD32)
+ (flip-y :initarg :flip-y :type xcb:CARD32)
+ (rotation :initarg :rotation :type xcb:CARD32)
+ (button-threshold :initarg :button-threshold :type xcb:CARD32)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~11 :initform 3 :type xcb:-pad)
+ (enable :initarg :enable :type xcb:CARD8)
+ (pad~12 :initform 3 :type xcb:-pad)
+ (offset-x :initarg :offset-x :type xcb:CARD32)
+ (offset-y :initarg :offset-y :type xcb:CARD32)
+ (width :initarg :width :type xcb:INT32)
+ (height :initarg :height :type xcb:INT32)
+ (screen :initarg :screen :type xcb:INT32)
+ (following :initarg :following :type xcb:CARD32)))
+
+(defclass xcb:xinput:ChangeDeviceControl
+ (xcb:-request)
+ ((~opcode :initform 35 :type xcb:-u1)
+ (control-id :initarg :control-id :type xcb:CARD16)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (control :initarg :control :type xcb:xinput:DeviceCtl)))
+(defclass xcb:xinput:ChangeDeviceControl~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:ListDeviceProperties
+ (xcb:-request)
+ ((~opcode :initform 36 :type xcb:-u1)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xinput:ListDeviceProperties~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (num-atoms :initarg :num-atoms :type xcb:CARD16)
+ (pad~0 :initform 22 :type xcb:-pad)
+ (atoms :initarg :atoms :type xcb:-ignore)
+ (atoms~ :initform
+ '(name atoms type xcb:ATOM size
+ (xcb:-fieldref 'num-atoms))
+ :type xcb:-list)))
+
+(defconst xcb:xinput:PropertyFormat:8Bits 8)
+(defconst xcb:xinput:PropertyFormat:16Bits 16)
+(defconst xcb:xinput:PropertyFormat:32Bits 32)
+
+(defclass xcb:xinput:ChangeDeviceProperty
+ (xcb:-request)
+ ((~opcode :initform 37 :type xcb:-u1)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (format :initarg :format :type xcb:CARD8)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (items :initform
+ '(expression
+ (xcb:-fieldref 'format)
+ cases
+ (((xcb:xinput:PropertyFormat:8Bits)
+ data8 pad~10)
+ ((xcb:xinput:PropertyFormat:16Bits)
+ data16 pad~11)
+ ((xcb:xinput:PropertyFormat:32Bits)
+ data32)))
+ :type xcb:-switch)
+ (data8 :initarg :data8 :type xcb:-ignore)
+ (data8~ :initform
+ '(name data8 type xcb:CARD8 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (data16 :initarg :data16 :type xcb:-ignore)
+ (data16~ :initform
+ '(name data16 type xcb:CARD16 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~11 :initform 4 :type xcb:-pad-align)
+ (data32 :initarg :data32 :type xcb:-ignore)
+ (data32~ :initform
+ '(name data32 type xcb:CARD32 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeleteDeviceProperty
+ (xcb:-request)
+ ((~opcode :initform 38 :type xcb:-u1)
+ (property :initarg :property :type xcb:ATOM)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:GetDeviceProperty
+ (xcb:-request)
+ ((~opcode :initform 39 :type xcb:-u1)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (offset :initarg :offset :type xcb:CARD32)
+ (len :initarg :len :type xcb:CARD32)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (delete :initarg :delete :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:GetDeviceProperty~reply
+ (xcb:-reply)
+ ((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
+ (type :initarg :type :type xcb:ATOM)
+ (bytes-after :initarg :bytes-after :type xcb:CARD32)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD8)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 10 :type xcb:-pad)
+ (items :initform
+ '(expression
+ (xcb:-fieldref 'format)
+ cases
+ (((xcb:xinput:PropertyFormat:8Bits)
+ data8 pad~10)
+ ((xcb:xinput:PropertyFormat:16Bits)
+ data16 pad~11)
+ ((xcb:xinput:PropertyFormat:32Bits)
+ data32)))
+ :type xcb:-switch)
+ (data8 :initarg :data8 :type xcb:-ignore)
+ (data8~ :initform
+ '(name data8 type xcb:CARD8 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (data16 :initarg :data16 :type xcb:-ignore)
+ (data16~ :initform
+ '(name data16 type xcb:CARD16 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~11 :initform 4 :type xcb:-pad-align)
+ (data32 :initarg :data32 :type xcb:-ignore)
+ (data32~ :initform
+ '(name data32 type xcb:CARD32 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)))
+
+(defconst xcb:xinput:Device:All 0)
+(defconst xcb:xinput:Device:AllMaster 1)
+
+(defclass xcb:xinput:GroupInfo
+ (xcb:-struct)
+ ((base :initarg :base :type xcb:CARD8)
+ (latched :initarg :latched :type xcb:CARD8)
+ (locked :initarg :locked :type xcb:CARD8)
+ (effective :initarg :effective :type xcb:CARD8)))
+
+(defclass xcb:xinput:ModifierInfo
+ (xcb:-struct)
+ ((base :initarg :base :type xcb:CARD32)
+ (latched :initarg :latched :type xcb:CARD32)
+ (locked :initarg :locked :type xcb:CARD32)
+ (effective :initarg :effective :type xcb:CARD32)))
+
+(defclass xcb:xinput:XIQueryPointer
+ (xcb:-request)
+ ((~opcode :initform 40 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:XIQueryPointer~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (root :initarg :root :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (win-x :initarg :win-x :type xcb:xinput:FP1616)
+ (win-y :initarg :win-y :type xcb:xinput:FP1616)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (buttons-len :initarg :buttons-len :type xcb:CARD16)
+ (mods :initarg :mods :type xcb:xinput:ModifierInfo)
+ (group :initarg :group :type xcb:xinput:GroupInfo)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD32 size
+ (xcb:-fieldref 'buttons-len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIWarpPointer
+ (xcb:-request)
+ ((~opcode :initform 41 :type xcb:-u1)
+ (src-win :initarg :src-win :type xcb:WINDOW)
+ (dst-win :initarg :dst-win :type xcb:WINDOW)
+ (src-x :initarg :src-x :type xcb:xinput:FP1616)
+ (src-y :initarg :src-y :type xcb:xinput:FP1616)
+ (src-width :initarg :src-width :type xcb:CARD16)
+ (src-height :initarg :src-height :type xcb:CARD16)
+ (dst-x :initarg :dst-x :type xcb:xinput:FP1616)
+ (dst-y :initarg :dst-y :type xcb:xinput:FP1616)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIChangeCursor
+ (xcb:-request)
+ ((~opcode :initform 42 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defconst xcb:xinput:HierarchyChangeType:AddMaster 1)
+(defconst xcb:xinput:HierarchyChangeType:RemoveMaster 2)
+(defconst xcb:xinput:HierarchyChangeType:AttachSlave 3)
+(defconst xcb:xinput:HierarchyChangeType:DetachSlave 4)
+
+(defconst xcb:xinput:ChangeMode:Attach 1)
+(defconst xcb:xinput:ChangeMode:Float 2)
+
+(defclass xcb:xinput:AddMaster
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (send-core :initarg :send-core :type xcb:BOOL)
+ (enable :initarg :enable :type xcb:BOOL)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)
+ (pad~0 :initform 4 :type xcb:-pad-align)))
+
+(defclass xcb:xinput:RemoveMaster
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (return-mode :initarg :return-mode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (return-pointer :initarg :return-pointer :type xcb:xinput:DeviceId)
+ (return-keyboard :initarg :return-keyboard :type xcb:xinput:DeviceId)))
+
+(defclass xcb:xinput:AttachSlave
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (master :initarg :master :type xcb:xinput:DeviceId)))
+
+(defclass xcb:xinput:DetachSlave
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:HierarchyChange
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'type)
+ cases
+ (((xcb:xinput:HierarchyChangeType:AddMaster)
+ name-len send-core enable name pad~10)
+ ((xcb:xinput:HierarchyChangeType:RemoveMaster)
+ deviceid return-mode pad~11 return-pointer return-keyboard)
+ ((xcb:xinput:HierarchyChangeType:AttachSlave)
+ deviceid* master)
+ ((xcb:xinput:HierarchyChangeType:DetachSlave)
+ deviceid** pad~12)))
+ :type xcb:-switch)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (send-core :initarg :send-core :type xcb:BOOL)
+ (enable :initarg :enable :type xcb:BOOL)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (return-mode :initarg :return-mode :type xcb:CARD8)
+ (pad~11 :initform 1 :type xcb:-pad)
+ (return-pointer :initarg :return-pointer :type xcb:xinput:DeviceId)
+ (return-keyboard :initarg :return-keyboard :type xcb:xinput:DeviceId)
+ (deviceid* :initarg :deviceid* :type xcb:xinput:DeviceId)
+ (master :initarg :master :type xcb:xinput:DeviceId)
+ (deviceid** :initarg :deviceid** :type xcb:xinput:DeviceId)
+ (pad~12 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIChangeHierarchy
+ (xcb:-request)
+ ((~opcode :initform 43 :type xcb:-u1)
+ (num-changes :initarg :num-changes :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (changes :initarg :changes :type xcb:-ignore)
+ (changes~ :initform
+ '(name changes type xcb:xinput:HierarchyChange size
+ (xcb:-fieldref 'num-changes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XISetClientPointer
+ (xcb:-request)
+ ((~opcode :initform 44 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIGetClientPointer
+ (xcb:-request)
+ ((~opcode :initform 45 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinput:XIGetClientPointer~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (set :initarg :set :type xcb:BOOL)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~2 :initform 20 :type xcb:-pad)))
+
+(defconst xcb:xinput:XIEventMask:DeviceChanged 2)
+(defconst xcb:xinput:XIEventMask:KeyPress 4)
+(defconst xcb:xinput:XIEventMask:KeyRelease 8)
+(defconst xcb:xinput:XIEventMask:ButtonPress 16)
+(defconst xcb:xinput:XIEventMask:ButtonRelease 32)
+(defconst xcb:xinput:XIEventMask:Motion 64)
+(defconst xcb:xinput:XIEventMask:Enter 128)
+(defconst xcb:xinput:XIEventMask:Leave 256)
+(defconst xcb:xinput:XIEventMask:FocusIn 512)
+(defconst xcb:xinput:XIEventMask:FocusOut 1024)
+(defconst xcb:xinput:XIEventMask:Hierarchy 2048)
+(defconst xcb:xinput:XIEventMask:Property 4096)
+(defconst xcb:xinput:XIEventMask:RawKeyPress 8192)
+(defconst xcb:xinput:XIEventMask:RawKeyRelease 16384)
+(defconst xcb:xinput:XIEventMask:RawButtonPress 32768)
+(defconst xcb:xinput:XIEventMask:RawButtonRelease 65536)
+(defconst xcb:xinput:XIEventMask:RawMotion 131072)
+(defconst xcb:xinput:XIEventMask:TouchBegin 262144)
+(defconst xcb:xinput:XIEventMask:TouchUpdate 524288)
+(defconst xcb:xinput:XIEventMask:TouchEnd 1048576)
+(defconst xcb:xinput:XIEventMask:TouchOwnership 2097152)
+(defconst xcb:xinput:XIEventMask:RawTouchBegin 4194304)
+(defconst xcb:xinput:XIEventMask:RawTouchUpdate 8388608)
+(defconst xcb:xinput:XIEventMask:RawTouchEnd 16777216)
+(defconst xcb:xinput:XIEventMask:BarrierHit 33554432)
+(defconst xcb:xinput:XIEventMask:BarrierLeave 67108864)
+
+(defclass xcb:xinput:EventMask
+ (xcb:-struct)
+ ((deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (mask-len :initarg :mask-len :type xcb:CARD16)
+ (mask :initarg :mask :type xcb:-ignore)
+ (mask~ :initform
+ '(name mask type xcb:CARD32 size
+ (xcb:-fieldref 'mask-len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XISelectEvents
+ (xcb:-request)
+ ((~opcode :initform 46 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (num-mask :initarg :num-mask :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (masks :initarg :masks :type xcb:-ignore)
+ (masks~ :initform
+ '(name masks type xcb:xinput:EventMask size
+ (xcb:-fieldref 'num-mask))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIQueryVersion
+ (xcb:-request)
+ ((~opcode :initform 47 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+(defclass xcb:xinput:XIQueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defconst xcb:xinput:DeviceClassType:Key 0)
+(defconst xcb:xinput:DeviceClassType:Button 1)
+(defconst xcb:xinput:DeviceClassType:Valuator 2)
+(defconst xcb:xinput:DeviceClassType:Scroll 3)
+(defconst xcb:xinput:DeviceClassType:Touch 8)
+
+(defconst xcb:xinput:DeviceType:MasterPointer 1)
+(defconst xcb:xinput:DeviceType:MasterKeyboard 2)
+(defconst xcb:xinput:DeviceType:SlavePointer 3)
+(defconst xcb:xinput:DeviceType:SlaveKeyboard 4)
+(defconst xcb:xinput:DeviceType:FloatingSlave 5)
+
+(defconst xcb:xinput:ScrollFlags:NoEmulation 1)
+(defconst xcb:xinput:ScrollFlags:Preferred 2)
+
+(defconst xcb:xinput:ScrollType:Vertical 1)
+(defconst xcb:xinput:ScrollType:Horizontal 2)
+
+(defconst xcb:xinput:TouchMode:Direct 1)
+(defconst xcb:xinput:TouchMode:Dependent 2)
+
+(defclass xcb:xinput:ButtonClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (num-buttons :initarg :num-buttons :type xcb:CARD16)
+ (state :initarg :state :type xcb:-ignore)
+ (state~ :initform
+ '(name state type xcb:CARD32 size
+ (/
+ (+
+ (xcb:-fieldref 'num-buttons)
+ 31)
+ 32))
+ :type xcb:-list)
+ (labels :initarg :labels :type xcb:-ignore)
+ (labels~ :initform
+ '(name labels type xcb:ATOM size
+ (xcb:-fieldref 'num-buttons))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:KeyClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (num-keys :initarg :num-keys :type xcb:CARD16)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD32 size
+ (xcb:-fieldref 'num-keys))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ScrollClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (number :initarg :number :type xcb:CARD16)
+ (scroll-type :initarg :scroll-type :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (increment :initarg :increment :type xcb:xinput:FP3232)))
+
+(defclass xcb:xinput:TouchClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (mode :initarg :mode :type xcb:CARD8)
+ (num-touches :initarg :num-touches :type xcb:CARD8)))
+
+(defclass xcb:xinput:ValuatorClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (number :initarg :number :type xcb:CARD16)
+ (label :initarg :label :type xcb:ATOM)
+ (min :initarg :min :type xcb:xinput:FP3232)
+ (max :initarg :max :type xcb:xinput:FP3232)
+ (value :initarg :value :type xcb:xinput:FP3232)
+ (resolution :initarg :resolution :type xcb:CARD32)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceClass
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD16)
+ (len :initarg :len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (data :initform
+ '(expression
+ (xcb:-fieldref 'type)
+ cases
+ (((xcb:xinput:DeviceClassType:Key)
+ num-keys keys)
+ ((xcb:xinput:DeviceClassType:Button)
+ num-buttons state labels)
+ ((xcb:xinput:DeviceClassType:Valuator)
+ number label min max value resolution mode pad~10)
+ ((xcb:xinput:DeviceClassType:Scroll)
+ number* scroll-type pad~11 flags increment)
+ ((xcb:xinput:DeviceClassType:Touch)
+ mode* num-touches)))
+ :type xcb:-switch)
+ (num-keys :initarg :num-keys :type xcb:CARD16)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD32 size
+ (xcb:-fieldref 'num-keys))
+ :type xcb:-list)
+ (num-buttons :initarg :num-buttons :type xcb:CARD16)
+ (state :initarg :state :type xcb:-ignore)
+ (state~ :initform
+ '(name state type xcb:CARD32 size
+ (/
+ (+
+ (xcb:-fieldref 'num-buttons)
+ 31)
+ 32))
+ :type xcb:-list)
+ (labels :initarg :labels :type xcb:-ignore)
+ (labels~ :initform
+ '(name labels type xcb:ATOM size
+ (xcb:-fieldref 'num-buttons))
+ :type xcb:-list)
+ (number :initarg :number :type xcb:CARD16)
+ (label :initarg :label :type xcb:ATOM)
+ (min :initarg :min :type xcb:xinput:FP3232)
+ (max :initarg :max :type xcb:xinput:FP3232)
+ (value :initarg :value :type xcb:xinput:FP3232)
+ (resolution :initarg :resolution :type xcb:CARD32)
+ (mode :initarg :mode :type xcb:CARD8)
+ (pad~10 :initform 3 :type xcb:-pad)
+ (number* :initarg :number* :type xcb:CARD16)
+ (scroll-type :initarg :scroll-type :type xcb:CARD16)
+ (pad~11 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (increment :initarg :increment :type xcb:xinput:FP3232)
+ (mode* :initarg :mode* :type xcb:CARD8)
+ (num-touches :initarg :num-touches :type xcb:CARD8)))
+
+(defclass xcb:xinput:XIDeviceInfo
+ (xcb:-struct)
+ ((deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (type :initarg :type :type xcb:CARD16)
+ (attachment :initarg :attachment :type xcb:xinput:DeviceId)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (enabled :initarg :enabled :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)
+ (pad~1 :initform 4 :type xcb:-pad-align)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:DeviceClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIQueryDevice
+ (xcb:-request)
+ ((~opcode :initform 48 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:XIQueryDevice~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-infos :initarg :num-infos :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (infos :initarg :infos :type xcb:-ignore)
+ (infos~ :initform
+ '(name infos type xcb:xinput:XIDeviceInfo size
+ (xcb:-fieldref 'num-infos))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XISetFocus
+ (xcb:-request)
+ ((~opcode :initform 49 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIGetFocus
+ (xcb:-request)
+ ((~opcode :initform 50 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:XIGetFocus~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (focus :initarg :focus :type xcb:WINDOW)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defconst xcb:xinput:GrabOwner:NoOwner 0)
+(defconst xcb:xinput:GrabOwner:Owner 1)
+
+(defclass xcb:xinput:XIGrabDevice
+ (xcb:-request)
+ ((~opcode :initform 51 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (mode :initarg :mode :type xcb:CARD8)
+ (paired-device-mode :initarg :paired-device-mode :type xcb:CARD8)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (mask-len :initarg :mask-len :type xcb:CARD16)
+ (mask :initarg :mask :type xcb:-ignore)
+ (mask~ :initform
+ '(name mask type xcb:CARD32 size
+ (xcb:-fieldref 'mask-len))
+ :type xcb:-list)))
+(defclass xcb:xinput:XIGrabDevice~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~1 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIUngrabDevice
+ (xcb:-request)
+ ((~opcode :initform 52 :type xcb:-u1)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defconst xcb:xinput:EventMode:AsyncDevice 0)
+(defconst xcb:xinput:EventMode:SyncDevice 1)
+(defconst xcb:xinput:EventMode:ReplayDevice 2)
+(defconst xcb:xinput:EventMode:AsyncPairedDevice 3)
+(defconst xcb:xinput:EventMode:AsyncPair 4)
+(defconst xcb:xinput:EventMode:SyncPair 5)
+(defconst xcb:xinput:EventMode:AcceptTouch 6)
+(defconst xcb:xinput:EventMode:RejectTouch 7)
+
+(defclass xcb:xinput:XIAllowEvents
+ (xcb:-request)
+ ((~opcode :initform 53 :type xcb:-u1)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (event-mode :initarg :event-mode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (touchid :initarg :touchid :type xcb:CARD32)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)))
+
+(defconst xcb:xinput:GrabMode22:Sync 0)
+(defconst xcb:xinput:GrabMode22:Async 1)
+(defconst xcb:xinput:GrabMode22:Touch 2)
+
+(defconst xcb:xinput:GrabType:Button 0)
+(defconst xcb:xinput:GrabType:Keycode 1)
+(defconst xcb:xinput:GrabType:Enter 2)
+(defconst xcb:xinput:GrabType:FocusIn 3)
+(defconst xcb:xinput:GrabType:TouchBegin 4)
+
+(defconst xcb:xinput:ModifierMask:Any 2147483648)
+
+(defclass xcb:xinput:GrabModifierInfo
+ (xcb:-struct)
+ ((modifiers :initarg :modifiers :type xcb:CARD32)
+ (status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xinput:XIPassiveGrabDevice
+ (xcb:-request)
+ ((~opcode :initform 54 :type xcb:-u1)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (detail :initarg :detail :type xcb:CARD32)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (num-modifiers :initarg :num-modifiers :type xcb:CARD16)
+ (mask-len :initarg :mask-len :type xcb:CARD16)
+ (grab-type :initarg :grab-type :type xcb:CARD8)
+ (grab-mode :initarg :grab-mode :type xcb:CARD8)
+ (paired-device-mode :initarg :paired-device-mode :type xcb:CARD8)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (mask :initarg :mask :type xcb:-ignore)
+ (mask~ :initform
+ '(name mask type xcb:CARD32 size
+ (xcb:-fieldref 'mask-len))
+ :type xcb:-list)
+ (modifiers :initarg :modifiers :type xcb:-ignore)
+ (modifiers~ :initform
+ '(name modifiers type xcb:CARD32 size
+ (xcb:-fieldref 'num-modifiers))
+ :type xcb:-list)))
+(defclass xcb:xinput:XIPassiveGrabDevice~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-modifiers :initarg :num-modifiers :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (modifiers :initarg :modifiers :type xcb:-ignore)
+ (modifiers~ :initform
+ '(name modifiers type xcb:xinput:GrabModifierInfo size
+ (xcb:-fieldref 'num-modifiers))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIPassiveUngrabDevice
+ (xcb:-request)
+ ((~opcode :initform 55 :type xcb:-u1)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (detail :initarg :detail :type xcb:CARD32)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (num-modifiers :initarg :num-modifiers :type xcb:CARD16)
+ (grab-type :initarg :grab-type :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (modifiers :initarg :modifiers :type xcb:-ignore)
+ (modifiers~ :initform
+ '(name modifiers type xcb:CARD32 size
+ (xcb:-fieldref 'num-modifiers))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIListProperties
+ (xcb:-request)
+ ((~opcode :initform 56 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xinput:XIListProperties~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-properties :initarg :num-properties :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (properties :initarg :properties :type xcb:-ignore)
+ (properties~ :initform
+ '(name properties type xcb:ATOM size
+ (xcb:-fieldref 'num-properties))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIChangeProperty
+ (xcb:-request)
+ ((~opcode :initform 57 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (mode :initarg :mode :type xcb:CARD8)
+ (format :initarg :format :type xcb:CARD8)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (items :initform
+ '(expression
+ (xcb:-fieldref 'format)
+ cases
+ (((xcb:xinput:PropertyFormat:8Bits)
+ data8 pad~10)
+ ((xcb:xinput:PropertyFormat:16Bits)
+ data16 pad~11)
+ ((xcb:xinput:PropertyFormat:32Bits)
+ data32)))
+ :type xcb:-switch)
+ (data8 :initarg :data8 :type xcb:-ignore)
+ (data8~ :initform
+ '(name data8 type xcb:CARD8 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (data16 :initarg :data16 :type xcb:-ignore)
+ (data16~ :initform
+ '(name data16 type xcb:CARD16 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~11 :initform 4 :type xcb:-pad-align)
+ (data32 :initarg :data32 :type xcb:-ignore)
+ (data32~ :initform
+ '(name data32 type xcb:CARD32 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIDeleteProperty
+ (xcb:-request)
+ ((~opcode :initform 58 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defclass xcb:xinput:XIGetProperty
+ (xcb:-request)
+ ((~opcode :initform 59 :type xcb:-u1)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (delete :initarg :delete :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (offset :initarg :offset :type xcb:CARD32)
+ (len :initarg :len :type xcb:CARD32)))
+(defclass xcb:xinput:XIGetProperty~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (type :initarg :type :type xcb:ATOM)
+ (bytes-after :initarg :bytes-after :type xcb:CARD32)
+ (num-items :initarg :num-items :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD8)
+ (pad~1 :initform 11 :type xcb:-pad)
+ (items :initform
+ '(expression
+ (xcb:-fieldref 'format)
+ cases
+ (((xcb:xinput:PropertyFormat:8Bits)
+ data8 pad~10)
+ ((xcb:xinput:PropertyFormat:16Bits)
+ data16 pad~11)
+ ((xcb:xinput:PropertyFormat:32Bits)
+ data32)))
+ :type xcb:-switch)
+ (data8 :initarg :data8 :type xcb:-ignore)
+ (data8~ :initform
+ '(name data8 type xcb:CARD8 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (data16 :initarg :data16 :type xcb:-ignore)
+ (data16~ :initform
+ '(name data16 type xcb:CARD16 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)
+ (pad~11 :initform 4 :type xcb:-pad-align)
+ (data32 :initarg :data32 :type xcb:-ignore)
+ (data32~ :initform
+ '(name data32 type xcb:CARD32 size
+ (xcb:-fieldref 'num-items))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:XIGetSelectedEvents
+ (xcb:-request)
+ ((~opcode :initform 60 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xinput:XIGetSelectedEvents~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-masks :initarg :num-masks :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (masks :initarg :masks :type xcb:-ignore)
+ (masks~ :initform
+ '(name masks type xcb:xinput:EventMask size
+ (xcb:-fieldref 'num-masks))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:BarrierReleasePointerInfo
+ (xcb:-struct)
+ ((deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (barrier :initarg :barrier :type xcb:xinput:BARRIER)
+ (eventid :initarg :eventid :type xcb:CARD32)))
+
+(defclass xcb:xinput:XIBarrierReleasePointer
+ (xcb:-request)
+ ((~opcode :initform 61 :type xcb:-u1)
+ (num-barriers :initarg :num-barriers :type xcb:CARD32)
+ (barriers :initarg :barriers :type xcb:-ignore)
+ (barriers~ :initform
+ '(name barriers type xcb:xinput:BarrierReleasePointerInfo size
+ (xcb:-fieldref 'num-barriers))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceValuator
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:CARD8)
+ (device-state :initarg :device-state :type xcb:CARD16)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (first-valuator :initarg :first-valuator :type xcb:CARD8)
+ (valuators :initarg :valuators :type xcb:-ignore)
+ (valuators~ :initform
+ '(name valuators type xcb:INT32 size 6)
+ :type xcb:-list)))
+
+(defconst xcb:xinput:MoreEventsMask:MoreEvents 128)
+
+(defclass xcb:xinput:DeviceKeyPress
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (event-x :initarg :event-x :type xcb:INT16)
+ (event-y :initarg :event-y :type xcb:INT16)
+ (state :initarg :state :type xcb:CARD16)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (device-id :initarg :device-id :type xcb:CARD8)))
+
+(defclass xcb:xinput:DeviceKeyRelease
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defclass xcb:xinput:DeviceButtonPress
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defclass xcb:xinput:DeviceButtonRelease
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defclass xcb:xinput:DeviceMotionNotify
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defclass xcb:xinput:DeviceFocusIn
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (window :initarg :window :type xcb:WINDOW)
+ (mode :initarg :mode :type xcb:BYTE)
+ (device-id :initarg :device-id :type xcb:CARD8)
+ (pad~0 :initform 18 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceFocusOut
+ (xcb:-event xcb:xinput:DeviceFocusIn)
+ nil)
+
+(defclass xcb:xinput:ProximityIn
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defclass xcb:xinput:ProximityOut
+ (xcb:-event xcb:xinput:DeviceKeyPress)
+ nil)
+
+(defconst xcb:xinput:ClassesReportedMask:OutOfProximity 128)
+(defconst xcb:xinput:ClassesReportedMask:DeviceModeAbsolute 64)
+(defconst xcb:xinput:ClassesReportedMask:ReportingValuators 4)
+(defconst xcb:xinput:ClassesReportedMask:ReportingButtons 2)
+(defconst xcb:xinput:ClassesReportedMask:ReportingKeys 1)
+
+(defclass xcb:xinput:DeviceStateNotify
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (num-keys :initarg :num-keys :type xcb:CARD8)
+ (num-buttons :initarg :num-buttons :type xcb:CARD8)
+ (num-valuators :initarg :num-valuators :type xcb:CARD8)
+ (classes-reported :initarg :classes-reported :type xcb:CARD8)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD8 size 4)
+ :type xcb:-list)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 4)
+ :type xcb:-list)
+ (valuators :initarg :valuators :type xcb:-ignore)
+ (valuators~ :initform
+ '(name valuators type xcb:CARD32 size 3)
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceMappingNotify
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:BYTE)
+ (request :initarg :request :type xcb:CARD8)
+ (first-keycode :initarg :first-keycode :type xcb:xinput:KeyCode)
+ (count :initarg :count :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defconst xcb:xinput:ChangeDevice:NewPointer 0)
+(defconst xcb:xinput:ChangeDevice:NewKeyboard 1)
+
+(defclass xcb:xinput:ChangeDeviceNotify
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (request :initarg :request :type xcb:CARD8)
+ (pad~0 :initform 23 :type xcb:-pad)))
+
+(defclass xcb:xinput:DeviceKeyStateNotify
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:BYTE)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 28)
+ :type xcb:-list)))
+
+(defclass xcb:xinput:DeviceButtonStateNotify
+ (xcb:-event)
+ ((device-id :initarg :device-id :type xcb:BYTE)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD8 size 28)
+ :type xcb:-list)))
+
+(defconst xcb:xinput:DeviceChange:Added 0)
+(defconst xcb:xinput:DeviceChange:Removed 1)
+(defconst xcb:xinput:DeviceChange:Enabled 2)
+(defconst xcb:xinput:DeviceChange:Disabled 3)
+(defconst xcb:xinput:DeviceChange:Unrecoverable 4)
+(defconst xcb:xinput:DeviceChange:ControlChanged 5)
+
+(defclass xcb:xinput:DevicePresenceNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (devchange :initarg :devchange :type xcb:BYTE)
+ (device-id :initarg :device-id :type xcb:BYTE)
+ (control :initarg :control :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xinput:DevicePropertyNotify
+ (xcb:-event)
+ ((state :initarg :state :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (property :initarg :property :type xcb:ATOM)
+ (pad~0 :initform 19 :type xcb:-pad)
+ (device-id :initarg :device-id :type xcb:CARD8)))
+
+(defconst xcb:xinput:ChangeReason:SlaveSwitch 1)
+(defconst xcb:xinput:ChangeReason:DeviceChange 2)
+
+(defclass xcb:xinput:DeviceChanged
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (num-classes :initarg :num-classes :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (reason :initarg :reason :type xcb:CARD8)
+ (pad~0 :initform 11 :type xcb:-pad)
+ (classes :initarg :classes :type xcb:-ignore)
+ (classes~ :initform
+ '(name classes type xcb:xinput:DeviceClass size
+ (xcb:-fieldref 'num-classes))
+ :type xcb:-list)))
+
+(defconst xcb:xinput:KeyEventFlags:KeyRepeat 65536)
+
+(defclass xcb:xinput:KeyPress
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (event-x :initarg :event-x :type xcb:xinput:FP1616)
+ (event-y :initarg :event-y :type xcb:xinput:FP1616)
+ (buttons-len :initarg :buttons-len :type xcb:CARD16)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (mods :initarg :mods :type xcb:xinput:ModifierInfo)
+ (group :initarg :group :type xcb:xinput:GroupInfo)
+ (button-mask :initarg :button-mask :type xcb:-ignore)
+ (button-mask~ :initform
+ '(name button-mask type xcb:CARD32 size
+ (xcb:-fieldref 'buttons-len))
+ :type xcb:-list)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:KeyRelease
+ (xcb:-event xcb:KeyPress)
+ nil)
+
+(defconst xcb:xinput:PointerEventFlags:PointerEmulated 65536)
+
+(defclass xcb:xinput:ButtonPress
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (event-x :initarg :event-x :type xcb:xinput:FP1616)
+ (event-y :initarg :event-y :type xcb:xinput:FP1616)
+ (buttons-len :initarg :buttons-len :type xcb:CARD16)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (mods :initarg :mods :type xcb:xinput:ModifierInfo)
+ (group :initarg :group :type xcb:xinput:GroupInfo)
+ (button-mask :initarg :button-mask :type xcb:-ignore)
+ (button-mask~ :initform
+ '(name button-mask type xcb:CARD32 size
+ (xcb:-fieldref 'buttons-len))
+ :type xcb:-list)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:ButtonRelease
+ (xcb:-event xcb:ButtonPress)
+ nil)
+
+(defclass xcb:xinput:Motion
+ (xcb:-event xcb:ButtonPress)
+ nil)
+
+(defconst xcb:xinput:NotifyMode:Normal 0)
+(defconst xcb:xinput:NotifyMode:Grab 1)
+(defconst xcb:xinput:NotifyMode:Ungrab 2)
+(defconst xcb:xinput:NotifyMode:WhileGrabbed 3)
+(defconst xcb:xinput:NotifyMode:PassiveGrab 4)
+(defconst xcb:xinput:NotifyMode:PassiveUngrab 5)
+
+(defconst xcb:xinput:NotifyDetail:Ancestor 0)
+(defconst xcb:xinput:NotifyDetail:Virtual 1)
+(defconst xcb:xinput:NotifyDetail:Inferior 2)
+(defconst xcb:xinput:NotifyDetail:Nonlinear 3)
+(defconst xcb:xinput:NotifyDetail:NonlinearVirtual 4)
+(defconst xcb:xinput:NotifyDetail:Pointer 5)
+(defconst xcb:xinput:NotifyDetail:PointerRoot 6)
+(defconst xcb:xinput:NotifyDetail:None 7)
+
+(defclass xcb:xinput:Enter
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (mode :initarg :mode :type xcb:CARD8)
+ (detail :initarg :detail :type xcb:CARD8)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (event-x :initarg :event-x :type xcb:xinput:FP1616)
+ (event-y :initarg :event-y :type xcb:xinput:FP1616)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (focus :initarg :focus :type xcb:BOOL)
+ (buttons-len :initarg :buttons-len :type xcb:CARD16)
+ (mods :initarg :mods :type xcb:xinput:ModifierInfo)
+ (group :initarg :group :type xcb:xinput:GroupInfo)
+ (buttons :initarg :buttons :type xcb:-ignore)
+ (buttons~ :initform
+ '(name buttons type xcb:CARD32 size
+ (xcb:-fieldref 'buttons-len))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:Leave
+ (xcb:-event xcb:xinput:Enter)
+ nil)
+
+(defclass xcb:xinput:FocusIn
+ (xcb:-event xcb:xinput:Enter)
+ nil)
+
+(defclass xcb:xinput:FocusOut
+ (xcb:-event xcb:xinput:Enter)
+ nil)
+
+(defconst xcb:xinput:HierarchyMask:MasterAdded 1)
+(defconst xcb:xinput:HierarchyMask:MasterRemoved 2)
+(defconst xcb:xinput:HierarchyMask:SlaveAdded 4)
+(defconst xcb:xinput:HierarchyMask:SlaveRemoved 8)
+(defconst xcb:xinput:HierarchyMask:SlaveAttached 16)
+(defconst xcb:xinput:HierarchyMask:SlaveDetached 32)
+(defconst xcb:xinput:HierarchyMask:DeviceEnabled 64)
+(defconst xcb:xinput:HierarchyMask:DeviceDisabled 128)
+
+(defclass xcb:xinput:HierarchyInfo
+ (xcb:-struct)
+ ((deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (attachment :initarg :attachment :type xcb:xinput:DeviceId)
+ (type :initarg :type :type xcb:CARD8)
+ (enabled :initarg :enabled :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)))
+
+(defclass xcb:xinput:Hierarchy
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (flags :initarg :flags :type xcb:CARD32)
+ (num-infos :initarg :num-infos :type xcb:CARD16)
+ (pad~0 :initform 10 :type xcb:-pad)
+ (infos :initarg :infos :type xcb:-ignore)
+ (infos~ :initform
+ '(name infos type xcb:xinput:HierarchyInfo size
+ (xcb:-fieldref 'num-infos))
+ :type xcb:-list)))
+
+(defconst xcb:xinput:PropertyFlag:Deleted 0)
+(defconst xcb:xinput:PropertyFlag:Created 1)
+(defconst xcb:xinput:PropertyFlag:Modified 2)
+
+(defclass xcb:xinput:Property
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (property :initarg :property :type xcb:ATOM)
+ (what :initarg :what :type xcb:CARD8)
+ (pad~0 :initform 11 :type xcb:-pad)))
+
+(defclass xcb:xinput:RawKeyPress
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)
+ (axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)
+ (axisvalues-raw~ :initform
+ '(name axisvalues-raw type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:RawKeyRelease
+ (xcb:-event xcb:xinput:RawKeyPress)
+ nil)
+
+(defclass xcb:xinput:RawButtonPress
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)
+ (axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)
+ (axisvalues-raw~ :initform
+ '(name axisvalues-raw type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:RawButtonRelease
+ (xcb:-event xcb:xinput:RawButtonPress)
+ nil)
+
+(defclass xcb:xinput:RawMotion
+ (xcb:-event xcb:xinput:RawButtonPress)
+ nil)
+
+(defconst xcb:xinput:TouchEventFlags:TouchPendingEnd 65536)
+(defconst xcb:xinput:TouchEventFlags:TouchEmulatingPointer 131072)
+
+(defclass xcb:xinput:TouchBegin
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (event-x :initarg :event-x :type xcb:xinput:FP1616)
+ (event-y :initarg :event-y :type xcb:xinput:FP1616)
+ (buttons-len :initarg :buttons-len :type xcb:CARD16)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (mods :initarg :mods :type xcb:xinput:ModifierInfo)
+ (group :initarg :group :type xcb:xinput:GroupInfo)
+ (button-mask :initarg :button-mask :type xcb:-ignore)
+ (button-mask~ :initform
+ '(name button-mask type xcb:CARD32 size
+ (xcb:-fieldref 'buttons-len))
+ :type xcb:-list)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:TouchUpdate
+ (xcb:-event xcb:xinput:TouchBegin)
+ nil)
+
+(defclass xcb:xinput:TouchEnd
+ (xcb:-event xcb:xinput:TouchBegin)
+ nil)
+
+(defconst xcb:xinput:TouchOwnershipFlags:None 0)
+
+(defclass xcb:xinput:TouchOwnership
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (touchid :initarg :touchid :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~1 :initform 8 :type xcb:-pad)))
+
+(defclass xcb:xinput:RawTouchBegin
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (detail :initarg :detail :type xcb:CARD32)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (valuators-len :initarg :valuators-len :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (valuator-mask :initarg :valuator-mask :type xcb:-ignore)
+ (valuator-mask~ :initform
+ '(name valuator-mask type xcb:CARD32 size
+ (xcb:-fieldref 'valuators-len))
+ :type xcb:-list)
+ (axisvalues :initarg :axisvalues :type xcb:-ignore)
+ (axisvalues~ :initform
+ '(name axisvalues type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)
+ (axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)
+ (axisvalues-raw~ :initform
+ '(name axisvalues-raw type xcb:xinput:FP3232 size
+ (apply '+
+ (mapcar
+ (lambda
+ (i)
+ (eval
+ '(xcb:-popcount obj)
+ (list
+ (nconc
+ '(obj)
+ i))))
+ (slot-value obj 'valuator-mask))))
+ :type xcb:-list)))
+
+(defclass xcb:xinput:RawTouchUpdate
+ (xcb:-event xcb:xinput:RawTouchBegin)
+ nil)
+
+(defclass xcb:xinput:RawTouchEnd
+ (xcb:-event xcb:xinput:RawTouchBegin)
+ nil)
+
+(defconst xcb:xinput:BarrierFlags:PointerReleased 1)
+(defconst xcb:xinput:BarrierFlags:DeviceIsGrabbed 2)
+
+(defclass xcb:xinput:BarrierHit
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (eventid :initarg :eventid :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (barrier :initarg :barrier :type xcb:xinput:BARRIER)
+ (dtime :initarg :dtime :type xcb:CARD32)
+ (flags :initarg :flags :type xcb:CARD32)
+ (sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (root-x :initarg :root-x :type xcb:xinput:FP1616)
+ (root-y :initarg :root-y :type xcb:xinput:FP1616)
+ (dx :initarg :dx :type xcb:xinput:FP3232)
+ (dy :initarg :dy :type xcb:xinput:FP3232)))
+
+(defclass xcb:xinput:BarrierLeave
+ (xcb:-event xcb:xinput:BarrierHit)
+ nil)
+
+(defclass xcb:xinput:Device
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xinput:Event
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xinput:Mode
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xinput:DeviceBusy
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xinput:Class
+ (xcb:-error)
+ nil)
+
+(defconst xcb:xinput:error-number-class-alist
+ '((0 . xcb:xinput:Device)
+ (1 . xcb:xinput:Event)
+ (2 . xcb:xinput:Mode)
+ (3 . xcb:xinput:DeviceBusy)
+ (4 . xcb:xinput:Class))
+ "(error-number . error-class) alist")
+
+(defconst xcb:xinput:event-number-class-alist
+ '((0 . xcb:xinput:DeviceValuator)
+ (1 . xcb:xinput:DeviceKeyPress)
+ (2 . xcb:xinput:DeviceKeyRelease)
+ (3 . xcb:xinput:DeviceButtonPress)
+ (4 . xcb:xinput:DeviceButtonRelease)
+ (5 . xcb:xinput:DeviceMotionNotify)
+ (6 . xcb:xinput:DeviceFocusIn)
+ (7 . xcb:xinput:DeviceFocusOut)
+ (8 . xcb:xinput:ProximityIn)
+ (9 . xcb:xinput:ProximityOut)
+ (10 . xcb:xinput:DeviceStateNotify)
+ (11 . xcb:xinput:DeviceMappingNotify)
+ (12 . xcb:xinput:ChangeDeviceNotify)
+ (13 . xcb:xinput:DeviceKeyStateNotify)
+ (14 . xcb:xinput:DeviceButtonStateNotify)
+ (15 . xcb:xinput:DevicePresenceNotify)
+ (16 . xcb:xinput:DevicePropertyNotify)
+ (1 . xcb:xinput:DeviceChanged)
+ (2 . xcb:xinput:KeyPress)
+ (3 . xcb:xinput:KeyRelease)
+ (4 . xcb:xinput:ButtonPress)
+ (5 . xcb:xinput:ButtonRelease)
+ (6 . xcb:xinput:Motion)
+ (7 . xcb:xinput:Enter)
+ (8 . xcb:xinput:Leave)
+ (9 . xcb:xinput:FocusIn)
+ (10 . xcb:xinput:FocusOut)
+ (11 . xcb:xinput:Hierarchy)
+ (12 . xcb:xinput:Property)
+ (13 . xcb:xinput:RawKeyPress)
+ (14 . xcb:xinput:RawKeyRelease)
+ (15 . xcb:xinput:RawButtonPress)
+ (16 . xcb:xinput:RawButtonRelease)
+ (17 . xcb:xinput:RawMotion)
+ (18 . xcb:xinput:TouchBegin)
+ (19 . xcb:xinput:TouchUpdate)
+ (20 . xcb:xinput:TouchEnd)
+ (21 . xcb:xinput:TouchOwnership)
+ (22 . xcb:xinput:RawTouchBegin)
+ (23 . xcb:xinput:RawTouchUpdate)
+ (24 . xcb:xinput:RawTouchEnd)
+ (25 . xcb:xinput:BarrierHit)
+ (26 . xcb:xinput:BarrierLeave))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xinput)
diff --git a/xcb-xkb.el b/xcb-xkb.el
new file mode 100644
index 0000000..71583ef
--- /dev/null
+++ b/xcb-xkb.el
@@ -0,0 +1,2246 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xkb.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xkb:-extension-xname "XKEYBOARD")
+(defconst xcb:xkb:-extension-name "xkb")
+(defconst xcb:xkb:-major-version 1)
+(defconst xcb:xkb:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(defconst xcb:xkb:Const:MaxLegalKeyCode 255)
+(defconst xcb:xkb:Const:PerKeyBitArraySize 32)
+(defconst xcb:xkb:Const:KeyNameLength 4)
+
+(defconst xcb:xkb:EventType:NewKeyboardNotify 1)
+(defconst xcb:xkb:EventType:MapNotify 2)
+(defconst xcb:xkb:EventType:StateNotify 4)
+(defconst xcb:xkb:EventType:ControlsNotify 8)
+(defconst xcb:xkb:EventType:IndicatorStateNotify 16)
+(defconst xcb:xkb:EventType:IndicatorMapNotify 32)
+(defconst xcb:xkb:EventType:NamesNotify 64)
+(defconst xcb:xkb:EventType:CompatMapNotify 128)
+(defconst xcb:xkb:EventType:BellNotify 256)
+(defconst xcb:xkb:EventType:ActionMessage 512)
+(defconst xcb:xkb:EventType:AccessXNotify 1024)
+(defconst xcb:xkb:EventType:ExtensionDeviceNotify 2048)
+
+(defconst xcb:xkb:NKNDetail:Keycodes 1)
+(defconst xcb:xkb:NKNDetail:Geometry 2)
+(defconst xcb:xkb:NKNDetail:DeviceID 4)
+
+(defconst xcb:xkb:AXNDetail:SKPress 1)
+(defconst xcb:xkb:AXNDetail:SKAccept 2)
+(defconst xcb:xkb:AXNDetail:SKReject 4)
+(defconst xcb:xkb:AXNDetail:SKRelease 8)
+(defconst xcb:xkb:AXNDetail:BKAccept 16)
+(defconst xcb:xkb:AXNDetail:BKReject 32)
+(defconst xcb:xkb:AXNDetail:AXKWarning 64)
+
+(defconst xcb:xkb:MapPart:KeyTypes 1)
+(defconst xcb:xkb:MapPart:KeySyms 2)
+(defconst xcb:xkb:MapPart:ModifierMap 4)
+(defconst xcb:xkb:MapPart:ExplicitComponents 8)
+(defconst xcb:xkb:MapPart:KeyActions 16)
+(defconst xcb:xkb:MapPart:KeyBehaviors 32)
+(defconst xcb:xkb:MapPart:VirtualMods 64)
+(defconst xcb:xkb:MapPart:VirtualModMap 128)
+
+(defconst xcb:xkb:SetMapFlags:ResizeTypes 1)
+(defconst xcb:xkb:SetMapFlags:RecomputeActions 2)
+
+(defconst xcb:xkb:StatePart:ModifierState 1)
+(defconst xcb:xkb:StatePart:ModifierBase 2)
+(defconst xcb:xkb:StatePart:ModifierLatch 4)
+(defconst xcb:xkb:StatePart:ModifierLock 8)
+(defconst xcb:xkb:StatePart:GroupState 16)
+(defconst xcb:xkb:StatePart:GroupBase 32)
+(defconst xcb:xkb:StatePart:GroupLatch 64)
+(defconst xcb:xkb:StatePart:GroupLock 128)
+(defconst xcb:xkb:StatePart:CompatState 256)
+(defconst xcb:xkb:StatePart:GrabMods 512)
+(defconst xcb:xkb:StatePart:CompatGrabMods 1024)
+(defconst xcb:xkb:StatePart:LookupMods 2048)
+(defconst xcb:xkb:StatePart:CompatLookupMods 4096)
+(defconst xcb:xkb:StatePart:PointerButtons 8192)
+
+(defconst xcb:xkb:BoolCtrl:RepeatKeys 1)
+(defconst xcb:xkb:BoolCtrl:SlowKeys 2)
+(defconst xcb:xkb:BoolCtrl:BounceKeys 4)
+(defconst xcb:xkb:BoolCtrl:StickyKeys 8)
+(defconst xcb:xkb:BoolCtrl:MouseKeys 16)
+(defconst xcb:xkb:BoolCtrl:MouseKeysAccel 32)
+(defconst xcb:xkb:BoolCtrl:AccessXKeys 64)
+(defconst xcb:xkb:BoolCtrl:AccessXTimeoutMask 128)
+(defconst xcb:xkb:BoolCtrl:AccessXFeedbackMask 256)
+(defconst xcb:xkb:BoolCtrl:AudibleBellMask 512)
+(defconst xcb:xkb:BoolCtrl:Overlay1Mask 1024)
+(defconst xcb:xkb:BoolCtrl:Overlay2Mask 2048)
+(defconst xcb:xkb:BoolCtrl:IgnoreGroupLockMask 4096)
+
+(defconst xcb:xkb:Control:GroupsWrap 134217728)
+(defconst xcb:xkb:Control:InternalMods 268435456)
+(defconst xcb:xkb:Control:IgnoreLockMods 536870912)
+(defconst xcb:xkb:Control:PerKeyRepeat 1073741824)
+(defconst xcb:xkb:Control:ControlsEnabled 2147483648)
+
+(defconst xcb:xkb:AXOption:SKPressFB 1)
+(defconst xcb:xkb:AXOption:SKAcceptFB 2)
+(defconst xcb:xkb:AXOption:FeatureFB 4)
+(defconst xcb:xkb:AXOption:SlowWarnFB 8)
+(defconst xcb:xkb:AXOption:IndicatorFB 16)
+(defconst xcb:xkb:AXOption:StickyKeysFB 32)
+(defconst xcb:xkb:AXOption:TwoKeys 64)
+(defconst xcb:xkb:AXOption:LatchToLock 128)
+(defconst xcb:xkb:AXOption:SKReleaseFB 256)
+(defconst xcb:xkb:AXOption:SKRejectFB 512)
+(defconst xcb:xkb:AXOption:BKRejectFB 1024)
+(defconst xcb:xkb:AXOption:DumbBell 2048)
+
+(xcb:deftypealias 'xcb:xkb:DeviceSpec 'xcb:CARD16)
+
+(defconst xcb:xkb:LedClassResult:KbdFeedbackClass 0)
+(defconst xcb:xkb:LedClassResult:LedFeedbackClass 4)
+
+(defconst xcb:xkb:LedClass:KbdFeedbackClass 0)
+(defconst xcb:xkb:LedClass:LedFeedbackClass 4)
+(defconst xcb:xkb:LedClass:DfltXIClass 768)
+(defconst xcb:xkb:LedClass:AllXIClasses 1280)
+
+(xcb:deftypealias 'xcb:xkb:LedClassSpec 'xcb:CARD16)
+
+(defconst xcb:xkb:BellClassResult:KbdFeedbackClass 0)
+(defconst xcb:xkb:BellClassResult:BellFeedbackClass 5)
+
+(defconst xcb:xkb:BellClass:KbdFeedbackClass 0)
+(defconst xcb:xkb:BellClass:BellFeedbackClass 5)
+(defconst xcb:xkb:BellClass:DfltXIClass 768)
+
+(xcb:deftypealias 'xcb:xkb:BellClassSpec 'xcb:CARD16)
+
+(defconst xcb:xkb:ID:UseCoreKbd 256)
+(defconst xcb:xkb:ID:UseCorePtr 512)
+(defconst xcb:xkb:ID:DfltXIClass 768)
+(defconst xcb:xkb:ID:DfltXIId 1024)
+(defconst xcb:xkb:ID:AllXIClass 1280)
+(defconst xcb:xkb:ID:AllXIId 1536)
+(defconst xcb:xkb:ID:XINone 65280)
+
+(xcb:deftypealias 'xcb:xkb:IDSpec 'xcb:CARD16)
+
+(defconst xcb:xkb:Group:1 0)
+(defconst xcb:xkb:Group:2 1)
+(defconst xcb:xkb:Group:3 2)
+(defconst xcb:xkb:Group:4 3)
+
+(defconst xcb:xkb:Groups:Any 254)
+(defconst xcb:xkb:Groups:All 255)
+
+(defconst xcb:xkb:SetOfGroup:Group1 1)
+(defconst xcb:xkb:SetOfGroup:Group2 2)
+(defconst xcb:xkb:SetOfGroup:Group3 4)
+(defconst xcb:xkb:SetOfGroup:Group4 8)
+
+(defconst xcb:xkb:SetOfGroups:Any 128)
+
+(defconst xcb:xkb:GroupsWrap:WrapIntoRange 0)
+(defconst xcb:xkb:GroupsWrap:ClampIntoRange 64)
+(defconst xcb:xkb:GroupsWrap:RedirectIntoRange 128)
+
+(defconst xcb:xkb:VModsHigh:15 128)
+(defconst xcb:xkb:VModsHigh:14 64)
+(defconst xcb:xkb:VModsHigh:13 32)
+(defconst xcb:xkb:VModsHigh:12 16)
+(defconst xcb:xkb:VModsHigh:11 8)
+(defconst xcb:xkb:VModsHigh:10 4)
+(defconst xcb:xkb:VModsHigh:9 2)
+(defconst xcb:xkb:VModsHigh:8 1)
+
+(defconst xcb:xkb:VModsLow:7 128)
+(defconst xcb:xkb:VModsLow:6 64)
+(defconst xcb:xkb:VModsLow:5 32)
+(defconst xcb:xkb:VModsLow:4 16)
+(defconst xcb:xkb:VModsLow:3 8)
+(defconst xcb:xkb:VModsLow:2 4)
+(defconst xcb:xkb:VModsLow:1 2)
+(defconst xcb:xkb:VModsLow:0 1)
+
+(defconst xcb:xkb:VMod:15 32768)
+(defconst xcb:xkb:VMod:14 16384)
+(defconst xcb:xkb:VMod:13 8192)
+(defconst xcb:xkb:VMod:12 4096)
+(defconst xcb:xkb:VMod:11 2048)
+(defconst xcb:xkb:VMod:10 1024)
+(defconst xcb:xkb:VMod:9 512)
+(defconst xcb:xkb:VMod:8 256)
+(defconst xcb:xkb:VMod:7 128)
+(defconst xcb:xkb:VMod:6 64)
+(defconst xcb:xkb:VMod:5 32)
+(defconst xcb:xkb:VMod:4 16)
+(defconst xcb:xkb:VMod:3 8)
+(defconst xcb:xkb:VMod:2 4)
+(defconst xcb:xkb:VMod:1 2)
+(defconst xcb:xkb:VMod:0 1)
+
+(defconst xcb:xkb:Explicit:VModMap 128)
+(defconst xcb:xkb:Explicit:Behavior 64)
+(defconst xcb:xkb:Explicit:AutoRepeat 32)
+(defconst xcb:xkb:Explicit:Interpret 16)
+(defconst xcb:xkb:Explicit:KeyType4 8)
+(defconst xcb:xkb:Explicit:KeyType3 4)
+(defconst xcb:xkb:Explicit:KeyType2 2)
+(defconst xcb:xkb:Explicit:KeyType1 1)
+
+(defconst xcb:xkb:SymInterpretMatch:NoneOf 0)
+(defconst xcb:xkb:SymInterpretMatch:AnyOfOrNone 1)
+(defconst xcb:xkb:SymInterpretMatch:AnyOf 2)
+(defconst xcb:xkb:SymInterpretMatch:AllOf 3)
+(defconst xcb:xkb:SymInterpretMatch:Exactly 4)
+
+(defconst xcb:xkb:SymInterpMatch:LevelOneOnly 128)
+(defconst xcb:xkb:SymInterpMatch:OpMask 127)
+
+(defconst xcb:xkb:IMFlag:NoExplicit 128)
+(defconst xcb:xkb:IMFlag:NoAutomatic 64)
+(defconst xcb:xkb:IMFlag:LEDDrivesKB 32)
+
+(defconst xcb:xkb:IMModsWhich:UseCompat 16)
+(defconst xcb:xkb:IMModsWhich:UseEffective 8)
+(defconst xcb:xkb:IMModsWhich:UseLocked 4)
+(defconst xcb:xkb:IMModsWhich:UseLatched 2)
+(defconst xcb:xkb:IMModsWhich:UseBase 1)
+
+(defconst xcb:xkb:IMGroupsWhich:UseCompat 16)
+(defconst xcb:xkb:IMGroupsWhich:UseEffective 8)
+(defconst xcb:xkb:IMGroupsWhich:UseLocked 4)
+(defconst xcb:xkb:IMGroupsWhich:UseLatched 2)
+(defconst xcb:xkb:IMGroupsWhich:UseBase 1)
+
+(defclass xcb:xkb:IndicatorMap
+ (xcb:-struct)
+ ((flags :initarg :flags :type xcb:CARD8)
+ (whichGroups :initarg :whichGroups :type xcb:CARD8)
+ (groups :initarg :groups :type xcb:CARD8)
+ (whichMods :initarg :whichMods :type xcb:CARD8)
+ (mods :initarg :mods :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (vmods :initarg :vmods :type xcb:CARD16)
+ (ctrls :initarg :ctrls :type xcb:CARD32)))
+
+(defconst xcb:xkb:CMDetail:SymInterp 1)
+(defconst xcb:xkb:CMDetail:GroupCompat 2)
+
+(defconst xcb:xkb:NameDetail:Keycodes 1)
+(defconst xcb:xkb:NameDetail:Geometry 2)
+(defconst xcb:xkb:NameDetail:Symbols 4)
+(defconst xcb:xkb:NameDetail:PhysSymbols 8)
+(defconst xcb:xkb:NameDetail:Types 16)
+(defconst xcb:xkb:NameDetail:Compat 32)
+(defconst xcb:xkb:NameDetail:KeyTypeNames 64)
+(defconst xcb:xkb:NameDetail:KTLevelNames 128)
+(defconst xcb:xkb:NameDetail:IndicatorNames 256)
+(defconst xcb:xkb:NameDetail:KeyNames 512)
+(defconst xcb:xkb:NameDetail:KeyAliases 1024)
+(defconst xcb:xkb:NameDetail:VirtualModNames 2048)
+(defconst xcb:xkb:NameDetail:GroupNames 4096)
+(defconst xcb:xkb:NameDetail:RGNames 8192)
+
+(defconst xcb:xkb:GBNDetail:Types 1)
+(defconst xcb:xkb:GBNDetail:CompatMap 2)
+(defconst xcb:xkb:GBNDetail:ClientSymbols 4)
+(defconst xcb:xkb:GBNDetail:ServerSymbols 8)
+(defconst xcb:xkb:GBNDetail:IndicatorMaps 16)
+(defconst xcb:xkb:GBNDetail:KeyNames 32)
+(defconst xcb:xkb:GBNDetail:Geometry 64)
+(defconst xcb:xkb:GBNDetail:OtherNames 128)
+
+(defconst xcb:xkb:XIFeature:Keyboards 1)
+(defconst xcb:xkb:XIFeature:ButtonActions 2)
+(defconst xcb:xkb:XIFeature:IndicatorNames 4)
+(defconst xcb:xkb:XIFeature:IndicatorMaps 8)
+(defconst xcb:xkb:XIFeature:IndicatorState 16)
+
+(defconst xcb:xkb:PerClientFlag:DetectableAutoRepeat 1)
+(defconst xcb:xkb:PerClientFlag:GrabsUseXKBState 2)
+(defconst xcb:xkb:PerClientFlag:AutoResetControls 4)
+(defconst xcb:xkb:PerClientFlag:LookupStateWhenGrabbed 8)
+(defconst xcb:xkb:PerClientFlag:SendEventUsesXKBState 16)
+
+(defclass xcb:xkb:ModDef
+ (xcb:-struct)
+ ((mask :initarg :mask :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (vmods :initarg :vmods :type xcb:CARD16)))
+
+(defclass xcb:xkb:KeyName
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size 4)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:KeyAlias
+ (xcb:-struct)
+ ((real :initarg :real :type xcb:-ignore)
+ (real~ :initform
+ '(name real type xcb:char size 4)
+ :type xcb:-list)
+ (alias :initarg :alias :type xcb:-ignore)
+ (alias~ :initform
+ '(name alias type xcb:char size 4)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:CountedString16
+ (xcb:-struct)
+ ((length :initarg :length :type xcb:CARD16)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)
+ (alignment-pad :initarg :alignment-pad :type xcb:-ignore)
+ (alignment-pad~ :initform
+ '(name alignment-pad type xcb:void size
+ (-
+ (logand
+ (+
+ (xcb:-fieldref 'length)
+ 5)
+ (lognot
+ (parse-expression
+ (node-subnode node))))
+ (+
+ (xcb:-fieldref 'length)
+ 2)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:KTMapEntry
+ (xcb:-struct)
+ ((active :initarg :active :type xcb:BOOL)
+ (mods-mask :initarg :mods-mask :type xcb:CARD8)
+ (level :initarg :level :type xcb:CARD8)
+ (mods-mods :initarg :mods-mods :type xcb:CARD8)
+ (mods-vmods :initarg :mods-vmods :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xkb:KeyType
+ (xcb:-struct)
+ ((mods-mask :initarg :mods-mask :type xcb:CARD8)
+ (mods-mods :initarg :mods-mods :type xcb:CARD8)
+ (mods-vmods :initarg :mods-vmods :type xcb:CARD16)
+ (numLevels :initarg :numLevels :type xcb:CARD8)
+ (nMapEntries :initarg :nMapEntries :type xcb:CARD8)
+ (hasPreserve :initarg :hasPreserve :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (map :initarg :map :type xcb:-ignore)
+ (map~ :initform
+ '(name map type xcb:xkb:KTMapEntry size
+ (xcb:-fieldref 'nMapEntries))
+ :type xcb:-list)
+ (preserve :initarg :preserve :type xcb:-ignore)
+ (preserve~ :initform
+ '(name preserve type xcb:xkb:ModDef size
+ (*
+ (xcb:-fieldref 'hasPreserve)
+ (xcb:-fieldref 'nMapEntries)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:KeySymMap
+ (xcb:-struct)
+ ((kt-index :initarg :kt-index :type xcb:-ignore)
+ (kt-index~ :initform
+ '(name kt-index type xcb:CARD8 size 4)
+ :type xcb:-list)
+ (groupInfo :initarg :groupInfo :type xcb:CARD8)
+ (width :initarg :width :type xcb:CARD8)
+ (nSyms :initarg :nSyms :type xcb:CARD16)
+ (syms :initarg :syms :type xcb:-ignore)
+ (syms~ :initform
+ '(name syms type xcb:KEYSYM size
+ (xcb:-fieldref 'nSyms))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:CommonBehavior
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (data :initarg :data :type xcb:CARD8)))
+
+(defclass xcb:xkb:DefaultBehavior
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(xcb:deftypealias 'xcb:xkb:LockBehavior 'xcb:xkb:DefaultBehavior)
+
+(defclass xcb:xkb:RadioGroupBehavior
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (group :initarg :group :type xcb:CARD8)))
+
+(defclass xcb:xkb:OverlayBehavior
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (key :initarg :key :type xcb:KEYCODE)))
+
+(xcb:deftypealias 'xcb:xkb:PermamentLockBehavior 'xcb:xkb:LockBehavior)
+
+(xcb:deftypealias 'xcb:xkb:PermamentRadioGroupBehavior
'xcb:xkb:RadioGroupBehavior)
+
+(xcb:deftypealias 'xcb:xkb:PermamentOverlayBehavior 'xcb:xkb:OverlayBehavior)
+
+(defclass xcb:xkb:Behavior
+ (xcb:-union)
+ ((common :initarg :common :type xcb:xkb:CommonBehavior)
+ (default :initarg :default :type xcb:xkb:DefaultBehavior)
+ (lock :initarg :lock :type xcb:xkb:LockBehavior)
+ (radioGroup :initarg :radioGroup :type xcb:xkb:RadioGroupBehavior)
+ (overlay1 :initarg :overlay1 :type xcb:xkb:OverlayBehavior)
+ (overlay2 :initarg :overlay2 :type xcb:xkb:OverlayBehavior)
+ (permamentLock :initarg :permamentLock :type xcb:xkb:PermamentLockBehavior)
+ (permamentRadioGroup :initarg :permamentRadioGroup :type
xcb:xkb:PermamentRadioGroupBehavior)
+ (permamentOverlay1 :initarg :permamentOverlay1 :type
xcb:xkb:PermamentOverlayBehavior)
+ (permamentOverlay2 :initarg :permamentOverlay2 :type
xcb:xkb:PermamentOverlayBehavior)
+ (type :initarg :type :type xcb:CARD8)))
+
+(defconst xcb:xkb:BehaviorType:Default 0)
+(defconst xcb:xkb:BehaviorType:Lock 1)
+(defconst xcb:xkb:BehaviorType:RadioGroup 2)
+(defconst xcb:xkb:BehaviorType:Overlay1 3)
+(defconst xcb:xkb:BehaviorType:Overlay2 4)
+(defconst xcb:xkb:BehaviorType:PermamentLock 129)
+(defconst xcb:xkb:BehaviorType:PermamentRadioGroup 130)
+(defconst xcb:xkb:BehaviorType:PermamentOverlay1 131)
+(defconst xcb:xkb:BehaviorType:PermamentOverlay2 132)
+
+(defclass xcb:xkb:SetBehavior
+ (xcb:-struct)
+ ((keycode :initarg :keycode :type xcb:KEYCODE)
+ (behavior :initarg :behavior :type xcb:xkb:Behavior)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:xkb:SetExplicit
+ (xcb:-struct)
+ ((keycode :initarg :keycode :type xcb:KEYCODE)
+ (explicit :initarg :explicit :type xcb:CARD8)))
+
+(defclass xcb:xkb:KeyModMap
+ (xcb:-struct)
+ ((keycode :initarg :keycode :type xcb:KEYCODE)
+ (mods :initarg :mods :type xcb:CARD8)))
+
+(defclass xcb:xkb:KeyVModMap
+ (xcb:-struct)
+ ((keycode :initarg :keycode :type xcb:KEYCODE)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (vmods :initarg :vmods :type xcb:CARD16)))
+
+(defclass xcb:xkb:KTSetMapEntry
+ (xcb:-struct)
+ ((level :initarg :level :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)))
+
+(defclass xcb:xkb:SetKeyType
+ (xcb:-struct)
+ ((mask :initarg :mask :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (numLevels :initarg :numLevels :type xcb:CARD8)
+ (nMapEntries :initarg :nMapEntries :type xcb:CARD8)
+ (preserve :initarg :preserve :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (entries :initarg :entries :type xcb:-ignore)
+ (entries~ :initform
+ '(name entries type xcb:xkb:KTSetMapEntry size
+ (xcb:-fieldref 'nMapEntries))
+ :type xcb:-list)
+ (preserve-entries :initarg :preserve-entries :type xcb:-ignore)
+ (preserve-entries~ :initform
+ '(name preserve-entries type xcb:xkb:KTSetMapEntry size
+ (*
+ (xcb:-fieldref 'preserve)
+ (xcb:-fieldref 'nMapEntries)))
+ :type xcb:-list)))
+
+(xcb:deftypealias 'xcb:xkb:STRING8 'xcb:char)
+
+(defclass xcb:xkb:Outline
+ (xcb:-struct)
+ ((nPoints :initarg :nPoints :type xcb:CARD8)
+ (cornerRadius :initarg :cornerRadius :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:POINT size
+ (xcb:-fieldref 'nPoints))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:Shape
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:ATOM)
+ (nOutlines :initarg :nOutlines :type xcb:CARD8)
+ (primaryNdx :initarg :primaryNdx :type xcb:CARD8)
+ (approxNdx :initarg :approxNdx :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (outlines :initarg :outlines :type xcb:-ignore)
+ (outlines~ :initform
+ '(name outlines type xcb:xkb:Outline size
+ (xcb:-fieldref 'nOutlines))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:Key
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:xkb:STRING8 size 4)
+ :type xcb:-list)
+ (gap :initarg :gap :type xcb:INT16)
+ (shapeNdx :initarg :shapeNdx :type xcb:CARD8)
+ (colorNdx :initarg :colorNdx :type xcb:CARD8)))
+
+(defclass xcb:xkb:OverlayKey
+ (xcb:-struct)
+ ((over :initarg :over :type xcb:-ignore)
+ (over~ :initform
+ '(name over type xcb:xkb:STRING8 size 4)
+ :type xcb:-list)
+ (under :initarg :under :type xcb:-ignore)
+ (under~ :initform
+ '(name under type xcb:xkb:STRING8 size 4)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:OverlayRow
+ (xcb:-struct)
+ ((rowUnder :initarg :rowUnder :type xcb:CARD8)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:xkb:OverlayKey size
+ (xcb:-fieldref 'nKeys))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:Overlay
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:ATOM)
+ (nRows :initarg :nRows :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (rows :initarg :rows :type xcb:-ignore)
+ (rows~ :initform
+ '(name rows type xcb:xkb:OverlayRow size
+ (xcb:-fieldref 'nRows))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:Row
+ (xcb:-struct)
+ ((top :initarg :top :type xcb:INT16)
+ (left :initarg :left :type xcb:INT16)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (vertical :initarg :vertical :type xcb:BOOL)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:xkb:Key size
+ (xcb:-fieldref 'nKeys))
+ :type xcb:-list)))
+
+(defconst xcb:xkb:DoodadType:Outline 1)
+(defconst xcb:xkb:DoodadType:Solid 2)
+(defconst xcb:xkb:DoodadType:Text 3)
+(defconst xcb:xkb:DoodadType:Indicator 4)
+(defconst xcb:xkb:DoodadType:Logo 5)
+
+(defclass xcb:xkb:Listing
+ (xcb:-struct)
+ ((flags :initarg :flags :type xcb:CARD16)
+ (length :initarg :length :type xcb:CARD16)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:xkb:STRING8 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:DeviceLedInfo
+ (xcb:-struct)
+ ((ledClass :initarg :ledClass :type xcb:xkb:LedClassSpec)
+ (ledID :initarg :ledID :type xcb:xkb:IDSpec)
+ (namesPresent :initarg :namesPresent :type xcb:CARD32)
+ (mapsPresent :initarg :mapsPresent :type xcb:CARD32)
+ (physIndicators :initarg :physIndicators :type xcb:CARD32)
+ (state :initarg :state :type xcb:CARD32)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'namesPresent)))
+ :type xcb:-list)
+ (maps :initarg :maps :type xcb:-ignore)
+ (maps~ :initform
+ '(name maps type xcb:xkb:IndicatorMap size
+ (xcb:-popcount
+ (xcb:-fieldref 'mapsPresent)))
+ :type xcb:-list)))
+
+(defconst xcb:xkb:Error:BadDevice 255)
+(defconst xcb:xkb:Error:BadClass 254)
+(defconst xcb:xkb:Error:BadId 253)
+
+(defclass xcb:xkb:Keyboard
+ (xcb:-error)
+ ((value :initarg :value :type xcb:CARD32)
+ (minorOpcode :initarg :minorOpcode :type xcb:CARD16)
+ (majorOpcode :initarg :majorOpcode :type xcb:CARD8)
+ (pad~0 :initform 21 :type xcb:-pad)))
+
+(defconst xcb:xkb:SA:ClearLocks 1)
+(defconst xcb:xkb:SA:LatchToLock 2)
+(defconst xcb:xkb:SA:UseModMapMods 4)
+(defconst xcb:xkb:SA:GroupAbsolute 4)
+
+(defconst xcb:xkb:SAType:NoAction 0)
+(defconst xcb:xkb:SAType:SetMods 1)
+(defconst xcb:xkb:SAType:LatchMods 2)
+(defconst xcb:xkb:SAType:LockMods 3)
+(defconst xcb:xkb:SAType:SetGroup 4)
+(defconst xcb:xkb:SAType:LatchGroup 5)
+(defconst xcb:xkb:SAType:LockGroup 6)
+(defconst xcb:xkb:SAType:MovePtr 7)
+(defconst xcb:xkb:SAType:PtrBtn 8)
+(defconst xcb:xkb:SAType:LockPtrBtn 9)
+(defconst xcb:xkb:SAType:SetPtrDflt 10)
+(defconst xcb:xkb:SAType:ISOLock 11)
+(defconst xcb:xkb:SAType:Terminate 12)
+(defconst xcb:xkb:SAType:SwitchScreen 13)
+(defconst xcb:xkb:SAType:SetControls 14)
+(defconst xcb:xkb:SAType:LockControls 15)
+(defconst xcb:xkb:SAType:ActionMessage 16)
+(defconst xcb:xkb:SAType:RedirectKey 17)
+(defconst xcb:xkb:SAType:DeviceBtn 18)
+(defconst xcb:xkb:SAType:LockDeviceBtn 19)
+(defconst xcb:xkb:SAType:DeviceValuator 20)
+
+(defclass xcb:xkb:SANoAction
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (pad~0 :initform 7 :type xcb:-pad)))
+
+(defclass xcb:xkb:SASetMods
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (mask :initarg :mask :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (vmodsHigh :initarg :vmodsHigh :type xcb:CARD8)
+ (vmodsLow :initarg :vmodsLow :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(xcb:deftypealias 'xcb:xkb:SALatchMods 'xcb:xkb:SASetMods)
+
+(xcb:deftypealias 'xcb:xkb:SALockMods 'xcb:xkb:SASetMods)
+
+(defclass xcb:xkb:SASetGroup
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (group :initarg :group :type xcb:INT8)
+ (pad~0 :initform 5 :type xcb:-pad)))
+
+(xcb:deftypealias 'xcb:xkb:SALatchGroup 'xcb:xkb:SASetGroup)
+
+(xcb:deftypealias 'xcb:xkb:SALockGroup 'xcb:xkb:SASetGroup)
+
+(defconst xcb:xkb:SAMovePtrFlag:NoAcceleration 1)
+(defconst xcb:xkb:SAMovePtrFlag:MoveAbsoluteX 2)
+(defconst xcb:xkb:SAMovePtrFlag:MoveAbsoluteY 4)
+
+(defclass xcb:xkb:SAMovePtr
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (xHigh :initarg :xHigh :type xcb:INT8)
+ (xLow :initarg :xLow :type xcb:CARD8)
+ (yHigh :initarg :yHigh :type xcb:INT8)
+ (yLow :initarg :yLow :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xkb:SAPtrBtn
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (count :initarg :count :type xcb:CARD8)
+ (button :initarg :button :type xcb:CARD8)
+ (pad~0 :initform 4 :type xcb:-pad)))
+
+(defclass xcb:xkb:SALockPtrBtn
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (button :initarg :button :type xcb:CARD8)
+ (pad~1 :initform 4 :type xcb:-pad)))
+
+(defconst xcb:xkb:SASetPtrDfltFlag:DfltBtnAbsolute 4)
+(defconst xcb:xkb:SASetPtrDfltFlag:AffectDfltButton 1)
+
+(defclass xcb:xkb:SASetPtrDflt
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (affect :initarg :affect :type xcb:CARD8)
+ (value :initarg :value :type xcb:INT8)
+ (pad~0 :initform 4 :type xcb:-pad)))
+
+(defconst xcb:xkb:SAIsoLockFlag:NoLock 1)
+(defconst xcb:xkb:SAIsoLockFlag:NoUnlock 2)
+(defconst xcb:xkb:SAIsoLockFlag:UseModMapMods 4)
+(defconst xcb:xkb:SAIsoLockFlag:GroupAbsolute 4)
+(defconst xcb:xkb:SAIsoLockFlag:ISODfltIsGroup 8)
+
+(defconst xcb:xkb:SAIsoLockNoAffect:Ctrls 8)
+(defconst xcb:xkb:SAIsoLockNoAffect:Ptr 16)
+(defconst xcb:xkb:SAIsoLockNoAffect:Group 32)
+(defconst xcb:xkb:SAIsoLockNoAffect:Mods 64)
+
+(defclass xcb:xkb:SAIsoLock
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (mask :initarg :mask :type xcb:CARD8)
+ (realMods :initarg :realMods :type xcb:CARD8)
+ (group :initarg :group :type xcb:INT8)
+ (affect :initarg :affect :type xcb:CARD8)
+ (vmodsHigh :initarg :vmodsHigh :type xcb:CARD8)
+ (vmodsLow :initarg :vmodsLow :type xcb:CARD8)))
+
+(defclass xcb:xkb:SATerminate
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (pad~0 :initform 7 :type xcb:-pad)))
+
+(defconst xcb:xkb:SwitchScreenFlag:Application 1)
+(defconst xcb:xkb:SwitchScreenFlag:Absolute 4)
+
+(defclass xcb:xkb:SASwitchScreen
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (newScreen :initarg :newScreen :type xcb:INT8)
+ (pad~0 :initform 5 :type xcb:-pad)))
+
+(defconst xcb:xkb:BoolCtrlsHigh:AccessXFeedback 1)
+(defconst xcb:xkb:BoolCtrlsHigh:AudibleBell 2)
+(defconst xcb:xkb:BoolCtrlsHigh:Overlay1 4)
+(defconst xcb:xkb:BoolCtrlsHigh:Overlay2 8)
+(defconst xcb:xkb:BoolCtrlsHigh:IgnoreGroupLock 16)
+
+(defconst xcb:xkb:BoolCtrlsLow:RepeatKeys 1)
+(defconst xcb:xkb:BoolCtrlsLow:SlowKeys 2)
+(defconst xcb:xkb:BoolCtrlsLow:BounceKeys 4)
+(defconst xcb:xkb:BoolCtrlsLow:StickyKeys 8)
+(defconst xcb:xkb:BoolCtrlsLow:MouseKeys 16)
+(defconst xcb:xkb:BoolCtrlsLow:MouseKeysAccel 32)
+(defconst xcb:xkb:BoolCtrlsLow:AccessXKeys 64)
+(defconst xcb:xkb:BoolCtrlsLow:AccessXTimeout 128)
+
+(defclass xcb:xkb:SASetControls
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (boolCtrlsHigh :initarg :boolCtrlsHigh :type xcb:CARD8)
+ (boolCtrlsLow :initarg :boolCtrlsLow :type xcb:CARD8)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(xcb:deftypealias 'xcb:xkb:SALockControls 'xcb:xkb:SASetControls)
+
+(defconst xcb:xkb:ActionMessageFlag:OnPress 1)
+(defconst xcb:xkb:ActionMessageFlag:OnRelease 2)
+(defconst xcb:xkb:ActionMessageFlag:GenKeyEvent 4)
+
+(defclass xcb:xkb:SAActionMessage
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (message :initarg :message :type xcb:-ignore)
+ (message~ :initform
+ '(name message type xcb:CARD8 size 6)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SARedirectKey
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (newkey :initarg :newkey :type xcb:KEYCODE)
+ (mask :initarg :mask :type xcb:CARD8)
+ (realModifiers :initarg :realModifiers :type xcb:CARD8)
+ (vmodsMaskHigh :initarg :vmodsMaskHigh :type xcb:CARD8)
+ (vmodsMaskLow :initarg :vmodsMaskLow :type xcb:CARD8)
+ (vmodsHigh :initarg :vmodsHigh :type xcb:CARD8)
+ (vmodsLow :initarg :vmodsLow :type xcb:CARD8)))
+
+(defclass xcb:xkb:SADeviceBtn
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (count :initarg :count :type xcb:CARD8)
+ (button :initarg :button :type xcb:CARD8)
+ (device :initarg :device :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:xkb:LockDeviceFlags:NoLock 1)
+(defconst xcb:xkb:LockDeviceFlags:NoUnlock 2)
+
+(defclass xcb:xkb:SALockDeviceBtn
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (button :initarg :button :type xcb:CARD8)
+ (device :initarg :device :type xcb:CARD8)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:xkb:SAValWhat:IgnoreVal 0)
+(defconst xcb:xkb:SAValWhat:SetValMin 1)
+(defconst xcb:xkb:SAValWhat:SetValCenter 2)
+(defconst xcb:xkb:SAValWhat:SetValMax 3)
+(defconst xcb:xkb:SAValWhat:SetValRelative 4)
+(defconst xcb:xkb:SAValWhat:SetValAbsolute 5)
+
+(defclass xcb:xkb:SADeviceValuator
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (device :initarg :device :type xcb:CARD8)
+ (val1what :initarg :val1what :type xcb:CARD8)
+ (val1index :initarg :val1index :type xcb:CARD8)
+ (val1value :initarg :val1value :type xcb:CARD8)
+ (val2what :initarg :val2what :type xcb:CARD8)
+ (val2index :initarg :val2index :type xcb:CARD8)
+ (val2value :initarg :val2value :type xcb:CARD8)))
+
+(defclass xcb:xkb:SIAction
+ (xcb:-struct)
+ ((type :initarg :type :type xcb:CARD8)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD8 size 7)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SymInterpret
+ (xcb:-struct)
+ ((sym :initarg :sym :type xcb:KEYSYM)
+ (mods :initarg :mods :type xcb:CARD8)
+ (match :initarg :match :type xcb:CARD8)
+ (virtualMod :initarg :virtualMod :type xcb:CARD8)
+ (flags :initarg :flags :type xcb:CARD8)
+ (action :initarg :action :type xcb:xkb:SIAction)))
+
+(defclass xcb:xkb:Action
+ (xcb:-union)
+ ((noaction :initarg :noaction :type xcb:xkb:SANoAction)
+ (setmods :initarg :setmods :type xcb:xkb:SASetMods)
+ (latchmods :initarg :latchmods :type xcb:xkb:SALatchMods)
+ (lockmods :initarg :lockmods :type xcb:xkb:SALockMods)
+ (setgroup :initarg :setgroup :type xcb:xkb:SASetGroup)
+ (latchgroup :initarg :latchgroup :type xcb:xkb:SALatchGroup)
+ (lockgroup :initarg :lockgroup :type xcb:xkb:SALockGroup)
+ (moveptr :initarg :moveptr :type xcb:xkb:SAMovePtr)
+ (ptrbtn :initarg :ptrbtn :type xcb:xkb:SAPtrBtn)
+ (lockptrbtn :initarg :lockptrbtn :type xcb:xkb:SALockPtrBtn)
+ (setptrdflt :initarg :setptrdflt :type xcb:xkb:SASetPtrDflt)
+ (isolock :initarg :isolock :type xcb:xkb:SAIsoLock)
+ (terminate :initarg :terminate :type xcb:xkb:SATerminate)
+ (switchscreen :initarg :switchscreen :type xcb:xkb:SASwitchScreen)
+ (setcontrols :initarg :setcontrols :type xcb:xkb:SASetControls)
+ (lockcontrols :initarg :lockcontrols :type xcb:xkb:SALockControls)
+ (message :initarg :message :type xcb:xkb:SAActionMessage)
+ (redirect :initarg :redirect :type xcb:xkb:SARedirectKey)
+ (devbtn :initarg :devbtn :type xcb:xkb:SADeviceBtn)
+ (lockdevbtn :initarg :lockdevbtn :type xcb:xkb:SALockDeviceBtn)
+ (devval :initarg :devval :type xcb:xkb:SADeviceValuator)
+ (type :initarg :type :type xcb:CARD8)))
+
+(defclass xcb:xkb:UseExtension
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (wantedMajor :initarg :wantedMajor :type xcb:CARD16)
+ (wantedMinor :initarg :wantedMinor :type xcb:CARD16)))
+(defclass xcb:xkb:UseExtension~reply
+ (xcb:-reply)
+ ((supported :initarg :supported :type xcb:BOOL)
+ (serverMajor :initarg :serverMajor :type xcb:CARD16)
+ (serverMinor :initarg :serverMinor :type xcb:CARD16)
+ (pad~0 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xkb:SelectEvents
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (affectWhich :initarg :affectWhich :type xcb:CARD16)
+ (clear :initarg :clear :type xcb:CARD16)
+ (selectAll :initarg :selectAll :type xcb:CARD16)
+ (affectMap :initarg :affectMap :type xcb:CARD16)
+ (map :initarg :map :type xcb:CARD16)
+ (details :initform
+ '(expression
+ (logand
+ (xcb:-fieldref 'affectWhich)
+ (logand
+ (lognot
+ (parse-expression
+ (node-subnode node)))
+ (lognot
+ (parse-expression
+ (node-subnode node)))))
+ cases
+ ((xcb:xkb:EventType:NewKeyboardNotify affectNewKeyboard
newKeyboardDetails)
+ (xcb:xkb:EventType:StateNotify affectState stateDetails)
+ (xcb:xkb:EventType:ControlsNotify affectCtrls ctrlDetails)
+ (xcb:xkb:EventType:IndicatorStateNotify affectIndicatorState
indicatorStateDetails)
+ (xcb:xkb:EventType:IndicatorMapNotify affectIndicatorMap
indicatorMapDetails)
+ (xcb:xkb:EventType:NamesNotify affectNames namesDetails)
+ (xcb:xkb:EventType:CompatMapNotify affectCompat compatDetails)
+ (xcb:xkb:EventType:BellNotify affectBell bellDetails)
+ (xcb:xkb:EventType:ActionMessage affectMsgDetails msgDetails)
+ (xcb:xkb:EventType:AccessXNotify affectAccessX accessXDetails)
+ (xcb:xkb:EventType:ExtensionDeviceNotify affectExtDev
extdevDetails)))
+ :type xcb:-switch)
+ (affectNewKeyboard :initarg :affectNewKeyboard :type xcb:CARD16)
+ (newKeyboardDetails :initarg :newKeyboardDetails :type xcb:CARD16)
+ (affectState :initarg :affectState :type xcb:CARD16)
+ (stateDetails :initarg :stateDetails :type xcb:CARD16)
+ (affectCtrls :initarg :affectCtrls :type xcb:CARD32)
+ (ctrlDetails :initarg :ctrlDetails :type xcb:CARD32)
+ (affectIndicatorState :initarg :affectIndicatorState :type xcb:CARD32)
+ (indicatorStateDetails :initarg :indicatorStateDetails :type xcb:CARD32)
+ (affectIndicatorMap :initarg :affectIndicatorMap :type xcb:CARD32)
+ (indicatorMapDetails :initarg :indicatorMapDetails :type xcb:CARD32)
+ (affectNames :initarg :affectNames :type xcb:CARD16)
+ (namesDetails :initarg :namesDetails :type xcb:CARD16)
+ (affectCompat :initarg :affectCompat :type xcb:CARD8)
+ (compatDetails :initarg :compatDetails :type xcb:CARD8)
+ (affectBell :initarg :affectBell :type xcb:CARD8)
+ (bellDetails :initarg :bellDetails :type xcb:CARD8)
+ (affectMsgDetails :initarg :affectMsgDetails :type xcb:CARD8)
+ (msgDetails :initarg :msgDetails :type xcb:CARD8)
+ (affectAccessX :initarg :affectAccessX :type xcb:CARD16)
+ (accessXDetails :initarg :accessXDetails :type xcb:CARD16)
+ (affectExtDev :initarg :affectExtDev :type xcb:CARD16)
+ (extdevDetails :initarg :extdevDetails :type xcb:CARD16)))
+
+(defclass xcb:xkb:Bell
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (bellClass :initarg :bellClass :type xcb:xkb:BellClassSpec)
+ (bellID :initarg :bellID :type xcb:xkb:IDSpec)
+ (percent :initarg :percent :type xcb:INT8)
+ (forceSound :initarg :forceSound :type xcb:BOOL)
+ (eventOnly :initarg :eventOnly :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (pitch :initarg :pitch :type xcb:INT16)
+ (duration :initarg :duration :type xcb:INT16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:ATOM)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:xkb:GetState
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xkb:GetState~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (mods :initarg :mods :type xcb:CARD8)
+ (baseMods :initarg :baseMods :type xcb:CARD8)
+ (latchedMods :initarg :latchedMods :type xcb:CARD8)
+ (lockedMods :initarg :lockedMods :type xcb:CARD8)
+ (group :initarg :group :type xcb:CARD8)
+ (lockedGroup :initarg :lockedGroup :type xcb:CARD8)
+ (baseGroup :initarg :baseGroup :type xcb:INT16)
+ (latchedGroup :initarg :latchedGroup :type xcb:INT16)
+ (compatState :initarg :compatState :type xcb:CARD8)
+ (grabMods :initarg :grabMods :type xcb:CARD8)
+ (compatGrabMods :initarg :compatGrabMods :type xcb:CARD8)
+ (lookupMods :initarg :lookupMods :type xcb:CARD8)
+ (compatLookupMods :initarg :compatLookupMods :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (ptrBtnState :initarg :ptrBtnState :type xcb:CARD16)
+ (pad~1 :initform 6 :type xcb:-pad)))
+
+(defclass xcb:xkb:LatchLockState
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (affectModLocks :initarg :affectModLocks :type xcb:CARD8)
+ (modLocks :initarg :modLocks :type xcb:CARD8)
+ (lockGroup :initarg :lockGroup :type xcb:BOOL)
+ (groupLock :initarg :groupLock :type xcb:CARD8)
+ (affectModLatches :initarg :affectModLatches :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (latchGroup :initarg :latchGroup :type xcb:BOOL)
+ (groupLatch :initarg :groupLatch :type xcb:CARD16)))
+
+(defclass xcb:xkb:GetControls
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xkb:GetControls~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (mouseKeysDfltBtn :initarg :mouseKeysDfltBtn :type xcb:CARD8)
+ (numGroups :initarg :numGroups :type xcb:CARD8)
+ (groupsWrap :initarg :groupsWrap :type xcb:CARD8)
+ (internalModsMask :initarg :internalModsMask :type xcb:CARD8)
+ (ignoreLockModsMask :initarg :ignoreLockModsMask :type xcb:CARD8)
+ (internalModsRealMods :initarg :internalModsRealMods :type xcb:CARD8)
+ (ignoreLockModsRealMods :initarg :ignoreLockModsRealMods :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (internalModsVmods :initarg :internalModsVmods :type xcb:CARD16)
+ (ignoreLockModsVmods :initarg :ignoreLockModsVmods :type xcb:CARD16)
+ (repeatDelay :initarg :repeatDelay :type xcb:CARD16)
+ (repeatInterval :initarg :repeatInterval :type xcb:CARD16)
+ (slowKeysDelay :initarg :slowKeysDelay :type xcb:CARD16)
+ (debounceDelay :initarg :debounceDelay :type xcb:CARD16)
+ (mouseKeysDelay :initarg :mouseKeysDelay :type xcb:CARD16)
+ (mouseKeysInterval :initarg :mouseKeysInterval :type xcb:CARD16)
+ (mouseKeysTimeToMax :initarg :mouseKeysTimeToMax :type xcb:CARD16)
+ (mouseKeysMaxSpeed :initarg :mouseKeysMaxSpeed :type xcb:CARD16)
+ (mouseKeysCurve :initarg :mouseKeysCurve :type xcb:INT16)
+ (accessXOption :initarg :accessXOption :type xcb:CARD16)
+ (accessXTimeout :initarg :accessXTimeout :type xcb:CARD16)
+ (accessXTimeoutOptionsMask :initarg :accessXTimeoutOptionsMask :type
xcb:CARD16)
+ (accessXTimeoutOptionsValues :initarg :accessXTimeoutOptionsValues :type
xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (accessXTimeoutMask :initarg :accessXTimeoutMask :type xcb:CARD32)
+ (accessXTimeoutValues :initarg :accessXTimeoutValues :type xcb:CARD32)
+ (enabledControls :initarg :enabledControls :type xcb:CARD32)
+ (perKeyRepeat :initarg :perKeyRepeat :type xcb:-ignore)
+ (perKeyRepeat~ :initform
+ '(name perKeyRepeat type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetControls
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (affectInternalRealMods :initarg :affectInternalRealMods :type xcb:CARD8)
+ (internalRealMods :initarg :internalRealMods :type xcb:CARD8)
+ (affectIgnoreLockRealMods :initarg :affectIgnoreLockRealMods :type
xcb:CARD8)
+ (ignoreLockRealMods :initarg :ignoreLockRealMods :type xcb:CARD8)
+ (affectInternalVirtualMods :initarg :affectInternalVirtualMods :type
xcb:CARD16)
+ (internalVirtualMods :initarg :internalVirtualMods :type xcb:CARD16)
+ (affectIgnoreLockVirtualMods :initarg :affectIgnoreLockVirtualMods :type
xcb:CARD16)
+ (ignoreLockVirtualMods :initarg :ignoreLockVirtualMods :type xcb:CARD16)
+ (mouseKeysDfltBtn :initarg :mouseKeysDfltBtn :type xcb:CARD8)
+ (groupsWrap :initarg :groupsWrap :type xcb:CARD8)
+ (accessXOptions :initarg :accessXOptions :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (affectEnabledControls :initarg :affectEnabledControls :type xcb:CARD32)
+ (enabledControls :initarg :enabledControls :type xcb:CARD32)
+ (changeControls :initarg :changeControls :type xcb:CARD32)
+ (repeatDelay :initarg :repeatDelay :type xcb:CARD16)
+ (repeatInterval :initarg :repeatInterval :type xcb:CARD16)
+ (slowKeysDelay :initarg :slowKeysDelay :type xcb:CARD16)
+ (debounceDelay :initarg :debounceDelay :type xcb:CARD16)
+ (mouseKeysDelay :initarg :mouseKeysDelay :type xcb:CARD16)
+ (mouseKeysInterval :initarg :mouseKeysInterval :type xcb:CARD16)
+ (mouseKeysTimeToMax :initarg :mouseKeysTimeToMax :type xcb:CARD16)
+ (mouseKeysMaxSpeed :initarg :mouseKeysMaxSpeed :type xcb:CARD16)
+ (mouseKeysCurve :initarg :mouseKeysCurve :type xcb:INT16)
+ (accessXTimeout :initarg :accessXTimeout :type xcb:CARD16)
+ (accessXTimeoutMask :initarg :accessXTimeoutMask :type xcb:CARD32)
+ (accessXTimeoutValues :initarg :accessXTimeoutValues :type xcb:CARD32)
+ (accessXTimeoutOptionsMask :initarg :accessXTimeoutOptionsMask :type
xcb:CARD16)
+ (accessXTimeoutOptionsValues :initarg :accessXTimeoutOptionsValues :type
xcb:CARD16)
+ (perKeyRepeat :initarg :perKeyRepeat :type xcb:-ignore)
+ (perKeyRepeat~ :initform
+ '(name perKeyRepeat type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:xkb:GetMap
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (full :initarg :full :type xcb:CARD16)
+ (partial :initarg :partial :type xcb:CARD16)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE)
+ (nKeySyms :initarg :nKeySyms :type xcb:CARD8)
+ (firstKeyAction :initarg :firstKeyAction :type xcb:KEYCODE)
+ (nKeyActions :initarg :nKeyActions :type xcb:CARD8)
+ (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE)
+ (nKeyBehaviors :initarg :nKeyBehaviors :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE)
+ (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8)
+ (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE)
+ (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8)
+ (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE)
+ (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xkb:GetMap~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (present :initarg :present :type xcb:CARD16)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (totalTypes :initarg :totalTypes :type xcb:CARD8)
+ (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE)
+ (totalSyms :initarg :totalSyms :type xcb:CARD16)
+ (nKeySyms :initarg :nKeySyms :type xcb:CARD8)
+ (firstKeyAction :initarg :firstKeyAction :type xcb:KEYCODE)
+ (totalActions :initarg :totalActions :type xcb:CARD16)
+ (nKeyActions :initarg :nKeyActions :type xcb:CARD8)
+ (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE)
+ (nKeyBehaviors :initarg :nKeyBehaviors :type xcb:CARD8)
+ (totalKeyBehaviors :initarg :totalKeyBehaviors :type xcb:CARD8)
+ (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE)
+ (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8)
+ (totalKeyExplicit :initarg :totalKeyExplicit :type xcb:CARD8)
+ (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE)
+ (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8)
+ (totalModMapKeys :initarg :totalModMapKeys :type xcb:CARD8)
+ (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE)
+ (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8)
+ (totalVModMapKeys :initarg :totalVModMapKeys :type xcb:CARD8)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (map :initform
+ '(expression
+ (xcb:-fieldref 'present)
+ cases
+ ((xcb:xkb:MapPart:KeyTypes types-rtrn)
+ (xcb:xkb:MapPart:KeySyms syms-rtrn)
+ (xcb:xkb:MapPart:KeyActions acts-rtrn-count pad~10 acts-rtrn-acts)
+ (xcb:xkb:MapPart:KeyBehaviors behaviors-rtrn)
+ (xcb:xkb:MapPart:VirtualMods vmods-rtrn pad~11)
+ (xcb:xkb:MapPart:ExplicitComponents explicit-rtrn pad~12)
+ (xcb:xkb:MapPart:ModifierMap modmap-rtrn pad~13)
+ (xcb:xkb:MapPart:VirtualModMap vmodmap-rtrn)))
+ :type xcb:-switch)
+ (types-rtrn :initarg :types-rtrn :type xcb:-ignore)
+ (types-rtrn~ :initform
+ '(name types-rtrn type xcb:xkb:KeyType size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (syms-rtrn :initarg :syms-rtrn :type xcb:-ignore)
+ (syms-rtrn~ :initform
+ '(name syms-rtrn type xcb:xkb:KeySymMap size
+ (xcb:-fieldref 'nKeySyms))
+ :type xcb:-list)
+ (acts-rtrn-count :initarg :acts-rtrn-count :type xcb:-ignore)
+ (acts-rtrn-count~ :initform
+ '(name acts-rtrn-count type xcb:CARD8 size
+ (xcb:-fieldref 'nKeyActions))
+ :type xcb:-list)
+ (pad~10 :initform 4 :type xcb:-pad-align)
+ (acts-rtrn-acts :initarg :acts-rtrn-acts :type xcb:-ignore)
+ (acts-rtrn-acts~ :initform
+ '(name acts-rtrn-acts type xcb:xkb:Action size
+ (xcb:-fieldref 'totalActions))
+ :type xcb:-list)
+ (behaviors-rtrn :initarg :behaviors-rtrn :type xcb:-ignore)
+ (behaviors-rtrn~ :initform
+ '(name behaviors-rtrn type xcb:xkb:SetBehavior size
+ (xcb:-fieldref 'totalKeyBehaviors))
+ :type xcb:-list)
+ (vmods-rtrn :initarg :vmods-rtrn :type xcb:-ignore)
+ (vmods-rtrn~ :initform
+ '(name vmods-rtrn type xcb:CARD8 size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (pad~11 :initform 4 :type xcb:-pad-align)
+ (explicit-rtrn :initarg :explicit-rtrn :type xcb:-ignore)
+ (explicit-rtrn~ :initform
+ '(name explicit-rtrn type xcb:xkb:SetExplicit size
+ (xcb:-fieldref 'totalKeyExplicit))
+ :type xcb:-list)
+ (pad~12 :initform 4 :type xcb:-pad-align)
+ (modmap-rtrn :initarg :modmap-rtrn :type xcb:-ignore)
+ (modmap-rtrn~ :initform
+ '(name modmap-rtrn type xcb:xkb:KeyModMap size
+ (xcb:-fieldref 'totalModMapKeys))
+ :type xcb:-list)
+ (pad~13 :initform 4 :type xcb:-pad-align)
+ (vmodmap-rtrn :initarg :vmodmap-rtrn :type xcb:-ignore)
+ (vmodmap-rtrn~ :initform
+ '(name vmodmap-rtrn type xcb:xkb:KeyVModMap size
+ (xcb:-fieldref 'totalVModMapKeys))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetMap
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (present :initarg :present :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:CARD16)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE)
+ (nKeySyms :initarg :nKeySyms :type xcb:CARD8)
+ (totalSyms :initarg :totalSyms :type xcb:CARD16)
+ (firstKeyAction :initarg :firstKeyAction :type xcb:KEYCODE)
+ (nKeyActions :initarg :nKeyActions :type xcb:CARD8)
+ (totalActions :initarg :totalActions :type xcb:CARD16)
+ (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE)
+ (nKeyBehaviors :initarg :nKeyBehaviors :type xcb:CARD8)
+ (totalKeyBehaviors :initarg :totalKeyBehaviors :type xcb:CARD8)
+ (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE)
+ (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8)
+ (totalKeyExplicit :initarg :totalKeyExplicit :type xcb:CARD8)
+ (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE)
+ (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8)
+ (totalModMapKeys :initarg :totalModMapKeys :type xcb:CARD8)
+ (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE)
+ (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8)
+ (totalVModMapKeys :initarg :totalVModMapKeys :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (values :initform
+ '(expression
+ (xcb:-fieldref 'present)
+ cases
+ ((xcb:xkb:MapPart:KeyTypes types)
+ (xcb:xkb:MapPart:KeySyms syms)
+ (xcb:xkb:MapPart:KeyActions actionsCount actions)
+ (xcb:xkb:MapPart:KeyBehaviors behaviors)
+ (xcb:xkb:MapPart:VirtualMods vmods)
+ (xcb:xkb:MapPart:ExplicitComponents explicit)
+ (xcb:xkb:MapPart:ModifierMap modmap)
+ (xcb:xkb:MapPart:VirtualModMap vmodmap)))
+ :type xcb:-switch)
+ (types :initarg :types :type xcb:-ignore)
+ (types~ :initform
+ '(name types type xcb:xkb:SetKeyType size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (syms :initarg :syms :type xcb:-ignore)
+ (syms~ :initform
+ '(name syms type xcb:xkb:KeySymMap size
+ (xcb:-fieldref 'nKeySyms))
+ :type xcb:-list)
+ (actionsCount :initarg :actionsCount :type xcb:-ignore)
+ (actionsCount~ :initform
+ '(name actionsCount type xcb:CARD8 size
+ (xcb:-fieldref 'nKeyActions))
+ :type xcb:-list)
+ (actions :initarg :actions :type xcb:-ignore)
+ (actions~ :initform
+ '(name actions type xcb:xkb:Action size
+ (xcb:-fieldref 'totalActions))
+ :type xcb:-list)
+ (behaviors :initarg :behaviors :type xcb:-ignore)
+ (behaviors~ :initform
+ '(name behaviors type xcb:xkb:SetBehavior size
+ (xcb:-fieldref 'totalKeyBehaviors))
+ :type xcb:-list)
+ (vmods :initarg :vmods :type xcb:-ignore)
+ (vmods~ :initform
+ '(name vmods type xcb:CARD8 size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (explicit :initarg :explicit :type xcb:-ignore)
+ (explicit~ :initform
+ '(name explicit type xcb:xkb:SetExplicit size
+ (xcb:-fieldref 'totalKeyExplicit))
+ :type xcb:-list)
+ (modmap :initarg :modmap :type xcb:-ignore)
+ (modmap~ :initform
+ '(name modmap type xcb:xkb:KeyModMap size
+ (xcb:-fieldref 'totalModMapKeys))
+ :type xcb:-list)
+ (vmodmap :initarg :vmodmap :type xcb:-ignore)
+ (vmodmap~ :initform
+ '(name vmodmap type xcb:xkb:KeyVModMap size
+ (xcb:-fieldref 'totalVModMapKeys))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:GetCompatMap
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (groups :initarg :groups :type xcb:CARD8)
+ (getAllSI :initarg :getAllSI :type xcb:BOOL)
+ (firstSI :initarg :firstSI :type xcb:CARD16)
+ (nSI :initarg :nSI :type xcb:CARD16)))
+(defclass xcb:xkb:GetCompatMap~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (groupsRtrn :initarg :groupsRtrn :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (firstSIRtrn :initarg :firstSIRtrn :type xcb:CARD16)
+ (nSIRtrn :initarg :nSIRtrn :type xcb:CARD16)
+ (nTotalSI :initarg :nTotalSI :type xcb:CARD16)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (si-rtrn :initarg :si-rtrn :type xcb:-ignore)
+ (si-rtrn~ :initform
+ '(name si-rtrn type xcb:xkb:SymInterpret size
+ (xcb:-fieldref 'nSIRtrn))
+ :type xcb:-list)
+ (group-rtrn :initarg :group-rtrn :type xcb:-ignore)
+ (group-rtrn~ :initform
+ '(name group-rtrn type xcb:xkb:ModDef size
+ (xcb:-popcount
+ (xcb:-fieldref 'groupsRtrn)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetCompatMap
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (recomputeActions :initarg :recomputeActions :type xcb:BOOL)
+ (truncateSI :initarg :truncateSI :type xcb:BOOL)
+ (groups :initarg :groups :type xcb:CARD8)
+ (firstSI :initarg :firstSI :type xcb:CARD16)
+ (nSI :initarg :nSI :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (si :initarg :si :type xcb:-ignore)
+ (si~ :initform
+ '(name si type xcb:xkb:SymInterpret size
+ (xcb:-fieldref 'nSI))
+ :type xcb:-list)
+ (groupMaps :initarg :groupMaps :type xcb:-ignore)
+ (groupMaps~ :initform
+ '(name groupMaps type xcb:xkb:ModDef size
+ (xcb:-popcount
+ (xcb:-fieldref 'groups)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:GetIndicatorState
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:xkb:GetIndicatorState~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (state :initarg :state :type xcb:CARD32)
+ (pad~0 :initform 20 :type xcb:-pad)))
+
+(defclass xcb:xkb:GetIndicatorMap
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (which :initarg :which :type xcb:CARD32)))
+(defclass xcb:xkb:GetIndicatorMap~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (which :initarg :which :type xcb:CARD32)
+ (realIndicators :initarg :realIndicators :type xcb:CARD32)
+ (nIndicators :initarg :nIndicators :type xcb:CARD8)
+ (pad~0 :initform 15 :type xcb:-pad)
+ (maps :initarg :maps :type xcb:-ignore)
+ (maps~ :initform
+ '(name maps type xcb:xkb:IndicatorMap size
+ (xcb:-popcount
+ (xcb:-fieldref 'which)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetIndicatorMap
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (which :initarg :which :type xcb:CARD32)
+ (maps :initarg :maps :type xcb:-ignore)
+ (maps~ :initform
+ '(name maps type xcb:xkb:IndicatorMap size
+ (xcb:-popcount
+ (xcb:-fieldref 'which)))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:GetNamedIndicator
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (ledClass :initarg :ledClass :type xcb:xkb:LedClassSpec)
+ (ledID :initarg :ledID :type xcb:xkb:IDSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (indicator :initarg :indicator :type xcb:ATOM)))
+(defclass xcb:xkb:GetNamedIndicator~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (indicator :initarg :indicator :type xcb:ATOM)
+ (found :initarg :found :type xcb:BOOL)
+ (on :initarg :on :type xcb:BOOL)
+ (realIndicator :initarg :realIndicator :type xcb:BOOL)
+ (ndx :initarg :ndx :type xcb:CARD8)
+ (map-flags :initarg :map-flags :type xcb:CARD8)
+ (map-whichGroups :initarg :map-whichGroups :type xcb:CARD8)
+ (map-groups :initarg :map-groups :type xcb:CARD8)
+ (map-whichMods :initarg :map-whichMods :type xcb:CARD8)
+ (map-mods :initarg :map-mods :type xcb:CARD8)
+ (map-realMods :initarg :map-realMods :type xcb:CARD8)
+ (map-vmod :initarg :map-vmod :type xcb:CARD16)
+ (map-ctrls :initarg :map-ctrls :type xcb:CARD32)
+ (supported :initarg :supported :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xkb:SetNamedIndicator
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (ledClass :initarg :ledClass :type xcb:xkb:LedClassSpec)
+ (ledID :initarg :ledID :type xcb:xkb:IDSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (indicator :initarg :indicator :type xcb:ATOM)
+ (setState :initarg :setState :type xcb:BOOL)
+ (on :initarg :on :type xcb:BOOL)
+ (setMap :initarg :setMap :type xcb:BOOL)
+ (createMap :initarg :createMap :type xcb:BOOL)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (map-flags :initarg :map-flags :type xcb:CARD8)
+ (map-whichGroups :initarg :map-whichGroups :type xcb:CARD8)
+ (map-groups :initarg :map-groups :type xcb:CARD8)
+ (map-whichMods :initarg :map-whichMods :type xcb:CARD8)
+ (map-realMods :initarg :map-realMods :type xcb:CARD8)
+ (map-vmods :initarg :map-vmods :type xcb:CARD16)
+ (map-ctrls :initarg :map-ctrls :type xcb:CARD32)))
+
+(defclass xcb:xkb:GetNames
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (which :initarg :which :type xcb:CARD32)))
+(defclass xcb:xkb:GetNames~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (which :initarg :which :type xcb:CARD32)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (groupNames :initarg :groupNames :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (firstKey :initarg :firstKey :type xcb:KEYCODE)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (indicators :initarg :indicators :type xcb:CARD32)
+ (nRadioGroups :initarg :nRadioGroups :type xcb:CARD8)
+ (nKeyAliases :initarg :nKeyAliases :type xcb:CARD8)
+ (nKTLevels :initarg :nKTLevels :type xcb:CARD16)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (valueList :initform
+ '(expression
+ (xcb:-fieldref 'which)
+ cases
+ ((xcb:xkb:NameDetail:Keycodes keycodesName)
+ (xcb:xkb:NameDetail:Geometry geometryName)
+ (xcb:xkb:NameDetail:Symbols symbolsName)
+ (xcb:xkb:NameDetail:PhysSymbols physSymbolsName)
+ (xcb:xkb:NameDetail:Types typesName)
+ (xcb:xkb:NameDetail:Compat compatName)
+ (xcb:xkb:NameDetail:KeyTypeNames typeNames)
+ (xcb:xkb:NameDetail:KTLevelNames nLevelsPerType alignment-pad
ktLevelNames)
+ (xcb:xkb:NameDetail:IndicatorNames indicatorNames)
+ (xcb:xkb:NameDetail:VirtualModNames virtualModNames)
+ (xcb:xkb:NameDetail:GroupNames groups)
+ (xcb:xkb:NameDetail:KeyNames keyNames)
+ (xcb:xkb:NameDetail:KeyAliases keyAliases)
+ (xcb:xkb:NameDetail:RGNames radioGroupNames)))
+ :type xcb:-switch)
+ (keycodesName :initarg :keycodesName :type xcb:ATOM)
+ (geometryName :initarg :geometryName :type xcb:ATOM)
+ (symbolsName :initarg :symbolsName :type xcb:ATOM)
+ (physSymbolsName :initarg :physSymbolsName :type xcb:ATOM)
+ (typesName :initarg :typesName :type xcb:ATOM)
+ (compatName :initarg :compatName :type xcb:ATOM)
+ (typeNames :initarg :typeNames :type xcb:-ignore)
+ (typeNames~ :initform
+ '(name typeNames type xcb:ATOM size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
+ (nLevelsPerType~ :initform
+ '(name nLevelsPerType type xcb:CARD8 size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (alignment-pad :initarg :alignment-pad :type xcb:-ignore)
+ (alignment-pad~ :initform
+ '(name alignment-pad type xcb:CARD8 size
+ (-
+ (logand
+ (+
+ (xcb:-fieldref 'nTypes)
+ 3)
+ (lognot
+ (parse-expression
+ (node-subnode node))))
+ (xcb:-fieldref 'nTypes)))
+ :type xcb:-list)
+ (ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
+ (ktLevelNames~ :initform
+ '(name ktLevelNames type xcb:ATOM size
+ (apply '+
+ (slot-value obj 'nLevelsPerType)))
+ :type xcb:-list)
+ (indicatorNames :initarg :indicatorNames :type xcb:-ignore)
+ (indicatorNames~ :initform
+ '(name indicatorNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'indicators)))
+ :type xcb:-list)
+ (virtualModNames :initarg :virtualModNames :type xcb:-ignore)
+ (virtualModNames~ :initform
+ '(name virtualModNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (groups :initarg :groups :type xcb:-ignore)
+ (groups~ :initform
+ '(name groups type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'groupNames)))
+ :type xcb:-list)
+ (keyNames :initarg :keyNames :type xcb:-ignore)
+ (keyNames~ :initform
+ '(name keyNames type xcb:xkb:KeyName size
+ (xcb:-fieldref 'nKeys))
+ :type xcb:-list)
+ (keyAliases :initarg :keyAliases :type xcb:-ignore)
+ (keyAliases~ :initform
+ '(name keyAliases type xcb:xkb:KeyAlias size
+ (xcb:-fieldref 'nKeyAliases))
+ :type xcb:-list)
+ (radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)
+ (radioGroupNames~ :initform
+ '(name radioGroupNames type xcb:ATOM size
+ (xcb:-fieldref 'nRadioGroups))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetNames
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (which :initarg :which :type xcb:CARD32)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (firstKTLevelt :initarg :firstKTLevelt :type xcb:CARD8)
+ (nKTLevels :initarg :nKTLevels :type xcb:CARD8)
+ (indicators :initarg :indicators :type xcb:CARD32)
+ (groupNames :initarg :groupNames :type xcb:CARD8)
+ (nRadioGroups :initarg :nRadioGroups :type xcb:CARD8)
+ (firstKey :initarg :firstKey :type xcb:KEYCODE)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (nKeyAliases :initarg :nKeyAliases :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (totalKTLevelNames :initarg :totalKTLevelNames :type xcb:CARD16)
+ (values :initform
+ '(expression
+ (xcb:-fieldref 'which)
+ cases
+ ((xcb:xkb:NameDetail:Keycodes keycodesName)
+ (xcb:xkb:NameDetail:Geometry geometryName)
+ (xcb:xkb:NameDetail:Symbols symbolsName)
+ (xcb:xkb:NameDetail:PhysSymbols physSymbolsName)
+ (xcb:xkb:NameDetail:Types typesName)
+ (xcb:xkb:NameDetail:Compat compatName)
+ (xcb:xkb:NameDetail:KeyTypeNames typeNames)
+ (xcb:xkb:NameDetail:KTLevelNames nLevelsPerType ktLevelNames)
+ (xcb:xkb:NameDetail:IndicatorNames indicatorNames)
+ (xcb:xkb:NameDetail:VirtualModNames virtualModNames)
+ (xcb:xkb:NameDetail:GroupNames groups)
+ (xcb:xkb:NameDetail:KeyNames keyNames)
+ (xcb:xkb:NameDetail:KeyAliases keyAliases)
+ (xcb:xkb:NameDetail:RGNames radioGroupNames)))
+ :type xcb:-switch)
+ (keycodesName :initarg :keycodesName :type xcb:ATOM)
+ (geometryName :initarg :geometryName :type xcb:ATOM)
+ (symbolsName :initarg :symbolsName :type xcb:ATOM)
+ (physSymbolsName :initarg :physSymbolsName :type xcb:ATOM)
+ (typesName :initarg :typesName :type xcb:ATOM)
+ (compatName :initarg :compatName :type xcb:ATOM)
+ (typeNames :initarg :typeNames :type xcb:-ignore)
+ (typeNames~ :initform
+ '(name typeNames type xcb:ATOM size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
+ (nLevelsPerType~ :initform
+ '(name nLevelsPerType type xcb:CARD8 size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
+ (ktLevelNames~ :initform
+ '(name ktLevelNames type xcb:ATOM size
+ (apply '+
+ (slot-value obj 'nLevelsPerType)))
+ :type xcb:-list)
+ (indicatorNames :initarg :indicatorNames :type xcb:-ignore)
+ (indicatorNames~ :initform
+ '(name indicatorNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'indicators)))
+ :type xcb:-list)
+ (virtualModNames :initarg :virtualModNames :type xcb:-ignore)
+ (virtualModNames~ :initform
+ '(name virtualModNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (groups :initarg :groups :type xcb:-ignore)
+ (groups~ :initform
+ '(name groups type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'groupNames)))
+ :type xcb:-list)
+ (keyNames :initarg :keyNames :type xcb:-ignore)
+ (keyNames~ :initform
+ '(name keyNames type xcb:xkb:KeyName size
+ (xcb:-fieldref 'nKeys))
+ :type xcb:-list)
+ (keyAliases :initarg :keyAliases :type xcb:-ignore)
+ (keyAliases~ :initform
+ '(name keyAliases type xcb:xkb:KeyAlias size
+ (xcb:-fieldref 'nKeyAliases))
+ :type xcb:-list)
+ (radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)
+ (radioGroupNames~ :initform
+ '(name radioGroupNames type xcb:ATOM size
+ (xcb:-fieldref 'nRadioGroups))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:PerClientFlags
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (change :initarg :change :type xcb:CARD32)
+ (value :initarg :value :type xcb:CARD32)
+ (ctrlsToChange :initarg :ctrlsToChange :type xcb:CARD32)
+ (autoCtrls :initarg :autoCtrls :type xcb:CARD32)
+ (autoCtrlsValues :initarg :autoCtrlsValues :type xcb:CARD32)))
+(defclass xcb:xkb:PerClientFlags~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (supported :initarg :supported :type xcb:CARD32)
+ (value :initarg :value :type xcb:CARD32)
+ (autoCtrls :initarg :autoCtrls :type xcb:CARD32)
+ (autoCtrlsValues :initarg :autoCtrlsValues :type xcb:CARD32)
+ (pad~0 :initform 8 :type xcb:-pad)))
+
+(defclass xcb:xkb:ListComponents
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (maxNames :initarg :maxNames :type xcb:CARD16)))
+(defclass xcb:xkb:ListComponents~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (nKeymaps :initarg :nKeymaps :type xcb:CARD16)
+ (nKeycodes :initarg :nKeycodes :type xcb:CARD16)
+ (nTypes :initarg :nTypes :type xcb:CARD16)
+ (nCompatMaps :initarg :nCompatMaps :type xcb:CARD16)
+ (nSymbols :initarg :nSymbols :type xcb:CARD16)
+ (nGeometries :initarg :nGeometries :type xcb:CARD16)
+ (extra :initarg :extra :type xcb:CARD16)
+ (pad~0 :initform 10 :type xcb:-pad)
+ (keymaps :initarg :keymaps :type xcb:-ignore)
+ (keymaps~ :initform
+ '(name keymaps type xcb:xkb:Listing size
+ (xcb:-fieldref 'nKeymaps))
+ :type xcb:-list)
+ (keycodes :initarg :keycodes :type xcb:-ignore)
+ (keycodes~ :initform
+ '(name keycodes type xcb:xkb:Listing size
+ (xcb:-fieldref 'nKeycodes))
+ :type xcb:-list)
+ (types :initarg :types :type xcb:-ignore)
+ (types~ :initform
+ '(name types type xcb:xkb:Listing size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (compatMaps :initarg :compatMaps :type xcb:-ignore)
+ (compatMaps~ :initform
+ '(name compatMaps type xcb:xkb:Listing size
+ (xcb:-fieldref 'nCompatMaps))
+ :type xcb:-list)
+ (symbols :initarg :symbols :type xcb:-ignore)
+ (symbols~ :initform
+ '(name symbols type xcb:xkb:Listing size
+ (xcb:-fieldref 'nSymbols))
+ :type xcb:-list)
+ (geometries :initarg :geometries :type xcb:-ignore)
+ (geometries~ :initform
+ '(name geometries type xcb:xkb:Listing size
+ (xcb:-fieldref 'nGeometries))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:GetKbdByName
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (need :initarg :need :type xcb:CARD16)
+ (want :initarg :want :type xcb:CARD16)
+ (load :initarg :load :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)))
+(defclass xcb:xkb:GetKbdByName~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (loaded :initarg :loaded :type xcb:BOOL)
+ (newKeyboard :initarg :newKeyboard :type xcb:BOOL)
+ (found :initarg :found :type xcb:CARD16)
+ (reported :initarg :reported :type xcb:CARD16)
+ (pad~0 :initform 16 :type xcb:-pad)
+ (replies :initform
+ '(expression
+ (xcb:-fieldref 'reported)
+ cases
+ (((logior xcb:xkb:GBNDetail:Types xcb:xkb:GBNDetail:ClientSymbols
xcb:xkb:GBNDetail:ServerSymbols)
+ nil getmap-type nil typeDeviceID nil getmap-sequence
getmap-length nil pad~10 typeMinKeyCode typeMaxKeyCode present firstType nTypes
totalTypes firstKeySym totalSyms nKeySyms firstKeyAction totalActions
nKeyActions firstKeyBehavior nKeyBehaviors totalKeyBehaviors firstKeyExplicit
nKeyExplicit totalKeyExplicit firstModMapKey nModMapKeys totalModMapKeys
firstVModMapKey nVModMapKeys totalVModMapKeys pad~11 virtualMods map)
+ (xcb:xkb:GBNDetail:CompatMap nil compatmap-type compatDeviceID
compatmap-sequence compatmap-length nil groupsRtrn pad~12 firstSIRtrn nSIRtrn
nTotalSI pad~13 si-rtrn group-rtrn)
+ (xcb:xkb:GBNDetail:IndicatorMaps nil indicatormap-type
indicatorDeviceID indicatormap-sequence indicatormap-length nil which
realIndicators nIndicators pad~14 maps)
+ ((logior xcb:xkb:GBNDetail:KeyNames xcb:xkb:GBNDetail:OtherNames)
+ nil keyname-type keyDeviceID keyname-sequence keyname-length
nil which* keyMinKeyCode keyMaxKeyCode nTypes* groupNames virtualMods* firstKey
nKeys indicators nRadioGroups nKeyAliases nKTLevels pad~15 valueList)
+ (xcb:xkb:GBNDetail:Geometry nil geometry-type geometryDeviceID
geometry-sequence geometry-length nil name geometryFound pad~16 widthMM
heightMM nProperties nColors nShapes nSections nDoodads nKeyAliases*
baseColorNdx labelColorNdx labelFont nil nil)))
+ :type xcb:-switch)
+ (getmap-type :initarg :getmap-type :type xcb:CARD8)
+ (typeDeviceID :initarg :typeDeviceID :type xcb:CARD8)
+ (getmap-sequence :initarg :getmap-sequence :type xcb:CARD16)
+ (getmap-length :initarg :getmap-length :type xcb:CARD32)
+ (pad~10 :initform 2 :type xcb:-pad)
+ (typeMinKeyCode :initarg :typeMinKeyCode :type xcb:KEYCODE)
+ (typeMaxKeyCode :initarg :typeMaxKeyCode :type xcb:KEYCODE)
+ (present :initarg :present :type xcb:CARD16)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (totalTypes :initarg :totalTypes :type xcb:CARD8)
+ (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE)
+ (totalSyms :initarg :totalSyms :type xcb:CARD16)
+ (nKeySyms :initarg :nKeySyms :type xcb:CARD8)
+ (firstKeyAction :initarg :firstKeyAction :type xcb:KEYCODE)
+ (totalActions :initarg :totalActions :type xcb:CARD16)
+ (nKeyActions :initarg :nKeyActions :type xcb:CARD8)
+ (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE)
+ (nKeyBehaviors :initarg :nKeyBehaviors :type xcb:CARD8)
+ (totalKeyBehaviors :initarg :totalKeyBehaviors :type xcb:CARD8)
+ (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE)
+ (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8)
+ (totalKeyExplicit :initarg :totalKeyExplicit :type xcb:CARD8)
+ (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE)
+ (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8)
+ (totalModMapKeys :initarg :totalModMapKeys :type xcb:CARD8)
+ (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE)
+ (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8)
+ (totalVModMapKeys :initarg :totalVModMapKeys :type xcb:CARD8)
+ (pad~11 :initform 1 :type xcb:-pad)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (map :initform
+ '(expression
+ (xcb:-fieldref 'present)
+ cases
+ ((xcb:xkb:MapPart:KeyTypes types-rtrn)
+ (xcb:xkb:MapPart:KeySyms syms-rtrn)
+ (xcb:xkb:MapPart:KeyActions acts-rtrn-count acts-rtrn-acts)
+ (xcb:xkb:MapPart:KeyBehaviors behaviors-rtrn)
+ (xcb:xkb:MapPart:VirtualMods vmods-rtrn)
+ (xcb:xkb:MapPart:ExplicitComponents explicit-rtrn)
+ (xcb:xkb:MapPart:ModifierMap modmap-rtrn)
+ (xcb:xkb:MapPart:VirtualModMap vmodmap-rtrn)))
+ :type xcb:-switch)
+ (types-rtrn :initarg :types-rtrn :type xcb:-ignore)
+ (types-rtrn~ :initform
+ '(name types-rtrn type xcb:xkb:KeyType size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (syms-rtrn :initarg :syms-rtrn :type xcb:-ignore)
+ (syms-rtrn~ :initform
+ '(name syms-rtrn type xcb:xkb:KeySymMap size
+ (xcb:-fieldref 'nKeySyms))
+ :type xcb:-list)
+ (acts-rtrn-count :initarg :acts-rtrn-count :type xcb:-ignore)
+ (acts-rtrn-count~ :initform
+ '(name acts-rtrn-count type xcb:CARD8 size
+ (xcb:-fieldref 'nKeyActions))
+ :type xcb:-list)
+ (acts-rtrn-acts :initarg :acts-rtrn-acts :type xcb:-ignore)
+ (acts-rtrn-acts~ :initform
+ '(name acts-rtrn-acts type xcb:xkb:Action size
+ (xcb:-fieldref 'totalActions))
+ :type xcb:-list)
+ (behaviors-rtrn :initarg :behaviors-rtrn :type xcb:-ignore)
+ (behaviors-rtrn~ :initform
+ '(name behaviors-rtrn type xcb:xkb:SetBehavior size
+ (xcb:-fieldref 'totalKeyBehaviors))
+ :type xcb:-list)
+ (vmods-rtrn :initarg :vmods-rtrn :type xcb:-ignore)
+ (vmods-rtrn~ :initform
+ '(name vmods-rtrn type xcb:CARD8 size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (explicit-rtrn :initarg :explicit-rtrn :type xcb:-ignore)
+ (explicit-rtrn~ :initform
+ '(name explicit-rtrn type xcb:xkb:SetExplicit size
+ (xcb:-fieldref 'totalKeyExplicit))
+ :type xcb:-list)
+ (modmap-rtrn :initarg :modmap-rtrn :type xcb:-ignore)
+ (modmap-rtrn~ :initform
+ '(name modmap-rtrn type xcb:xkb:KeyModMap size
+ (xcb:-fieldref 'totalModMapKeys))
+ :type xcb:-list)
+ (vmodmap-rtrn :initarg :vmodmap-rtrn :type xcb:-ignore)
+ (vmodmap-rtrn~ :initform
+ '(name vmodmap-rtrn type xcb:xkb:KeyVModMap size
+ (xcb:-fieldref 'totalVModMapKeys))
+ :type xcb:-list)
+ (compatmap-type :initarg :compatmap-type :type xcb:CARD8)
+ (compatDeviceID :initarg :compatDeviceID :type xcb:CARD8)
+ (compatmap-sequence :initarg :compatmap-sequence :type xcb:CARD16)
+ (compatmap-length :initarg :compatmap-length :type xcb:CARD32)
+ (groupsRtrn :initarg :groupsRtrn :type xcb:CARD8)
+ (pad~12 :initform 1 :type xcb:-pad)
+ (firstSIRtrn :initarg :firstSIRtrn :type xcb:CARD16)
+ (nSIRtrn :initarg :nSIRtrn :type xcb:CARD16)
+ (nTotalSI :initarg :nTotalSI :type xcb:CARD16)
+ (pad~13 :initform 16 :type xcb:-pad)
+ (si-rtrn :initarg :si-rtrn :type xcb:-ignore)
+ (si-rtrn~ :initform
+ '(name si-rtrn type xcb:xkb:SymInterpret size
+ (xcb:-fieldref 'nSIRtrn))
+ :type xcb:-list)
+ (group-rtrn :initarg :group-rtrn :type xcb:-ignore)
+ (group-rtrn~ :initform
+ '(name group-rtrn type xcb:xkb:ModDef size
+ (xcb:-popcount
+ (xcb:-fieldref 'groupsRtrn)))
+ :type xcb:-list)
+ (indicatormap-type :initarg :indicatormap-type :type xcb:CARD8)
+ (indicatorDeviceID :initarg :indicatorDeviceID :type xcb:CARD8)
+ (indicatormap-sequence :initarg :indicatormap-sequence :type xcb:CARD16)
+ (indicatormap-length :initarg :indicatormap-length :type xcb:CARD32)
+ (which :initarg :which :type xcb:CARD32)
+ (realIndicators :initarg :realIndicators :type xcb:CARD32)
+ (nIndicators :initarg :nIndicators :type xcb:CARD8)
+ (pad~14 :initform 15 :type xcb:-pad)
+ (maps :initarg :maps :type xcb:-ignore)
+ (maps~ :initform
+ '(name maps type xcb:xkb:IndicatorMap size
+ (xcb:-fieldref 'nIndicators))
+ :type xcb:-list)
+ (keyname-type :initarg :keyname-type :type xcb:CARD8)
+ (keyDeviceID :initarg :keyDeviceID :type xcb:CARD8)
+ (keyname-sequence :initarg :keyname-sequence :type xcb:CARD16)
+ (keyname-length :initarg :keyname-length :type xcb:CARD32)
+ (which* :initarg :which* :type xcb:CARD32)
+ (keyMinKeyCode :initarg :keyMinKeyCode :type xcb:KEYCODE)
+ (keyMaxKeyCode :initarg :keyMaxKeyCode :type xcb:KEYCODE)
+ (nTypes* :initarg :nTypes* :type xcb:CARD8)
+ (groupNames :initarg :groupNames :type xcb:CARD8)
+ (virtualMods* :initarg :virtualMods* :type xcb:CARD16)
+ (firstKey :initarg :firstKey :type xcb:KEYCODE)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (indicators :initarg :indicators :type xcb:CARD32)
+ (nRadioGroups :initarg :nRadioGroups :type xcb:CARD8)
+ (nKeyAliases :initarg :nKeyAliases :type xcb:CARD8)
+ (nKTLevels :initarg :nKTLevels :type xcb:CARD16)
+ (pad~15 :initform 4 :type xcb:-pad)
+ (valueList :initform
+ '(expression
+ (xcb:-fieldref 'which)
+ cases
+ ((xcb:xkb:NameDetail:Keycodes keycodesName)
+ (xcb:xkb:NameDetail:Geometry geometryName)
+ (xcb:xkb:NameDetail:Symbols symbolsName)
+ (xcb:xkb:NameDetail:PhysSymbols physSymbolsName)
+ (xcb:xkb:NameDetail:Types typesName)
+ (xcb:xkb:NameDetail:Compat compatName)
+ (xcb:xkb:NameDetail:KeyTypeNames typeNames)
+ (xcb:xkb:NameDetail:KTLevelNames nLevelsPerType ktLevelNames)
+ (xcb:xkb:NameDetail:IndicatorNames indicatorNames)
+ (xcb:xkb:NameDetail:VirtualModNames virtualModNames)
+ (xcb:xkb:NameDetail:GroupNames groups)
+ (xcb:xkb:NameDetail:KeyNames keyNames)
+ (xcb:xkb:NameDetail:KeyAliases keyAliases)
+ (xcb:xkb:NameDetail:RGNames radioGroupNames)))
+ :type xcb:-switch)
+ (keycodesName :initarg :keycodesName :type xcb:ATOM)
+ (geometryName :initarg :geometryName :type xcb:ATOM)
+ (symbolsName :initarg :symbolsName :type xcb:ATOM)
+ (physSymbolsName :initarg :physSymbolsName :type xcb:ATOM)
+ (typesName :initarg :typesName :type xcb:ATOM)
+ (compatName :initarg :compatName :type xcb:ATOM)
+ (typeNames :initarg :typeNames :type xcb:-ignore)
+ (typeNames~ :initform
+ '(name typeNames type xcb:ATOM size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
+ (nLevelsPerType~ :initform
+ '(name nLevelsPerType type xcb:CARD8 size
+ (xcb:-fieldref 'nTypes))
+ :type xcb:-list)
+ (ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
+ (ktLevelNames~ :initform
+ '(name ktLevelNames type xcb:ATOM size
+ (apply '+
+ (slot-value obj 'nLevelsPerType)))
+ :type xcb:-list)
+ (indicatorNames :initarg :indicatorNames :type xcb:-ignore)
+ (indicatorNames~ :initform
+ '(name indicatorNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'indicators)))
+ :type xcb:-list)
+ (virtualModNames :initarg :virtualModNames :type xcb:-ignore)
+ (virtualModNames~ :initform
+ '(name virtualModNames type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'virtualMods)))
+ :type xcb:-list)
+ (groups :initarg :groups :type xcb:-ignore)
+ (groups~ :initform
+ '(name groups type xcb:ATOM size
+ (xcb:-popcount
+ (xcb:-fieldref 'groupNames)))
+ :type xcb:-list)
+ (keyNames :initarg :keyNames :type xcb:-ignore)
+ (keyNames~ :initform
+ '(name keyNames type xcb:xkb:KeyName size
+ (xcb:-fieldref 'nKeys))
+ :type xcb:-list)
+ (keyAliases :initarg :keyAliases :type xcb:-ignore)
+ (keyAliases~ :initform
+ '(name keyAliases type xcb:xkb:KeyAlias size
+ (xcb:-fieldref 'nKeyAliases))
+ :type xcb:-list)
+ (radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)
+ (radioGroupNames~ :initform
+ '(name radioGroupNames type xcb:ATOM size
+ (xcb:-fieldref 'nRadioGroups))
+ :type xcb:-list)
+ (geometry-type :initarg :geometry-type :type xcb:CARD8)
+ (geometryDeviceID :initarg :geometryDeviceID :type xcb:CARD8)
+ (geometry-sequence :initarg :geometry-sequence :type xcb:CARD16)
+ (geometry-length :initarg :geometry-length :type xcb:CARD32)
+ (name :initarg :name :type xcb:ATOM)
+ (geometryFound :initarg :geometryFound :type xcb:BOOL)
+ (pad~16 :initform 1 :type xcb:-pad)
+ (widthMM :initarg :widthMM :type xcb:CARD16)
+ (heightMM :initarg :heightMM :type xcb:CARD16)
+ (nProperties :initarg :nProperties :type xcb:CARD16)
+ (nColors :initarg :nColors :type xcb:CARD16)
+ (nShapes :initarg :nShapes :type xcb:CARD16)
+ (nSections :initarg :nSections :type xcb:CARD16)
+ (nDoodads :initarg :nDoodads :type xcb:CARD16)
+ (nKeyAliases* :initarg :nKeyAliases* :type xcb:CARD16)
+ (baseColorNdx :initarg :baseColorNdx :type xcb:CARD8)
+ (labelColorNdx :initarg :labelColorNdx :type xcb:CARD8)
+ (labelFont :initarg :labelFont :type xcb:xkb:CountedString16)))
+
+(defclass xcb:xkb:GetDeviceInfo
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (wanted :initarg :wanted :type xcb:CARD16)
+ (allButtons :initarg :allButtons :type xcb:BOOL)
+ (firstButton :initarg :firstButton :type xcb:CARD8)
+ (nButtons :initarg :nButtons :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (ledClass :initarg :ledClass :type xcb:xkb:LedClassSpec)
+ (ledID :initarg :ledID :type xcb:xkb:IDSpec)))
+(defclass xcb:xkb:GetDeviceInfo~reply
+ (xcb:-reply)
+ ((deviceID :initarg :deviceID :type xcb:CARD8)
+ (present :initarg :present :type xcb:CARD16)
+ (supported :initarg :supported :type xcb:CARD16)
+ (unsupported :initarg :unsupported :type xcb:CARD16)
+ (nDeviceLedFBs :initarg :nDeviceLedFBs :type xcb:CARD16)
+ (firstBtnWanted :initarg :firstBtnWanted :type xcb:CARD8)
+ (nBtnsWanted :initarg :nBtnsWanted :type xcb:CARD8)
+ (firstBtnRtrn :initarg :firstBtnRtrn :type xcb:CARD8)
+ (nBtnsRtrn :initarg :nBtnsRtrn :type xcb:CARD8)
+ (totalBtns :initarg :totalBtns :type xcb:CARD8)
+ (hasOwnState :initarg :hasOwnState :type xcb:BOOL)
+ (dfltKbdFB :initarg :dfltKbdFB :type xcb:CARD16)
+ (dfltLedFB :initarg :dfltLedFB :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (devType :initarg :devType :type xcb:ATOM)
+ (nameLen :initarg :nameLen :type xcb:CARD16)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:xkb:STRING8 size
+ (xcb:-fieldref 'nameLen))
+ :type xcb:-list)
+ (btnActions :initarg :btnActions :type xcb:-ignore)
+ (btnActions~ :initform
+ '(name btnActions type xcb:xkb:Action size
+ (xcb:-fieldref 'nBtnsRtrn))
+ :type xcb:-list)
+ (leds :initarg :leds :type xcb:-ignore)
+ (leds~ :initform
+ '(name leds type xcb:xkb:DeviceLedInfo size
+ (xcb:-fieldref 'nDeviceLedFBs))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetDeviceInfo
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec)
+ (firstBtn :initarg :firstBtn :type xcb:CARD8)
+ (nBtns :initarg :nBtns :type xcb:CARD8)
+ (change :initarg :change :type xcb:CARD16)
+ (nDeviceLedFBs :initarg :nDeviceLedFBs :type xcb:CARD16)
+ (btnActions :initarg :btnActions :type xcb:-ignore)
+ (btnActions~ :initform
+ '(name btnActions type xcb:xkb:Action size
+ (xcb:-fieldref 'nBtns))
+ :type xcb:-list)
+ (leds :initarg :leds :type xcb:-ignore)
+ (leds~ :initform
+ '(name leds type xcb:xkb:DeviceLedInfo size
+ (xcb:-fieldref 'nDeviceLedFBs))
+ :type xcb:-list)))
+
+(defclass xcb:xkb:SetDebuggingFlags
+ (xcb:-request)
+ ((~opcode :initform 101 :type xcb:-u1)
+ (msgLength :initarg :msgLength :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (affectFlags :initarg :affectFlags :type xcb:CARD32)
+ (flags :initarg :flags :type xcb:CARD32)
+ (affectCtrls :initarg :affectCtrls :type xcb:CARD32)
+ (ctrls :initarg :ctrls :type xcb:CARD32)
+ (message :initarg :message :type xcb:-ignore)
+ (message~ :initform
+ '(name message type xcb:xkb:STRING8 size
+ (xcb:-fieldref 'msgLength))
+ :type xcb:-list)))
+(defclass xcb:xkb:SetDebuggingFlags~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (currentFlags :initarg :currentFlags :type xcb:CARD32)
+ (currentCtrls :initarg :currentCtrls :type xcb:CARD32)
+ (supportedFlags :initarg :supportedFlags :type xcb:CARD32)
+ (supportedCtrls :initarg :supportedCtrls :type xcb:CARD32)
+ (pad~1 :initform 8 :type xcb:-pad)))
+
+(defclass xcb:xkb:NewKeyboardNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (oldDeviceID :initarg :oldDeviceID :type xcb:CARD8)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (oldMinKeyCode :initarg :oldMinKeyCode :type xcb:KEYCODE)
+ (oldMaxKeyCode :initarg :oldMaxKeyCode :type xcb:KEYCODE)
+ (requestMajor :initarg :requestMajor :type xcb:CARD8)
+ (requestMinor :initarg :requestMinor :type xcb:CARD8)
+ (changed :initarg :changed :type xcb:CARD16)
+ (pad~0 :initform 14 :type xcb:-pad)))
+
+(defclass xcb:xkb:MapNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (ptrBtnActions :initarg :ptrBtnActions :type xcb:CARD8)
+ (changed :initarg :changed :type xcb:CARD16)
+ (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE)
+ (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE)
+ (nKeySyms :initarg :nKeySyms :type xcb:CARD8)
+ (firstKeyAct :initarg :firstKeyAct :type xcb:KEYCODE)
+ (nKeyActs :initarg :nKeyActs :type xcb:CARD8)
+ (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE)
+ (nKeyBehavior :initarg :nKeyBehavior :type xcb:CARD8)
+ (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE)
+ (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8)
+ (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE)
+ (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8)
+ (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE)
+ (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8)
+ (virtualMods :initarg :virtualMods :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:xkb:StateNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (mods :initarg :mods :type xcb:CARD8)
+ (baseMods :initarg :baseMods :type xcb:CARD8)
+ (latchedMods :initarg :latchedMods :type xcb:CARD8)
+ (lockedMods :initarg :lockedMods :type xcb:CARD8)
+ (group :initarg :group :type xcb:CARD8)
+ (baseGroup :initarg :baseGroup :type xcb:INT16)
+ (latchedGroup :initarg :latchedGroup :type xcb:INT16)
+ (lockedGroup :initarg :lockedGroup :type xcb:CARD8)
+ (compatState :initarg :compatState :type xcb:CARD8)
+ (grabMods :initarg :grabMods :type xcb:CARD8)
+ (compatGrabMods :initarg :compatGrabMods :type xcb:CARD8)
+ (lookupMods :initarg :lookupMods :type xcb:CARD8)
+ (compatLoockupMods :initarg :compatLoockupMods :type xcb:CARD8)
+ (ptrBtnState :initarg :ptrBtnState :type xcb:CARD16)
+ (changed :initarg :changed :type xcb:CARD16)
+ (keycode :initarg :keycode :type xcb:KEYCODE)
+ (eventType :initarg :eventType :type xcb:CARD8)
+ (requestMajor :initarg :requestMajor :type xcb:CARD8)
+ (requestMinor :initarg :requestMinor :type xcb:CARD8)))
+
+(defclass xcb:xkb:ControlsNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (numGroups :initarg :numGroups :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (changedControls :initarg :changedControls :type xcb:CARD32)
+ (enabledControls :initarg :enabledControls :type xcb:CARD32)
+ (enabledControlChanges :initarg :enabledControlChanges :type xcb:CARD32)
+ (keycode :initarg :keycode :type xcb:KEYCODE)
+ (eventType :initarg :eventType :type xcb:CARD8)
+ (requestMajor :initarg :requestMajor :type xcb:CARD8)
+ (requestMinor :initarg :requestMinor :type xcb:CARD8)
+ (pad~1 :initform 4 :type xcb:-pad)))
+
+(defclass xcb:xkb:IndicatorStateNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (state :initarg :state :type xcb:CARD32)
+ (stateChanged :initarg :stateChanged :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:xkb:IndicatorMapNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (state :initarg :state :type xcb:CARD32)
+ (mapChanged :initarg :mapChanged :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)))
+
+(defclass xcb:xkb:NamesNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (changed :initarg :changed :type xcb:CARD16)
+ (firstType :initarg :firstType :type xcb:CARD8)
+ (nTypes :initarg :nTypes :type xcb:CARD8)
+ (firstLevelName :initarg :firstLevelName :type xcb:CARD8)
+ (nLevelNames :initarg :nLevelNames :type xcb:CARD8)
+ (pad~1 :initform 1 :type xcb:-pad)
+ (nRadioGroups :initarg :nRadioGroups :type xcb:CARD8)
+ (nKeyAliases :initarg :nKeyAliases :type xcb:CARD8)
+ (changedGroupNames :initarg :changedGroupNames :type xcb:CARD8)
+ (changedVirtualMods :initarg :changedVirtualMods :type xcb:CARD16)
+ (firstKey :initarg :firstKey :type xcb:KEYCODE)
+ (nKeys :initarg :nKeys :type xcb:CARD8)
+ (changedIndicators :initarg :changedIndicators :type xcb:CARD32)
+ (pad~2 :initform 4 :type xcb:-pad)))
+
+(defclass xcb:xkb:CompatMapNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (changedGroups :initarg :changedGroups :type xcb:CARD8)
+ (firstSI :initarg :firstSI :type xcb:CARD16)
+ (nSI :initarg :nSI :type xcb:CARD16)
+ (nTotalSI :initarg :nTotalSI :type xcb:CARD16)
+ (pad~0 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:xkb:BellNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (bellClass :initarg :bellClass :type xcb:CARD8)
+ (bellID :initarg :bellID :type xcb:CARD8)
+ (percent :initarg :percent :type xcb:CARD8)
+ (pitch :initarg :pitch :type xcb:CARD16)
+ (duration :initarg :duration :type xcb:CARD16)
+ (name :initarg :name :type xcb:ATOM)
+ (window :initarg :window :type xcb:WINDOW)
+ (eventOnly :initarg :eventOnly :type xcb:BOOL)
+ (pad~0 :initform 7 :type xcb:-pad)))
+
+(defclass xcb:xkb:ActionMessage
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (keycode :initarg :keycode :type xcb:KEYCODE)
+ (press :initarg :press :type xcb:BOOL)
+ (keyEventFollows :initarg :keyEventFollows :type xcb:BOOL)
+ (mods :initarg :mods :type xcb:CARD8)
+ (group :initarg :group :type xcb:CARD8)
+ (message :initarg :message :type xcb:-ignore)
+ (message~ :initform
+ '(name message type xcb:xkb:STRING8 size 8)
+ :type xcb:-list)
+ (pad~0 :initform 10 :type xcb:-pad)))
+
+(defclass xcb:xkb:AccessXNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (keycode :initarg :keycode :type xcb:KEYCODE)
+ (detailt :initarg :detailt :type xcb:CARD16)
+ (slowKeysDelay :initarg :slowKeysDelay :type xcb:CARD16)
+ (debounceDelay :initarg :debounceDelay :type xcb:CARD16)
+ (pad~0 :initform 16 :type xcb:-pad)))
+
+(defclass xcb:xkb:ExtensionDeviceNotify
+ (xcb:-event)
+ ((xkbType :initarg :xkbType :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (deviceID :initarg :deviceID :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (reason :initarg :reason :type xcb:CARD16)
+ (ledClass :initarg :ledClass :type xcb:CARD16)
+ (ledID :initarg :ledID :type xcb:CARD16)
+ (ledsDefined :initarg :ledsDefined :type xcb:CARD32)
+ (ledState :initarg :ledState :type xcb:CARD32)
+ (firstButton :initarg :firstButton :type xcb:CARD8)
+ (nButtons :initarg :nButtons :type xcb:CARD8)
+ (supported :initarg :supported :type xcb:CARD16)
+ (unsupported :initarg :unsupported :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(defconst xcb:xkb:error-number-class-alist
+ '((0 . xcb:xkb:Keyboard))
+ "(error-number . error-class) alist")
+
+(defconst xcb:xkb:event-number-class-alist
+ '((0 . xcb:xkb:NewKeyboardNotify)
+ (1 . xcb:xkb:MapNotify)
+ (2 . xcb:xkb:StateNotify)
+ (3 . xcb:xkb:ControlsNotify)
+ (4 . xcb:xkb:IndicatorStateNotify)
+ (5 . xcb:xkb:IndicatorMapNotify)
+ (6 . xcb:xkb:NamesNotify)
+ (7 . xcb:xkb:CompatMapNotify)
+ (8 . xcb:xkb:BellNotify)
+ (9 . xcb:xkb:ActionMessage)
+ (10 . xcb:xkb:AccessXNotify)
+ (11 . xcb:xkb:ExtensionDeviceNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xkb)
diff --git a/xcb-xprint.el b/xcb-xprint.el
new file mode 100644
index 0000000..1b95229
--- /dev/null
+++ b/xcb-xprint.el
@@ -0,0 +1,354 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xprint.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xprint:-extension-xname "XpExtension")
+(defconst xcb:xprint:-extension-name "XPrint")
+(defconst xcb:xprint:-major-version 1)
+(defconst xcb:xprint:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(xcb:deftypealias 'xcb:xprint:STRING8 'xcb:char)
+
+(defclass xcb:xprint:PRINTER
+ (xcb:-struct)
+ ((nameLen :initarg :nameLen :type xcb:CARD32)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'nameLen))
+ :type xcb:-list)
+ (descLen :initarg :descLen :type xcb:CARD32)
+ (description :initarg :description :type xcb:-ignore)
+ (description~ :initform
+ '(name description type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'descLen))
+ :type xcb:-list)))
+
+(xcb:deftypealias 'xcb:xprint:PCONTEXT 'xcb:-u4)
+
+(defconst xcb:xprint:GetDoc:Finished 0)
+(defconst xcb:xprint:GetDoc:SecondConsumer 1)
+
+(defconst xcb:xprint:EvMask:NoEventMask 0)
+(defconst xcb:xprint:EvMask:PrintMask 1)
+(defconst xcb:xprint:EvMask:AttributeMask 2)
+
+(defconst xcb:xprint:Detail:StartJobNotify 1)
+(defconst xcb:xprint:Detail:EndJobNotify 2)
+(defconst xcb:xprint:Detail:StartDocNotify 3)
+(defconst xcb:xprint:Detail:EndDocNotify 4)
+(defconst xcb:xprint:Detail:StartPageNotify 5)
+(defconst xcb:xprint:Detail:EndPageNotify 6)
+
+(defconst xcb:xprint:Attr:JobAttr 1)
+(defconst xcb:xprint:Attr:DocAttr 2)
+(defconst xcb:xprint:Attr:PageAttr 3)
+(defconst xcb:xprint:Attr:PrinterAttr 4)
+(defconst xcb:xprint:Attr:ServerAttr 5)
+(defconst xcb:xprint:Attr:MediumAttr 6)
+(defconst xcb:xprint:Attr:SpoolerAttr 7)
+
+(defclass xcb:xprint:PrintQueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:xprint:PrintQueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major-version :initarg :major-version :type xcb:CARD16)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+
+(defclass xcb:xprint:PrintGetPrinterList
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (printerNameLen :initarg :printerNameLen :type xcb:CARD32)
+ (localeLen :initarg :localeLen :type xcb:CARD32)
+ (printer-name :initarg :printer-name :type xcb:-ignore)
+ (printer-name~ :initform
+ '(name printer-name type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'printerNameLen))
+ :type xcb:-list)
+ (locale :initarg :locale :type xcb:-ignore)
+ (locale~ :initform
+ '(name locale type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'localeLen))
+ :type xcb:-list)))
+(defclass xcb:xprint:PrintGetPrinterList~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (listCount :initarg :listCount :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (printers :initarg :printers :type xcb:-ignore)
+ (printers~ :initform
+ '(name printers type xcb:xprint:PRINTER size
+ (xcb:-fieldref 'listCount))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintRehashPrinterList
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)))
+
+(defclass xcb:xprint:CreateContext
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (context-id :initarg :context-id :type xcb:CARD32)
+ (printerNameLen :initarg :printerNameLen :type xcb:CARD32)
+ (localeLen :initarg :localeLen :type xcb:CARD32)
+ (printerName :initarg :printerName :type xcb:-ignore)
+ (printerName~ :initform
+ '(name printerName type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'printerNameLen))
+ :type xcb:-list)
+ (locale :initarg :locale :type xcb:-ignore)
+ (locale~ :initform
+ '(name locale type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'localeLen))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintSetContext
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (context :initarg :context :type xcb:CARD32)))
+
+(defclass xcb:xprint:PrintGetContext
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)))
+(defclass xcb:xprint:PrintGetContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context :initarg :context :type xcb:CARD32)))
+
+(defclass xcb:xprint:PrintDestroyContext
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (context :initarg :context :type xcb:CARD32)))
+
+(defclass xcb:xprint:PrintGetScreenOfContext
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)))
+(defclass xcb:xprint:PrintGetScreenOfContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (root :initarg :root :type xcb:WINDOW)))
+
+(defclass xcb:xprint:PrintStartJob
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (output-mode :initarg :output-mode :type xcb:CARD8)))
+
+(defclass xcb:xprint:PrintEndJob
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (cancel :initarg :cancel :type xcb:BOOL)))
+
+(defclass xcb:xprint:PrintStartDoc
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (driver-mode :initarg :driver-mode :type xcb:CARD8)))
+
+(defclass xcb:xprint:PrintEndDoc
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (cancel :initarg :cancel :type xcb:BOOL)))
+
+(defclass xcb:xprint:PrintPutDocumentData
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (len-data :initarg :len-data :type xcb:CARD32)
+ (len-fmt :initarg :len-fmt :type xcb:CARD16)
+ (len-options :initarg :len-options :type xcb:CARD16)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (xcb:-fieldref 'len-data))
+ :type xcb:-list)
+ (doc-format :initarg :doc-format :type xcb:-ignore)
+ (doc-format~ :initform
+ '(name doc-format type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'len-fmt))
+ :type xcb:-list)
+ (options :initarg :options :type xcb:-ignore)
+ (options~ :initform
+ '(name options type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'len-options))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintGetDocumentData
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (max-bytes :initarg :max-bytes :type xcb:CARD32)))
+(defclass xcb:xprint:PrintGetDocumentData~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (status-code :initarg :status-code :type xcb:CARD32)
+ (finished-flag :initarg :finished-flag :type xcb:CARD32)
+ (dataLen :initarg :dataLen :type xcb:CARD32)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (xcb:-fieldref 'dataLen))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintStartPage
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:xprint:PrintEndPage
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (cancel :initarg :cancel :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xprint:PrintSelectInput
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (event-mask :initarg :event-mask :type xcb:CARD32)))
+
+(defclass xcb:xprint:PrintInputSelected
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)))
+(defclass xcb:xprint:PrintInputSelected~reply
+ (xcb:-reply)
+ ((event-mask :initarg :event-mask :type xcb:CARD32)
+ (all-events-mask :initarg :all-events-mask :type xcb:CARD32)))
+
+(defclass xcb:xprint:PrintGetAttributes
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (pool :initarg :pool :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xprint:PrintGetAttributes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (stringLen :initarg :stringLen :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (attributes :initarg :attributes :type xcb:-ignore)
+ (attributes~ :initform
+ '(name attributes type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'stringLen))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintGetOneAttributes
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (nameLen :initarg :nameLen :type xcb:CARD32)
+ (pool :initarg :pool :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'nameLen))
+ :type xcb:-list)))
+(defclass xcb:xprint:PrintGetOneAttributes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (valueLen :initarg :valueLen :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (value :initarg :value :type xcb:-ignore)
+ (value~ :initform
+ '(name value type xcb:xprint:STRING8 size
+ (xcb:-fieldref 'valueLen))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintSetAttributes
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (stringLen :initarg :stringLen :type xcb:CARD32)
+ (pool :initarg :pool :type xcb:CARD8)
+ (rule :initarg :rule :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (attributes :initarg :attributes :type xcb:-ignore)
+ (attributes~ :initform
+ '(name attributes type xcb:xprint:STRING8 size nil)
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintGetPageDimensions
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)))
+(defclass xcb:xprint:PrintGetPageDimensions~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (offset-x :initarg :offset-x :type xcb:CARD16)
+ (offset-y :initarg :offset-y :type xcb:CARD16)
+ (reproducible-width :initarg :reproducible-width :type xcb:CARD16)
+ (reproducible-height :initarg :reproducible-height :type xcb:CARD16)))
+
+(defclass xcb:xprint:PrintQueryScreens
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)))
+(defclass xcb:xprint:PrintQueryScreens~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (listCount :initarg :listCount :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (roots :initarg :roots :type xcb:-ignore)
+ (roots~ :initform
+ '(name roots type xcb:WINDOW size
+ (xcb:-fieldref 'listCount))
+ :type xcb:-list)))
+
+(defclass xcb:xprint:PrintSetImageResolution
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (image-resolution :initarg :image-resolution :type xcb:CARD16)))
+(defclass xcb:xprint:PrintSetImageResolution~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:BOOL)
+ (previous-resolutions :initarg :previous-resolutions :type xcb:CARD16)))
+
+(defclass xcb:xprint:PrintGetImageResolution
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)))
+(defclass xcb:xprint:PrintGetImageResolution~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (image-resolution :initarg :image-resolution :type xcb:CARD16)))
+
+(defclass xcb:xprint:Notify
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:CARD8)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)
+ (cancel :initarg :cancel :type xcb:BOOL)))
+
+(defclass xcb:xprint:AttributNotify
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:CARD8)
+ (context :initarg :context :type xcb:xprint:PCONTEXT)))
+
+(defclass xcb:xprint:BadContext
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xprint:BadSequence
+ (xcb:-error)
+ nil)
+
+(defconst xcb:xprint:error-number-class-alist
+ '((0 . xcb:xprint:BadContext)
+ (1 . xcb:xprint:BadSequence))
+ "(error-number . error-class) alist")
+
+(defconst xcb:xprint:event-number-class-alist
+ '((0 . xcb:xprint:Notify)
+ (1 . xcb:xprint:AttributNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xprint)
diff --git a/xcb-xproto.el b/xcb-xproto.el
new file mode 100644
index 0000000..a9a186d
--- /dev/null
+++ b/xcb-xproto.el
@@ -0,0 +1,2848 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xproto.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defclass xcb:CHAR2B
+ (xcb:-struct)
+ ((byte1 :initarg :byte1 :type xcb:CARD8)
+ (byte2 :initarg :byte2 :type xcb:CARD8)))
+
+(xcb:deftypealias 'xcb:WINDOW 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:PIXMAP 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:CURSOR 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:FONT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:GCONTEXT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:COLORMAP 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:ATOM 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:DRAWABLE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:FONTABLE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:BOOL32 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:VISUALID 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:TIMESTAMP 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:KEYSYM 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:KEYCODE 'xcb:CARD8)
+
+(xcb:deftypealias 'xcb:KEYCODE32 'xcb:CARD32)
+
+(xcb:deftypealias 'xcb:BUTTON 'xcb:CARD8)
+
+(defclass xcb:POINT
+ (xcb:-struct)
+ ((x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)))
+
+(defclass xcb:RECTANGLE
+ (xcb:-struct)
+ ((x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:ARC
+ (xcb:-struct)
+ ((x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (angle1 :initarg :angle1 :type xcb:INT16)
+ (angle2 :initarg :angle2 :type xcb:INT16)))
+
+(defclass xcb:FORMAT
+ (xcb:-struct)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (bits-per-pixel :initarg :bits-per-pixel :type xcb:CARD8)
+ (scanline-pad :initarg :scanline-pad :type xcb:CARD8)
+ (pad~0 :initform 5 :type xcb:-pad)))
+
+(defconst xcb:VisualClass:StaticGray 0)
+(defconst xcb:VisualClass:GrayScale 1)
+(defconst xcb:VisualClass:StaticColor 2)
+(defconst xcb:VisualClass:PseudoColor 3)
+(defconst xcb:VisualClass:TrueColor 4)
+(defconst xcb:VisualClass:DirectColor 5)
+
+(defclass xcb:VISUALTYPE
+ (xcb:-struct)
+ ((visual-id :initarg :visual-id :type xcb:VISUALID)
+ (class :initarg :class :type xcb:CARD8)
+ (bits-per-rgb-value :initarg :bits-per-rgb-value :type xcb:CARD8)
+ (colormap-entries :initarg :colormap-entries :type xcb:CARD16)
+ (red-mask :initarg :red-mask :type xcb:CARD32)
+ (green-mask :initarg :green-mask :type xcb:CARD32)
+ (blue-mask :initarg :blue-mask :type xcb:CARD32)
+ (pad~0 :initform 4 :type xcb:-pad)))
+
+(defclass xcb:DEPTH
+ (xcb:-struct)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (visuals-len :initarg :visuals-len :type xcb:CARD16)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (visuals :initarg :visuals :type xcb:-ignore)
+ (visuals~ :initform
+ '(name visuals type xcb:VISUALTYPE size
+ (xcb:-fieldref 'visuals-len))
+ :type xcb:-list)))
+
+(defconst xcb:EventMask:NoEvent 0)
+(defconst xcb:EventMask:KeyPress 1)
+(defconst xcb:EventMask:KeyRelease 2)
+(defconst xcb:EventMask:ButtonPress 4)
+(defconst xcb:EventMask:ButtonRelease 8)
+(defconst xcb:EventMask:EnterWindow 16)
+(defconst xcb:EventMask:LeaveWindow 32)
+(defconst xcb:EventMask:PointerMotion 64)
+(defconst xcb:EventMask:PointerMotionHint 128)
+(defconst xcb:EventMask:Button1Motion 256)
+(defconst xcb:EventMask:Button2Motion 512)
+(defconst xcb:EventMask:Button3Motion 1024)
+(defconst xcb:EventMask:Button4Motion 2048)
+(defconst xcb:EventMask:Button5Motion 4096)
+(defconst xcb:EventMask:ButtonMotion 8192)
+(defconst xcb:EventMask:KeymapState 16384)
+(defconst xcb:EventMask:Exposure 32768)
+(defconst xcb:EventMask:VisibilityChange 65536)
+(defconst xcb:EventMask:StructureNotify 131072)
+(defconst xcb:EventMask:ResizeRedirect 262144)
+(defconst xcb:EventMask:SubstructureNotify 524288)
+(defconst xcb:EventMask:SubstructureRedirect 1048576)
+(defconst xcb:EventMask:FocusChange 2097152)
+(defconst xcb:EventMask:PropertyChange 4194304)
+(defconst xcb:EventMask:ColorMapChange 8388608)
+(defconst xcb:EventMask:OwnerGrabButton 16777216)
+
+(defconst xcb:BackingStore:NotUseful 0)
+(defconst xcb:BackingStore:WhenMapped 1)
+(defconst xcb:BackingStore:Always 2)
+
+(defclass xcb:SCREEN
+ (xcb:-struct)
+ ((root :initarg :root :type xcb:WINDOW)
+ (default-colormap :initarg :default-colormap :type xcb:COLORMAP)
+ (white-pixel :initarg :white-pixel :type xcb:CARD32)
+ (black-pixel :initarg :black-pixel :type xcb:CARD32)
+ (current-input-masks :initarg :current-input-masks :type xcb:CARD32)
+ (width-in-pixels :initarg :width-in-pixels :type xcb:CARD16)
+ (height-in-pixels :initarg :height-in-pixels :type xcb:CARD16)
+ (width-in-millimeters :initarg :width-in-millimeters :type xcb:CARD16)
+ (height-in-millimeters :initarg :height-in-millimeters :type xcb:CARD16)
+ (min-installed-maps :initarg :min-installed-maps :type xcb:CARD16)
+ (max-installed-maps :initarg :max-installed-maps :type xcb:CARD16)
+ (root-visual :initarg :root-visual :type xcb:VISUALID)
+ (backing-stores :initarg :backing-stores :type xcb:BYTE)
+ (save-unders :initarg :save-unders :type xcb:BOOL)
+ (root-depth :initarg :root-depth :type xcb:CARD8)
+ (allowed-depths-len :initarg :allowed-depths-len :type xcb:CARD8)
+ (allowed-depths :initarg :allowed-depths :type xcb:-ignore)
+ (allowed-depths~ :initform
+ '(name allowed-depths type xcb:DEPTH size
+ (xcb:-fieldref 'allowed-depths-len))
+ :type xcb:-list)))
+
+(defclass xcb:SetupRequest
+ (xcb:-struct)
+ ((byte-order :initarg :byte-order :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (protocol-major-version :initarg :protocol-major-version :type xcb:CARD16)
+ (protocol-minor-version :initarg :protocol-minor-version :type xcb:CARD16)
+ (authorization-protocol-name-len :initarg :authorization-protocol-name-len
:type xcb:CARD16)
+ (authorization-protocol-data-len :initarg :authorization-protocol-data-len
:type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (authorization-protocol-name :initarg :authorization-protocol-name :type
xcb:-ignore)
+ (authorization-protocol-name~ :initform
+ '(name authorization-protocol-name type
xcb:char size
+ (xcb:-fieldref
'authorization-protocol-name-len))
+ :type xcb:-list)
+ (authorization-protocol-data :initarg :authorization-protocol-data :type
xcb:-ignore)
+ (authorization-protocol-data~ :initform
+ '(name authorization-protocol-data type
xcb:char size
+ (xcb:-fieldref
'authorization-protocol-data-len))
+ :type xcb:-list)))
+
+(defclass xcb:SetupFailed
+ (xcb:-struct)
+ ((status :initarg :status :type xcb:CARD8)
+ (reason-len :initarg :reason-len :type xcb:CARD8)
+ (protocol-major-version :initarg :protocol-major-version :type xcb:CARD16)
+ (protocol-minor-version :initarg :protocol-minor-version :type xcb:CARD16)
+ (length :initarg :length :type xcb:CARD16)
+ (reason :initarg :reason :type xcb:-ignore)
+ (reason~ :initform
+ '(name reason type xcb:char size
+ (xcb:-fieldref 'reason-len))
+ :type xcb:-list)))
+
+(defclass xcb:SetupAuthenticate
+ (xcb:-struct)
+ ((status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 5 :type xcb:-pad)
+ (length :initarg :length :type xcb:CARD16)
+ (reason :initarg :reason :type xcb:-ignore)
+ (reason~ :initform
+ '(name reason type xcb:char size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defconst xcb:ImageOrder:LSBFirst 0)
+(defconst xcb:ImageOrder:MSBFirst 1)
+
+(defclass xcb:Setup
+ (xcb:-struct)
+ ((status :initarg :status :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (protocol-major-version :initarg :protocol-major-version :type xcb:CARD16)
+ (protocol-minor-version :initarg :protocol-minor-version :type xcb:CARD16)
+ (length :initarg :length :type xcb:CARD16)
+ (release-number :initarg :release-number :type xcb:CARD32)
+ (resource-id-base :initarg :resource-id-base :type xcb:CARD32)
+ (resource-id-mask :initarg :resource-id-mask :type xcb:CARD32)
+ (motion-buffer-size :initarg :motion-buffer-size :type xcb:CARD32)
+ (vendor-len :initarg :vendor-len :type xcb:CARD16)
+ (maximum-request-length :initarg :maximum-request-length :type xcb:CARD16)
+ (roots-len :initarg :roots-len :type xcb:CARD8)
+ (pixmap-formats-len :initarg :pixmap-formats-len :type xcb:CARD8)
+ (image-byte-order :initarg :image-byte-order :type xcb:CARD8)
+ (bitmap-format-bit-order :initarg :bitmap-format-bit-order :type xcb:CARD8)
+ (bitmap-format-scanline-unit :initarg :bitmap-format-scanline-unit :type
xcb:CARD8)
+ (bitmap-format-scanline-pad :initarg :bitmap-format-scanline-pad :type
xcb:CARD8)
+ (min-keycode :initarg :min-keycode :type xcb:KEYCODE)
+ (max-keycode :initarg :max-keycode :type xcb:KEYCODE)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (vendor :initarg :vendor :type xcb:-ignore)
+ (vendor~ :initform
+ '(name vendor type xcb:char size
+ (xcb:-fieldref 'vendor-len))
+ :type xcb:-list)
+ (pixmap-formats :initarg :pixmap-formats :type xcb:-ignore)
+ (pixmap-formats~ :initform
+ '(name pixmap-formats type xcb:FORMAT size
+ (xcb:-fieldref 'pixmap-formats-len))
+ :type xcb:-list)
+ (roots :initarg :roots :type xcb:-ignore)
+ (roots~ :initform
+ '(name roots type xcb:SCREEN size
+ (xcb:-fieldref 'roots-len))
+ :type xcb:-list)))
+
+(defconst xcb:ModMask:Shift 1)
+(defconst xcb:ModMask:Lock 2)
+(defconst xcb:ModMask:Control 4)
+(defconst xcb:ModMask:1 8)
+(defconst xcb:ModMask:2 16)
+(defconst xcb:ModMask:3 32)
+(defconst xcb:ModMask:4 64)
+(defconst xcb:ModMask:5 128)
+(defconst xcb:ModMask:Any 32768)
+
+(defconst xcb:KeyButMask:Shift 1)
+(defconst xcb:KeyButMask:Lock 2)
+(defconst xcb:KeyButMask:Control 4)
+(defconst xcb:KeyButMask:Mod1 8)
+(defconst xcb:KeyButMask:Mod2 16)
+(defconst xcb:KeyButMask:Mod3 32)
+(defconst xcb:KeyButMask:Mod4 64)
+(defconst xcb:KeyButMask:Mod5 128)
+(defconst xcb:KeyButMask:Button1 256)
+(defconst xcb:KeyButMask:Button2 512)
+(defconst xcb:KeyButMask:Button3 1024)
+(defconst xcb:KeyButMask:Button4 2048)
+(defconst xcb:KeyButMask:Button5 4096)
+
+(defconst xcb:Window:None 0)
+
+(defclass xcb:KeyPress
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:KEYCODE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (event-x :initarg :event-x :type xcb:INT16)
+ (event-y :initarg :event-y :type xcb:INT16)
+ (state :initarg :state :type xcb:CARD16)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:KeyRelease
+ (xcb:-event xcb:KeyPress)
+ nil)
+
+(defconst xcb:ButtonMask:1 256)
+(defconst xcb:ButtonMask:2 512)
+(defconst xcb:ButtonMask:3 1024)
+(defconst xcb:ButtonMask:4 2048)
+(defconst xcb:ButtonMask:5 4096)
+(defconst xcb:ButtonMask:Any 32768)
+
+(defclass xcb:ButtonPress
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BUTTON)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (event-x :initarg :event-x :type xcb:INT16)
+ (event-y :initarg :event-y :type xcb:INT16)
+ (state :initarg :state :type xcb:CARD16)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:ButtonRelease
+ (xcb:-event xcb:ButtonPress)
+ nil)
+
+(defconst xcb:Motion:Normal 0)
+(defconst xcb:Motion:Hint 1)
+
+(defclass xcb:MotionNotify
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (event-x :initarg :event-x :type xcb:INT16)
+ (event-y :initarg :event-y :type xcb:INT16)
+ (state :initarg :state :type xcb:CARD16)
+ (same-screen :initarg :same-screen :type xcb:BOOL)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defconst xcb:NotifyDetail:Ancestor 0)
+(defconst xcb:NotifyDetail:Virtual 1)
+(defconst xcb:NotifyDetail:Inferior 2)
+(defconst xcb:NotifyDetail:Nonlinear 3)
+(defconst xcb:NotifyDetail:NonlinearVirtual 4)
+(defconst xcb:NotifyDetail:Pointer 5)
+(defconst xcb:NotifyDetail:PointerRoot 6)
+(defconst xcb:NotifyDetail:None 7)
+
+(defconst xcb:NotifyMode:Normal 0)
+(defconst xcb:NotifyMode:Grab 1)
+(defconst xcb:NotifyMode:Ungrab 2)
+(defconst xcb:NotifyMode:WhileGrabbed 3)
+
+(defclass xcb:EnterNotify
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (root :initarg :root :type xcb:WINDOW)
+ (event :initarg :event :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (event-x :initarg :event-x :type xcb:INT16)
+ (event-y :initarg :event-y :type xcb:INT16)
+ (state :initarg :state :type xcb:CARD16)
+ (mode :initarg :mode :type xcb:BYTE)
+ (same-screen-focus :initarg :same-screen-focus :type xcb:BYTE)))
+
+(defclass xcb:LeaveNotify
+ (xcb:-event xcb:EnterNotify)
+ nil)
+
+(defclass xcb:FocusIn
+ (xcb:-event)
+ ((detail :initarg :detail :type xcb:BYTE)
+ (event :initarg :event :type xcb:WINDOW)
+ (mode :initarg :mode :type xcb:BYTE)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:FocusOut
+ (xcb:-event xcb:FocusIn)
+ nil)
+
+(defclass xcb:KeymapNotify
+ (xcb:-event)
+ ((keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 31)
+ :type xcb:-list)))
+
+(defclass xcb:Expose
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (x :initarg :x :type xcb:CARD16)
+ (y :initarg :y :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (count :initarg :count :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:GraphicsExposure
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (x :initarg :x :type xcb:CARD16)
+ (y :initarg :y :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (count :initarg :count :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:NoExposure
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (pad~1 :initform 1 :type xcb:-pad)))
+
+(defconst xcb:Visibility:Unobscured 0)
+(defconst xcb:Visibility:PartiallyObscured 1)
+(defconst xcb:Visibility:FullyObscured 2)
+
+(defclass xcb:VisibilityNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (state :initarg :state :type xcb:BYTE)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:CreateNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL)
+ (pad~1 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:DestroyNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:UnmapNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (from-configure :initarg :from-configure :type xcb:BOOL)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:MapNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:MapRequest
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:ReparentNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:ConfigureNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (above-sibling :initarg :above-sibling :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL)
+ (pad~1 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:ConfigureRequest
+ (xcb:-event)
+ ((stack-mode :initarg :stack-mode :type xcb:BYTE)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (sibling :initarg :sibling :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (value-mask :initarg :value-mask :type xcb:CARD16)))
+
+(defclass xcb:GravityNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)))
+
+(defclass xcb:ResizeRequest
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defconst xcb:Place:OnTop 0)
+(defconst xcb:Place:OnBottom 1)
+
+(defclass xcb:CirculateNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (event :initarg :event :type xcb:WINDOW)
+ (window :initarg :window :type xcb:WINDOW)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (place :initarg :place :type xcb:BYTE)
+ (pad~2 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:CirculateRequest
+ (xcb:-event xcb:CirculateNotify)
+ nil)
+
+(defconst xcb:Property:NewValue 0)
+(defconst xcb:Property:Delete 1)
+
+(defclass xcb:PropertyNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (atom :initarg :atom :type xcb:ATOM)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (state :initarg :state :type xcb:BYTE)
+ (pad~1 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:SelectionClear
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (owner :initarg :owner :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)))
+
+(defconst xcb:Time:CurrentTime 0)
+
+(defconst xcb:Atom:None 0)
+(defconst xcb:Atom:Any 0)
+(defconst xcb:Atom:PRIMARY 1)
+(defconst xcb:Atom:SECONDARY 2)
+(defconst xcb:Atom:ARC 3)
+(defconst xcb:Atom:ATOM 4)
+(defconst xcb:Atom:BITMAP 5)
+(defconst xcb:Atom:CARDINAL 6)
+(defconst xcb:Atom:COLORMAP 7)
+(defconst xcb:Atom:CURSOR 8)
+(defconst xcb:Atom:CUT_BUFFER0 9)
+(defconst xcb:Atom:CUT_BUFFER1 10)
+(defconst xcb:Atom:CUT_BUFFER2 11)
+(defconst xcb:Atom:CUT_BUFFER3 12)
+(defconst xcb:Atom:CUT_BUFFER4 13)
+(defconst xcb:Atom:CUT_BUFFER5 14)
+(defconst xcb:Atom:CUT_BUFFER6 15)
+(defconst xcb:Atom:CUT_BUFFER7 16)
+(defconst xcb:Atom:DRAWABLE 17)
+(defconst xcb:Atom:FONT 18)
+(defconst xcb:Atom:INTEGER 19)
+(defconst xcb:Atom:PIXMAP 20)
+(defconst xcb:Atom:POINT 21)
+(defconst xcb:Atom:RECTANGLE 22)
+(defconst xcb:Atom:RESOURCE_MANAGER 23)
+(defconst xcb:Atom:RGB_COLOR_MAP 24)
+(defconst xcb:Atom:RGB_BEST_MAP 25)
+(defconst xcb:Atom:RGB_BLUE_MAP 26)
+(defconst xcb:Atom:RGB_DEFAULT_MAP 27)
+(defconst xcb:Atom:RGB_GRAY_MAP 28)
+(defconst xcb:Atom:RGB_GREEN_MAP 29)
+(defconst xcb:Atom:RGB_RED_MAP 30)
+(defconst xcb:Atom:STRING 31)
+(defconst xcb:Atom:VISUALID 32)
+(defconst xcb:Atom:WINDOW 33)
+(defconst xcb:Atom:WM_COMMAND 34)
+(defconst xcb:Atom:WM_HINTS 35)
+(defconst xcb:Atom:WM_CLIENT_MACHINE 36)
+(defconst xcb:Atom:WM_ICON_NAME 37)
+(defconst xcb:Atom:WM_ICON_SIZE 38)
+(defconst xcb:Atom:WM_NAME 39)
+(defconst xcb:Atom:WM_NORMAL_HINTS 40)
+(defconst xcb:Atom:WM_SIZE_HINTS 41)
+(defconst xcb:Atom:WM_ZOOM_HINTS 42)
+(defconst xcb:Atom:MIN_SPACE 43)
+(defconst xcb:Atom:NORM_SPACE 44)
+(defconst xcb:Atom:MAX_SPACE 45)
+(defconst xcb:Atom:END_SPACE 46)
+(defconst xcb:Atom:SUPERSCRIPT_X 47)
+(defconst xcb:Atom:SUPERSCRIPT_Y 48)
+(defconst xcb:Atom:SUBSCRIPT_X 49)
+(defconst xcb:Atom:SUBSCRIPT_Y 50)
+(defconst xcb:Atom:UNDERLINE_POSITION 51)
+(defconst xcb:Atom:UNDERLINE_THICKNESS 52)
+(defconst xcb:Atom:STRIKEOUT_ASCENT 53)
+(defconst xcb:Atom:STRIKEOUT_DESCENT 54)
+(defconst xcb:Atom:ITALIC_ANGLE 55)
+(defconst xcb:Atom:X_HEIGHT 56)
+(defconst xcb:Atom:QUAD_WIDTH 57)
+(defconst xcb:Atom:WEIGHT 58)
+(defconst xcb:Atom:POINT_SIZE 59)
+(defconst xcb:Atom:RESOLUTION 60)
+(defconst xcb:Atom:COPYRIGHT 61)
+(defconst xcb:Atom:NOTICE 62)
+(defconst xcb:Atom:FONT_NAME 63)
+(defconst xcb:Atom:FAMILY_NAME 64)
+(defconst xcb:Atom:FULL_NAME 65)
+(defconst xcb:Atom:CAP_HEIGHT 66)
+(defconst xcb:Atom:WM_CLASS 67)
+(defconst xcb:Atom:WM_TRANSIENT_FOR 68)
+
+(defclass xcb:SelectionRequest
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (owner :initarg :owner :type xcb:WINDOW)
+ (requestor :initarg :requestor :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (target :initarg :target :type xcb:ATOM)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defclass xcb:SelectionNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (requestor :initarg :requestor :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (target :initarg :target :type xcb:ATOM)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defconst xcb:ColormapState:Uninstalled 0)
+(defconst xcb:ColormapState:Installed 1)
+
+(defconst xcb:Colormap:None 0)
+
+(defclass xcb:ColormapNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (colormap :initarg :colormap :type xcb:COLORMAP)
+ (new :initarg :new :type xcb:BOOL)
+ (state :initarg :state :type xcb:BYTE)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:ClientMessageData
+ (xcb:-union)
+ ((data8 :initarg :data8 :type xcb:-ignore)
+ (data8~ :initform
+ '(name data8 type xcb:CARD8 size 20)
+ :type xcb:-list)
+ (data16 :initarg :data16 :type xcb:-ignore)
+ (data16~ :initform
+ '(name data16 type xcb:CARD16 size 10)
+ :type xcb:-list)
+ (data32 :initarg :data32 :type xcb:-ignore)
+ (data32~ :initform
+ '(name data32 type xcb:CARD32 size 5)
+ :type xcb:-list)))
+
+(defclass xcb:ClientMessage
+ (xcb:-event)
+ ((format :initarg :format :type xcb:CARD8)
+ (window :initarg :window :type xcb:WINDOW)
+ (type :initarg :type :type xcb:ATOM)
+ (data :initarg :data :type xcb:ClientMessageData)))
+
+(defconst xcb:Mapping:Modifier 0)
+(defconst xcb:Mapping:Keyboard 1)
+(defconst xcb:Mapping:Pointer 2)
+
+(defclass xcb:MappingNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (request :initarg :request :type xcb:BYTE)
+ (first-keycode :initarg :first-keycode :type xcb:KEYCODE)
+ (count :initarg :count :type xcb:CARD8)
+ (pad~1 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:GeGeneric
+ (xcb:-event)
+ ((extension :type xcb:CARD8)
+ (length :type xcb:CARD32)
+ (evtype :type xcb:CARD16)
+ (pad~0 :initform 22 :type xcb:-pad)))
+
+(defclass xcb:Request
+ (xcb:-error)
+ ((bad-value :initarg :bad-value :type xcb:CARD32)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:Value
+ (xcb:-error)
+ ((bad-value :initarg :bad-value :type xcb:CARD32)
+ (minor-opcode :initarg :minor-opcode :type xcb:CARD16)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:Window
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Pixmap
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Atom
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Cursor
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Font
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Match
+ (xcb:-error xcb:Request)
+ nil)
+
+(defclass xcb:Drawable
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Access
+ (xcb:-error xcb:Request)
+ nil)
+
+(defclass xcb:Alloc
+ (xcb:-error xcb:Request)
+ nil)
+
+(defclass xcb:Colormap
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:GContext
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:IDChoice
+ (xcb:-error xcb:Value)
+ nil)
+
+(defclass xcb:Name
+ (xcb:-error xcb:Request)
+ nil)
+
+(defclass xcb:Length
+ (xcb:-error xcb:Request)
+ nil)
+
+(defclass xcb:Implementation
+ (xcb:-error xcb:Request)
+ nil)
+
+(defconst xcb:WindowClass:CopyFromParent 0)
+(defconst xcb:WindowClass:InputOutput 1)
+(defconst xcb:WindowClass:InputOnly 2)
+
+(defconst xcb:CW:BackPixmap 1)
+(defconst xcb:CW:BackPixel 2)
+(defconst xcb:CW:BorderPixmap 4)
+(defconst xcb:CW:BorderPixel 8)
+(defconst xcb:CW:BitGravity 16)
+(defconst xcb:CW:WinGravity 32)
+(defconst xcb:CW:BackingStore 64)
+(defconst xcb:CW:BackingPlanes 128)
+(defconst xcb:CW:BackingPixel 256)
+(defconst xcb:CW:OverrideRedirect 512)
+(defconst xcb:CW:SaveUnder 1024)
+(defconst xcb:CW:EventMask 2048)
+(defconst xcb:CW:DontPropagate 4096)
+(defconst xcb:CW:Colormap 8192)
+(defconst xcb:CW:Cursor 16384)
+
+(defconst xcb:BackPixmap:None 0)
+(defconst xcb:BackPixmap:ParentRelative 1)
+
+(defconst xcb:Gravity:BitForget 0)
+(defconst xcb:Gravity:WinUnmap 0)
+(defconst xcb:Gravity:NorthWest 1)
+(defconst xcb:Gravity:North 2)
+(defconst xcb:Gravity:NorthEast 3)
+(defconst xcb:Gravity:West 4)
+(defconst xcb:Gravity:Center 5)
+(defconst xcb:Gravity:East 6)
+(defconst xcb:Gravity:SouthWest 7)
+(defconst xcb:Gravity:South 8)
+(defconst xcb:Gravity:SouthEast 9)
+(defconst xcb:Gravity:Static 10)
+
+(defclass xcb:CreateWindow
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (depth :initarg :depth :type xcb:CARD8)
+ (wid :initarg :wid :type xcb:WINDOW)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (class :initarg :class :type xcb:CARD16)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:CW:BackPixmap background-pixmap)
+ (xcb:CW:BackPixel background-pixel)
+ (xcb:CW:BorderPixmap border-pixmap)
+ (xcb:CW:BorderPixel border-pixel)
+ (xcb:CW:BitGravity bit-gravity)
+ (xcb:CW:WinGravity win-gravity)
+ (xcb:CW:BackingStore backing-store)
+ (xcb:CW:BackingPlanes backing-planes)
+ (xcb:CW:BackingPixel backing-pixel)
+ (xcb:CW:OverrideRedirect override-redirect)
+ (xcb:CW:SaveUnder save-under)
+ (xcb:CW:EventMask event-mask)
+ (xcb:CW:DontPropagate do-not-propogate-mask)
+ (xcb:CW:Colormap colormap)
+ (xcb:CW:Cursor cursor)))
+ :type xcb:-switch)
+ (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP)
+ (background-pixel :initarg :background-pixel :type xcb:CARD32)
+ (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP)
+ (border-pixel :initarg :border-pixel :type xcb:CARD32)
+ (bit-gravity :initarg :bit-gravity :type xcb:CARD32)
+ (win-gravity :initarg :win-gravity :type xcb:CARD32)
+ (backing-store :initarg :backing-store :type xcb:CARD32)
+ (backing-planes :initarg :backing-planes :type xcb:CARD32)
+ (backing-pixel :initarg :backing-pixel :type xcb:CARD32)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL32)
+ (save-under :initarg :save-under :type xcb:BOOL32)
+ (event-mask :initarg :event-mask :type xcb:CARD32)
+ (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32)
+ (colormap :initarg :colormap :type xcb:COLORMAP)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+
+(defclass xcb:ChangeWindowAttributes
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:CW:BackPixmap background-pixmap)
+ (xcb:CW:BackPixel background-pixel)
+ (xcb:CW:BorderPixmap border-pixmap)
+ (xcb:CW:BorderPixel border-pixel)
+ (xcb:CW:BitGravity bit-gravity)
+ (xcb:CW:WinGravity win-gravity)
+ (xcb:CW:BackingStore backing-store)
+ (xcb:CW:BackingPlanes backing-planes)
+ (xcb:CW:BackingPixel backing-pixel)
+ (xcb:CW:OverrideRedirect override-redirect)
+ (xcb:CW:SaveUnder save-under)
+ (xcb:CW:EventMask event-mask)
+ (xcb:CW:DontPropagate do-not-propogate-mask)
+ (xcb:CW:Colormap colormap)
+ (xcb:CW:Cursor cursor)))
+ :type xcb:-switch)
+ (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP)
+ (background-pixel :initarg :background-pixel :type xcb:CARD32)
+ (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP)
+ (border-pixel :initarg :border-pixel :type xcb:CARD32)
+ (bit-gravity :initarg :bit-gravity :type xcb:CARD32)
+ (win-gravity :initarg :win-gravity :type xcb:CARD32)
+ (backing-store :initarg :backing-store :type xcb:CARD32)
+ (backing-planes :initarg :backing-planes :type xcb:CARD32)
+ (backing-pixel :initarg :backing-pixel :type xcb:CARD32)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL32)
+ (save-under :initarg :save-under :type xcb:BOOL32)
+ (event-mask :initarg :event-mask :type xcb:CARD32)
+ (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32)
+ (colormap :initarg :colormap :type xcb:COLORMAP)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+
+(defconst xcb:MapState:Unmapped 0)
+(defconst xcb:MapState:Unviewable 1)
+(defconst xcb:MapState:Viewable 2)
+
+(defclass xcb:GetWindowAttributes
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:GetWindowAttributes~reply
+ (xcb:-reply)
+ ((backing-store :initarg :backing-store :type xcb:CARD8)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (class :initarg :class :type xcb:CARD16)
+ (bit-gravity :initarg :bit-gravity :type xcb:CARD8)
+ (win-gravity :initarg :win-gravity :type xcb:CARD8)
+ (backing-planes :initarg :backing-planes :type xcb:CARD32)
+ (backing-pixel :initarg :backing-pixel :type xcb:CARD32)
+ (save-under :initarg :save-under :type xcb:BOOL)
+ (map-is-installed :initarg :map-is-installed :type xcb:BOOL)
+ (map-state :initarg :map-state :type xcb:CARD8)
+ (override-redirect :initarg :override-redirect :type xcb:BOOL)
+ (colormap :initarg :colormap :type xcb:COLORMAP)
+ (all-event-masks :initarg :all-event-masks :type xcb:CARD32)
+ (your-event-mask :initarg :your-event-mask :type xcb:CARD32)
+ (do-not-propagate-mask :initarg :do-not-propagate-mask :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:DestroyWindow
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:DestroySubwindows
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defconst xcb:SetMode:Insert 0)
+(defconst xcb:SetMode:Delete 1)
+
+(defclass xcb:ChangeSaveSet
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:BYTE)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:ReparentWindow
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)))
+
+(defclass xcb:MapWindow
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:MapSubwindows
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:UnmapWindow
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:UnmapSubwindows
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defconst xcb:ConfigWindow:X 1)
+(defconst xcb:ConfigWindow:Y 2)
+(defconst xcb:ConfigWindow:Width 4)
+(defconst xcb:ConfigWindow:Height 8)
+(defconst xcb:ConfigWindow:BorderWidth 16)
+(defconst xcb:ConfigWindow:Sibling 32)
+(defconst xcb:ConfigWindow:StackMode 64)
+
+(defconst xcb:StackMode:Above 0)
+(defconst xcb:StackMode:Below 1)
+(defconst xcb:StackMode:TopIf 2)
+(defconst xcb:StackMode:BottomIf 3)
+(defconst xcb:StackMode:Opposite 4)
+
+(defclass xcb:ConfigureWindow
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (value-mask :initarg :value-mask :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:ConfigWindow:X x)
+ (xcb:ConfigWindow:Y y)
+ (xcb:ConfigWindow:Width width)
+ (xcb:ConfigWindow:Height height)
+ (xcb:ConfigWindow:BorderWidth border-width)
+ (xcb:ConfigWindow:Sibling sibling)
+ (xcb:ConfigWindow:StackMode stack-mode)))
+ :type xcb:-switch)
+ (x :initarg :x :type xcb:INT32)
+ (y :initarg :y :type xcb:INT32)
+ (width :initarg :width :type xcb:CARD32)
+ (height :initarg :height :type xcb:CARD32)
+ (border-width :initarg :border-width :type xcb:CARD32)
+ (sibling :initarg :sibling :type xcb:WINDOW)
+ (stack-mode :initarg :stack-mode :type xcb:CARD32)))
+
+(defconst xcb:Circulate:RaiseLowest 0)
+(defconst xcb:Circulate:LowerHighest 1)
+
+(defclass xcb:CirculateWindow
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (direction :initarg :direction :type xcb:CARD8)
+ (window :initarg :window :type xcb:WINDOW)))
+
+(defclass xcb:GetGeometry
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+(defclass xcb:GetGeometry~reply
+ (xcb:-reply)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (root :initarg :root :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (border-width :initarg :border-width :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:QueryTree
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:QueryTree~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (root :initarg :root :type xcb:WINDOW)
+ (parent :initarg :parent :type xcb:WINDOW)
+ (children-len :initarg :children-len :type xcb:CARD16)
+ (pad~1 :initform 14 :type xcb:-pad)
+ (children :initarg :children :type xcb:-ignore)
+ (children~ :initform
+ '(name children type xcb:WINDOW size
+ (xcb:-fieldref 'children-len))
+ :type xcb:-list)))
+
+(defclass xcb:InternAtom
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (only-if-exists :initarg :only-if-exists :type xcb:BOOL)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+(defclass xcb:InternAtom~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (atom :initarg :atom :type xcb:ATOM)))
+
+(defclass xcb:GetAtomName
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (atom :initarg :atom :type xcb:ATOM)))
+(defclass xcb:GetAtomName~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defconst xcb:PropMode:Replace 0)
+(defconst xcb:PropMode:Prepend 1)
+(defconst xcb:PropMode:Append 2)
+
+(defclass xcb:ChangeProperty
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)
+ (window :initarg :window :type xcb:WINDOW)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (format :initarg :format :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)
+ (data-len :initarg :data-len :type xcb:CARD32)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:void size
+ (/
+ (*
+ (xcb:-fieldref 'data-len)
+ (xcb:-fieldref 'format))
+ 8))
+ :type xcb:-list)))
+
+(defclass xcb:DeleteProperty
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (property :initarg :property :type xcb:ATOM)))
+
+(defconst xcb:GetPropertyType:Any 0)
+
+(defclass xcb:GetProperty
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (delete :initarg :delete :type xcb:BOOL)
+ (window :initarg :window :type xcb:WINDOW)
+ (property :initarg :property :type xcb:ATOM)
+ (type :initarg :type :type xcb:ATOM)
+ (long-offset :initarg :long-offset :type xcb:CARD32)
+ (long-length :initarg :long-length :type xcb:CARD32)))
+(defclass xcb:GetProperty~reply
+ (xcb:-reply)
+ ((format :initarg :format :type xcb:CARD8)
+ (type :initarg :type :type xcb:ATOM)
+ (bytes-after :initarg :bytes-after :type xcb:CARD32)
+ (value-len :initarg :value-len :type xcb:CARD32)
+ (pad~0 :initform 12 :type xcb:-pad)
+ (value :initarg :value :type xcb:-ignore)
+ (value~ :initform
+ '(name value type xcb:void size
+ (*
+ (xcb:-fieldref 'value-len)
+ (/
+ (xcb:-fieldref 'format)
+ 8)))
+ :type xcb:-list)))
+
+(defclass xcb:ListProperties
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:ListProperties~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (atoms-len :initarg :atoms-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (atoms :initarg :atoms :type xcb:-ignore)
+ (atoms~ :initform
+ '(name atoms type xcb:ATOM size
+ (xcb:-fieldref 'atoms-len))
+ :type xcb:-list)))
+
+(defclass xcb:SetSelectionOwner
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (owner :initarg :owner :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defclass xcb:GetSelectionOwner
+ (xcb:-request)
+ ((~opcode :initform 23 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (selection :initarg :selection :type xcb:ATOM)))
+(defclass xcb:GetSelectionOwner~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (owner :initarg :owner :type xcb:WINDOW)))
+
+(defclass xcb:ConvertSelection
+ (xcb:-request)
+ ((~opcode :initform 24 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (requestor :initarg :requestor :type xcb:WINDOW)
+ (selection :initarg :selection :type xcb:ATOM)
+ (target :initarg :target :type xcb:ATOM)
+ (property :initarg :property :type xcb:ATOM)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defconst xcb:SendEventDest:PointerWindow 0)
+(defconst xcb:SendEventDest:ItemFocus 1)
+
+(defclass xcb:SendEvent
+ (xcb:-request)
+ ((~opcode :initform 25 :type xcb:-u1)
+ (propagate :initarg :propagate :type xcb:BOOL)
+ (destination :initarg :destination :type xcb:WINDOW)
+ (event-mask :initarg :event-mask :type xcb:CARD32)
+ (event :initarg :event :type xcb:-ignore)
+ (event~ :initform
+ '(name event type xcb:char size 32)
+ :type xcb:-list)))
+
+(defconst xcb:GrabMode:Sync 0)
+(defconst xcb:GrabMode:Async 1)
+
+(defconst xcb:GrabStatus:Success 0)
+(defconst xcb:GrabStatus:AlreadyGrabbed 1)
+(defconst xcb:GrabStatus:InvalidTime 2)
+(defconst xcb:GrabStatus:NotViewable 3)
+(defconst xcb:GrabStatus:Frozen 4)
+
+(defconst xcb:Cursor:None 0)
+
+(defclass xcb:GrabPointer
+ (xcb:-request)
+ ((~opcode :initform 26 :type xcb:-u1)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (event-mask :initarg :event-mask :type xcb:CARD16)
+ (pointer-mode :initarg :pointer-mode :type xcb:BYTE)
+ (keyboard-mode :initarg :keyboard-mode :type xcb:BYTE)
+ (confine-to :initarg :confine-to :type xcb:WINDOW)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+(defclass xcb:GrabPointer~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:BYTE)))
+
+(defclass xcb:UngrabPointer
+ (xcb:-request)
+ ((~opcode :initform 27 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defconst xcb:ButtonIndex:Any 0)
+(defconst xcb:ButtonIndex:1 1)
+(defconst xcb:ButtonIndex:2 2)
+(defconst xcb:ButtonIndex:3 3)
+(defconst xcb:ButtonIndex:4 4)
+(defconst xcb:ButtonIndex:5 5)
+
+(defclass xcb:GrabButton
+ (xcb:-request)
+ ((~opcode :initform 28 :type xcb:-u1)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (event-mask :initarg :event-mask :type xcb:CARD16)
+ (pointer-mode :initarg :pointer-mode :type xcb:CARD8)
+ (keyboard-mode :initarg :keyboard-mode :type xcb:CARD8)
+ (confine-to :initarg :confine-to :type xcb:WINDOW)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (button :initarg :button :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (modifiers :initarg :modifiers :type xcb:CARD16)))
+
+(defclass xcb:UngrabButton
+ (xcb:-request)
+ ((~opcode :initform 29 :type xcb:-u1)
+ (button :initarg :button :type xcb:CARD8)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:ChangeActivePointerGrab
+ (xcb:-request)
+ ((~opcode :initform 30 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (event-mask :initarg :event-mask :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:GrabKeyboard
+ (xcb:-request)
+ ((~opcode :initform 31 :type xcb:-u1)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (pointer-mode :initarg :pointer-mode :type xcb:BYTE)
+ (keyboard-mode :initarg :keyboard-mode :type xcb:BYTE)
+ (pad~0 :initform 2 :type xcb:-pad)))
+(defclass xcb:GrabKeyboard~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:BYTE)))
+
+(defclass xcb:UngrabKeyboard
+ (xcb:-request)
+ ((~opcode :initform 32 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defconst xcb:Grab:Any 0)
+
+(defclass xcb:GrabKey
+ (xcb:-request)
+ ((~opcode :initform 33 :type xcb:-u1)
+ (owner-events :initarg :owner-events :type xcb:BOOL)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (key :initarg :key :type xcb:KEYCODE)
+ (pointer-mode :initarg :pointer-mode :type xcb:CARD8)
+ (keyboard-mode :initarg :keyboard-mode :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:UngrabKey
+ (xcb:-request)
+ ((~opcode :initform 34 :type xcb:-u1)
+ (key :initarg :key :type xcb:KEYCODE)
+ (grab-window :initarg :grab-window :type xcb:WINDOW)
+ (modifiers :initarg :modifiers :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defconst xcb:Allow:AsyncPointer 0)
+(defconst xcb:Allow:SyncPointer 1)
+(defconst xcb:Allow:ReplayPointer 2)
+(defconst xcb:Allow:AsyncKeyboard 3)
+(defconst xcb:Allow:SyncKeyboard 4)
+(defconst xcb:Allow:ReplayKeyboard 5)
+(defconst xcb:Allow:AsyncBoth 6)
+(defconst xcb:Allow:SyncBoth 7)
+
+(defclass xcb:AllowEvents
+ (xcb:-request)
+ ((~opcode :initform 35 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defclass xcb:GrabServer
+ (xcb:-request)
+ ((~opcode :initform 36 :type xcb:-u1)))
+
+(defclass xcb:UngrabServer
+ (xcb:-request)
+ ((~opcode :initform 37 :type xcb:-u1)))
+
+(defclass xcb:QueryPointer
+ (xcb:-request)
+ ((~opcode :initform 38 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:QueryPointer~reply
+ (xcb:-reply)
+ ((same-screen :initarg :same-screen :type xcb:BOOL)
+ (root :initarg :root :type xcb:WINDOW)
+ (child :initarg :child :type xcb:WINDOW)
+ (root-x :initarg :root-x :type xcb:INT16)
+ (root-y :initarg :root-y :type xcb:INT16)
+ (win-x :initarg :win-x :type xcb:INT16)
+ (win-y :initarg :win-y :type xcb:INT16)
+ (mask :initarg :mask :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:TIMECOORD
+ (xcb:-struct)
+ ((time :initarg :time :type xcb:TIMESTAMP)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)))
+
+(defclass xcb:GetMotionEvents
+ (xcb:-request)
+ ((~opcode :initform 39 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (start :initarg :start :type xcb:TIMESTAMP)
+ (stop :initarg :stop :type xcb:TIMESTAMP)))
+(defclass xcb:GetMotionEvents~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (events-len :initarg :events-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (events :initarg :events :type xcb:-ignore)
+ (events~ :initform
+ '(name events type xcb:TIMECOORD size
+ (xcb:-fieldref 'events-len))
+ :type xcb:-list)))
+
+(defclass xcb:TranslateCoordinates
+ (xcb:-request)
+ ((~opcode :initform 40 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (src-window :initarg :src-window :type xcb:WINDOW)
+ (dst-window :initarg :dst-window :type xcb:WINDOW)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)))
+(defclass xcb:TranslateCoordinates~reply
+ (xcb:-reply)
+ ((same-screen :initarg :same-screen :type xcb:BOOL)
+ (child :initarg :child :type xcb:WINDOW)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)))
+
+(defclass xcb:WarpPointer
+ (xcb:-request)
+ ((~opcode :initform 41 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (src-window :initarg :src-window :type xcb:WINDOW)
+ (dst-window :initarg :dst-window :type xcb:WINDOW)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (src-width :initarg :src-width :type xcb:CARD16)
+ (src-height :initarg :src-height :type xcb:CARD16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)))
+
+(defconst xcb:InputFocus:None 0)
+(defconst xcb:InputFocus:PointerRoot 1)
+(defconst xcb:InputFocus:Parent 2)
+(defconst xcb:InputFocus:FollowKeyboard 3)
+
+(defclass xcb:SetInputFocus
+ (xcb:-request)
+ ((~opcode :initform 42 :type xcb:-u1)
+ (revert-to :initarg :revert-to :type xcb:CARD8)
+ (focus :initarg :focus :type xcb:WINDOW)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defclass xcb:GetInputFocus
+ (xcb:-request)
+ ((~opcode :initform 43 :type xcb:-u1)))
+(defclass xcb:GetInputFocus~reply
+ (xcb:-reply)
+ ((revert-to :initarg :revert-to :type xcb:CARD8)
+ (focus :initarg :focus :type xcb:WINDOW)))
+
+(defclass xcb:QueryKeymap
+ (xcb:-request)
+ ((~opcode :initform 44 :type xcb:-u1)))
+(defclass xcb:QueryKeymap~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (keys :initarg :keys :type xcb:-ignore)
+ (keys~ :initform
+ '(name keys type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:OpenFont
+ (xcb:-request)
+ ((~opcode :initform 45 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (fid :initarg :fid :type xcb:FONT)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:CloseFont
+ (xcb:-request)
+ ((~opcode :initform 46 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (font :initarg :font :type xcb:FONT)))
+
+(defconst xcb:FontDraw:LeftToRight 0)
+(defconst xcb:FontDraw:RightToLeft 1)
+
+(defclass xcb:FONTPROP
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:ATOM)
+ (value :initarg :value :type xcb:CARD32)))
+
+(defclass xcb:CHARINFO
+ (xcb:-struct)
+ ((left-side-bearing :initarg :left-side-bearing :type xcb:INT16)
+ (right-side-bearing :initarg :right-side-bearing :type xcb:INT16)
+ (character-width :initarg :character-width :type xcb:INT16)
+ (ascent :initarg :ascent :type xcb:INT16)
+ (descent :initarg :descent :type xcb:INT16)
+ (attributes :initarg :attributes :type xcb:CARD16)))
+
+(defclass xcb:QueryFont
+ (xcb:-request)
+ ((~opcode :initform 47 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (font :initarg :font :type xcb:FONTABLE)))
+(defclass xcb:QueryFont~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (min-bounds :initarg :min-bounds :type xcb:CHARINFO)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (max-bounds :initarg :max-bounds :type xcb:CHARINFO)
+ (pad~2 :initform 4 :type xcb:-pad)
+ (min-char-or-byte2 :initarg :min-char-or-byte2 :type xcb:CARD16)
+ (max-char-or-byte2 :initarg :max-char-or-byte2 :type xcb:CARD16)
+ (default-char :initarg :default-char :type xcb:CARD16)
+ (properties-len :initarg :properties-len :type xcb:CARD16)
+ (draw-direction :initarg :draw-direction :type xcb:BYTE)
+ (min-byte1 :initarg :min-byte1 :type xcb:CARD8)
+ (max-byte1 :initarg :max-byte1 :type xcb:CARD8)
+ (all-chars-exist :initarg :all-chars-exist :type xcb:BOOL)
+ (font-ascent :initarg :font-ascent :type xcb:INT16)
+ (font-descent :initarg :font-descent :type xcb:INT16)
+ (char-infos-len :initarg :char-infos-len :type xcb:CARD32)
+ (properties :initarg :properties :type xcb:-ignore)
+ (properties~ :initform
+ '(name properties type xcb:FONTPROP size
+ (xcb:-fieldref 'properties-len))
+ :type xcb:-list)
+ (char-infos :initarg :char-infos :type xcb:-ignore)
+ (char-infos~ :initform
+ '(name char-infos type xcb:CHARINFO size
+ (xcb:-fieldref 'char-infos-len))
+ :type xcb:-list)))
+
+(defclass xcb:QueryTextExtents
+ (xcb:-request)
+ ((~opcode :initform 48 :type xcb:-u1)
+ (odd-length :type xcb:BOOL)
+ (font :initarg :font :type xcb:FONTABLE)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:CHAR2B size nil)
+ :type xcb:-list)))
+(cl-defmethod xcb:marshal
+ ((obj xcb:QueryTextExtents)
+ connection)
+ nil
+ (setf
+ (slot-value obj 'odd-length)
+ '(logand
+ (xcb:-fieldref 'string-len)
+ 1))
+ (cl-call-next-method obj connection))
+(defclass xcb:QueryTextExtents~reply
+ (xcb:-reply)
+ ((draw-direction :initarg :draw-direction :type xcb:BYTE)
+ (font-ascent :initarg :font-ascent :type xcb:INT16)
+ (font-descent :initarg :font-descent :type xcb:INT16)
+ (overall-ascent :initarg :overall-ascent :type xcb:INT16)
+ (overall-descent :initarg :overall-descent :type xcb:INT16)
+ (overall-width :initarg :overall-width :type xcb:INT32)
+ (overall-left :initarg :overall-left :type xcb:INT32)
+ (overall-right :initarg :overall-right :type xcb:INT32)))
+
+(defclass xcb:STR
+ (xcb:-struct)
+ ((name-len :initarg :name-len :type xcb:CARD8)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:ListFonts
+ (xcb:-request)
+ ((~opcode :initform 49 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (max-names :initarg :max-names :type xcb:CARD16)
+ (pattern-len :initarg :pattern-len :type xcb:CARD16)
+ (pattern :initarg :pattern :type xcb:-ignore)
+ (pattern~ :initform
+ '(name pattern type xcb:char size
+ (xcb:-fieldref 'pattern-len))
+ :type xcb:-list)))
+(defclass xcb:ListFonts~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (names-len :initarg :names-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:STR size
+ (xcb:-fieldref 'names-len))
+ :type xcb:-list)))
+
+(defclass xcb:ListFontsWithInfo
+ (xcb:-request)
+ ((~opcode :initform 50 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (max-names :initarg :max-names :type xcb:CARD16)
+ (pattern-len :initarg :pattern-len :type xcb:CARD16)
+ (pattern :initarg :pattern :type xcb:-ignore)
+ (pattern~ :initform
+ '(name pattern type xcb:char size
+ (xcb:-fieldref 'pattern-len))
+ :type xcb:-list)))
+(defclass xcb:ListFontsWithInfo~reply
+ (xcb:-reply)
+ ((name-len :initarg :name-len :type xcb:CARD8)
+ (min-bounds :initarg :min-bounds :type xcb:CHARINFO)
+ (pad~0 :initform 4 :type xcb:-pad)
+ (max-bounds :initarg :max-bounds :type xcb:CHARINFO)
+ (pad~1 :initform 4 :type xcb:-pad)
+ (min-char-or-byte2 :initarg :min-char-or-byte2 :type xcb:CARD16)
+ (max-char-or-byte2 :initarg :max-char-or-byte2 :type xcb:CARD16)
+ (default-char :initarg :default-char :type xcb:CARD16)
+ (properties-len :initarg :properties-len :type xcb:CARD16)
+ (draw-direction :initarg :draw-direction :type xcb:BYTE)
+ (min-byte1 :initarg :min-byte1 :type xcb:CARD8)
+ (max-byte1 :initarg :max-byte1 :type xcb:CARD8)
+ (all-chars-exist :initarg :all-chars-exist :type xcb:BOOL)
+ (font-ascent :initarg :font-ascent :type xcb:INT16)
+ (font-descent :initarg :font-descent :type xcb:INT16)
+ (replies-hint :initarg :replies-hint :type xcb:CARD32)
+ (properties :initarg :properties :type xcb:-ignore)
+ (properties~ :initform
+ '(name properties type xcb:FONTPROP size
+ (xcb:-fieldref 'properties-len))
+ :type xcb:-list)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:SetFontPath
+ (xcb:-request)
+ ((~opcode :initform 51 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (font-qty :initarg :font-qty :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (font :initarg :font :type xcb:-ignore)
+ (font~ :initform
+ '(name font type xcb:STR size
+ (xcb:-fieldref 'font-qty))
+ :type xcb:-list)))
+
+(defclass xcb:GetFontPath
+ (xcb:-request)
+ ((~opcode :initform 52 :type xcb:-u1)))
+(defclass xcb:GetFontPath~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (path-len :initarg :path-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (path :initarg :path :type xcb:-ignore)
+ (path~ :initform
+ '(name path type xcb:STR size
+ (xcb:-fieldref 'path-len))
+ :type xcb:-list)))
+
+(defclass xcb:CreatePixmap
+ (xcb:-request)
+ ((~opcode :initform 53 :type xcb:-u1)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pid :initarg :pid :type xcb:PIXMAP)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:FreePixmap
+ (xcb:-request)
+ ((~opcode :initform 54 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (pixmap :initarg :pixmap :type xcb:PIXMAP)))
+
+(defconst xcb:GC:Function 1)
+(defconst xcb:GC:PlaneMask 2)
+(defconst xcb:GC:Foreground 4)
+(defconst xcb:GC:Background 8)
+(defconst xcb:GC:LineWidth 16)
+(defconst xcb:GC:LineStyle 32)
+(defconst xcb:GC:CapStyle 64)
+(defconst xcb:GC:JoinStyle 128)
+(defconst xcb:GC:FillStyle 256)
+(defconst xcb:GC:FillRule 512)
+(defconst xcb:GC:Tile 1024)
+(defconst xcb:GC:Stipple 2048)
+(defconst xcb:GC:TileStippleOriginX 4096)
+(defconst xcb:GC:TileStippleOriginY 8192)
+(defconst xcb:GC:Font 16384)
+(defconst xcb:GC:SubwindowMode 32768)
+(defconst xcb:GC:GraphicsExposures 65536)
+(defconst xcb:GC:ClipOriginX 131072)
+(defconst xcb:GC:ClipOriginY 262144)
+(defconst xcb:GC:ClipMask 524288)
+(defconst xcb:GC:DashOffset 1048576)
+(defconst xcb:GC:DashList 2097152)
+(defconst xcb:GC:ArcMode 4194304)
+
+(defconst xcb:GX:clear 0)
+(defconst xcb:GX:and 1)
+(defconst xcb:GX:andReverse 2)
+(defconst xcb:GX:copy 3)
+(defconst xcb:GX:andInverted 4)
+(defconst xcb:GX:noop 5)
+(defconst xcb:GX:xor 6)
+(defconst xcb:GX:or 7)
+(defconst xcb:GX:nor 8)
+(defconst xcb:GX:equiv 9)
+(defconst xcb:GX:invert 10)
+(defconst xcb:GX:orReverse 11)
+(defconst xcb:GX:copyInverted 12)
+(defconst xcb:GX:orInverted 13)
+(defconst xcb:GX:nand 14)
+(defconst xcb:GX:set 15)
+
+(defconst xcb:LineStyle:Solid 0)
+(defconst xcb:LineStyle:OnOffDash 1)
+(defconst xcb:LineStyle:DoubleDash 2)
+
+(defconst xcb:CapStyle:NotLast 0)
+(defconst xcb:CapStyle:Butt 1)
+(defconst xcb:CapStyle:Round 2)
+(defconst xcb:CapStyle:Projecting 3)
+
+(defconst xcb:JoinStyle:Miter 0)
+(defconst xcb:JoinStyle:Round 1)
+(defconst xcb:JoinStyle:Bevel 2)
+
+(defconst xcb:FillStyle:Solid 0)
+(defconst xcb:FillStyle:Tiled 1)
+(defconst xcb:FillStyle:Stippled 2)
+(defconst xcb:FillStyle:OpaqueStippled 3)
+
+(defconst xcb:FillRule:EvenOdd 0)
+(defconst xcb:FillRule:Winding 1)
+
+(defconst xcb:SubwindowMode:ClipByChildren 0)
+(defconst xcb:SubwindowMode:IncludeInferiors 1)
+
+(defconst xcb:ArcMode:Chord 0)
+(defconst xcb:ArcMode:PieSlice 1)
+
+(defclass xcb:CreateGC
+ (xcb:-request)
+ ((~opcode :initform 55 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cid :initarg :cid :type xcb:GCONTEXT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:GC:Function function)
+ (xcb:GC:PlaneMask plane-mask)
+ (xcb:GC:Foreground foreground)
+ (xcb:GC:Background background)
+ (xcb:GC:LineWidth line-width)
+ (xcb:GC:LineStyle line-style)
+ (xcb:GC:CapStyle cap-style)
+ (xcb:GC:JoinStyle join-style)
+ (xcb:GC:FillStyle fill-style)
+ (xcb:GC:FillRule fill-rule)
+ (xcb:GC:Tile tile)
+ (xcb:GC:Stipple stipple)
+ (xcb:GC:TileStippleOriginX tile-stipple-x-origin)
+ (xcb:GC:TileStippleOriginY tile-stipple-y-origin)
+ (xcb:GC:Font font)
+ (xcb:GC:SubwindowMode subwindow-mode)
+ (xcb:GC:GraphicsExposures graphics-exposures)
+ (xcb:GC:ClipOriginX clip-x-origin)
+ (xcb:GC:ClipOriginY clip-y-origin)
+ (xcb:GC:ClipMask clip-mask)
+ (xcb:GC:DashOffset dash-offset)
+ (xcb:GC:DashList dashes)
+ (xcb:GC:ArcMode arc-mode)))
+ :type xcb:-switch)
+ (function :initarg :function :type xcb:CARD32)
+ (plane-mask :initarg :plane-mask :type xcb:CARD32)
+ (foreground :initarg :foreground :type xcb:CARD32)
+ (background :initarg :background :type xcb:CARD32)
+ (line-width :initarg :line-width :type xcb:CARD32)
+ (line-style :initarg :line-style :type xcb:CARD32)
+ (cap-style :initarg :cap-style :type xcb:CARD32)
+ (join-style :initarg :join-style :type xcb:CARD32)
+ (fill-style :initarg :fill-style :type xcb:CARD32)
+ (fill-rule :initarg :fill-rule :type xcb:CARD32)
+ (tile :initarg :tile :type xcb:PIXMAP)
+ (stipple :initarg :stipple :type xcb:PIXMAP)
+ (tile-stipple-x-origin :initarg :tile-stipple-x-origin :type xcb:INT32)
+ (tile-stipple-y-origin :initarg :tile-stipple-y-origin :type xcb:INT32)
+ (font :initarg :font :type xcb:FONT)
+ (subwindow-mode :initarg :subwindow-mode :type xcb:CARD32)
+ (graphics-exposures :initarg :graphics-exposures :type xcb:BOOL32)
+ (clip-x-origin :initarg :clip-x-origin :type xcb:INT32)
+ (clip-y-origin :initarg :clip-y-origin :type xcb:INT32)
+ (clip-mask :initarg :clip-mask :type xcb:PIXMAP)
+ (dash-offset :initarg :dash-offset :type xcb:CARD32)
+ (dashes :initarg :dashes :type xcb:CARD32)
+ (arc-mode :initarg :arc-mode :type xcb:CARD32)))
+
+(defclass xcb:ChangeGC
+ (xcb:-request)
+ ((~opcode :initform 56 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:GC:Function function)
+ (xcb:GC:PlaneMask plane-mask)
+ (xcb:GC:Foreground foreground)
+ (xcb:GC:Background background)
+ (xcb:GC:LineWidth line-width)
+ (xcb:GC:LineStyle line-style)
+ (xcb:GC:CapStyle cap-style)
+ (xcb:GC:JoinStyle join-style)
+ (xcb:GC:FillStyle fill-style)
+ (xcb:GC:FillRule fill-rule)
+ (xcb:GC:Tile tile)
+ (xcb:GC:Stipple stipple)
+ (xcb:GC:TileStippleOriginX tile-stipple-x-origin)
+ (xcb:GC:TileStippleOriginY tile-stipple-y-origin)
+ (xcb:GC:Font font)
+ (xcb:GC:SubwindowMode subwindow-mode)
+ (xcb:GC:GraphicsExposures graphics-exposures)
+ (xcb:GC:ClipOriginX clip-x-origin)
+ (xcb:GC:ClipOriginY clip-y-origin)
+ (xcb:GC:ClipMask clip-mask)
+ (xcb:GC:DashOffset dash-offset)
+ (xcb:GC:DashList dashes)
+ (xcb:GC:ArcMode arc-mode)))
+ :type xcb:-switch)
+ (function :initarg :function :type xcb:CARD32)
+ (plane-mask :initarg :plane-mask :type xcb:CARD32)
+ (foreground :initarg :foreground :type xcb:CARD32)
+ (background :initarg :background :type xcb:CARD32)
+ (line-width :initarg :line-width :type xcb:CARD32)
+ (line-style :initarg :line-style :type xcb:CARD32)
+ (cap-style :initarg :cap-style :type xcb:CARD32)
+ (join-style :initarg :join-style :type xcb:CARD32)
+ (fill-style :initarg :fill-style :type xcb:CARD32)
+ (fill-rule :initarg :fill-rule :type xcb:CARD32)
+ (tile :initarg :tile :type xcb:PIXMAP)
+ (stipple :initarg :stipple :type xcb:PIXMAP)
+ (tile-stipple-x-origin :initarg :tile-stipple-x-origin :type xcb:INT32)
+ (tile-stipple-y-origin :initarg :tile-stipple-y-origin :type xcb:INT32)
+ (font :initarg :font :type xcb:FONT)
+ (subwindow-mode :initarg :subwindow-mode :type xcb:CARD32)
+ (graphics-exposures :initarg :graphics-exposures :type xcb:BOOL32)
+ (clip-x-origin :initarg :clip-x-origin :type xcb:INT32)
+ (clip-y-origin :initarg :clip-y-origin :type xcb:INT32)
+ (clip-mask :initarg :clip-mask :type xcb:PIXMAP)
+ (dash-offset :initarg :dash-offset :type xcb:CARD32)
+ (dashes :initarg :dashes :type xcb:CARD32)
+ (arc-mode :initarg :arc-mode :type xcb:CARD32)))
+
+(defclass xcb:CopyGC
+ (xcb:-request)
+ ((~opcode :initform 57 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (src-gc :initarg :src-gc :type xcb:GCONTEXT)
+ (dst-gc :initarg :dst-gc :type xcb:GCONTEXT)
+ (value-mask :initarg :value-mask :type xcb:CARD32)))
+
+(defclass xcb:SetDashes
+ (xcb:-request)
+ ((~opcode :initform 58 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (dash-offset :initarg :dash-offset :type xcb:CARD16)
+ (dashes-len :initarg :dashes-len :type xcb:CARD16)
+ (dashes :initarg :dashes :type xcb:-ignore)
+ (dashes~ :initform
+ '(name dashes type xcb:CARD8 size
+ (xcb:-fieldref 'dashes-len))
+ :type xcb:-list)))
+
+(defconst xcb:ClipOrdering:Unsorted 0)
+(defconst xcb:ClipOrdering:YSorted 1)
+(defconst xcb:ClipOrdering:YXSorted 2)
+(defconst xcb:ClipOrdering:YXBanded 3)
+
+(defclass xcb:SetClipRectangles
+ (xcb:-request)
+ ((~opcode :initform 59 :type xcb:-u1)
+ (ordering :initarg :ordering :type xcb:BYTE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (clip-x-origin :initarg :clip-x-origin :type xcb:INT16)
+ (clip-y-origin :initarg :clip-y-origin :type xcb:INT16)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:FreeGC
+ (xcb:-request)
+ ((~opcode :initform 60 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (gc :initarg :gc :type xcb:GCONTEXT)))
+
+(defclass xcb:ClearArea
+ (xcb:-request)
+ ((~opcode :initform 61 :type xcb:-u1)
+ (exposures :initarg :exposures :type xcb:BOOL)
+ (window :initarg :window :type xcb:WINDOW)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:CopyArea
+ (xcb:-request)
+ ((~opcode :initform 62 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (src-drawable :initarg :src-drawable :type xcb:DRAWABLE)
+ (dst-drawable :initarg :dst-drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:CopyPlane
+ (xcb:-request)
+ ((~opcode :initform 63 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (src-drawable :initarg :src-drawable :type xcb:DRAWABLE)
+ (dst-drawable :initarg :dst-drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (bit-plane :initarg :bit-plane :type xcb:CARD32)))
+
+(defconst xcb:CoordMode:Origin 0)
+(defconst xcb:CoordMode:Previous 1)
+
+(defclass xcb:PolyPoint
+ (xcb:-request)
+ ((~opcode :initform 64 :type xcb:-u1)
+ (coordinate-mode :initarg :coordinate-mode :type xcb:BYTE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:POINT size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyLine
+ (xcb:-request)
+ ((~opcode :initform 65 :type xcb:-u1)
+ (coordinate-mode :initarg :coordinate-mode :type xcb:BYTE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:POINT size nil)
+ :type xcb:-list)))
+
+(defclass xcb:SEGMENT
+ (xcb:-struct)
+ ((x1 :initarg :x1 :type xcb:INT16)
+ (y1 :initarg :y1 :type xcb:INT16)
+ (x2 :initarg :x2 :type xcb:INT16)
+ (y2 :initarg :y2 :type xcb:INT16)))
+
+(defclass xcb:PolySegment
+ (xcb:-request)
+ ((~opcode :initform 66 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (segments :initarg :segments :type xcb:-ignore)
+ (segments~ :initform
+ '(name segments type xcb:SEGMENT size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyRectangle
+ (xcb:-request)
+ ((~opcode :initform 67 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyArc
+ (xcb:-request)
+ ((~opcode :initform 68 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (arcs :initarg :arcs :type xcb:-ignore)
+ (arcs~ :initform
+ '(name arcs type xcb:ARC size nil)
+ :type xcb:-list)))
+
+(defconst xcb:PolyShape:Complex 0)
+(defconst xcb:PolyShape:Nonconvex 1)
+(defconst xcb:PolyShape:Convex 2)
+
+(defclass xcb:FillPoly
+ (xcb:-request)
+ ((~opcode :initform 69 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (shape :initarg :shape :type xcb:CARD8)
+ (coordinate-mode :initarg :coordinate-mode :type xcb:CARD8)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (points :initarg :points :type xcb:-ignore)
+ (points~ :initform
+ '(name points type xcb:POINT size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyFillRectangle
+ (xcb:-request)
+ ((~opcode :initform 70 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (rectangles :initarg :rectangles :type xcb:-ignore)
+ (rectangles~ :initform
+ '(name rectangles type xcb:RECTANGLE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyFillArc
+ (xcb:-request)
+ ((~opcode :initform 71 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (arcs :initarg :arcs :type xcb:-ignore)
+ (arcs~ :initform
+ '(name arcs type xcb:ARC size nil)
+ :type xcb:-list)))
+
+(defconst xcb:ImageFormat:XYBitmap 0)
+(defconst xcb:ImageFormat:XYPixmap 1)
+(defconst xcb:ImageFormat:ZPixmap 2)
+
+(defclass xcb:PutImage
+ (xcb:-request)
+ ((~opcode :initform 72 :type xcb:-u1)
+ (format :initarg :format :type xcb:CARD8)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (dst-x :initarg :dst-x :type xcb:INT16)
+ (dst-y :initarg :dst-y :type xcb:INT16)
+ (left-pad :initarg :left-pad :type xcb:CARD8)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:GetImage
+ (xcb:-request)
+ ((~opcode :initform 73 :type xcb:-u1)
+ (format :initarg :format :type xcb:CARD8)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (plane-mask :initarg :plane-mask :type xcb:CARD32)))
+(defclass xcb:GetImage~reply
+ (xcb:-reply)
+ ((depth :initarg :depth :type xcb:CARD8)
+ (visual :initarg :visual :type xcb:VISUALID)
+ (pad~0 :initform 20 :type xcb:-pad)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:BYTE size
+ (*
+ (xcb:-fieldref 'length)
+ 4))
+ :type xcb:-list)))
+
+(defclass xcb:PolyText8
+ (xcb:-request)
+ ((~opcode :initform 74 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (items :initarg :items :type xcb:-ignore)
+ (items~ :initform
+ '(name items type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:PolyText16
+ (xcb:-request)
+ ((~opcode :initform 75 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (items :initarg :items :type xcb:-ignore)
+ (items~ :initform
+ '(name items type xcb:BYTE size nil)
+ :type xcb:-list)))
+
+(defclass xcb:ImageText8
+ (xcb:-request)
+ ((~opcode :initform 76 :type xcb:-u1)
+ (string-len :initarg :string-len :type xcb:BYTE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:char size
+ (xcb:-fieldref 'string-len))
+ :type xcb:-list)))
+
+(defclass xcb:ImageText16
+ (xcb:-request)
+ ((~opcode :initform 77 :type xcb:-u1)
+ (string-len :initarg :string-len :type xcb:BYTE)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (x :initarg :x :type xcb:INT16)
+ (y :initarg :y :type xcb:INT16)
+ (string :initarg :string :type xcb:-ignore)
+ (string~ :initform
+ '(name string type xcb:CHAR2B size
+ (xcb:-fieldref 'string-len))
+ :type xcb:-list)))
+
+(defconst xcb:ColormapAlloc:None 0)
+(defconst xcb:ColormapAlloc:All 1)
+
+(defclass xcb:CreateColormap
+ (xcb:-request)
+ ((~opcode :initform 78 :type xcb:-u1)
+ (alloc :initarg :alloc :type xcb:BYTE)
+ (mid :initarg :mid :type xcb:COLORMAP)
+ (window :initarg :window :type xcb:WINDOW)
+ (visual :initarg :visual :type xcb:VISUALID)))
+
+(defclass xcb:FreeColormap
+ (xcb:-request)
+ ((~opcode :initform 79 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)))
+
+(defclass xcb:CopyColormapAndFree
+ (xcb:-request)
+ ((~opcode :initform 80 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (mid :initarg :mid :type xcb:COLORMAP)
+ (src-cmap :initarg :src-cmap :type xcb:COLORMAP)))
+
+(defclass xcb:InstallColormap
+ (xcb:-request)
+ ((~opcode :initform 81 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)))
+
+(defclass xcb:UninstallColormap
+ (xcb:-request)
+ ((~opcode :initform 82 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)))
+
+(defclass xcb:ListInstalledColormaps
+ (xcb:-request)
+ ((~opcode :initform 83 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:ListInstalledColormaps~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (cmaps-len :initarg :cmaps-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (cmaps :initarg :cmaps :type xcb:-ignore)
+ (cmaps~ :initform
+ '(name cmaps type xcb:COLORMAP size
+ (xcb:-fieldref 'cmaps-len))
+ :type xcb:-list)))
+
+(defclass xcb:AllocColor
+ (xcb:-request)
+ ((~opcode :initform 84 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)))
+(defclass xcb:AllocColor~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (pixel :initarg :pixel :type xcb:CARD32)))
+
+(defclass xcb:AllocNamedColor
+ (xcb:-request)
+ ((~opcode :initform 85 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+(defclass xcb:AllocNamedColor~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pixel :initarg :pixel :type xcb:CARD32)
+ (exact-red :initarg :exact-red :type xcb:CARD16)
+ (exact-green :initarg :exact-green :type xcb:CARD16)
+ (exact-blue :initarg :exact-blue :type xcb:CARD16)
+ (visual-red :initarg :visual-red :type xcb:CARD16)
+ (visual-green :initarg :visual-green :type xcb:CARD16)
+ (visual-blue :initarg :visual-blue :type xcb:CARD16)))
+
+(defclass xcb:AllocColorCells
+ (xcb:-request)
+ ((~opcode :initform 86 :type xcb:-u1)
+ (contiguous :initarg :contiguous :type xcb:BOOL)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (colors :initarg :colors :type xcb:CARD16)
+ (planes :initarg :planes :type xcb:CARD16)))
+(defclass xcb:AllocColorCells~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pixels-len :initarg :pixels-len :type xcb:CARD16)
+ (masks-len :initarg :masks-len :type xcb:CARD16)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (pixels :initarg :pixels :type xcb:-ignore)
+ (pixels~ :initform
+ '(name pixels type xcb:CARD32 size
+ (xcb:-fieldref 'pixels-len))
+ :type xcb:-list)
+ (masks :initarg :masks :type xcb:-ignore)
+ (masks~ :initform
+ '(name masks type xcb:CARD32 size
+ (xcb:-fieldref 'masks-len))
+ :type xcb:-list)))
+
+(defclass xcb:AllocColorPlanes
+ (xcb:-request)
+ ((~opcode :initform 87 :type xcb:-u1)
+ (contiguous :initarg :contiguous :type xcb:BOOL)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (colors :initarg :colors :type xcb:CARD16)
+ (reds :initarg :reds :type xcb:CARD16)
+ (greens :initarg :greens :type xcb:CARD16)
+ (blues :initarg :blues :type xcb:CARD16)))
+(defclass xcb:AllocColorPlanes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pixels-len :initarg :pixels-len :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (red-mask :initarg :red-mask :type xcb:CARD32)
+ (green-mask :initarg :green-mask :type xcb:CARD32)
+ (blue-mask :initarg :blue-mask :type xcb:CARD32)
+ (pad~2 :initform 8 :type xcb:-pad)
+ (pixels :initarg :pixels :type xcb:-ignore)
+ (pixels~ :initform
+ '(name pixels type xcb:CARD32 size
+ (xcb:-fieldref 'pixels-len))
+ :type xcb:-list)))
+
+(defclass xcb:FreeColors
+ (xcb:-request)
+ ((~opcode :initform 88 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (plane-mask :initarg :plane-mask :type xcb:CARD32)
+ (pixels :initarg :pixels :type xcb:-ignore)
+ (pixels~ :initform
+ '(name pixels type xcb:CARD32 size nil)
+ :type xcb:-list)))
+
+(defconst xcb:ColorFlag:Red 1)
+(defconst xcb:ColorFlag:Green 2)
+(defconst xcb:ColorFlag:Blue 4)
+
+(defclass xcb:COLORITEM
+ (xcb:-struct)
+ ((pixel :initarg :pixel :type xcb:CARD32)
+ (red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:BYTE)
+ (pad~0 :initform 1 :type xcb:-pad)))
+
+(defclass xcb:StoreColors
+ (xcb:-request)
+ ((~opcode :initform 89 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (items :initarg :items :type xcb:-ignore)
+ (items~ :initform
+ '(name items type xcb:COLORITEM size nil)
+ :type xcb:-list)))
+
+(defclass xcb:StoreNamedColor
+ (xcb:-request)
+ ((~opcode :initform 90 :type xcb:-u1)
+ (flags :initarg :flags :type xcb:CARD8)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (pixel :initarg :pixel :type xcb:CARD32)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+
+(defclass xcb:RGB
+ (xcb:-struct)
+ ((red :initarg :red :type xcb:CARD16)
+ (green :initarg :green :type xcb:CARD16)
+ (blue :initarg :blue :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)))
+
+(defclass xcb:QueryColors
+ (xcb:-request)
+ ((~opcode :initform 91 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (pixels :initarg :pixels :type xcb:-ignore)
+ (pixels~ :initform
+ '(name pixels type xcb:CARD32 size nil)
+ :type xcb:-list)))
+(defclass xcb:QueryColors~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (colors-len :initarg :colors-len :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (colors :initarg :colors :type xcb:-ignore)
+ (colors~ :initform
+ '(name colors type xcb:RGB size
+ (xcb:-fieldref 'colors-len))
+ :type xcb:-list)))
+
+(defclass xcb:LookupColor
+ (xcb:-request)
+ ((~opcode :initform 92 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cmap :initarg :cmap :type xcb:COLORMAP)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+(defclass xcb:LookupColor~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (exact-red :initarg :exact-red :type xcb:CARD16)
+ (exact-green :initarg :exact-green :type xcb:CARD16)
+ (exact-blue :initarg :exact-blue :type xcb:CARD16)
+ (visual-red :initarg :visual-red :type xcb:CARD16)
+ (visual-green :initarg :visual-green :type xcb:CARD16)
+ (visual-blue :initarg :visual-blue :type xcb:CARD16)))
+
+(defconst xcb:Pixmap:None 0)
+
+(defclass xcb:CreateCursor
+ (xcb:-request)
+ ((~opcode :initform 93 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cid :initarg :cid :type xcb:CURSOR)
+ (source :initarg :source :type xcb:PIXMAP)
+ (mask :initarg :mask :type xcb:PIXMAP)
+ (fore-red :initarg :fore-red :type xcb:CARD16)
+ (fore-green :initarg :fore-green :type xcb:CARD16)
+ (fore-blue :initarg :fore-blue :type xcb:CARD16)
+ (back-red :initarg :back-red :type xcb:CARD16)
+ (back-green :initarg :back-green :type xcb:CARD16)
+ (back-blue :initarg :back-blue :type xcb:CARD16)
+ (x :initarg :x :type xcb:CARD16)
+ (y :initarg :y :type xcb:CARD16)))
+
+(defconst xcb:Font:None 0)
+
+(defclass xcb:CreateGlyphCursor
+ (xcb:-request)
+ ((~opcode :initform 94 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cid :initarg :cid :type xcb:CURSOR)
+ (source-font :initarg :source-font :type xcb:FONT)
+ (mask-font :initarg :mask-font :type xcb:FONT)
+ (source-char :initarg :source-char :type xcb:CARD16)
+ (mask-char :initarg :mask-char :type xcb:CARD16)
+ (fore-red :initarg :fore-red :type xcb:CARD16)
+ (fore-green :initarg :fore-green :type xcb:CARD16)
+ (fore-blue :initarg :fore-blue :type xcb:CARD16)
+ (back-red :initarg :back-red :type xcb:CARD16)
+ (back-green :initarg :back-green :type xcb:CARD16)
+ (back-blue :initarg :back-blue :type xcb:CARD16)))
+
+(defclass xcb:FreeCursor
+ (xcb:-request)
+ ((~opcode :initform 95 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+
+(defclass xcb:RecolorCursor
+ (xcb:-request)
+ ((~opcode :initform 96 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (cursor :initarg :cursor :type xcb:CURSOR)
+ (fore-red :initarg :fore-red :type xcb:CARD16)
+ (fore-green :initarg :fore-green :type xcb:CARD16)
+ (fore-blue :initarg :fore-blue :type xcb:CARD16)
+ (back-red :initarg :back-red :type xcb:CARD16)
+ (back-green :initarg :back-green :type xcb:CARD16)
+ (back-blue :initarg :back-blue :type xcb:CARD16)))
+
+(defconst xcb:QueryShapeOf:LargestCursor 0)
+(defconst xcb:QueryShapeOf:FastestTile 1)
+(defconst xcb:QueryShapeOf:FastestStipple 2)
+
+(defclass xcb:QueryBestSize
+ (xcb:-request)
+ ((~opcode :initform 97 :type xcb:-u1)
+ (class :initarg :class :type xcb:CARD8)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+(defclass xcb:QueryBestSize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+
+(defclass xcb:QueryExtension
+ (xcb:-request)
+ ((~opcode :initform 98 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (name-len :initarg :name-len :type xcb:CARD16)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-len))
+ :type xcb:-list)))
+(defclass xcb:QueryExtension~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (present :initarg :present :type xcb:BOOL)
+ (major-opcode :initarg :major-opcode :type xcb:CARD8)
+ (first-event :initarg :first-event :type xcb:CARD8)
+ (first-error :initarg :first-error :type xcb:CARD8)))
+
+(defclass xcb:ListExtensions
+ (xcb:-request)
+ ((~opcode :initform 99 :type xcb:-u1)))
+(defclass xcb:ListExtensions~reply
+ (xcb:-reply)
+ ((names-len :initarg :names-len :type xcb:CARD8)
+ (pad~0 :initform 24 :type xcb:-pad)
+ (names :initarg :names :type xcb:-ignore)
+ (names~ :initform
+ '(name names type xcb:STR size
+ (xcb:-fieldref 'names-len))
+ :type xcb:-list)))
+
+(defclass xcb:ChangeKeyboardMapping
+ (xcb:-request)
+ ((~opcode :initform 100 :type xcb:-u1)
+ (keycode-count :initarg :keycode-count :type xcb:CARD8)
+ (first-keycode :initarg :first-keycode :type xcb:KEYCODE)
+ (keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (*
+ (xcb:-fieldref 'keycode-count)
+ (xcb:-fieldref 'keysyms-per-keycode)))
+ :type xcb:-list)))
+
+(defclass xcb:GetKeyboardMapping
+ (xcb:-request)
+ ((~opcode :initform 101 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (first-keycode :initarg :first-keycode :type xcb:KEYCODE)
+ (count :initarg :count :type xcb:CARD8)))
+(defclass xcb:GetKeyboardMapping~reply
+ (xcb:-reply)
+ ((keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:BYTE)
+ (pad~0 :initform 24 :type xcb:-pad)
+ (keysyms :initarg :keysyms :type xcb:-ignore)
+ (keysyms~ :initform
+ '(name keysyms type xcb:KEYSYM size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defconst xcb:KB:KeyClickPercent 1)
+(defconst xcb:KB:BellPercent 2)
+(defconst xcb:KB:BellPitch 4)
+(defconst xcb:KB:BellDuration 8)
+(defconst xcb:KB:Led 16)
+(defconst xcb:KB:LedMode 32)
+(defconst xcb:KB:Key 64)
+(defconst xcb:KB:AutoRepeatMode 128)
+
+(defconst xcb:LedMode:Off 0)
+(defconst xcb:LedMode:On 1)
+
+(defconst xcb:AutoRepeatMode:Off 0)
+(defconst xcb:AutoRepeatMode:On 1)
+(defconst xcb:AutoRepeatMode:Default 2)
+
+(defclass xcb:ChangeKeyboardControl
+ (xcb:-request)
+ ((~opcode :initform 102 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (value-mask :initarg :value-mask :type xcb:CARD32)
+ (value-list :initform
+ '(expression
+ (xcb:-fieldref 'value-mask)
+ cases
+ ((xcb:KB:KeyClickPercent key-click-percent)
+ (xcb:KB:BellPercent bell-percent)
+ (xcb:KB:BellPitch bell-pitch)
+ (xcb:KB:BellDuration bell-duration)
+ (xcb:KB:Led led)
+ (xcb:KB:LedMode led-mode)
+ (xcb:KB:Key key)
+ (xcb:KB:AutoRepeatMode auto-repeat-mode)))
+ :type xcb:-switch)
+ (key-click-percent :initarg :key-click-percent :type xcb:INT32)
+ (bell-percent :initarg :bell-percent :type xcb:INT32)
+ (bell-pitch :initarg :bell-pitch :type xcb:INT32)
+ (bell-duration :initarg :bell-duration :type xcb:INT32)
+ (led :initarg :led :type xcb:CARD32)
+ (led-mode :initarg :led-mode :type xcb:CARD32)
+ (key :initarg :key :type xcb:KEYCODE32)
+ (auto-repeat-mode :initarg :auto-repeat-mode :type xcb:CARD32)))
+
+(defclass xcb:GetKeyboardControl
+ (xcb:-request)
+ ((~opcode :initform 103 :type xcb:-u1)))
+(defclass xcb:GetKeyboardControl~reply
+ (xcb:-reply)
+ ((global-auto-repeat :initarg :global-auto-repeat :type xcb:BYTE)
+ (led-mask :initarg :led-mask :type xcb:CARD32)
+ (key-click-percent :initarg :key-click-percent :type xcb:CARD8)
+ (bell-percent :initarg :bell-percent :type xcb:CARD8)
+ (bell-pitch :initarg :bell-pitch :type xcb:CARD16)
+ (bell-duration :initarg :bell-duration :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (auto-repeats :initarg :auto-repeats :type xcb:-ignore)
+ (auto-repeats~ :initform
+ '(name auto-repeats type xcb:CARD8 size 32)
+ :type xcb:-list)))
+
+(defclass xcb:Bell
+ (xcb:-request)
+ ((~opcode :initform 104 :type xcb:-u1)
+ (percent :initarg :percent :type xcb:INT8)))
+
+(defclass xcb:ChangePointerControl
+ (xcb:-request)
+ ((~opcode :initform 105 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (acceleration-numerator :initarg :acceleration-numerator :type xcb:INT16)
+ (acceleration-denominator :initarg :acceleration-denominator :type
xcb:INT16)
+ (threshold :initarg :threshold :type xcb:INT16)
+ (do-acceleration :initarg :do-acceleration :type xcb:BOOL)
+ (do-threshold :initarg :do-threshold :type xcb:BOOL)))
+
+(defclass xcb:GetPointerControl
+ (xcb:-request)
+ ((~opcode :initform 106 :type xcb:-u1)))
+(defclass xcb:GetPointerControl~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (acceleration-numerator :initarg :acceleration-numerator :type xcb:CARD16)
+ (acceleration-denominator :initarg :acceleration-denominator :type
xcb:CARD16)
+ (threshold :initarg :threshold :type xcb:CARD16)
+ (pad~1 :initform 18 :type xcb:-pad)))
+
+(defconst xcb:Blanking:NotPreferred 0)
+(defconst xcb:Blanking:Preferred 1)
+(defconst xcb:Blanking:Default 2)
+
+(defconst xcb:Exposures:NotAllowed 0)
+(defconst xcb:Exposures:Allowed 1)
+(defconst xcb:Exposures:Default 2)
+
+(defclass xcb:SetScreenSaver
+ (xcb:-request)
+ ((~opcode :initform 107 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (timeout :initarg :timeout :type xcb:INT16)
+ (interval :initarg :interval :type xcb:INT16)
+ (prefer-blanking :initarg :prefer-blanking :type xcb:CARD8)
+ (allow-exposures :initarg :allow-exposures :type xcb:CARD8)))
+
+(defclass xcb:GetScreenSaver
+ (xcb:-request)
+ ((~opcode :initform 108 :type xcb:-u1)))
+(defclass xcb:GetScreenSaver~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (timeout :initarg :timeout :type xcb:CARD16)
+ (interval :initarg :interval :type xcb:CARD16)
+ (prefer-blanking :initarg :prefer-blanking :type xcb:BYTE)
+ (allow-exposures :initarg :allow-exposures :type xcb:BYTE)
+ (pad~1 :initform 18 :type xcb:-pad)))
+
+(defconst xcb:HostMode:Insert 0)
+(defconst xcb:HostMode:Delete 1)
+
+(defconst xcb:Family:Internet 0)
+(defconst xcb:Family:DECnet 1)
+(defconst xcb:Family:Chaos 2)
+(defconst xcb:Family:ServerInterpreted 5)
+(defconst xcb:Family:Internet6 6)
+
+(defclass xcb:ChangeHosts
+ (xcb:-request)
+ ((~opcode :initform 109 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)
+ (family :initarg :family :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (address-len :initarg :address-len :type xcb:CARD16)
+ (address :initarg :address :type xcb:-ignore)
+ (address~ :initform
+ '(name address type xcb:BYTE size
+ (xcb:-fieldref 'address-len))
+ :type xcb:-list)))
+
+(defclass xcb:HOST
+ (xcb:-struct)
+ ((family :initarg :family :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (address-len :initarg :address-len :type xcb:CARD16)
+ (address :initarg :address :type xcb:-ignore)
+ (address~ :initform
+ '(name address type xcb:BYTE size
+ (xcb:-fieldref 'address-len))
+ :type xcb:-list)))
+
+(defclass xcb:ListHosts
+ (xcb:-request)
+ ((~opcode :initform 110 :type xcb:-u1)))
+(defclass xcb:ListHosts~reply
+ (xcb:-reply)
+ ((mode :initarg :mode :type xcb:BYTE)
+ (hosts-len :initarg :hosts-len :type xcb:CARD16)
+ (pad~0 :initform 22 :type xcb:-pad)
+ (hosts :initarg :hosts :type xcb:-ignore)
+ (hosts~ :initform
+ '(name hosts type xcb:HOST size
+ (xcb:-fieldref 'hosts-len))
+ :type xcb:-list)))
+
+(defconst xcb:AccessControl:Disable 0)
+(defconst xcb:AccessControl:Enable 1)
+
+(defclass xcb:SetAccessControl
+ (xcb:-request)
+ ((~opcode :initform 111 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)))
+
+(defconst xcb:CloseDown:DestroyAll 0)
+(defconst xcb:CloseDown:RetainPermanent 1)
+(defconst xcb:CloseDown:RetainTemporary 2)
+
+(defclass xcb:SetCloseDownMode
+ (xcb:-request)
+ ((~opcode :initform 112 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)))
+
+(defconst xcb:Kill:AllTemporary 0)
+
+(defclass xcb:KillClient
+ (xcb:-request)
+ ((~opcode :initform 113 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (resource :initarg :resource :type xcb:CARD32)))
+
+(defclass xcb:RotateProperties
+ (xcb:-request)
+ ((~opcode :initform 114 :type xcb:-u1)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (window :initarg :window :type xcb:WINDOW)
+ (atoms-len :initarg :atoms-len :type xcb:CARD16)
+ (delta :initarg :delta :type xcb:INT16)
+ (atoms :initarg :atoms :type xcb:-ignore)
+ (atoms~ :initform
+ '(name atoms type xcb:ATOM size
+ (xcb:-fieldref 'atoms-len))
+ :type xcb:-list)))
+
+(defconst xcb:ScreenSaver:Reset 0)
+(defconst xcb:ScreenSaver:Active 1)
+
+(defclass xcb:ForceScreenSaver
+ (xcb:-request)
+ ((~opcode :initform 115 :type xcb:-u1)
+ (mode :initarg :mode :type xcb:CARD8)))
+
+(defconst xcb:MappingStatus:Success 0)
+(defconst xcb:MappingStatus:Busy 1)
+(defconst xcb:MappingStatus:Failure 2)
+
+(defclass xcb:SetPointerMapping
+ (xcb:-request)
+ ((~opcode :initform 116 :type xcb:-u1)
+ (map-len :initarg :map-len :type xcb:CARD8)
+ (map :initarg :map :type xcb:-ignore)
+ (map~ :initform
+ '(name map type xcb:CARD8 size
+ (xcb:-fieldref 'map-len))
+ :type xcb:-list)))
+(defclass xcb:SetPointerMapping~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:BYTE)))
+
+(defclass xcb:GetPointerMapping
+ (xcb:-request)
+ ((~opcode :initform 117 :type xcb:-u1)))
+(defclass xcb:GetPointerMapping~reply
+ (xcb:-reply)
+ ((map-len :initarg :map-len :type xcb:CARD8)
+ (pad~0 :initform 24 :type xcb:-pad)
+ (map :initarg :map :type xcb:-ignore)
+ (map~ :initform
+ '(name map type xcb:CARD8 size
+ (xcb:-fieldref 'map-len))
+ :type xcb:-list)))
+
+(defconst xcb:MapIndex:Shift 0)
+(defconst xcb:MapIndex:Lock 1)
+(defconst xcb:MapIndex:Control 2)
+(defconst xcb:MapIndex:1 3)
+(defconst xcb:MapIndex:2 4)
+(defconst xcb:MapIndex:3 5)
+(defconst xcb:MapIndex:4 6)
+(defconst xcb:MapIndex:5 7)
+
+(defclass xcb:SetModifierMapping
+ (xcb:-request)
+ ((~opcode :initform 118 :type xcb:-u1)
+ (keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8)
+ (keycodes :initarg :keycodes :type xcb:-ignore)
+ (keycodes~ :initform
+ '(name keycodes type xcb:KEYCODE size
+ (*
+ (xcb:-fieldref 'keycodes-per-modifier)
+ 8))
+ :type xcb:-list)))
+(defclass xcb:SetModifierMapping~reply
+ (xcb:-reply)
+ ((status :initarg :status :type xcb:BYTE)))
+
+(defclass xcb:GetModifierMapping
+ (xcb:-request)
+ ((~opcode :initform 119 :type xcb:-u1)))
+(defclass xcb:GetModifierMapping~reply
+ (xcb:-reply)
+ ((keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8)
+ (pad~0 :initform 24 :type xcb:-pad)
+ (keycodes :initarg :keycodes :type xcb:-ignore)
+ (keycodes~ :initform
+ '(name keycodes type xcb:KEYCODE size
+ (*
+ (xcb:-fieldref 'keycodes-per-modifier)
+ 8))
+ :type xcb:-list)))
+
+(defclass xcb:NoOperation
+ (xcb:-request)
+ ((~opcode :initform 127 :type xcb:-u1)))
+
+(defconst xcb:error-number-class-alist
+ '((1 . xcb:Request)
+ (2 . xcb:Value)
+ (3 . xcb:Window)
+ (4 . xcb:Pixmap)
+ (5 . xcb:Atom)
+ (6 . xcb:Cursor)
+ (7 . xcb:Font)
+ (8 . xcb:Match)
+ (9 . xcb:Drawable)
+ (10 . xcb:Access)
+ (11 . xcb:Alloc)
+ (12 . xcb:Colormap)
+ (13 . xcb:GContext)
+ (14 . xcb:IDChoice)
+ (15 . xcb:Name)
+ (16 . xcb:Length)
+ (17 . xcb:Implementation))
+ "(error-number . error-class) alist")
+
+(defconst xcb:event-number-class-alist
+ '((2 . xcb:KeyPress)
+ (3 . xcb:KeyRelease)
+ (4 . xcb:ButtonPress)
+ (5 . xcb:ButtonRelease)
+ (6 . xcb:MotionNotify)
+ (7 . xcb:EnterNotify)
+ (8 . xcb:LeaveNotify)
+ (9 . xcb:FocusIn)
+ (10 . xcb:FocusOut)
+ (11 . xcb:KeymapNotify)
+ (12 . xcb:Expose)
+ (13 . xcb:GraphicsExposure)
+ (14 . xcb:NoExposure)
+ (15 . xcb:VisibilityNotify)
+ (16 . xcb:CreateNotify)
+ (17 . xcb:DestroyNotify)
+ (18 . xcb:UnmapNotify)
+ (19 . xcb:MapNotify)
+ (20 . xcb:MapRequest)
+ (21 . xcb:ReparentNotify)
+ (22 . xcb:ConfigureNotify)
+ (23 . xcb:ConfigureRequest)
+ (24 . xcb:GravityNotify)
+ (25 . xcb:ResizeRequest)
+ (26 . xcb:CirculateNotify)
+ (27 . xcb:CirculateRequest)
+ (28 . xcb:PropertyNotify)
+ (29 . xcb:SelectionClear)
+ (30 . xcb:SelectionRequest)
+ (31 . xcb:SelectionNotify)
+ (32 . xcb:ColormapNotify)
+ (33 . xcb:ClientMessage)
+ (34 . xcb:MappingNotify)
+ (35 . xcb:GeGeneric))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xproto)
diff --git a/xcb-xselinux.el b/xcb-xselinux.el
new file mode 100644
index 0000000..cdfade1
--- /dev/null
+++ b/xcb-xselinux.el
@@ -0,0 +1,333 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xselinux.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xselinux:-extension-xname "SELinux")
+(defconst xcb:xselinux:-extension-name "SELinux")
+(defconst xcb:xselinux:-major-version 1)
+(defconst xcb:xselinux:-minor-version 0)
+
+(require 'xcb-xproto)
+
+(defclass xcb:xselinux:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (client-major :initarg :client-major :type xcb:CARD8)
+ (client-minor :initarg :client-minor :type xcb:CARD8)))
+(defclass xcb:xselinux:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (server-major :initarg :server-major :type xcb:CARD16)
+ (server-minor :initarg :server-minor :type xcb:CARD16)))
+
+(defclass xcb:xselinux:SetDeviceCreateContext
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetDeviceCreateContext
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)))
+(defclass xcb:xselinux:GetDeviceCreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetDeviceContext
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (device :initarg :device :type xcb:CARD32)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetDeviceContext
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (device :initarg :device :type xcb:CARD32)))
+(defclass xcb:xselinux:GetDeviceContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetWindowCreateContext
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetWindowCreateContext
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)))
+(defclass xcb:xselinux:GetWindowCreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetWindowContext
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xselinux:GetWindowContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:ListItem
+ (xcb:-struct)
+ ((name :initarg :name :type xcb:ATOM)
+ (object-context-len :initarg :object-context-len :type xcb:CARD32)
+ (data-context-len :initarg :data-context-len :type xcb:CARD32)
+ (object-context :initarg :object-context :type xcb:-ignore)
+ (object-context~ :initform
+ '(name object-context type xcb:char size
+ (xcb:-fieldref 'object-context-len))
+ :type xcb:-list)
+ (data-context :initarg :data-context :type xcb:-ignore)
+ (data-context~ :initform
+ '(name data-context type xcb:char size
+ (xcb:-fieldref 'data-context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetPropertyCreateContext
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetPropertyCreateContext
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)))
+(defclass xcb:xselinux:GetPropertyCreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetPropertyUseContext
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetPropertyUseContext
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)))
+(defclass xcb:xselinux:GetPropertyUseContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetPropertyContext
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (property :initarg :property :type xcb:ATOM)))
+(defclass xcb:xselinux:GetPropertyContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetPropertyDataContext
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (property :initarg :property :type xcb:ATOM)))
+(defclass xcb:xselinux:GetPropertyDataContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:ListProperties
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xselinux:ListProperties~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (properties-len :initarg :properties-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (properties :initarg :properties :type xcb:-ignore)
+ (properties~ :initform
+ '(name properties type xcb:xselinux:ListItem size
+ (xcb:-fieldref 'properties-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetSelectionCreateContext
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetSelectionCreateContext
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)))
+(defclass xcb:xselinux:GetSelectionCreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:SetSelectionUseContext
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetSelectionUseContext
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)))
+(defclass xcb:xselinux:GetSelectionUseContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetSelectionContext
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (selection :initarg :selection :type xcb:ATOM)))
+(defclass xcb:xselinux:GetSelectionContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetSelectionDataContext
+ (xcb:-request)
+ ((~opcode :initform 20 :type xcb:-u1)
+ (selection :initarg :selection :type xcb:ATOM)))
+(defclass xcb:xselinux:GetSelectionDataContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:ListSelections
+ (xcb:-request)
+ ((~opcode :initform 21 :type xcb:-u1)))
+(defclass xcb:xselinux:ListSelections~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (selections-len :initarg :selections-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (selections :initarg :selections :type xcb:-ignore)
+ (selections~ :initform
+ '(name selections type xcb:xselinux:ListItem size
+ (xcb:-fieldref 'selections-len))
+ :type xcb:-list)))
+
+(defclass xcb:xselinux:GetClientContext
+ (xcb:-request)
+ ((~opcode :initform 22 :type xcb:-u1)
+ (resource :initarg :resource :type xcb:CARD32)))
+(defclass xcb:xselinux:GetClientContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (context-len :initarg :context-len :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (context :initarg :context :type xcb:-ignore)
+ (context~ :initform
+ '(name context type xcb:char size
+ (xcb:-fieldref 'context-len))
+ :type xcb:-list)))
+
+
+
+(provide 'xcb-xselinux)
diff --git a/xcb-xtest.el b/xcb-xtest.el
new file mode 100644
index 0000000..9197be0
--- /dev/null
+++ b/xcb-xtest.el
@@ -0,0 +1,58 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xtest.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xtest:-extension-xname "XTEST")
+(defconst xcb:xtest:-extension-name "Test")
+(defconst xcb:xtest:-major-version 2)
+(defconst xcb:xtest:-minor-version 2)
+
+(require 'xcb-xproto)
+
+(defclass xcb:xtest:GetVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)
+ (major-version :initarg :major-version :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+(defclass xcb:xtest:GetVersion~reply
+ (xcb:-reply)
+ ((major-version :initarg :major-version :type xcb:CARD8)
+ (minor-version :initarg :minor-version :type xcb:CARD16)))
+
+(defconst xcb:xtest:Cursor:None 0)
+(defconst xcb:xtest:Cursor:Current 1)
+
+(defclass xcb:xtest:CompareCursor
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)
+ (cursor :initarg :cursor :type xcb:CURSOR)))
+(defclass xcb:xtest:CompareCursor~reply
+ (xcb:-reply)
+ ((same :initarg :same :type xcb:BOOL)))
+
+(defclass xcb:xtest:FakeInput
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (type :initarg :type :type xcb:BYTE)
+ (detail :initarg :detail :type xcb:BYTE)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (time :initarg :time :type xcb:CARD32)
+ (root :initarg :root :type xcb:WINDOW)
+ (pad~1 :initform 8 :type xcb:-pad)
+ (rootX :initarg :rootX :type xcb:INT16)
+ (rootY :initarg :rootY :type xcb:INT16)
+ (pad~2 :initform 7 :type xcb:-pad)
+ (deviceid :initarg :deviceid :type xcb:CARD8)))
+
+(defclass xcb:xtest:GrabControl
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (impervious :initarg :impervious :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+
+
+(provide 'xcb-xtest)
diff --git a/xcb-xv.el b/xcb-xv.el
new file mode 100644
index 0000000..9c62f5d
--- /dev/null
+++ b/xcb-xv.el
@@ -0,0 +1,474 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xv.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xv:-extension-xname "XVideo")
+(defconst xcb:xv:-extension-name "Xv")
+(defconst xcb:xv:-major-version 2)
+(defconst xcb:xv:-minor-version 2)
+
+(require 'xcb-xproto)
+
+(require 'xcb-shm)
+
+(xcb:deftypealias 'xcb:xv:PORT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:xv:ENCODING 'xcb:-u4)
+
+(defconst xcb:xv:Type:InputMask 1)
+(defconst xcb:xv:Type:OutputMask 2)
+(defconst xcb:xv:Type:VideoMask 4)
+(defconst xcb:xv:Type:StillMask 8)
+(defconst xcb:xv:Type:ImageMask 16)
+
+(defconst xcb:xv:ImageFormatInfoType:RGB 0)
+(defconst xcb:xv:ImageFormatInfoType:YUV 1)
+
+(defconst xcb:xv:ImageFormatInfoFormat:Packed 0)
+(defconst xcb:xv:ImageFormatInfoFormat:Planar 1)
+
+(defconst xcb:xv:AttributeFlag:Gettable 1)
+(defconst xcb:xv:AttributeFlag:Settable 2)
+
+(defconst xcb:xv:VideoNotifyReason:Started 0)
+(defconst xcb:xv:VideoNotifyReason:Stopped 1)
+(defconst xcb:xv:VideoNotifyReason:Busy 2)
+(defconst xcb:xv:VideoNotifyReason:Preempted 3)
+(defconst xcb:xv:VideoNotifyReason:HardError 4)
+
+(defconst xcb:xv:ScanlineOrder:TopToBottom 0)
+(defconst xcb:xv:ScanlineOrder:BottomToTop 1)
+
+(defconst xcb:xv:GrabPortStatus:Success 0)
+(defconst xcb:xv:GrabPortStatus:BadExtension 1)
+(defconst xcb:xv:GrabPortStatus:AlreadyGrabbed 2)
+(defconst xcb:xv:GrabPortStatus:InvalidTime 3)
+(defconst xcb:xv:GrabPortStatus:BadReply 4)
+(defconst xcb:xv:GrabPortStatus:BadAlloc 5)
+
+(defclass xcb:xv:Rational
+ (xcb:-struct)
+ ((numerator :initarg :numerator :type xcb:INT32)
+ (denominator :initarg :denominator :type xcb:INT32)))
+
+(defclass xcb:xv:Format
+ (xcb:-struct)
+ ((visual :initarg :visual :type xcb:VISUALID)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xv:AdaptorInfo
+ (xcb:-struct)
+ ((base-id :initarg :base-id :type xcb:xv:PORT)
+ (name-size :initarg :name-size :type xcb:CARD16)
+ (num-ports :initarg :num-ports :type xcb:CARD16)
+ (num-formats :initarg :num-formats :type xcb:CARD16)
+ (type :initarg :type :type xcb:CARD8)
+ (pad~0 :initform 1 :type xcb:-pad)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-size))
+ :type xcb:-list)
+ (pad~1 :initform 4 :type xcb:-pad-align)
+ (formats :initarg :formats :type xcb:-ignore)
+ (formats~ :initform
+ '(name formats type xcb:xv:Format size
+ (xcb:-fieldref 'num-formats))
+ :type xcb:-list)))
+
+(defclass xcb:xv:EncodingInfo
+ (xcb:-struct)
+ ((encoding :initarg :encoding :type xcb:xv:ENCODING)
+ (name-size :initarg :name-size :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (rate :initarg :rate :type xcb:xv:Rational)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'name-size))
+ :type xcb:-list)))
+
+(defclass xcb:xv:Image
+ (xcb:-struct)
+ ((id :initarg :id :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (data-size :initarg :data-size :type xcb:CARD32)
+ (num-planes :initarg :num-planes :type xcb:CARD32)
+ (pitches :initarg :pitches :type xcb:-ignore)
+ (pitches~ :initform
+ '(name pitches type xcb:CARD32 size
+ (xcb:-fieldref 'num-planes))
+ :type xcb:-list)
+ (offsets :initarg :offsets :type xcb:-ignore)
+ (offsets~ :initform
+ '(name offsets type xcb:CARD32 size
+ (xcb:-fieldref 'num-planes))
+ :type xcb:-list)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD8 size
+ (xcb:-fieldref 'data-size))
+ :type xcb:-list)))
+
+(defclass xcb:xv:AttributeInfo
+ (xcb:-struct)
+ ((flags :initarg :flags :type xcb:CARD32)
+ (min :initarg :min :type xcb:INT32)
+ (max :initarg :max :type xcb:INT32)
+ (size :initarg :size :type xcb:CARD32)
+ (name :initarg :name :type xcb:-ignore)
+ (name~ :initform
+ '(name name type xcb:char size
+ (xcb:-fieldref 'size))
+ :type xcb:-list)))
+
+(defclass xcb:xv:ImageFormatInfo
+ (xcb:-struct)
+ ((id :initarg :id :type xcb:CARD32)
+ (type :initarg :type :type xcb:CARD8)
+ (byte-order :initarg :byte-order :type xcb:CARD8)
+ (pad~0 :initform 2 :type xcb:-pad)
+ (guid :initarg :guid :type xcb:-ignore)
+ (guid~ :initform
+ '(name guid type xcb:CARD8 size 16)
+ :type xcb:-list)
+ (bpp :initarg :bpp :type xcb:CARD8)
+ (num-planes :initarg :num-planes :type xcb:CARD8)
+ (pad~1 :initform 2 :type xcb:-pad)
+ (depth :initarg :depth :type xcb:CARD8)
+ (pad~2 :initform 3 :type xcb:-pad)
+ (red-mask :initarg :red-mask :type xcb:CARD32)
+ (green-mask :initarg :green-mask :type xcb:CARD32)
+ (blue-mask :initarg :blue-mask :type xcb:CARD32)
+ (format :initarg :format :type xcb:CARD8)
+ (pad~3 :initform 3 :type xcb:-pad)
+ (y-sample-bits :initarg :y-sample-bits :type xcb:CARD32)
+ (u-sample-bits :initarg :u-sample-bits :type xcb:CARD32)
+ (v-sample-bits :initarg :v-sample-bits :type xcb:CARD32)
+ (vhorz-y-period :initarg :vhorz-y-period :type xcb:CARD32)
+ (vhorz-u-period :initarg :vhorz-u-period :type xcb:CARD32)
+ (vhorz-v-period :initarg :vhorz-v-period :type xcb:CARD32)
+ (vvert-y-period :initarg :vvert-y-period :type xcb:CARD32)
+ (vvert-u-period :initarg :vvert-u-period :type xcb:CARD32)
+ (vvert-v-period :initarg :vvert-v-period :type xcb:CARD32)
+ (vcomp-order :initarg :vcomp-order :type xcb:-ignore)
+ (vcomp-order~ :initform
+ '(name vcomp-order type xcb:CARD8 size 32)
+ :type xcb:-list)
+ (vscanline-order :initarg :vscanline-order :type xcb:CARD8)
+ (pad~4 :initform 11 :type xcb:-pad)))
+
+(defclass xcb:xv:BadPort
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xv:BadEncoding
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xv:BadControl
+ (xcb:-error)
+ nil)
+
+(defclass xcb:xv:VideoNotify
+ (xcb:-event)
+ ((reason :initarg :reason :type xcb:BYTE)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (port :initarg :port :type xcb:xv:PORT)))
+
+(defclass xcb:xv:PortNotify
+ (xcb:-event)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (time :initarg :time :type xcb:TIMESTAMP)
+ (port :initarg :port :type xcb:xv:PORT)
+ (attribute :initarg :attribute :type xcb:ATOM)
+ (value :initarg :value :type xcb:INT32)))
+
+(defclass xcb:xv:QueryExtension
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:xv:QueryExtension~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major :initarg :major :type xcb:CARD16)
+ (minor :initarg :minor :type xcb:CARD16)))
+
+(defclass xcb:xv:QueryAdaptors
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (window :initarg :window :type xcb:WINDOW)))
+(defclass xcb:xv:QueryAdaptors~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-adaptors :initarg :num-adaptors :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (info :initarg :info :type xcb:-ignore)
+ (info~ :initform
+ '(name info type xcb:xv:AdaptorInfo size
+ (xcb:-fieldref 'num-adaptors))
+ :type xcb:-list)))
+
+(defclass xcb:xv:QueryEncodings
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)))
+(defclass xcb:xv:QueryEncodings~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-encodings :initarg :num-encodings :type xcb:CARD16)
+ (pad~1 :initform 22 :type xcb:-pad)
+ (info :initarg :info :type xcb:-ignore)
+ (info~ :initform
+ '(name info type xcb:xv:EncodingInfo size
+ (xcb:-fieldref 'num-encodings))
+ :type xcb:-list)))
+
+(defclass xcb:xv:GrabPort
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+(defclass xcb:xv:GrabPort~reply
+ (xcb:-reply)
+ ((result :initarg :result :type xcb:BYTE)))
+
+(defclass xcb:xv:UngrabPort
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (time :initarg :time :type xcb:TIMESTAMP)))
+
+(defclass xcb:xv:PutVideo
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (vid-x :initarg :vid-x :type xcb:INT16)
+ (vid-y :initarg :vid-y :type xcb:INT16)
+ (vid-w :initarg :vid-w :type xcb:CARD16)
+ (vid-h :initarg :vid-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)))
+
+(defclass xcb:xv:PutStill
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (vid-x :initarg :vid-x :type xcb:INT16)
+ (vid-y :initarg :vid-y :type xcb:INT16)
+ (vid-w :initarg :vid-w :type xcb:CARD16)
+ (vid-h :initarg :vid-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)))
+
+(defclass xcb:xv:GetVideo
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (vid-x :initarg :vid-x :type xcb:INT16)
+ (vid-y :initarg :vid-y :type xcb:INT16)
+ (vid-w :initarg :vid-w :type xcb:CARD16)
+ (vid-h :initarg :vid-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)))
+
+(defclass xcb:xv:GetStill
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (vid-x :initarg :vid-x :type xcb:INT16)
+ (vid-y :initarg :vid-y :type xcb:INT16)
+ (vid-w :initarg :vid-w :type xcb:CARD16)
+ (vid-h :initarg :vid-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)))
+
+(defclass xcb:xv:StopVideo
+ (xcb:-request)
+ ((~opcode :initform 9 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)))
+
+(defclass xcb:xv:SelectVideoNotify
+ (xcb:-request)
+ ((~opcode :initform 10 :type xcb:-u1)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (onoff :initarg :onoff :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xv:SelectPortNotify
+ (xcb:-request)
+ ((~opcode :initform 11 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (onoff :initarg :onoff :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defclass xcb:xv:QueryBestSize
+ (xcb:-request)
+ ((~opcode :initform 12 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (vid-w :initarg :vid-w :type xcb:CARD16)
+ (vid-h :initarg :vid-h :type xcb:CARD16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)
+ (motion :initarg :motion :type xcb:BOOL)
+ (pad~0 :initform 3 :type xcb:-pad)))
+(defclass xcb:xv:QueryBestSize~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (actual-width :initarg :actual-width :type xcb:CARD16)
+ (actual-height :initarg :actual-height :type xcb:CARD16)))
+
+(defclass xcb:xv:SetPortAttribute
+ (xcb:-request)
+ ((~opcode :initform 13 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (attribute :initarg :attribute :type xcb:ATOM)
+ (value :initarg :value :type xcb:INT32)))
+
+(defclass xcb:xv:GetPortAttribute
+ (xcb:-request)
+ ((~opcode :initform 14 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (attribute :initarg :attribute :type xcb:ATOM)))
+(defclass xcb:xv:GetPortAttribute~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (value :initarg :value :type xcb:INT32)))
+
+(defclass xcb:xv:QueryPortAttributes
+ (xcb:-request)
+ ((~opcode :initform 15 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)))
+(defclass xcb:xv:QueryPortAttributes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-attributes :initarg :num-attributes :type xcb:CARD32)
+ (text-size :initarg :text-size :type xcb:CARD32)
+ (pad~1 :initform 16 :type xcb:-pad)
+ (attributes :initarg :attributes :type xcb:-ignore)
+ (attributes~ :initform
+ '(name attributes type xcb:xv:AttributeInfo size
+ (xcb:-fieldref 'num-attributes))
+ :type xcb:-list)))
+
+(defclass xcb:xv:ListImageFormats
+ (xcb:-request)
+ ((~opcode :initform 16 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)))
+(defclass xcb:xv:ListImageFormats~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-formats :initarg :num-formats :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (format :initarg :format :type xcb:-ignore)
+ (format~ :initform
+ '(name format type xcb:xv:ImageFormatInfo size
+ (xcb:-fieldref 'num-formats))
+ :type xcb:-list)))
+
+(defclass xcb:xv:QueryImageAttributes
+ (xcb:-request)
+ ((~opcode :initform 17 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (id :initarg :id :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+(defclass xcb:xv:QueryImageAttributes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num-planes :initarg :num-planes :type xcb:CARD32)
+ (data-size :initarg :data-size :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (pitches :initarg :pitches :type xcb:-ignore)
+ (pitches~ :initform
+ '(name pitches type xcb:CARD32 size
+ (xcb:-fieldref 'num-planes))
+ :type xcb:-list)
+ (offsets :initarg :offsets :type xcb:-ignore)
+ (offsets~ :initform
+ '(name offsets type xcb:CARD32 size
+ (xcb:-fieldref 'num-planes))
+ :type xcb:-list)))
+
+(defclass xcb:xv:PutImage
+ (xcb:-request)
+ ((~opcode :initform 18 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (id :initarg :id :type xcb:CARD32)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (src-w :initarg :src-w :type xcb:CARD16)
+ (src-h :initarg :src-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (data :initarg :data :type xcb:-ignore)
+ (data~ :initform
+ '(name data type xcb:CARD8 size nil)
+ :type xcb:-list)))
+
+(defclass xcb:xv:ShmPutImage
+ (xcb:-request)
+ ((~opcode :initform 19 :type xcb:-u1)
+ (port :initarg :port :type xcb:xv:PORT)
+ (drawable :initarg :drawable :type xcb:DRAWABLE)
+ (gc :initarg :gc :type xcb:GCONTEXT)
+ (shmseg :initarg :shmseg :type xcb:xv:SEG)
+ (id :initarg :id :type xcb:CARD32)
+ (offset :initarg :offset :type xcb:CARD32)
+ (src-x :initarg :src-x :type xcb:INT16)
+ (src-y :initarg :src-y :type xcb:INT16)
+ (src-w :initarg :src-w :type xcb:CARD16)
+ (src-h :initarg :src-h :type xcb:CARD16)
+ (drw-x :initarg :drw-x :type xcb:INT16)
+ (drw-y :initarg :drw-y :type xcb:INT16)
+ (drw-w :initarg :drw-w :type xcb:CARD16)
+ (drw-h :initarg :drw-h :type xcb:CARD16)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (send-event :initarg :send-event :type xcb:CARD8)
+ (pad~0 :initform 3 :type xcb:-pad)))
+
+(defconst xcb:xv:error-number-class-alist
+ '((0 . xcb:xv:BadPort)
+ (1 . xcb:xv:BadEncoding)
+ (2 . xcb:xv:BadControl))
+ "(error-number . error-class) alist")
+
+(defconst xcb:xv:event-number-class-alist
+ '((0 . xcb:xv:VideoNotify)
+ (1 . xcb:xv:PortNotify))
+ "(event-number . event-class) alist")
+
+
+
+(provide 'xcb-xv)
diff --git a/xcb-xvmc.el b/xcb-xvmc.el
new file mode 100644
index 0000000..2f01b28
--- /dev/null
+++ b/xcb-xvmc.el
@@ -0,0 +1,151 @@
+;;; -*- lexical-binding: t -*-
+;; This file was generated from `xvmc.xml' by `el_client.el'.
+
+(require 'xcb-types)
+
+(defconst xcb:xvmc:-extension-xname "XVideo-MotionCompensation")
+(defconst xcb:xvmc:-extension-name "XvMC")
+(defconst xcb:xvmc:-major-version 1)
+(defconst xcb:xvmc:-minor-version 1)
+
+(require 'xcb-xv)
+
+(xcb:deftypealias 'xcb:xvmc:CONTEXT 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:xvmc:SURFACE 'xcb:-u4)
+
+(xcb:deftypealias 'xcb:xvmc:SUBPICTURE 'xcb:-u4)
+
+(defclass xcb:xvmc:SurfaceInfo
+ (xcb:-struct)
+ ((id :initarg :id :type xcb:xvmc:SURFACE)
+ (chroma-format :initarg :chroma-format :type xcb:CARD16)
+ (pad0 :initarg :pad0 :type xcb:CARD16)
+ (max-width :initarg :max-width :type xcb:CARD16)
+ (max-height :initarg :max-height :type xcb:CARD16)
+ (subpicture-max-width :initarg :subpicture-max-width :type xcb:CARD16)
+ (subpicture-max-height :initarg :subpicture-max-height :type xcb:CARD16)
+ (mc-type :initarg :mc-type :type xcb:CARD32)
+ (flags :initarg :flags :type xcb:CARD32)))
+
+(defclass xcb:xvmc:QueryVersion
+ (xcb:-request)
+ ((~opcode :initform 0 :type xcb:-u1)))
+(defclass xcb:xvmc:QueryVersion~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (major :initarg :major :type xcb:CARD32)
+ (minor :initarg :minor :type xcb:CARD32)))
+
+(defclass xcb:xvmc:ListSurfaceTypes
+ (xcb:-request)
+ ((~opcode :initform 1 :type xcb:-u1)
+ (port-id :initarg :port-id :type xcb:xvmc:PORT)))
+(defclass xcb:xvmc:ListSurfaceTypes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num :initarg :num :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (surfaces :initarg :surfaces :type xcb:-ignore)
+ (surfaces~ :initform
+ '(name surfaces type xcb:xvmc:SurfaceInfo size
+ (xcb:-fieldref 'num))
+ :type xcb:-list)))
+
+(defclass xcb:xvmc:CreateContext
+ (xcb:-request)
+ ((~opcode :initform 2 :type xcb:-u1)
+ (context-id :initarg :context-id :type xcb:xvmc:CONTEXT)
+ (port-id :initarg :port-id :type xcb:xvmc:PORT)
+ (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)
+ (flags :initarg :flags :type xcb:CARD32)))
+(defclass xcb:xvmc:CreateContext~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width-actual :initarg :width-actual :type xcb:CARD16)
+ (height-actual :initarg :height-actual :type xcb:CARD16)
+ (flags-return :initarg :flags-return :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (priv-data :initarg :priv-data :type xcb:-ignore)
+ (priv-data~ :initform
+ '(name priv-data type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:xvmc:DestroyContext
+ (xcb:-request)
+ ((~opcode :initform 3 :type xcb:-u1)
+ (context-id :initarg :context-id :type xcb:xvmc:CONTEXT)))
+
+(defclass xcb:xvmc:CreateSurface
+ (xcb:-request)
+ ((~opcode :initform 4 :type xcb:-u1)
+ (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE)
+ (context-id :initarg :context-id :type xcb:xvmc:CONTEXT)))
+(defclass xcb:xvmc:CreateSurface~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (pad~1 :initform 24 :type xcb:-pad)
+ (priv-data :initarg :priv-data :type xcb:-ignore)
+ (priv-data~ :initform
+ '(name priv-data type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:xvmc:DestroySurface
+ (xcb:-request)
+ ((~opcode :initform 5 :type xcb:-u1)
+ (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE)))
+
+(defclass xcb:xvmc:CreateSubpicture
+ (xcb:-request)
+ ((~opcode :initform 6 :type xcb:-u1)
+ (subpicture-id :initarg :subpicture-id :type xcb:xvmc:SUBPICTURE)
+ (context :initarg :context :type xcb:xvmc:CONTEXT)
+ (xvimage-id :initarg :xvimage-id :type xcb:CARD32)
+ (width :initarg :width :type xcb:CARD16)
+ (height :initarg :height :type xcb:CARD16)))
+(defclass xcb:xvmc:CreateSubpicture~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (width-actual :initarg :width-actual :type xcb:CARD16)
+ (height-actual :initarg :height-actual :type xcb:CARD16)
+ (num-palette-entries :initarg :num-palette-entries :type xcb:CARD16)
+ (entry-bytes :initarg :entry-bytes :type xcb:CARD16)
+ (component-order :initarg :component-order :type xcb:-ignore)
+ (component-order~ :initform
+ '(name component-order type xcb:CARD8 size 4)
+ :type xcb:-list)
+ (pad~1 :initform 12 :type xcb:-pad)
+ (priv-data :initarg :priv-data :type xcb:-ignore)
+ (priv-data~ :initform
+ '(name priv-data type xcb:CARD32 size
+ (xcb:-fieldref 'length))
+ :type xcb:-list)))
+
+(defclass xcb:xvmc:DestroySubpicture
+ (xcb:-request)
+ ((~opcode :initform 7 :type xcb:-u1)
+ (subpicture-id :initarg :subpicture-id :type xcb:xvmc:SUBPICTURE)))
+
+(defclass xcb:xvmc:ListSubpictureTypes
+ (xcb:-request)
+ ((~opcode :initform 8 :type xcb:-u1)
+ (port-id :initarg :port-id :type xcb:xvmc:PORT)
+ (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE)))
+(defclass xcb:xvmc:ListSubpictureTypes~reply
+ (xcb:-reply)
+ ((pad~0 :initform 1 :type xcb:-pad)
+ (num :initarg :num :type xcb:CARD32)
+ (pad~1 :initform 20 :type xcb:-pad)
+ (types :initarg :types :type xcb:-ignore)
+ (types~ :initform
+ '(name types type xcb:xvmc:ImageFormatInfo size
+ (xcb:-fieldref 'num))
+ :type xcb:-list)))
+
+
+
+(provide 'xcb-xvmc)
diff --git a/xcb.el b/xcb.el
new file mode 100644
index 0000000..66ec07a
--- /dev/null
+++ b/xcb.el
@@ -0,0 +1,682 @@
+;;; xcb.el --- X Protocol Emacs Lisp Binding (XELB) -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 Chris Feng
+
+;; Author: Chris Feng <address@hidden>
+;; Keywords: unix
+
+;; This file is not part of GNU Emacs.
+
+;; This file is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this file. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This library mainly provides methods for `xcb:connection', a opaque class
+;; encapsulating all information concerning an X connection. The most
frequently
+;; used methods are:
+;; + Open/Close connection
+;; - `xcb:connect'
+;; - `xcb:connect-to-socket'
+;; - `xcb:disconnect'
+;; + Request/Reply/Error (asynchronous)
+;; - `xcb:+request'
+;; - `xcb:+request-checked'
+;; - `xcb:+request-unchecked'
+;; - `xcb:+reply'
+;; - `xcb:request-check'
+;; + Request/Reply/Error (synchronous)
+;; - `xcb:+request+reply'
+;; - `xcb:+request-checked+request-check'
+;; - `xcb:+request-unchecked+reply'
+;; + Event handling
+;; - `xcb:+event'
+;; + Misc.
+;; - `xcb:flush'
+;; - `xcb:generate-id'
+;; Please refer to their documentations for more details.
+
+;; Todo:
+;; + Authentication support when connecting to X server.
+;; + Use XC-MISC extension for `xcb:generate-id' when IDs are used up.
+
+;; References:
+;; + X protocol (http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.txt)
+
+;;; Code:
+
+(require 'xcb-xproto)
+
+(defvar xcb:debug-on nil "non-nil to turn on debug.")
+
+(defmacro xcb:-log (format-string &rest args)
+ "Print debug info."
+ (when xcb:debug-on
+ `(message (concat "[XELB LOG] " ,format-string) ,@args)))
+
+(defvar xcb:connection-timeout 10 "Connection timeout.")
+
+;;;; X connection related
+
+(defclass xcb:connection ()
+ ((process :initarg :process)
+ (connected :initform nil) ;non-nil indicates connected to X server
+ (display :initarg :display)
+ (auth-info :initarg :auth-info)
+ (socket :initarg :socket)
+ (lock :initform nil)
+ (setup-data :initform nil) ;X connection setup data
+ (request-cache :initform []) ;cache for outgoing requests
+ (message-cache :initform []) ;cache for incoming messages
+ (error-plist :initform nil)
+ (reply-plist :initform nil)
+ (event-plist :initform nil)
+ (extension-plist :initform nil)
+ (extension-opcode-plist :initform nil)
+ (extension-first-error-alist :initform nil)
+ (extension-first-event-alist :initform nil)
+ (request-sequence :initform 0)
+ (error-sequence :initform 0)
+ (reply-sequence :initform 0)
+ (xid :initform 0) ;last used X resource ID
+ (extra-plist :initform nil)) ;for storing extra data (e.g. by extensions)
+ :documentation "X connection.")
+
+(defclass xcb:auth-info ()
+ ((name :initarg :name :initform "" :type string)
+ (data :initarg :data :initform "" :type string))
+ :documentation "X connection authentication info.")
+
+(defun xcb:connect (&optional display screen)
+ "Connect to X server with display DISPLAY on screen SCREEN."
+ (xcb:connect-to-display-with-auth-info display nil screen))
+
+(defun xcb:connect-to-display-with-auth-info (&optional display auth screen)
+ "Connect to X server with display DISPLAY, authentication info AUTH on screen
+SCREEN."
+ (unless display (setq display x-display-name))
+ (unless display (error "[XELB] No X display available"))
+ (let* ((tmp (xcb:parse-display display))
+ (host (cdr (assoc 'host tmp)))
+ (host (if (string= "" host) 'local host))
+ (dpy (cdr (assoc 'display tmp)))
+ (screen (if screen screen (cdr (assoc 'screen tmp))))
+ (process (make-network-process :name "XELB"
+ :host host
+ :service (+ 6000 dpy)))
+ (auth-info (if auth auth (make-instance 'xcb:auth-info)))
+ (connection (make-instance 'xcb:connection
+ :process process
+ :display display :auth-info auth-info)))
+ (xcb:-connect connection)
+ connection))
+
+(defun xcb:parse-display (name)
+ "Parse X Display name NAME."
+ (let ((host (replace-regexp-in-string "\\(.*\\):.*" "\\1" name))
+ (display
+ (replace-regexp-in-string ".*:\\([^\\.]+\\)\\(\\..*\\)?" "\\1" name))
+ (screen
+ (replace-regexp-in-string ".*:[^\\.]+\\.?\\(.*\\)?" "\\1" name)))
+ (setq display (string-to-int display))
+ (setq screen (if (string= "" screen) 0 (string-to-int screen)))
+ `((host . ,host) (display . ,display) (screen . ,screen))))
+
+(defun xcb:connect-to-socket (&optional socket auth-info)
+ "Connect to X server with socket SOCKET and authentication info AUTH-INFO."
+ (unless (or socket x-display-name) (error "[XELB] No X display available"))
+ (unless socket (setq socket (concat "/tmp/.X11-unix/X"
+ (replace-regexp-in-string
+ ".*:\\([^\\.]+\\)\\(\\..*\\)?" "\\1"
+ x-display-name))))
+ (let* ((process (make-network-process :name "XELB" :remote socket))
+ (auth (if auth-info auth-info (make-instance 'xcb:auth-info)))
+ (connection (make-instance 'xcb:connection
+ :process process
+ :auth-info auth :socket socket)))
+ (xcb:-connect connection)
+ connection))
+
+(cl-defmethod xcb:-connect ((obj xcb:connection))
+ "Connect to X server."
+ (let* ((process (slot-value obj 'process))
+ (auth-info (slot-value obj 'auth-info))
+ (aname (slot-value auth-info 'name))
+ (adata (slot-value auth-info 'data)))
+ (set-process-plist process
+ (plist-put (process-plist process) 'connection obj))
+ (set-process-coding-system process 'binary 'binary)
+ (set-process-filter process 'xcb:-connection-filter)
+ (process-send-string ;send setup packet
+ process
+ (apply 'unibyte-string
+ (append ;convert vector to string
+ (xcb:marshal
+ (make-instance 'xcb:SetupRequest
+ :byte-order (if xcb:lsb #x6c #x42)
+ :protocol-major-version 11
+ :protocol-minor-version 0
+ :authorization-protocol-name-len (length aname)
+ :authorization-protocol-data-len (length adata)
+ :authorization-protocol-name aname
+ :authorization-protocol-data adata))
+ nil)))
+ ;; Wait for setup data ready
+ (with-timeout (xcb:connection-timeout (xcb:disconnect obj)
+ (error "[XELB] Connection timeout"))
+ (while (not (slot-value obj 'setup-data))
+ (accept-process-output process 1)))))
+
+(defun xcb:-connection-filter (process message)
+ "Filter function for an X connection.
+
+Concurrency is prevented as it breaks the orders of errors and replies."
+ (let* ((connection (plist-get (process-plist process) 'connection))
+ (cache (vconcat (slot-value connection 'message-cache) message))
+ (cache-length (length cache))
+ events)
+ (setf (slot-value connection 'message-cache) cache)
+ (catch 'return
+ ;; Queue message when locked
+ (when (slot-value connection 'lock)
+ (throw 'return 'lock))
+ ;; Start parsing message
+ (setf (slot-value connection 'lock) t)
+ ;; Connection setup
+ (unless (slot-value connection 'connected)
+ ;; Connection setup
+ (when (<= 8 (length cache)) ;at least setup header is available
+ (let ((data-len (+ 8 (* 4 (funcall (if xcb:lsb 'xcb:-unpack-u2-lsb
+ 'xcb:-unpack-u2)
+ (substring cache 6 8)))))
+ obj)
+ (when (>= (length cache) data-len)
+ (pcase (elt cache 0)
+ (0 ;failed
+ (setq obj (make-instance 'xcb:SetupFailed))
+ (xcb:unmarshal obj cache)
+ (setq cache [])
+ (error "[XELB] %s" obj))
+ (1 ;success
+ (setq obj (make-instance 'xcb:Setup))
+ (setq cache (substring cache (xcb:unmarshal obj cache)))
+ (setf (slot-value connection 'setup-data) obj)
+ (setf (slot-value connection 'connected) t))
+ (2 ;authentication
+ (setq obj (make-instance 'xcb:SetupAuthenticate))
+ (setq cache (substring cache (xcb:unmarshal obj cache)))
+ (error "[XELB] %s" obj))
+ (x (error "Unrecognized setup status: %d" x))))))
+ (setf (slot-value connection 'lock) nil)
+ (throw 'return 'setup))
+ ;; Process error/reply/event
+ (catch 'break
+ (while (<= 32 (length cache))
+ (pcase (elt cache 0)
+ (0 ;error
+ (let ((sequence (funcall (if xcb:lsb 'xcb:-unpack-u2-lsb
+ 'xcb:-unpack-u2)
+ (substring cache 2 4)))
+ (plist (slot-value connection 'error-plist))
+ struct)
+ (when (plist-member plist sequence)
+ (setq struct (plist-get plist sequence))
+ (setf (slot-value connection 'error-plist)
+ (plist-put plist sequence
+ (push `(,(elt cache 1) .
+ ,(substring cache 0 32))
+ struct))))
+ (setq cache (substring cache 32))
+ (setf (slot-value connection 'error-sequence) sequence)))
+ (1 ;reply
+ (let* ((reply-words (funcall (if xcb:lsb 'xcb:-unpack-u4-lsb
+ 'xcb:-unpack-u4)
+ (substring cache 4 8)))
+ (reply-length (+ 32 (* 4 reply-words)))
+ struct sequence plist)
+ (when (< (length cache) reply-length) ;too short, do next time
+ (throw 'break nil))
+ (setq sequence (funcall (if xcb:lsb 'xcb:-unpack-u2-lsb
+ 'xcb:-unpack-u2)
+ (substring cache 2 4)))
+ (setq plist (slot-value connection 'reply-plist))
+ (setq struct (plist-get plist sequence))
+ (when struct
+ (setf (slot-value connection 'reply-plist)
+ (plist-put plist sequence
+ (if (symbolp struct)
+ ;; Single reply or
+ ;; first reply for multiple replies
+ (list struct
+ (substring cache 0 reply-length))
+ ;; Multiple replies
+ `(,(car struct) ,@(cdr struct)
+ ,(substring cache 0 reply-length))))))
+ (setq cache (substring cache reply-length))
+ (setf (slot-value connection 'reply-sequence) sequence)))
+ (x ;event
+ (let (synthetic listener)
+ (when (/= 0 (logand x #x80)) ;synthetic event
+ (setq synthetic t
+ x (logand x #x7f))) ;low 7 bits is the event number
+ (setq listener
+ (plist-get (slot-value connection 'event-plist) x))
+ (when listener
+ (setq events (nconc events
+ (list (vector listener
+ (substring cache 0 32)
+ synthetic))))))
+ (setq cache (substring cache 32))))))
+ (setf (slot-value connection 'lock) nil))
+ (unless (slot-value connection 'lock)
+ (with-slots (message-cache) connection
+ (let ((current-cache-lenght (length message-cache)))
+ (setf message-cache
+ (substring message-cache (- cache-length (length cache))))
+ (when (/= current-cache-lenght cache-length)
+ (xcb:-connection-filter process []))))
+ (dolist (i events) ;for each event
+ (dolist (j (elt i 0)) ;for each listener
+ (funcall j (elt i 1) (elt i 2)))))))
+
+(cl-defmethod xcb:disconnect ((obj xcb:connection))
+ "Disconnect from X server."
+ (delete-process (slot-value obj 'process))
+ ;; Reset every slot to its default value
+ (let ((slots (eieio-class-slots 'xcb:connection)))
+ (dolist (slot slots)
+ (setf (slot-value obj (cl--slot-descriptor-name slot))
+ (cl--slot-descriptor-initform slot)))))
+
+;;;; Other routines
+
+(cl-defmethod xcb:get-setup ((obj xcb:connection))
+ "Get the setup info of X connection OBJ."
+ (slot-value obj 'setup-data))
+
+(cl-defmethod xcb:get-socket ((obj xcb:connection))
+ "Get the socket of X connection OBJ."
+ (slot-value obj 'socket))
+
+(cl-defmethod xcb:get-maximum-request-length ((obj xcb:connection))
+ "Get maximum request length from setup data."
+ (slot-value (xcb:get-setup obj) 'maximum-request-length))
+
+(cl-defmethod xcb:+event ((obj xcb:connection) event listener)
+ "attach EVENT LISTENER
+
+Note that event listeners attached this way are shared with the super- and sub-
+classes of EVENT (since they have the same event number)."
+ (let* ((event-number (xcb:-error-or-event-class->number obj event))
+ (plist (slot-value obj 'event-plist))
+ (listeners (plist-get plist event-number)))
+ (setf (slot-value obj 'event-plist)
+ (plist-put plist event-number (append listeners (list listener))))))
+
+;; (cl-defmethod xcb:connection-has-error ((obj xcb:connection))
+;; "Determine if X connection has error."
+;; (not (slot-value obj 'connected)))
+
+(cl-defmethod xcb:flush ((obj xcb:connection))
+ "Flush request data to X server."
+ (let ((cache (slot-value obj 'request-cache)))
+ (when (< 0 (length cache))
+ (setf (slot-value obj 'request-cache) []) ;should be cleared ASAP
+ (process-send-string (slot-value obj 'process)
+ (apply 'unibyte-string (append cache nil))))))
+
+(cl-defmethod xcb:get-extension-data ((obj xcb:connection) namespace)
+ "Fetch the extension data from X server (block until data is retrieved)."
+ (let* ((plist (slot-value obj 'extension-plist))
+ (data (plist-get plist namespace)))
+ (if (object-p data)
+ data
+ (when (not data) ;the request has not been made
+ (xcb:prefetch-extension-data obj namespace))
+ (setq data
+ (xcb:+reply obj
+ (plist-get (slot-value obj 'extension-plist) namespace)))
+ (when (cadr data) ;has error
+ (error "[XELB] %s" (cadr data)))
+ (setq data (car data))
+ (setf (slot-value obj 'extension-plist) (plist-put plist namespace data))
+ ;; Cache major opcode, first event and first error if possible
+ (with-slots (present major-opcode first-event first-error) data
+ (when (= 1 present)
+ (setf (slot-value obj 'extension-opcode-plist)
+ (plist-put (slot-value obj 'extension-opcode-plist)
+ namespace major-opcode)
+ (slot-value obj 'extension-first-event-alist)
+ (nconc (slot-value obj 'extension-first-event-alist)
+ `((,namespace . ,first-event)))
+ (slot-value obj 'extension-first-error-alist)
+ (nconc (slot-value obj 'extension-first-error-alist)
+ `((,namespace . ,first-error))))))
+ data)))
+
+(cl-defmethod xcb:prefetch-extension-data ((obj xcb:connection) namespace)
+ "Prefetch the extension data from X server."
+ (when (not (plist-get (slot-value obj 'extension-plist) namespace))
+ (let* ((extension-xname
+ (symbol-value (intern-soft (concat (symbol-name namespace)
+ ":-extension-xname"))))
+ (sequence
+ (xcb:+request obj (make-instance 'xcb:QueryExtension
+ :name-len (length extension-xname)
+ :name extension-xname))))
+ (setf (slot-value obj 'extension-plist)
+ (plist-put (slot-value obj 'extension-plist) namespace sequence))
+ (xcb:flush obj))))
+
+(cl-defmethod xcb:generate-id ((obj xcb:connection))
+ "Generate new X ID."
+ (let* ((setup (xcb:get-setup obj))
+ (base (slot-value setup 'resource-id-base))
+ (mask (slot-value setup 'resource-id-mask))
+ (increment (logand mask (- mask)))
+ (xid (+ (slot-value obj 'xid) increment)))
+ (when (> xid mask)
+ (error "[XELB] Unable to allocate new X resource ID"))
+ (setf (slot-value obj 'xid) xid)
+ (logior base xid)))
+
+;;;; Request related
+
+(cl-defmethod xcb:-cache-request ((obj xcb:connection) request)
+ "Send (or cache) a request and return the sequence number."
+ (let* ((namespace
+ (intern (replace-regexp-in-string
+ ":[^:]+$" "" (symbol-name
+ (eieio-object-class request)))))
+ (extension-opcode
+ (plist-get (slot-value obj 'extension-opcode-plist) namespace))
+ (msg (xcb:marshal request))
+ (len (+ 2 (length msg)))
+ (cache (slot-value obj 'request-cache)))
+ (when extension-opcode
+ (setq msg (vconcat (vector extension-opcode) msg))
+ (setq len (1+ len)))
+ (when (> 2 (length msg)) ;for short message (e.g. GetInputFocus)
+ (setq msg (vconcat msg [0]))
+ (setq len (1+ len)))
+ (setq msg
+ (vconcat (substring msg 0 2)
+ (funcall (if (slot-value request '~lsb) 'xcb:-pack-u2-lsb
+ 'xcb:-pack-u2)
+ (ceiling len 4))
+ (substring msg 2)
+ (make-vector (% (- 4 (% len 4)) 4) 0))) ;required sometimes
+ (when (< (xcb:get-maximum-request-length obj)
+ (+ (length msg) (length cache))) ;flush on cache full
+ (xcb:flush obj)
+ (setq cache []))
+ (xcb:-log "%s" request)
+ (with-slots (request-cache request-sequence) obj
+ (setf request-cache (vconcat cache msg)
+ request-sequence (1+ request-sequence))
+ request-sequence)))
+
+(cl-defmethod xcb:-+request ((obj xcb:connection) request)
+ (let* ((sequence (xcb:-cache-request obj request))
+ (sequence-lsw (logand #xFFFF sequence))
+ (class (eieio-object-class request)))
+ (when (fboundp (xcb:-request-class->reply-class class))
+ ;; This request has a reply
+ (setf (slot-value obj 'reply-plist) ;require reply
+ (plist-put (slot-value obj 'reply-plist) sequence-lsw class))
+ (setf (slot-value obj 'error-plist) ;require error
+ (plist-put (slot-value obj 'error-plist) sequence-lsw nil)))
+ sequence))
+
+(defmacro xcb:+request (obj request)
+ "Make a request.
+
+If the request has a reply, then errors will also be available (if any).
+Otherwise no error will ever be reported."
+ (declare (indent 2))
+ `(xcb:-+request ,obj ,request))
+
+(cl-defmethod xcb:-+request-checked ((obj xcb:connection) request)
+ (when (fboundp
+ (xcb:-request-class->reply-class (eieio-object-class request)))
+ (error "This method shall not be called with request that has a reply"))
+ (let* ((sequence (xcb:-cache-request obj request))
+ (sequence-lsw (logand #xFFFF sequence)))
+ (setf (slot-value obj 'error-plist)
+ (plist-put (slot-value obj 'error-plist) sequence-lsw nil))
+ sequence))
+
+(defmacro xcb:+request-checked (obj request)
+ "Make a request (which have no reply) and check for errors."
+ (declare (indent 2))
+ `(xcb:-+request-checked ,obj ,request))
+
+(cl-defmethod xcb:-+request-unchecked ((obj xcb:connection) request)
+ (unless (fboundp
+ (xcb:-request-class->reply-class (eieio-object-class request)))
+ (error "This method shall not be called with request that has no reply"))
+ (let* ((sequence (xcb:-cache-request obj request))
+ (sequence-lsw (logand #xFFFF sequence)))
+ (setf (slot-value obj 'reply-plist)
+ (plist-put (slot-value obj 'reply-plist)
+ sequence-lsw (eieio-object-class request)))
+ sequence))
+
+(defmacro xcb:+request-unchecked (obj request)
+ "Make a request (which have at least a reply) and discard any error."
+ (declare (indent 2))
+ `(xcb:-+request-unchecked ,obj ,request))
+
+(cl-defmethod xcb:-+reply ((obj xcb:connection) sequence &optional multiple)
+ (unless (plist-member (slot-value obj 'reply-plist) sequence)
+ (error "This method is intended for requests with replies"))
+ (xcb:flush obj) ;or we may have to wait forever
+ (if multiple
+ ;; Multiple replies
+ (when (and (>= sequence (slot-value obj 'reply-sequence))
+ (>= sequence (slot-value obj 'error-sequence)))
+ (xcb:aux:sync obj))
+ ;; Single reply
+ (let ((process (slot-value obj 'process)))
+ ;; Wait until the request processed
+ (with-timeout (xcb:connection-timeout (error "[XELB] Retrieve reply
timeout"))
+ (while (and (> sequence (slot-value obj 'reply-sequence))
+ (> sequence (slot-value obj 'error-sequence)))
+ (accept-process-output process 1)))))
+ (let* ((reply-plist (slot-value obj 'reply-plist))
+ (reply-data (plist-get reply-plist sequence))
+ (error-plist (slot-value obj 'error-plist))
+ (error-data (plist-get error-plist sequence))
+ class-name reply replies error errors)
+ (if (symbolp reply-data)
+ (setq replies nil) ;no reply
+ (setq class-name (xcb:-request-class->reply-class (car reply-data)))
+ (if multiple
+ ;; Multiple replies
+ (dolist (i (cdr reply-data))
+ (setq reply (make-instance class-name
+ :length (/ (- (length i) 32) 4)))
+ (xcb:unmarshal reply i)
+ (setq replies (nconc replies (list reply))))
+ ;; Single reply
+ (setq reply-data (cadr reply-data)
+ replies (make-instance class-name
+ :length (/ (- (length reply-data) 32) 4)))
+ (xcb:unmarshal replies reply-data)))
+ (setq errors
+ (mapcar (lambda (i)
+ (setq error (make-instance
+ (xcb:-error-number->class obj (car i))))
+ (xcb:unmarshal error (cdr i))
+ i)
+ error-data))
+ (cl-remf (slot-value obj 'reply-plist) sequence)
+ (cl-remf (slot-value obj 'error-plist) sequence)
+ (list replies errors)))
+
+(defmacro xcb:+reply (obj sequence &optional multiple)
+ "Return the reply of a request of which the sequence number is SEQUENCE.
+
+If MULTIPLE is nil, the return value is the only reply, or it returns a list of
+all replies.
+
+WARNING: for requests that have multiple replies, you MUST supply a non-nil
+MULTIPLE value, or some replies may be lost!"
+ (declare (indent 2))
+ `(xcb:-+reply ,obj ,sequence ,multiple))
+
+(cl-defmethod xcb:-request-check ((obj xcb:connection) sequence)
+ (when (plist-member (slot-value obj 'reply-plist) sequence)
+ (error "This method is intended for requests with no reply"))
+ (xcb:flush obj) ;or we may have to wait forever
+ (let ((error-plist (slot-value obj 'error-plist))
+ error-obj tmp)
+ (unless (plist-member error-plist sequence)
+ (error "This method shall be called after `xcb:+request-checked'"))
+ (when (> sequence (slot-value obj 'error-sequence))
+ (xcb:aux:sync obj)) ;wait until the request is processed
+ (setq error-obj
+ (mapcar (lambda (i)
+ (setq tmp (cdr i)
+ i (make-instance
+ (xcb:-error-number->class obj (car i))))
+ (xcb:unmarshal i tmp)
+ i)
+ (plist-get error-plist sequence)))
+ (cl-remf (slot-value obj 'error-plist) sequence)
+ error-obj))
+
+(defmacro xcb:request-check (obj sequence)
+ "Return the error of the request of which the sequence number is SEQUENCE.
+
+The sequence number shall be returned by `xcb:+request-checked'."
+ (declare (indent 2))
+ `(xcb:-request-check ,obj ,sequence))
+
+(defmacro xcb:+request+reply (obj request &optional multiple)
+ "Make a request and return its replies and errors.
+
+If MULTIPLE is nil, the return value is a list of which the car is the only
+reply and the cadr a list of errors. Otherwise, the car of the result is a
+list of replies.
+
+WARNING: for requests that have multiple replies, you MUST supply a non-nil
+MULTIPLE value, or some replies may be lost!"
+ (declare (indent 2))
+ `(xcb:-+reply ,obj (xcb:-+request ,obj ,request) ,multiple))
+
+(defmacro xcb:+request-checked+request-check (obj request)
+ "Make a request (which has no reply) and return the errors."
+ (declare (indent 2))
+ `(xcb:-request-check ,obj (xcb:-+request-checked ,obj ,request)))
+
+(defmacro xcb:+request-unchecked+reply (obj request &optional multiple)
+ "Make a request (that has at least one reply) and only return the reply.
+
+If MULTIPLE is nil, the return value is the only reply, or it returns a list of
+all replies.
+
+WARNING: for requests that have multiple replies, you MUST supply a non-nil
+MULTIPLE value, or some replies may be lost!"
+ (declare (indent 2))
+ `(car (xcb:-+reply ,obj (xcb:-+request-unchecked ,obj ,request) ,multiple)))
+
+;;;; Misc.
+
+(cl-defmethod xcb:aux:sync ((obj xcb:connection))
+ "Force sync with X server.
+
+Sync by sending a GetInputFocus request and waiting until it's processed."
+ (let ((sequence (xcb:-cache-request obj (make-instance 'xcb:GetInputFocus)))
+ (process (slot-value obj 'process)))
+ (xcb:flush obj)
+ ;; Wait until request processed
+ (with-timeout (xcb:connection-timeout (error "[XELB] Sync timeout"))
+ (while (> sequence (slot-value obj 'reply-sequence))
+ (accept-process-output process 1)))))
+
+(cl-defmethod xcb:-error-or-event-class->number ((obj xcb:connection) class)
+ "Return the error/event number of a error/event class CLASS."
+ (unless (symbolp class) (setq class (eieio-class-name class)))
+ (let* ((is-error (child-of-class-p class 'xcb:-error))
+ (prefix (replace-regexp-in-string ":[^:]+$" ":" (symbol-name class)))
+ (first (when (string= prefix "xcb:") 0))
+ (alist (intern-soft (concat prefix (if is-error
+ "error-number-class-alist"
+ "event-number-class-alist"))))
+ result parents)
+ (unless first
+ (setq first (cdr (assoc (intern (substring prefix 0 -1))
+ (slot-value obj
+ (if is-error
+ 'extension-first-error-alist
+ 'extension-first-event-alist))))))
+ (when alist
+ (setq result (+ (or first 0) (car (rassoc class (symbol-value alist))))))
+ (if result
+ result
+ ;; Fallback to use the error/event number of one superclass. Thus if the
+ ;; error/event number of a subclass differs from that of its parent, it
+ ;; must be explicitly pointed out.
+ (setq parents (eieio-class-parents class))
+ (while (and parents (not result))
+ (setq result (xcb:-error-or-event-class->number obj (pop parents))))
+ result)))
+
+(cl-defmethod xcb:-event-number->class ((obj xcb:connection) number)
+ "Return the event class that has the event number NUMBER.
+
+Note that when multiple events have the same number, only the top-most
+superclass will be returned."
+ (if (or (< number 64) (> number 127))
+ ;; Xproto event
+ (cdr (assoc number xcb:event-number-class-alist))
+ ;; Extension event
+ (let ((first-event number)
+ namespace index)
+ (while (and (not namespace) (>= first-event 64))
+ (setq namespace
+ (car (rassoc first-event
+ (slot-value obj 'extension-first-event-alist)))
+ first-event (1- first-event)))
+ (setq index (- number first-event 1))
+ (setq alist (intern-soft (concat (symbol-name namespace)
+ ":event-number-class-alist")))
+ (cdr (assoc index (symbol-value alist))))))
+
+(cl-defmethod xcb:-error-number->class ((obj xcb:connection) number)
+ "Return the error class that has the error number NUMBER.
+
+Note that when multiple errors have the same number, only the top-most
+superclass will be returned."
+ (if (or (< number 128) (> number 255))
+ ;; Xproto error
+ (cdr (assoc number xcb:error-number-class-alist))
+ ;; Extension error
+ (let ((first-error number)
+ namespace index)
+ (while (and (not namespace) (>= first-error 128))
+ (setq namespace
+ (car (rassoc first-error
+ (slot-value obj 'extension-first-error-alist)))
+ first-error (1- first-error)))
+ (setq index (- number first-error 1))
+ (setq alist (intern-soft (concat (symbol-name namespace)
+ ":error-number-class-alist")))
+ (cdr (assoc index (symbol-value alist))))))
+
+
+
+(provide 'xcb)
+
+;;; xcb.el ends here
- [elpa] externals/xelb 8215991 39/42: Add a missing function key, (continued)
- [elpa] externals/xelb 8215991 39/42: Add a missing function key, Chris Feng, 2015/09/17
- [elpa] externals/xelb f5a7ca9 42/42: Minor fix, Chris Feng, 2015/09/17
- [elpa] externals/xelb ae7da13 40/42: Add support for XF86 keysyms, Chris Feng, 2015/09/17
- [elpa] externals/xelb b8f3029 36/42: Flatten directory structure, Chris Feng, 2015/09/17
- [elpa] externals/xelb 5a74daa 32/42: Generate implicit paddings at compile time, Chris Feng, 2015/09/17
- [elpa] externals/xelb 9a0612c 41/42: Fix remaining compile warnings, Chris Feng, 2015/09/17
- [elpa] externals/xelb 2edbaa0 38/42: Code cleanups, Chris Feng, 2015/09/17
- [elpa] externals/xelb c99266a 31/42: Merge xelb-util into this repo, Chris Feng, 2015/09/17
- [elpa] externals/xelb 16e774c 02/42: First commit, Chris Feng, 2015/09/17
- [elpa] externals/xelb ab96086 34/42: Prepare for GNU ELPA release, Chris Feng, 2015/09/17
- [elpa] externals/xelb 1f9470c 01/42: First commit,
Chris Feng <=