pax_global_header 0000666 0000000 0000000 00000000064 14562520677 0014530 g ustar 00root root 0000000 0000000 52 comment=67ae522f491f636d917d428106572d7cf30cbc47
xelb-master/ 0000775 0000000 0000000 00000000000 14562520677 0013317 5 ustar 00root root 0000000 0000000 xelb-master/.elpaignore 0000664 0000000 0000000 00000000022 14562520677 0015437 0 ustar 00root root 0000000 0000000 LICENSE
README.md
xelb-master/.gitignore 0000664 0000000 0000000 00000000036 14562520677 0015306 0 ustar 00root root 0000000 0000000 *.elc
*-pkg.el
*-autoloads.el
xelb-master/LICENSE 0000664 0000000 0000000 00000104505 14562520677 0014331 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
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 .
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:
{project} Copyright (C) {year} {fullname}
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
.
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
.
xelb-master/Makefile 0000664 0000000 0000000 00000001406 14562520677 0014760 0 ustar 00root root 0000000 0000000 PROTO_PATH := /usr/share/xcb
EXTENSIONS := bigreq composite damage dbe dpms dri2 dri3 ge glx present randr \
record render res screensaver shape shm sync xc_misc xevie xf86dri \
xf86vidmode xfixes xinerama xinput xkb xprint xselinux xtest xvmc xv
EXT_LIBS = $(addprefix xcb-,$(addsuffix .el,$(EXTENSIONS)))
LIBS = xcb-xproto.el $(EXT_LIBS)
all: clean $(LIBS)
xcb-%.el: $(PROTO_PATH)/%.xml
@echo -n "\n"Generating $@...
@./xelb-gen $< > $@
$(EXT_LIBS): xcb-xproto.el
xcb-composite.el: xcb-xfixes.el
xcb-damage.el: xcb-xfixes.el
xcb-present.el: xcb-randr.el xcb-xfixes.el xcb-sync.el
xcb-randr.el: xcb-render.el
xcb-xfixes.el: xcb-render.el xcb-shape.el
xcb-xinput.el: xcb-xfixes.el
xcb-xvmc.el: xcb-xv.el
xcb-xv.el: xcb-shm.el
.PHONY: clean
clean:
@rm -vf $(LIBS)
xelb-master/README.md 0000664 0000000 0000000 00000001706 14562520677 0014602 0 ustar 00root root 0000000 0000000 # X protocol Emacs Lisp Binding
XELB (X protocol Emacs Lisp Binding) is a pure Elisp implementation of X11
protocol based on the XML description files from XCB project.
It features an object-oriented API and permits a certain degree of concurrency.
It should enable you to implement some low-level X11 applications.
Please refer to [xelb.el](https://github.com/emacs-exwm/xelb/blob/master/xelb.el)
for more details.
## Regenerating XCB Bindings
Most (although not all) bindings in this library are auto-generated from [xcb-proto][]. To regenerate them:
1. Install your distro's `xcb-proto` package (`apt install xcb-proto`, `pacman -S xcb-proto`, etc.).
2. Run `make`.
Alternatively:
1. Download the latest `xcb-proto` [release][xcb-proto-releases].
2. Extract it.
3. Run `make PROTO_PATH=/path/to/xcb-proto/src`
[xcb-proto]: https://gitlab.freedesktop.org/xorg/proto/xcbproto
[xcb-proto-releases]: (https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/tags)
xelb-master/xcb-bigreq.el 0000664 0000000 0000000 00000003011 14562520677 0015657 0 ustar 00root root 0000000 0000000 ;;; xcb-bigreq.el --- X11 BigRequests extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'bigreq.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(maximum-request-length :initarg :maximum-request-length :type xcb:CARD32)))
(provide 'xcb-bigreq)
;;; xcb-bigreq.el ends here
xelb-master/xcb-composite.el 0000664 0000000 0000000 00000007354 14562520677 0016426 0 ustar 00root root 0000000 0000000 ;;; xcb-composite.el --- X11 Composite extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'composite.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:xfixes: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
;;; xcb-composite.el ends here
xelb-master/xcb-cursor.el 0000664 0000000 0000000 00000046125 14562520677 0015740 0 ustar 00root root 0000000 0000000 ;;; xcb-cursor.el --- Port of Xcursor -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library is a port of Xcursor in Xlib, and roughly corresponds to the
;; xcb/util-cursor project.
;; Usage tips:
;; + Do not forget to call `xcb:cursor:init' for _every_ connection using this
;; library.
;; + The only useful method in this library is `xcb:cursor:load-cursor', which
;; loads a cursor by its name (e.g. "left_ptr"), in the following order:
;; 1. themed cursor
;; 2. inherited themed cursor
;; 3. standard X cursor
;; Todo:
;; + Add legacy support for RENDER.
;; + Cursor should be set per screen (only the first is used right now).
;; + Move codes corresponding to xcb/util-renderutil or xcb/util-image
;; elsewhere.
;; References:
;; + Xcursor(3).
;; + xcb/util-cursor (git://anongit.freedesktop.org/xcb/util-cursor)
;; + xcb/util-renderutil (git://anongit.freedesktop.org/xcb/util-renderutil)
;; + xcb/util-image (git://anongit.freedesktop.org/xcb/util-image)
;;; Code:
(eval-when-compile (require 'cl-lib))
(require 'xcb)
(require 'xcb-render)
;; FIXME: check if resource manager really works
(cl-defmethod xcb:cursor:init ((obj xcb:connection))
"Initialize Xcursor for connection OBJ."
;; Initialize resource manager
(let* ((root (slot-value (car (slot-value (xcb:get-setup obj) 'roots))
'root))
(rm (xcb:+request-unchecked+reply obj
(make-instance 'xcb:GetProperty
:delete 0 :window root
:property xcb:Atom:RESOURCE_MANAGER
:type xcb:Atom:STRING
:long-offset 0
:long-length 16384))) ;FIXME: xcb/util-cursor
(rm (split-string
(decode-coding-string
(apply #'unibyte-string (append (slot-value rm 'value) nil))
'iso-latin-1)
"\n"))
theme size dpi)
(dolist (i rm)
(pcase (replace-regexp-in-string "^\\(\\S-+\\)" "\\1" i)
("Xcursor.theme"
(setq theme
(replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i)))
("Xcursor.size"
(setq size
(string-to-number
(replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i))))
("Xft.dpi"
(setq dpi
(string-to-number
(replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i))))))
;; Get cursor size from XCURSOR_SIZE environment variable
(let ((default-size (getenv "XCURSOR_SIZE")))
(when default-size
(setq default-size (string-to-number default-size)))
(setq size (or default-size size)))
;; Alternatives
(when (and (not size) dpi)
(setq size (/ (* dpi 16) 72))) ;FIXME: xcb/util-cursor
(unless size
(setq size
;; FIXME: xcb/util-cursor
(/ (min (x-display-pixel-width) (x-display-pixel-height)) 48)))
;; Save default values
(let ((plist (plist-get (slot-value obj 'extra-plist) 'cursor)))
(setq plist (plist-put plist 'theme theme)
plist (plist-put plist 'size size))
(setf (slot-value obj 'extra-plist)
(plist-put (slot-value obj 'extra-plist) 'cursor plist))))
;; Initialize render extension
(if (= 0 (slot-value (xcb:get-extension-data obj 'xcb:render) 'present))
(error "[XELB:CURSOR] Render extension is not supported by this server")
(with-slots (minor-version)
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:render:QueryVersion
:client-major-version 0 :client-minor-version 8))
(if (> 8 minor-version)
(error "[XELB:CURSOR] Render version 0.8 is not supported")
(let* ((formats
(slot-value (xcb:+request-unchecked+reply obj
(make-instance 'xcb:render:QueryPictFormats))
'formats))
(format (catch 'break
(dolist (i formats)
(with-slots (type depth direct) i
(with-slots (red-shift red-mask
green-shift green-mask
blue-shift blue-mask
alpha-shift alpha-mask)
direct
;; FIXME: xcb/util-renderutil
(when (and (= type xcb:render:PictType:Direct)
(= depth 32)
(= red-shift 16) (= red-mask #xFF)
(= green-shift 8) (= green-mask #xFF)
(= blue-shift 0) (= blue-mask #xFF)
(= alpha-shift 24)
(= alpha-mask #xFF))
(throw 'break i)))))))
(plist (plist-get (slot-value obj 'extra-plist) 'cursor)))
(setf (slot-value obj 'extra-plist)
(plist-put (slot-value obj 'extra-plist) 'cursor
(plist-put plist 'pict-format format))))))))
(defsubst xcb:cursor:-get-path ()
"Return a list of cursor paths."
(let ((path (getenv "XCURSOR_PATH")))
(if path
(split-string path ":" t)
'("~/.icons"
"/usr/share/icons"
"/usr/share/pixmaps"
"/usr/X11R6/lib/X11/icons"))))
(defun xcb:cursor:-get-theme-inherits (file)
"Return the inherited themes in a index.theme file FILE."
(let ((lines (with-temp-buffer
(insert-file-contents file)
(split-string (buffer-string) "\n" t))))
(catch 'break
(dolist (line lines)
(when (string-match "^Inherits\\s-*=\\s-*" line)
(throw 'break
(split-string (replace-regexp-in-string "^[^=]+=\\(.*\\)$"
"\\1" line)
"[;, \t\n]+" t)))))))
(defsubst xcb:cursor:-shape->id (name)
"Return the standard Xcursor font for cursor named NAME."
;; Standard X cursor fonts are defined in Emacs
(intern-soft (concat "x-pointer-" (replace-regexp-in-string "_" "-" name))))
(defun xcb:cursor:-find-file (theme name &optional skip)
"Return the file for cursor named NAME in theme THEME, or nil if not found."
(catch 'return
;; Skip searched themes
(when (memq theme skip)
(throw 'return nil))
;; Give up when supplied "core" theme and a valid cursor name
(when (and (string= "core" theme) (xcb:cursor:-shape->id name))
(throw 'return nil))
(let ((path (xcb:cursor:-get-path))
file)
;; 1. try THEME/cursors/NAME in each cursor path
(dolist (i path)
(setq file (concat i "/" theme "/cursors/" name))
(when (file-readable-p file)
(throw 'return file)))
;; 2. try "Inherits=" key in "index.theme"
(dolist (i path)
(setq file (concat i "/" theme "/index.theme"))
(when (file-readable-p file)
(cl-pushnew theme skip)
;; try all inherited themes
(dolist (j (xcb:cursor:-get-theme-inherits file))
(setq file (xcb:cursor:-find-file j name skip))
(when file
(throw 'return file))
(cl-pushnew j skip)))))
nil))
(defconst xcb:cursor:-file-magic-lsb "Xcur"
"The magic number for little-endian Xcursor file.")
(defconst xcb:cursor:-file-magic-msb "rucX"
"The magic number for big-endian Xcursor file.")
(defclass xcb:cursor:-file-header (xcb:-struct)
((magic :type xcb:CARD32)
(header :type xcb:CARD32)
(version :type xcb:CARD32)
(ntoc :type xcb:CARD32)) ;redundant, required for calculating TOC bytes
:documentation "Xcursor file header.")
(defclass xcb:cursor:-file-header-toc (xcb:-struct)
((ntoc :type xcb:CARD32) ;redundant slot
(toc :type xcb:-ignore)
(toc~ :initform '(name toc type xcb:cursor:-file-toc
size (xcb:-fieldref 'ntoc))
:type xcb:-list))
:documentation "The TOC field in Xcursor file header.")
(defclass xcb:cursor:-file-toc (xcb:-struct)
((type :type xcb:CARD32)
(subtype :type xcb:CARD32)
(position :type xcb:CARD32))
:documentation "Xcursor file TOC entry.")
(defclass xcb:cursor:-file-chunk-header (xcb:-struct)
((header :type xcb:CARD32)
(type :type xcb:CARD32)
(subtype :type xcb:CARD32)
(version :type xcb:CARD32)
(width :type xcb:CARD32) ;redundant, required for calculating image bytes
(height :type xcb:CARD32)) ;redundant, required for calculating image bytes
:documentation "Xcursor file chunk header.")
(defconst xcb:cursor:-file-chunk-image-header 36
"Header value of image-type chunk in Xcursor file.")
(defconst xcb:cursor:-file-chunk-image-type 4294770690.
"Type of image-type chunk in Xcursor file.")
(defconst xcb:cursor:-file-chunk-image-version 1
"Version of image-type chunk in Xcursor file.")
(defclass xcb:cursor:-file-chunk-image (xcb:-struct)
((width :type xcb:CARD32) ;<= #x7FFF, redundant
(height :type xcb:CARD32) ;<= #x7FFF, redundant
(xhot :type xcb:CARD32) ;<= width
(yhot :type xcb:CARD32) ;<= height
(delay :type xcb:CARD32) ;in ms
(pixels :type xcb:-ignore)
(pixels~ :initform '(name pixels type xcb:CARD32
size (* (xcb:-fieldref 'width)
(xcb:-fieldref 'height)))
:type xcb:-list))
:documentation "Image-type chunk in Xcursor file.")
(cl-defmethod xcb:cursor:-parse-file ((obj xcb:connection) path)
"Parse an Xcursor file named PATH."
(catch 'return
(let ((data (let ((coding-system-for-read 'binary))
(with-temp-buffer
(set-buffer-multibyte nil)
(insert-file-contents path) (buffer-string))))
xcb:lsb ;override global byte order
best-size chunks
magic file-header file-header-toc chunk-header chunk)
;; Determine byte order
(setq magic (substring data 0 4))
(if (string= xcb:cursor:-file-magic-lsb magic)
(setq xcb:lsb t) ;LSB first
(if (string= xcb:cursor:-file-magic-msb magic)
(setq xcb:lsb nil) ;MSB first
(throw 'return nil)))
(setq file-header (make-instance 'xcb:cursor:-file-header))
;;
(xcb:unmarshal file-header (substring data 0 16))
;; FIXME: checks
(setq file-header-toc (make-instance 'xcb:cursor:-file-header-toc))
(xcb:unmarshal file-header-toc
(substring data 12 (+ 16 (* 12 (slot-value file-header
'ntoc)))))
(with-slots (toc) file-header-toc
(let ((target (plist-get
(plist-get (slot-value obj 'extra-plist) 'cursor)
'size)))
(catch 'break
(dolist (i toc)
(with-slots (type subtype) i
(when (= type xcb:cursor:-file-chunk-image-type)
(when (= target subtype)
(setq best-size target)
(throw 'break nil))
(when (or (not best-size)
(> (abs (- target best-size))
(abs (- target subtype))))
(setq best-size subtype)))))))
;; Collect chunks fitting this size
(setq chunk-header (make-instance 'xcb:cursor:-file-chunk-header))
(dolist (i toc)
(with-slots (type subtype position) i
(when (and (= type xcb:cursor:-file-chunk-image-type)
(= subtype best-size))
(xcb:unmarshal chunk-header (substring data position
(+ position 24)))
;; Validate the header of this chunk
(with-slots (header type subtype version) chunk-header
(when (or (/= header xcb:cursor:-file-chunk-image-header)
(/= type xcb:cursor:-file-chunk-image-type)
(/= subtype best-size)
(/= version xcb:cursor:-file-chunk-image-version))
(throw 'return nil)))
;; Parse this chunk
(setq chunk (make-instance 'xcb:cursor:-file-chunk-image))
(xcb:unmarshal chunk (substring data (+ position 16)
(+ position 36
(* 4
(slot-value chunk-header
'width)
(slot-value chunk-header
'height)))))
(setq chunks (nconc chunks (list chunk))))))
(list xcb:lsb chunks)))))
(cl-defmethod xcb:cursor:-load-cursor ((obj xcb:connection) file)
"Load a cursor file FILE."
(let* ((images (xcb:cursor:-parse-file obj file))
(lsb (car images))
(images (cadr images))
(root (slot-value (car (slot-value (xcb:get-setup obj) 'roots))
'root))
(picture (xcb:generate-id obj))
(pict-format (slot-value
(plist-get
(plist-get (slot-value obj 'extra-plist) 'cursor)
'pict-format)
'id))
pixmap gc cursors cursor last-width last-height)
(dolist (image images)
(with-slots (width height xhot yhot delay pixels) image
(when (or (not pixmap) (/= last-width width) (/= last-height height))
(if pixmap
(progn (xcb:+request obj (make-instance 'xcb:FreePixmap
:pixmap pixmap))
(xcb:+request obj (make-instance 'xcb:FreeGC :gc gc)))
(setq pixmap (xcb:generate-id obj)
gc (xcb:generate-id obj)))
(xcb:+request obj (make-instance 'xcb:CreatePixmap
:depth 32 :pid pixmap :drawable root
:width width :height height))
(xcb:+request obj (make-instance 'xcb:CreateGC
:cid gc :drawable pixmap
:value-mask 0))
(setq last-width width
last-height height))
(xcb:+request obj (make-instance 'xcb:PutImage
:format xcb:ImageFormat:ZPixmap
:drawable pixmap
:gc gc
:width width
:height height
:dst-x 0
:dst-y 0
:left-pad 0
:depth 32
:data (with-temp-buffer
(set-buffer-multibyte nil)
(mapconcat
(if lsb #'xcb:-pack-u4-lsb
#'xcb:-pack-u4)
pixels []))))
(xcb:+request obj (make-instance 'xcb:render:CreatePicture
:pid picture
:drawable pixmap
:format pict-format
:value-mask 0))
(setq cursor (xcb:generate-id obj)
cursors (nconc cursors
(list (make-instance 'xcb:render:ANIMCURSORELT
:cursor cursor
:delay delay))))
(xcb:+request obj (make-instance 'xcb:render:CreateCursor
:cid cursor
:source picture
:x xhot :y yhot))
(xcb:+request obj (make-instance 'xcb:render:FreePicture
:picture picture))))
(xcb:+request obj (make-instance 'xcb:FreePixmap :pixmap pixmap))
(xcb:+request obj (make-instance 'xcb:FreeGC :gc gc))
(xcb:flush obj)
(if (= 1 (length cursors))
;; Non-animated cursor
(slot-value (car cursors) 'cursor)
;; Animated cursor
(setq cursor (xcb:generate-id obj))
(xcb:+request obj (make-instance 'xcb:render:CreateAnimCursor
:cid cursor
:cursors (vconcat cursors)))
(dolist (i cursors)
(xcb:+request obj (make-instance 'xcb:FreeCursor
:cursor (slot-value i 'cursor))))
(xcb:flush obj)
cursor)))
(cl-defmethod xcb:cursor:load-cursor ((obj xcb:connection) name)
"Return a cursor whose name is NAME."
(let* ((theme (or (plist-get
(plist-get (slot-value obj 'extra-plist) 'cursor) 'theme)
"default"))
(file (xcb:cursor:-find-file theme name)))
(if file
(xcb:cursor:-load-cursor obj file)
;; Fallback to standard X cursors
(let ((pointer (xcb:cursor:-shape->id name))
(cursor xcb:Cursor:None)
font)
(when (boundp pointer)
(setq pointer (symbol-value pointer)
font (xcb:generate-id obj)
cursor (xcb:generate-id obj))
(xcb:+request obj
(make-instance 'xcb:OpenFont
:fid font :name-len (length "cursor")
:name "cursor"))
(xcb:+request obj
(make-instance 'xcb:CreateGlyphCursor
:cid cursor :source-font font :mask-font font
:source-char pointer :mask-char (1+ pointer)
:fore-red 0 :fore-green 0 :fore-blue 0
:back-red #xFFFF :back-green #xFFFF
:back-blue #xFFFF))
(xcb:flush obj))
cursor))))
(provide 'xcb-cursor)
;;; xcb-cursor.el ends here
xelb-master/xcb-damage.el 0000664 0000000 0000000 00000007044 14562520677 0015636 0 ustar 00root root 0000000 0000000 ;;; xcb-damage.el --- X11 Damage extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'damage.xml',
;; which you can retrieve from .
;;; Code:
(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)
((~code :initform 0)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:xfixes:REGION)
(parts :initarg :parts :type xcb:xfixes:REGION)))
(defclass xcb:damage:Add
(xcb:-request)
((~opcode :initform 4 :type xcb:-u1)
(drawable :initarg :drawable :type xcb:DRAWABLE)
(region :initarg :region :type xcb:xfixes:REGION)))
(defclass xcb:damage:Notify
(xcb:-event)
((~code :initform 0)
(level :initarg :level :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-damage.el ends here
xelb-master/xcb-dbe.el 0000664 0000000 0000000 00000012140 14562520677 0015143 0 ustar 00root root 0000000 0000000 ;;; xcb-dbe.el --- X11 Dbe extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'dbe.xml',
;; which you can retrieve from .
;;; Code:
(require 'xcb-types)
(defconst xcb:dbe:-extension-xname "DOUBLE-BUFFER")
(defconst xcb:dbe:-extension-name "Dbe")
(defconst xcb:dbe:-major-version 1)
(defconst xcb:dbe:-minor-version 0)
(require 'xcb-xproto)
(xcb:deftypealias 'xcb:dbe:BackBuffer 'xcb:DRAWABLE)
(defconst xcb:dbe:SwapAction:Undefined 0)
(defconst xcb:dbe:SwapAction:Background 1)
(defconst xcb:dbe:SwapAction:Untouched 2)
(defconst xcb:dbe:SwapAction:Copied 3)
(defclass xcb:dbe:SwapInfo
(xcb:-struct)
((window :initarg :window :type xcb:WINDOW)
(swap-action :initarg :swap-action :type xcb:CARD8)
(pad~0 :initform 3 :type xcb:-pad)))
(defclass xcb:dbe:BufferAttributes
(xcb:-struct)
((window :initarg :window :type xcb:WINDOW)))
(defclass xcb:dbe:VisualInfo
(xcb:-struct)
((visual-id :initarg :visual-id :type xcb:VISUALID)
(depth :initarg :depth :type xcb:CARD8)
(perf-level :initarg :perf-level :type xcb:CARD8)
(pad~0 :initform 2 :type xcb:-pad)))
(defclass xcb:dbe:VisualInfos
(xcb:-struct)
((n-infos :initarg :n-infos :type xcb:CARD32)
(infos~ :initform
'(name infos type xcb:dbe:VisualInfo size
(xcb:-fieldref 'n-infos))
:type xcb:-list)
(infos :initarg :infos :type xcb:-ignore)))
(defclass xcb:dbe:BadBuffer
(xcb:-error)
((~code :initform 0)
(bad-buffer :initarg :bad-buffer :type xcb:dbe:BackBuffer)))
(defclass xcb:dbe:QueryVersion
(xcb:-request)
((~opcode :initform 0 :type xcb:-u1)
(major-version :initarg :major-version :type xcb:CARD8)
(minor-version :initarg :minor-version :type xcb:CARD8)
(pad~0 :initform 2 :type xcb:-pad)))
(defclass xcb:dbe:QueryVersion~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:dbe:AllocateBackBuffer
(xcb:-request)
((~opcode :initform 1 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(buffer :initarg :buffer :type xcb:dbe:BackBuffer)
(swap-action :initarg :swap-action :type xcb:CARD8)
(pad~0 :initform 3 :type xcb:-pad)))
(defclass xcb:dbe:DeallocateBackBuffer
(xcb:-request)
((~opcode :initform 2 :type xcb:-u1)
(buffer :initarg :buffer :type xcb:dbe:BackBuffer)))
(defclass xcb:dbe:SwapBuffers
(xcb:-request)
((~opcode :initform 3 :type xcb:-u1)
(n-actions :initarg :n-actions :type xcb:CARD32)
(actions~ :initform
'(name actions type xcb:dbe:SwapInfo size
(xcb:-fieldref 'n-actions))
:type xcb:-list)
(actions :initarg :actions :type xcb:-ignore)))
(defclass xcb:dbe:BeginIdiom
(xcb:-request)
((~opcode :initform 4 :type xcb:-u1)))
(defclass xcb:dbe:EndIdiom
(xcb:-request)
((~opcode :initform 5 :type xcb:-u1)))
(defclass xcb:dbe:GetVisualInfo
(xcb:-request)
((~opcode :initform 6 :type xcb:-u1)
(n-drawables :initarg :n-drawables :type xcb:CARD32)
(drawables~ :initform
'(name drawables type xcb:DRAWABLE size
(xcb:-fieldref 'n-drawables))
:type xcb:-list)
(drawables :initarg :drawables :type xcb:-ignore)))
(defclass xcb:dbe:GetVisualInfo~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(n-supported-visuals :initarg :n-supported-visuals :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(supported-visuals~ :initform
'(name supported-visuals type xcb:dbe:VisualInfos size
(xcb:-fieldref 'n-supported-visuals))
:type xcb:-list)
(supported-visuals :initarg :supported-visuals :type xcb:-ignore)))
(defclass xcb:dbe:GetBackBufferAttributes
(xcb:-request)
((~opcode :initform 7 :type xcb:-u1)
(buffer :initarg :buffer :type xcb:dbe:BackBuffer)))
(defclass xcb:dbe:GetBackBufferAttributes~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(attributes :initarg :attributes :type xcb:dbe:BufferAttributes)
(pad~1 :initform 20 :type xcb:-pad)))
(defconst xcb:dbe:error-number-class-alist
'((0 . xcb:dbe:BadBuffer))
"(error-number . error-class) alist.")
(provide 'xcb-dbe)
;;; xcb-dbe.el ends here
xelb-master/xcb-debug.el 0000664 0000000 0000000 00000010472 14562520677 0015505 0 ustar 00root root 0000000 0000000 ;;; xcb-debug.el --- Debugging helpers for XELB -*- lexical-binding: t -*-
;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
;; Author: Adrián Medraño Calvo
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This module collects functions that help in debugging XELB.
;;; Code:
(defvar xcb-debug:buffer "*XELB-DEBUG*" "Buffer to write debug messages to.")
(defvar xcb-debug:backtrace-start-frame 5
"From which frame to start collecting backtraces.")
(defvar xcb-debug:log-time-function #'xcb-debug:log-uptime
"Function used for generating timestamps in XELB debug logs.
Here are some predefined candidates:
`xcb-debug:log-uptime': Display the uptime of this Emacs instance.
`xcb-debug:log-time': Display time of day.
`nil': Disable timestamp.")
(defun xcb-debug:log-uptime ()
"Add uptime to XELB debug logs."
(emacs-uptime "[%.2h:%.2m:%.2s] "))
(defun xcb-debug:log-time ()
"Add time of day to XELB debug logs."
(format-time-string "[%T] "))
(defun xcb-debug:-call-stack ()
"Return the current call stack frames."
(let (frames frame
;; No need to acount for our setq, while, let, ...
(index xcb-debug:backtrace-start-frame))
(while (setq frame (backtrace-frame index))
(push frame frames)
(cl-incf index))
(cl-remove-if-not 'car frames)))
(defmacro xcb-debug:compile-time-function-name ()
"Get the name of outermost definition at expansion time."
(let* ((frame (cl-find-if
(lambda (frame)
(ignore-errors
(let ((clause (car (cl-third frame))))
(or (equal clause 'defalias)
(equal clause 'cl-defmethod)))))
(reverse (xcb-debug:-call-stack))))
(defn (cl-third frame))
(deftype (car defn)))
(cl-case deftype
((defalias) (symbol-name (cl-cadadr defn)))
((cl-defmethod) (symbol-name (cadr defn)))
(t ""))))
(defmacro xcb-debug:-with-debug-buffer (&rest forms)
"Evaluate FORMS making sure `xcb-debug:buffer' is correctly updated."
`(with-current-buffer (xcb-debug:-get-buffer)
(let (windows-eob)
;; Note windows whose point is at EOB.
(dolist (w (get-buffer-window-list (current-buffer) t 'nomini))
(when (and (window-live-p w)
(= (window-point w) (point-max)))
(push w windows-eob)))
(save-excursion
(goto-char (point-max))
,@forms)
;; Restore point.
(dolist (w windows-eob)
(set-window-point w (point-max))))))
(defun xcb-debug:message (format-string &rest objects)
"Print a message to `xcb-debug:buffer'.
The FORMAT-STRING argument follows the speficies how to print each of
the passed OBJECTS. See `format' for details."
(xcb-debug:-with-debug-buffer
(insert (apply #'format format-string objects))))
(defmacro xcb-debug:backtrace ()
"Print a backtrace to the `xcb-debug:buffer'."
'(xcb-debug:-with-debug-buffer
(let ((standard-output (xcb-debug:-get-buffer)))
(backtrace))))
(defmacro xcb-debug:backtrace-on-error (&rest forms)
"Evaluate FORMS. Printing a backtrace if an error is signaled."
`(let ((debug-on-error t)
(debugger (lambda (&rest _) (xcb-debug:backtrace))))
,@forms))
(defun xcb-debug:-get-buffer ()
"Get or create `xcb-debug:buffer'."
(let ((buffer (get-buffer xcb-debug:buffer)))
(unless buffer
(setq buffer (get-buffer-create xcb-debug:buffer))
(buffer-disable-undo buffer))
buffer))
(defun xcb-debug:clear ()
"Clear the debug buffer."
(interactive)
(xcb-debug:-with-debug-buffer
(erase-buffer)))
(defun xcb-debug:mark ()
"Insert a mark in the debug buffer."
(interactive)
(xcb-debug:-with-debug-buffer
(insert "\n")))
(provide 'xcb-debug)
;;; xcb-debug.el ends here
xelb-master/xcb-dpms.el 0000664 0000000 0000000 00000010236 14562520677 0015360 0 ustar 00root root 0000000 0000000 ;;; xcb-dpms.el --- X11 DPMS extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'dpms.xml',
;; which you can retrieve from .
;;; Code:
(require 'xcb-types)
(defconst xcb:dpms:-extension-xname "DPMS")
(defconst xcb:dpms:-extension-name "DPMS")
(defconst xcb:dpms:-major-version 1)
(defconst xcb:dpms:-minor-version 2)
(require 'xcb-xproto)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(power-level :initarg :power-level :type xcb:CARD16)
(state :initarg :state :type xcb:BOOL)
(pad~1 :initform 21 :type xcb:-pad)))
(defconst xcb:dpms:EventMask:InfoNotify 1)
(defclass xcb:dpms:SelectInput
(xcb:-request)
((~opcode :initform 8 :type xcb:-u1)
(event-mask :initarg :event-mask :type xcb:CARD32)))
(defclass xcb:dpms:InfoNotify
(xcb:-generic-event)
((~evtype :initform 0)
(pad~0 :initform 2 :type xcb:-pad)
(timestamp :initarg :timestamp :type xcb:TIMESTAMP)
(power-level :initarg :power-level :type xcb:CARD16)
(state :initarg :state :type xcb:BOOL)
(pad~1 :initform 21 :type xcb:-pad)))
(defconst xcb:dpms:xge-number-class-alist
'((0 . xcb:dpms:InfoNotify))
"(xge-number . event-class) alist.")
(provide 'xcb-dpms)
;;; xcb-dpms.el ends here
xelb-master/xcb-dri2.el 0000664 0000000 0000000 00000026060 14562520677 0015257 0 ustar 00root root 0000000 0000000 ;;; xcb-dri2.el --- X11 DRI2 extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'dri2.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name driver-name type xcb:char size
(xcb:-fieldref 'driver-name-length))
:type xcb:-list)
(driver-name :initarg :driver-name :type xcb:-ignore)
(alignment-pad~ :initform
'(name alignment-pad type xcb:void size
(-
(logand
(+
(xcb:-fieldref 'driver-name-length)
3)
(lognot 3))
(xcb:-fieldref 'driver-name-length)))
:type xcb:-list)
(alignment-pad :initarg :alignment-pad :type xcb:-ignore)
(device-name~ :initform
'(name device-name type xcb:char size
(xcb:-fieldref 'device-name-length))
:type xcb:-list)
(device-name :initarg :device-name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name attachments type xcb:CARD32 size nil)
:type xcb:-list)
(attachments :initarg :attachments :type xcb:-ignore)))
(defclass xcb:dri2:GetBuffers~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name buffers type xcb:dri2:DRI2Buffer size
(xcb:-fieldref 'count))
:type xcb:-list)
(buffers :initarg :buffers :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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~ :initform
'(name attachments type xcb:dri2:AttachFormat size nil)
:type xcb:-list)
(attachments :initarg :attachments :type xcb:-ignore)))
(defclass xcb:dri2:GetBuffersWithFormat~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name buffers type xcb:dri2:DRI2Buffer size
(xcb:-fieldref 'count))
:type xcb:-list)
(buffers :initarg :buffers :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(value-hi :initarg :value-hi :type xcb:CARD32)
(value-lo :initarg :value-lo :type xcb:CARD32)))
(defclass xcb:dri2:BufferSwapComplete
(xcb:-event)
((~code :initform 0)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-dri2.el ends here
xelb-master/xcb-dri3.el 0000664 0000000 0000000 00000016605 14562520677 0015264 0 ustar 00root root 0000000 0000000 ;;; xcb-dri3.el --- X11 DRI3 extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'dri3.xml',
;; which you can retrieve from .
;;; Code:
(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 3)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(fence-fd :type xcb:fd)
(pad~0 :initform 24 :type xcb:-pad)))
(defclass xcb:dri3:GetSupportedModifiers
(xcb:-request)
((~opcode :initform 6 :type xcb:-u1)
(window :initarg :window :type xcb:CARD32)
(depth :initarg :depth :type xcb:CARD8)
(bpp :initarg :bpp :type xcb:CARD8)
(pad~0 :initform 2 :type xcb:-pad)))
(defclass xcb:dri3:GetSupportedModifiers~reply
(xcb:-reply)
((pad~0 :initform 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 1 :type xcb:-pad)
(num-window-modifiers :initarg :num-window-modifiers :type xcb:CARD32)
(num-screen-modifiers :initarg :num-screen-modifiers :type xcb:CARD32)
(pad~2 :initform 16 :type xcb:-pad)
(window-modifiers~ :initform
'(name window-modifiers type xcb:CARD64 size
(xcb:-fieldref 'num-window-modifiers))
:type xcb:-list)
(window-modifiers :initarg :window-modifiers :type xcb:-ignore)
(screen-modifiers~ :initform
'(name screen-modifiers type xcb:CARD64 size
(xcb:-fieldref 'num-screen-modifiers))
:type xcb:-list)
(screen-modifiers :initarg :screen-modifiers :type xcb:-ignore)))
(defclass xcb:dri3:PixmapFromBuffers
(xcb:-request)
((~opcode :initform 7 :type xcb:-u1)
(pad~0 :initform 8 :type xcb:-pad-align)
(pixmap :initarg :pixmap :type xcb:PIXMAP)
(window :initarg :window :type xcb:WINDOW)
(num-buffers :initarg :num-buffers :type xcb:CARD8)
(pad~1 :initform 3 :type xcb:-pad)
(width :initarg :width :type xcb:CARD16)
(height :initarg :height :type xcb:CARD16)
(stride0 :initarg :stride0 :type xcb:CARD32)
(offset0 :initarg :offset0 :type xcb:CARD32)
(stride1 :initarg :stride1 :type xcb:CARD32)
(offset1 :initarg :offset1 :type xcb:CARD32)
(stride2 :initarg :stride2 :type xcb:CARD32)
(offset2 :initarg :offset2 :type xcb:CARD32)
(stride3 :initarg :stride3 :type xcb:CARD32)
(offset3 :initarg :offset3 :type xcb:CARD32)
(depth :initarg :depth :type xcb:CARD8)
(bpp :initarg :bpp :type xcb:CARD8)
(pad~2 :initform 2 :type xcb:-pad)
(modifier :initarg :modifier :type xcb:CARD64)
(buffers~ :initform
'(name buffers type xcb:fd size
(xcb:-fieldref 'num-buffers))
:type xcb:-list)
(buffers :initarg :buffers :type xcb:-ignore)))
(defclass xcb:dri3:BuffersFromPixmap
(xcb:-request)
((~opcode :initform 8 :type xcb:-u1)
(pixmap :initarg :pixmap :type xcb:PIXMAP)))
(defclass xcb:dri3:BuffersFromPixmap~reply
(xcb:-reply)
((pad~0 :initform 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(nfd :initarg :nfd :type xcb:CARD8)
(width :initarg :width :type xcb:CARD16)
(height :initarg :height :type xcb:CARD16)
(pad~1 :initform 4 :type xcb:-pad)
(modifier :initarg :modifier :type xcb:CARD64)
(depth :initarg :depth :type xcb:CARD8)
(bpp :initarg :bpp :type xcb:CARD8)
(pad~2 :initform 6 :type xcb:-pad)
(strides~ :initform
'(name strides type xcb:CARD32 size
(xcb:-fieldref 'nfd))
:type xcb:-list)
(strides :initarg :strides :type xcb:-ignore)
(offsets~ :initform
'(name offsets type xcb:CARD32 size
(xcb:-fieldref 'nfd))
:type xcb:-list)
(offsets :initarg :offsets :type xcb:-ignore)
(buffers~ :initform
'(name buffers type xcb:fd size
(xcb:-fieldref 'nfd))
:type xcb:-list)
(buffers :initarg :buffers :type xcb:-ignore)))
(defclass xcb:dri3:SetDRMDeviceInUse
(xcb:-request)
((~opcode :initform 9 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(drmMajor :initarg :drmMajor :type xcb:CARD32)
(drmMinor :initarg :drmMinor :type xcb:CARD32)))
(provide 'xcb-dri3)
;;; xcb-dri3.el ends here
xelb-master/xcb-ewmh.el 0000664 0000000 0000000 00000072237 14562520677 0015366 0 ustar 00root root 0000000 0000000 ;;; xcb-ewmh.el --- Extended Window Manager Hints -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library implements EWMH the same way as xcb/util-wm.
;; Usage tips:
;; + Do not forget to call `xcb:ewmh:init' for _every_ connection using
;; this library.
;; + Use `xcb:ewmh:SendEvent' instead of `xcb:SendEvent' to send client
;; messages defined in this library.
;; + Initializing this library auto loads and initializes 'xcb-icccm'.
;; References:
;; + EWMH (http://standards.freedesktop.org/wm-spec/wm-spec-latest.html)
;; + xcb/util-wm (git://anongit.freedesktop.org/xcb/util-wm)
;;; Code:
(require 'xcb)
(require 'xcb-icccm)
;;;; EWMH Atoms
(eval-and-compile
(defconst xcb:ewmh:-atoms
'( ;; Root Window Properties (and Related Messages)
_NET_SUPPORTED
_NET_CLIENT_LIST
_NET_CLIENT_LIST_STACKING
_NET_NUMBER_OF_DESKTOPS
_NET_DESKTOP_GEOMETRY
_NET_DESKTOP_VIEWPORT
_NET_CURRENT_DESKTOP
_NET_DESKTOP_NAMES
_NET_ACTIVE_WINDOW
_NET_WORKAREA
_NET_SUPPORTING_WM_CHECK
_NET_VIRTUAL_ROOTS
_NET_DESKTOP_LAYOUT
_NET_SHOWING_DESKTOP
;; Other Root Window Messages
_NET_CLOSE_WINDOW
_NET_MOVERESIZE_WINDOW
_NET_WM_MOVERESIZE
_NET_RESTACK_WINDOW
_NET_REQUEST_FRAME_EXTENTS
;; Application Window Properties
_NET_WM_NAME
_NET_WM_VISIBLE_NAME
_NET_WM_ICON_NAME
_NET_WM_VISIBLE_ICON_NAME
_NET_WM_DESKTOP
_NET_WM_WINDOW_TYPE
_NET_WM_STATE
_NET_WM_ALLOWED_ACTIONS
_NET_WM_STRUT
_NET_WM_STRUT_PARTIAL
_NET_WM_ICON_GEOMETRY
_NET_WM_ICON
_NET_WM_PID
_NET_WM_HANDLED_ICONS
_NET_WM_USER_TIME
_NET_WM_USER_TIME_WINDOW
_NET_FRAME_EXTENTS
_NET_WM_OPAQUE_REGION
_NET_WM_BYPASS_COMPOSITOR
;; Window Manager Protocols
_NET_WM_PING
_NET_WM_SYNC_REQUEST
_NET_WM_SYNC_REQUEST_COUNTER
_NET_WM_FULLSCREEN_MONITORS
;; Other Properties
_NET_WM_FULL_PLACEMENT
_NET_WM_CM_S0 ;_NET_WM_CM_Sn (n = 1, 2, ...) are left out here.
;; _NET_WM_WINDOW_TYPE hint
_NET_WM_WINDOW_TYPE_DESKTOP
_NET_WM_WINDOW_TYPE_DOCK
_NET_WM_WINDOW_TYPE_TOOLBAR
_NET_WM_WINDOW_TYPE_MENU
_NET_WM_WINDOW_TYPE_UTILITY
_NET_WM_WINDOW_TYPE_SPLASH
_NET_WM_WINDOW_TYPE_DIALOG
_NET_WM_WINDOW_TYPE_DROPDOWN_MENU
_NET_WM_WINDOW_TYPE_POPUP_MENU
_NET_WM_WINDOW_TYPE_TOOLTIP
_NET_WM_WINDOW_TYPE_NOTIFICATION
_NET_WM_WINDOW_TYPE_COMBO
_NET_WM_WINDOW_TYPE_DND
_NET_WM_WINDOW_TYPE_NORMAL
;; _NET_WM_STATE hint
_NET_WM_STATE_MODAL
_NET_WM_STATE_STICKY
_NET_WM_STATE_MAXIMIZED_VERT
_NET_WM_STATE_MAXIMIZED_HORZ
_NET_WM_STATE_SHADED
_NET_WM_STATE_SKIP_TASKBAR
_NET_WM_STATE_SKIP_PAGER
_NET_WM_STATE_HIDDEN
_NET_WM_STATE_FULLSCREEN
_NET_WM_STATE_ABOVE
_NET_WM_STATE_BELOW
_NET_WM_STATE_DEMANDS_ATTENTION
_NET_WM_STATE_FOCUSED
;; _NET_WM_ACTION hint
_NET_WM_ACTION_MOVE
_NET_WM_ACTION_RESIZE
_NET_WM_ACTION_MINIMIZE
_NET_WM_ACTION_SHADE
_NET_WM_ACTION_STICK
_NET_WM_ACTION_MAXIMIZE_HORZ
_NET_WM_ACTION_MAXIMIZE_VERT
_NET_WM_ACTION_FULLSCREEN
_NET_WM_ACTION_CHANGE_DESKTOP
_NET_WM_ACTION_CLOSE
_NET_WM_ACTION_ABOVE
_NET_WM_ACTION_BELOW)
"EWMH atoms.")
(dolist (atom xcb:ewmh:-atoms)
(eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil))))
(cl-defmethod xcb:ewmh:init ((obj xcb:connection) &optional force)
"Initialize EWMH module.
This method must be called before using any other method in this module.
This method also initializes ICCCM module automatically."
(when (or force (not xcb:Atom:_NET_SUPPORTED))
(xcb:icccm:init obj) ;required
(let ((atoms xcb:ewmh:-atoms))
(dotimes (i (1- (x-display-screens)))
(push (intern (format "_NET_WM_CM_S%d" (1+ i))) atoms))
(xcb:icccm:intern-atoms obj atoms force))))
;;;; Client message
(defclass xcb:ewmh:SendEvent (xcb:SendEvent)
((propagate :initform 0)
(event-mask :initform (logior xcb:EventMask:SubstructureNotify
xcb:EventMask:SubstructureRedirect)))
:documentation "A fork of `xcb:SendEvent' to send EWMH client message.
Note that this only applies to \"sending a message to the root window\" in
EWMH")
(defclass xcb:ewmh:-ClientMessage (xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 32)))
;;;; Abstract classes for getting/changing (UTF-8) string properties
(defclass xcb:ewmh:-GetProperty-utf8 (xcb:icccm:-GetProperty-text)
((type :initform 'xcb:Atom:UTF8_STRING))
:documentation "Get an EWMH UTF-8 text property (request part).")
(defclass xcb:ewmh:-GetProperty-utf8~reply (xcb:icccm:-GetProperty-text~reply)
nil
:documentation "Get an EWMH UTF-8 text property (reply part).")
(defclass xcb:ewmh:-ChangeProperty-utf8 (xcb:icccm:-ChangeProperty-text)
((type :initform 'xcb:Atom:UTF8_STRING))
:documentation "Change an EWMH UTF-8 text property.")
;;;; Root Window Properties (and Related Messages)
;; _NET_SUPPORTED
(defclass xcb:ewmh:get-_NET_SUPPORTED (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_SUPPORTED)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:get-_NET_SUPPORTED~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_SUPPORTED (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_SUPPORTED)
(type :initform 'xcb:Atom:ATOM)))
;; _NET_CLIENT_LIST
(defclass xcb:ewmh:get-_NET_CLIENT_LIST (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_CLIENT_LIST)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:get-_NET_CLIENT_LIST~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_CLIENT_LIST (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_CLIENT_LIST)
(type :initform 'xcb:Atom:WINDOW)))
;; _NET_CLIENT_LIST_STACKING
(defclass xcb:ewmh:get-_NET_CLIENT_LIST_STACKING (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_CLIENT_LIST_STACKING)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:get-_NET_CLIENT_LIST_STACKING~reply
(xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_CLIENT_LIST_STACKING (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_CLIENT_LIST_STACKING)
(type :initform 'xcb:Atom:WINDOW)))
;; _NET_NUMBER_OF_DESKTOPS
(defclass xcb:ewmh:get-_NET_NUMBER_OF_DESKTOPS (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_NUMBER_OF_DESKTOPS)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_NUMBER_OF_DESKTOPS~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_NUMBER_OF_DESKTOPS
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_NUMBER_OF_DESKTOPS)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_DESKTOP_GEOMETRY
(defclass xcb:ewmh:-_NET_DESKTOP_GEOMETRY (xcb:--struct)
((width :initarg :width :type xcb:-ignore)
(height :initarg :height :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_DESKTOP_GEOMETRY (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_DESKTOP_GEOMETRY)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 2)))
(defclass xcb:ewmh:get-_NET_DESKTOP_GEOMETRY~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_DESKTOP_GEOMETRY)
nil)
(defclass xcb:ewmh:set-_NET_DESKTOP_GEOMETRY
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_DESKTOP_GEOMETRY)
((property :initform 'xcb:Atom:_NET_DESKTOP_GEOMETRY)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_DESKTOP_GEOMETRY
(xcb:ewmh:-ClientMessage xcb:ewmh:-_NET_DESKTOP_GEOMETRY)
((type :initform 'xcb:Atom:_NET_DESKTOP_GEOMETRY)))
;; _NET_DESKTOP_VIEWPORT
(defclass xcb:ewmh:get-_NET_DESKTOP_VIEWPORT (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_DESKTOP_VIEWPORT)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_DESKTOP_VIEWPORT~reply
(xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_DESKTOP_VIEWPORT (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_DESKTOP_VIEWPORT)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_DESKTOP_VIEWPORT (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_DESKTOP_VIEWPORT)
(new-vx :initarg :new-vx :type xcb:CARD32)
(new-vy :initarg :new-vy :type xcb:CARD32)))
;; _NET_CURRENT_DESKTOP
(defclass xcb:ewmh:get-_NET_CURRENT_DESKTOP (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_CURRENT_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_CURRENT_DESKTOP~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_CURRENT_DESKTOP (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_CURRENT_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_CURRENT_DESKTOP (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_CURRENT_DESKTOP)
(new-index :initarg :new-index :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:CARD32)))
;; _NET_DESKTOP_NAMES
(defclass xcb:ewmh:get-_NET_DESKTOP_NAMES (xcb:ewmh:-GetProperty-utf8)
((property :initform 'xcb:Atom:_NET_DESKTOP_NAMES)))
(defclass xcb:ewmh:get-_NET_DESKTOP_NAMES~reply
(xcb:ewmh:-GetProperty-utf8~reply)
nil)
(defclass xcb:ewmh:set-_NET_DESKTOP_NAMES (xcb:ewmh:-ChangeProperty-utf8)
((property :initform 'xcb:Atom:_NET_DESKTOP_NAMES)))
;; _NET_ACTIVE_WINDOW
(defclass xcb:ewmh:get-_NET_ACTIVE_WINDOW (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_ACTIVE_WINDOW)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:get-_NET_ACTIVE_WINDOW~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_ACTIVE_WINDOW (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_ACTIVE_WINDOW)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:_NET_ACTIVE_WINDOW (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_ACTIVE_WINDOW)
(source-indication :initarg :source-indication :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:CARD32)
(current-active-window :initarg :current-active-window :type xcb:WINDOW)))
;; _NET_WORKAREA
(defclass xcb:ewmh:get-_NET_WORKAREA (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WORKAREA)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WORKAREA~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_WORKAREA (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WORKAREA)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_SUPPORTING_WM_CHECK
(defclass xcb:ewmh:get-_NET_SUPPORTING_WM_CHECK (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_SUPPORTING_WM_CHECK)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:get-_NET_SUPPORTING_WM_CHECK~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_SUPPORTING_WM_CHECK
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_SUPPORTING_WM_CHECK)
(type :initform 'xcb:Atom:WINDOW)))
;; _NET_VIRTUAL_ROOTS
(defclass xcb:ewmh:get-_NET_VIRTUAL_ROOTS (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_VIRTUAL_ROOTS)
(type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:ewmh:get-_NET_VIRTUAL_ROOTS~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_VIRTUAL_ROOTS (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_VIRTUAL_ROOTS)
(type :initform 'xcb:Atom:WINDOW)))
;; _NET_DESKTOP_LAYOUT
;; Orientations
(defconst xcb:ewmh:_NET_WM_ORIENTATION_HORZ 0)
(defconst xcb:ewmh:_NET_WM_ORIENTATION_VERT 1)
;; Starting corners
(defconst xcb:ewmh:_NET_WM_TOPLEFT 0)
(defconst xcb:ewmh:_NET_WM_TOPRIGHT 1)
(defconst xcb:ewmh:_NET_WM_BOTTOMRIGHT 2)
(defconst xcb:ewmh:_NET_WM_BOTTOMLEFT 3)
;;
(defclass xcb:ewmh:-_NET_DESKTOP_LAYOUT (xcb:--struct)
((orientation :initarg :orientation :type xcb:-ignore)
(columns :initarg :columns :type xcb:-ignore)
(rows :initarg :rows :type xcb:-ignore)
(starting-corner :initarg :starting-corner :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_DESKTOP_LAYOUT (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_DESKTOP_LAYOUT)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 4)))
(defclass xcb:ewmh:get-_NET_DESKTOP_LAYOUT~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_DESKTOP_LAYOUT)
nil)
(defclass xcb:ewmh:set-_NET_DESKTOP_LAYOUT
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_DESKTOP_LAYOUT)
((property :initform 'xcb:Atom:_NET_DESKTOP_LAYOUT)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_SHOWING_DESKTOP
(defclass xcb:ewmh:get-_NET_SHOWING_DESKTOP (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_SHOWING_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_SHOWING_DESKTOP~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_SHOWING_DESKTOP (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_SHOWING_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_SHOWING_DESKTOP (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_SHOWING_DESKTOP)
(show :initarg :show :type xcb:CARD32)))
;;;; Other Root Window Messages
;; _NET_CLOSE_WINDOW
(defclass xcb:ewmh:_NET_CLOSE_WINDOW (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_CLOSE_WINDOW)
(timestamp :initarg :timestamp :type xcb:CARD32)
(source-indication :initarg :source-indication :type xcb:CARD32)))
;; _NET_MOVERESIZE_WINDOW
(defclass xcb:ewmh:_NET_MOVERESIZE_WINDOW (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_MOVERESIZE_WINDOW)
(gravity-and-flags :initarg :gravity-and-flags :type xcb:CARD32)
(x :initarg :x :type xcb:CARD32)
(y :initarg :y :type xcb:CARD32)
(width :initarg :width :type xcb:CARD32)
(height :initarg :height :type xcb:CARD32)))
;; _NET_WM_MOVERESIZE
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOPLEFT 0)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOP 1)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOPRIGHT 2)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_RIGHT 3)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOM 5)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT 6)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_LEFT 7)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_MOVE 8)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_KEYBOARD 9)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_MOVE_KEYBOARD 10)
(defconst xcb:ewmh:_NET_WM_MOVERESIZE_CANCEL 11)
;;
(defclass xcb:ewmh:_NET_WM_MOVERESIZE (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_WM_MOVERESIZE)
(x-root :initarg :x-root :type xcb:CARD32)
(y-root :initarg :y-root :type xcb:CARD32)
(direction :initarg :direction :type xcb:CARD32)
(button :initarg :button :type xcb:CARD32)
(source-indication :initarg :source-indication :type xcb:CARD32)))
;; _NET_RESTACK_WINDOW
(defclass xcb:ewmh:_NET_RESTACK_WINDOW (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_RESTACK_WINDOW)
(source-indication :initarg :source-indication :type xcb:CARD32)
(sibling :initarg :sibling :type xcb:WINDOW)
(detail :initarg :detail :type xcb:CARD32)))
;; _NET_REQUEST_FRAME_EXTENTS
(defclass xcb:ewmh:_NET_REQUEST_FRAME_EXTENTS (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_REQUEST_FRAME_EXTENTS)))
;;;; Application Window Properties
;; _NET_WM_NAME
(defclass xcb:ewmh:get-_NET_WM_NAME (xcb:ewmh:-GetProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_NAME)))
(defclass xcb:ewmh:get-_NET_WM_NAME~reply (xcb:ewmh:-GetProperty-utf8~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_NAME (xcb:ewmh:-ChangeProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_NAME)))
;; _NET_WM_VISIBLE_NAME
(defclass xcb:ewmh:get-_NET_WM_VISIBLE_NAME (xcb:ewmh:-GetProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_VISIBLE_NAME)))
(defclass xcb:ewmh:get-_NET_WM_VISIBLE_NAME~reply
(xcb:ewmh:-GetProperty-utf8~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_VISIBLE_NAME (xcb:ewmh:-ChangeProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_VISIBLE_NAME)))
;; _NET_WM_ICON_NAME
(defclass xcb:ewmh:get-_NET_WM_ICON_NAME (xcb:ewmh:-GetProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_ICON_NAME)))
(defclass xcb:ewmh:get-_NET_WM_ICON_NAME~reply
(xcb:ewmh:-GetProperty-utf8~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_ICON_NAME (xcb:ewmh:-ChangeProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_ICON_NAME)))
;; _NET_WM_VISIBLE_ICON_NAME
(defclass xcb:ewmh:get-_NET_WM_VISIBLE_ICON_NAME (xcb:ewmh:-GetProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_VISIBLE_ICON_NAME)))
(defclass xcb:ewmh:get-_NET_WM_VISIBLE_ICON_NAME~reply
(xcb:ewmh:-GetProperty-utf8~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_VISIBLE_ICON_NAME
(xcb:ewmh:-ChangeProperty-utf8)
((property :initform 'xcb:Atom:_NET_WM_VISIBLE_ICON_NAME)))
;; _NET_WM_DESKTOP
(defclass xcb:ewmh:get-_NET_WM_DESKTOP (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_DESKTOP~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_DESKTOP (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_DESKTOP)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_WM_DESKTOP (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_WM_DESKTOP)
(new-desktop :initarg :new-desktop :type xcb:CARD32)
(source-indication :initarg :source-indication :type xcb:CARD32)))
;; _NET_WM_WINDOW_TYPE
(defclass xcb:ewmh:get-_NET_WM_WINDOW_TYPE (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WM_WINDOW_TYPE)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:get-_NET_WM_WINDOW_TYPE~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_WINDOW_TYPE (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WM_WINDOW_TYPE)
(type :initform 'xcb:Atom:ATOM)))
;; _NET_WM_STATE
(defconst xcb:ewmh:_NET_WM_STATE_REMOVE 0)
(defconst xcb:ewmh:_NET_WM_STATE_ADD 1)
(defconst xcb:ewmh:_NET_WM_STATE_TOGGLE 2)
;;
(defclass xcb:ewmh:get-_NET_WM_STATE (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WM_STATE)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:get-_NET_WM_STATE~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_STATE (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WM_STATE)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:_NET_WM_STATE (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:_NET_WM_STATE)
(action :initarg :action :type xcb:CARD32)
(first-property :initarg :first-property :type xcb:CARD32)
(second-property :initarg :second-property :type xcb:CARD32)
(source-indication :initarg :source-indication :type xcb:CARD32)))
;; _NET_WM_ALLOWED_ACTIONS
(defclass xcb:ewmh:get-_NET_WM_ALLOWED_ACTIONS (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WM_ALLOWED_ACTIONS)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:get-_NET_WM_ALLOWED_ACTIONS~reply
(xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_ALLOWED_ACTIONS (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WM_ALLOWED_ACTIONS)
(type :initform 'xcb:Atom:ATOM)))
;; _NET_WM_STRUT
(defclass xcb:ewmh:-_NET_WM_STRUT (xcb:--struct)
((left :initarg :left :type xcb:-ignore)
(right :initarg :right :type xcb:-ignore)
(top :initarg :top :type xcb:-ignore)
(bottom :initarg :bottom :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_WM_STRUT (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_WM_STRUT)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 4)))
(defclass xcb:ewmh:get-_NET_WM_STRUT~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_STRUT)
nil)
(defclass xcb:ewmh:set-_NET_WM_STRUT
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_STRUT)
((property :initform 'xcb:Atom:_NET_WM_STRUT)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_STRUT_PARTIAL
(defclass xcb:ewmh:-_NET_WM_STRUT_PARTIAL (xcb:--struct)
((left :initarg :left :type xcb:-ignore)
(right :initarg :right :type xcb:-ignore)
(top :initarg :top :type xcb:-ignore)
(bottom :initarg :bottom :type xcb:-ignore)
(left-start-y :initarg :left-start-y :type xcb:-ignore)
(left-end-y :initarg :left-end-y :type xcb:-ignore)
(right-start-y :initarg :right-start-y :type xcb:-ignore)
(right-end-y :initarg :right-end-y :type xcb:-ignore)
(top-start-x :initarg :top-start-x :type xcb:-ignore)
(top-end-x :initarg :top-end-x :type xcb:-ignore)
(bottom-start-x :initarg :bottom-start-x :type xcb:-ignore)
(bottom-end-x :initarg :bottom-end-x :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_WM_STRUT_PARTIAL (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_WM_STRUT_PARTIAL)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 12)))
(defclass xcb:ewmh:get-_NET_WM_STRUT_PARTIAL~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_STRUT_PARTIAL)
nil)
(defclass xcb:ewmh:set-_NET_WM_STRUT_PARTIAL
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_STRUT_PARTIAL)
((property :initform 'xcb:Atom:_NET_WM_STRUT_PARTIAL)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_ICON_GEOMETRY
(defclass xcb:ewmh:-_NET_WM_ICON_GEOMETRY (xcb:--struct)
((x :initarg :x :type xcb:-ignore)
(y :initarg :y :type xcb:-ignore)
(width :initarg :width :type xcb:-ignore)
(height :initarg :height :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_WM_ICON_GEOMETRY (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_WM_ICON_GEOMETRY)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 4)))
(defclass xcb:ewmh:get-_NET_WM_ICON_GEOMETRY~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_ICON_GEOMETRY)
nil)
(defclass xcb:ewmh:set-_NET_WM_ICON_GEOMETRY
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_ICON_GEOMETRY)
((property :initform 'xcb:Atom:_NET_WM_ICON_GEOMETRY)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_ICON
(defclass xcb:ewmh:-get-_NET_WM_ICON (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WM_ICON)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:-get-_NET_WM_ICON~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:-set-_NET_WM_ICON (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WM_ICON)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_PID
(defclass xcb:ewmh:get-_NET_WM_PID (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_PID)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_PID~reply (xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_PID (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_PID)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_HANDLED_ICONS
(defclass xcb:ewmh:get-_NET_WM_HANDLED_ICONS (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_HANDLED_ICONS)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_HANDLED_ICONS~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_HANDLED_ICONS (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_HANDLED_ICONS)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_USER_TIME
(defclass xcb:ewmh:get-_NET_WM_USER_TIME (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_USER_TIME)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_USER_TIME~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_USER_TIME (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_USER_TIME)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_USER_TIME_WINDOW
(defclass xcb:ewmh:get-_NET_WM_USER_TIME_WINDOW (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_USER_TIME_WINDOW)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_USER_TIME_WINDOW~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_USER_TIME_WINDOW
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_USER_TIME_WINDOW)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_FRAME_EXTENTS
(defclass xcb:ewmh:-_NET_FRAME_EXTENTS (xcb:--struct)
((left :initarg :left :type xcb:-ignore)
(right :initarg :right :type xcb:-ignore)
(top :initarg :top :type xcb:-ignore)
(bottom :initarg :bottom :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_FRAME_EXTENTS (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_FRAME_EXTENTS)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 4)))
(defclass xcb:ewmh:get-_NET_FRAME_EXTENTS~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_FRAME_EXTENTS)
nil)
(defclass xcb:ewmh:set-_NET_FRAME_EXTENTS
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_FRAME_EXTENTS)
((property :initform 'xcb:Atom:_NET_FRAME_EXTENTS)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_OPAQUE_REGION
(defclass xcb:ewmh:get-_NET_WM_OPAQUE_REGION (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:_NET_WM_OPAQUE_REGION)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:ewmh:get-_NET_WM_OPAQUE_REGION~reply
(xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_OPAQUE_REGION (xcb:icccm:-ChangeProperty)
((property :initform 'xcb:Atom:_NET_WM_OPAQUE_REGION)
(type :initform 'xcb:Atom:ATOM)))
;; _NET_WM_BYPASS_COMPOSITOR
(defclass xcb:ewmh:get-_NET_WM_BYPASS_COMPOSITOR
(xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_WM_BYPASS_COMPOSITOR)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:get-_NET_WM_BYPASS_COMPOSITOR~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:ewmh:set-_NET_WM_BYPASS_COMPOSITOR
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_WM_BYPASS_COMPOSITOR)
(type :initform 'xcb:Atom:CARDINAL)))
;;;; Window Manager Protocols
;; _NET_WM_PING
(defclass xcb:ewmh:_NET_WM_PING (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:WM_PROTOCOLS)
(protocol :initform 'xcb:Atom:_NET_WM_PING :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:CARD32)
(client-window :initarg :client-window :type xcb:WINDOW)))
;; _NET_WM_SYNC_REQUEST
(defclass xcb:ewmh:_NET_WM_SYNC_REQUEST (xcb:ewmh:-ClientMessage)
((type :initform 'xcb:Atom:WM_PROTOCOLS)
(protocol :initform 'xcb:Atom:_NET_WM_SYNC_REQUEST :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:CARD32)
(low :initarg :low :type xcb:CARD32)
(high :initarg :high :type xcb:CARD32)))
;; _NET_WM_SYNC_REQUEST_COUNTER
(defclass xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER (xcb:--struct)
((low :initarg :low :type xcb:-ignore)
(high :initarg :hight :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_WM_SYNC_REQUEST_COUNTER
(xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_WM_SYNC_REQUEST_COUNTER)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 2)))
(defclass xcb:ewmh:get-_NET_WM_SYNC_REQUEST_COUNTER~reply
(xcb:icccm:-GetProperty-explicit~reply
xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER)
nil)
(defclass xcb:ewmh:set-_NET_WM_SYNC_REQUEST_COUNTER
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER)
((property :initform 'xcb:Atom:_NET_WM_SYNC_REQUEST_COUNTER)
(type :initform 'xcb:Atom:CARDINAL)))
;; _NET_WM_FULLSCREEN_MONITORS
(defclass xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS (xcb:--struct)
((top :initarg :top :type xcb:-ignore)
(bottom :initarg :bottom :type xcb:-ignore)
(left :initarg :left :type xcb:-ignore)
(right :initarg :right :type xcb:-ignore)))
;;
(defclass xcb:ewmh:get-_NET_WM_FULLSCREEN_MONITORS
(xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_NET_WM_FULLSCREEN_MONITORS)
(type :initform 'xcb:Atom:CARDINAL)
(long-length :initform 4)))
(defclass xcb:ewmh:get-_NET_WM_FULLSCREEN_MONITORS~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS)
nil)
(defclass xcb:ewmh:set-_NET_WM_FULLSCREEN_MONITORS
(xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS)
((property :initform 'xcb:Atom:_NET_WM_FULLSCREEN_MONITORS)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:ewmh:_NET_WM_FULLSCREEN_MONITORS
(xcb:ewmh:-ClientMessage xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS)
((type :initform 'xcb:Atom:_NET_WM_FULLSCREEN_MONITORS)))
;;;; Other Properties
;;;; Misc.
(defconst xcb:ewmh:source-indication:none 0)
(defconst xcb:ewmh:source-indication:normal 1)
(defconst xcb:ewmh:source-indication:other 2)
(provide 'xcb-ewmh)
;;; xcb-ewmh.el ends here
xelb-master/xcb-ge.el 0000664 0000000 0000000 00000003337 14562520677 0015014 0 ustar 00root root 0000000 0000000 ;;; xcb-ge.el --- X11 GenericEvent extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'ge.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
;;; xcb-ge.el ends here
xelb-master/xcb-glx.el 0000664 0000000 0000000 00000170443 14562520677 0015216 0 ustar 00root root 0000000 0000000 ;;; xcb-glx.el --- X11 Glx extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'glx.xml',
;; which you can retrieve from .
;;; Code:
(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:float)
(xcb:deftypealias 'xcb:glx:FLOAT64 'xcb:double)
(xcb:deftypealias 'xcb:glx:BOOL32 'xcb:CARD32)
(xcb:deftypealias 'xcb:glx:CONTEXT_TAG 'xcb:CARD32)
(defclass xcb:glx:Generic
(xcb:-error)
((~code :initform -1)
(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)
((~code :initform 0)))
(defclass xcb:glx:BadContextState
(xcb:-error xcb:glx:Generic)
((~code :initform 1)))
(defclass xcb:glx:BadDrawable
(xcb:-error xcb:glx:Generic)
((~code :initform 2)))
(defclass xcb:glx:BadPixmap
(xcb:-error xcb:glx:Generic)
((~code :initform 3)))
(defclass xcb:glx:BadContextTag
(xcb:-error xcb:glx:Generic)
((~code :initform 4)))
(defclass xcb:glx:BadCurrentWindow
(xcb:-error xcb:glx:Generic)
((~code :initform 5)))
(defclass xcb:glx:BadRenderRequest
(xcb:-error xcb:glx:Generic)
((~code :initform 6)))
(defclass xcb:glx:BadLargeRequest
(xcb:-error xcb:glx:Generic)
((~code :initform 7)))
(defclass xcb:glx:UnsupportedPrivateRequest
(xcb:-error xcb:glx:Generic)
((~code :initform 8)))
(defclass xcb:glx:BadFBConfig
(xcb:-error xcb:glx:Generic)
((~code :initform 9)))
(defclass xcb:glx:BadPbuffer
(xcb:-error xcb:glx:Generic)
((~code :initform 10)))
(defclass xcb:glx:BadCurrentDrawable
(xcb:-error xcb:glx:Generic)
((~code :initform 11)))
(defclass xcb:glx:BadWindow
(xcb:-error xcb:glx:Generic)
((~code :initform 12)))
(defclass xcb:glx:GLXBadProfileARB
(xcb:-error xcb:glx:Generic)
((~code :initform 13)))
(defclass xcb:glx:PbufferClobber
(xcb:-event)
((~code :initform 0)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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~ :initform
'(name data type xcb:BYTE size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:BYTE size
(xcb:-fieldref 'data-len))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name property-list type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(property-list :initarg :property-list :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:BYTE size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:BYTE size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(defclass xcb:glx:VendorPrivateWithReply~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(retval :initarg :retval :type xcb:CARD32)
(data1~ :initform
'(name data1 type xcb:BYTE size 24)
:type xcb:-list)
(data1 :initarg :data1 :type xcb:-ignore)
(data2~ :initform
'(name data2 type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data2 :initarg :data2 :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 4 :type xcb:-pad)
(str-len :initarg :str-len :type xcb:CARD32)
(pad~2 :initform 16 :type xcb:-pad)
(string~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'str-len))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'str-len))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name property-list type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(property-list :initarg :property-list :type xcb:-ignore)))
(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:PIXMAP)
(glx-pixmap :initarg :glx-pixmap :type xcb:glx:PIXMAP)
(num-attribs :initarg :num-attribs :type xcb:CARD32)
(attribs~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-attribs :initarg :num-attribs :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(attribs~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-attribs :initarg :num-attribs :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(attribs~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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:WINDOW)
(glx-window :initarg :glx-window :type xcb:glx:WINDOW)
(num-attribs :initarg :num-attribs :type xcb:CARD32)
(attribs~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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~ :initform
'(name gl-versions type xcb:CARD32 size
(*
(xcb:-fieldref 'num-versions)
2))
:type xcb:-list)
(gl-versions :initarg :gl-versions :type xcb:-ignore)
(gl-extension-string~ :initform
'(name gl-extension-string type xcb:char size
(xcb:-fieldref 'gl-str-len))
:type xcb:-list)
(gl-extension-string :initarg :gl-extension-string :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(glx-extension-string~ :initform
'(name glx-extension-string type xcb:char size
(xcb:-fieldref 'glx-str-len))
:type xcb:-list)
(glx-extension-string :initarg :glx-extension-string :type xcb:-ignore)))
(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~ :initform
'(name attribs type xcb:CARD32 size
(*
(xcb:-fieldref 'num-attribs)
2))
:type xcb:-list)
(attribs :initarg :attribs :type xcb:-ignore)))
(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~ :initform
'(name gl-versions type xcb:CARD32 size
(*
(xcb:-fieldref 'num-versions)
3))
:type xcb:-list)
(gl-versions :initarg :gl-versions :type xcb:-ignore)
(gl-extension-string~ :initform
'(name gl-extension-string type xcb:char size
(xcb:-fieldref 'gl-str-len))
:type xcb:-list)
(gl-extension-string :initarg :gl-extension-string :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(glx-extension-string~ :initform
'(name glx-extension-string type xcb:char size
(xcb:-fieldref 'glx-str-len))
:type xcb:-list)
(glx-extension-string :initarg :glx-extension-string :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BOOL size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 1 :type xcb:-pad)
(pad~2 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:glx:FLOAT64 size
(/
(xcb:-fieldref 'length)
2))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 1 :type xcb:-pad)
(pad~2 :initform 4 :type xcb:-pad)
(n :initarg :n :type xcb:CARD32)
(datum :initarg :datum :type xcb:glx:FLOAT64)
(pad~3 :initform 8 :type xcb:-pad)
(data~ :initform
'(name data type xcb:glx:FLOAT64 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 1 :type xcb:-pad)
(pad~2 :initform 4 :type xcb:-pad)
(n :initarg :n :type xcb:CARD32)
(datum :initarg :datum :type xcb:glx:FLOAT64)
(pad~3 :initform 8 :type xcb:-pad)
(data~ :initform
'(name data type xcb:glx:FLOAT64 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:CARD16 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 4 :type xcb:-pad)
(n :initarg :n :type xcb:CARD32)
(pad~2 :initform 16 :type xcb:-pad)
(string~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'n))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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 8 :type xcb:-pad-align)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 1 :type xcb:-pad)
(pad~2 :initform 4 :type xcb:-pad)
(n :initarg :n :type xcb:CARD32)
(datum :initarg :datum :type xcb:glx:FLOAT64)
(pad~3 :initform 8 :type xcb:-pad)
(data~ :initform
'(name data type xcb:glx:FLOAT64 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(defclass xcb:glx:IsEnabled
(xcb:-request)
((~opcode :initform 140 :type xcb:-u1)
(context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG)
(capability :initarg :capability :type xcb:CARD32)))
(defclass xcb:glx:IsEnabled~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ret-val :initarg :ret-val :type xcb:glx:BOOL32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ret-val :initarg :ret-val :type xcb:glx: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~ :initform
'(name textures type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(textures :initarg :textures :type xcb:-ignore)))
(defclass xcb:glx:AreTexturesResident~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ret-val :initarg :ret-val :type xcb:glx:BOOL32)
(pad~1 :initform 20 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BOOL size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name textures type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(textures :initarg :textures :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ret-val :initarg :ret-val :type xcb:glx: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 8 :type xcb:-pad)
(width :initarg :width :type xcb:INT32)
(pad~2 :initform 12 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name rows-and-cols type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(rows-and-cols :initarg :rows-and-cols :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 8 :type xcb:-pad)
(width :initarg :width :type xcb:INT32)
(pad~2 :initform 12 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:glx:FLOAT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 8 :type xcb:-pad)
(size :initarg :size :type xcb:INT32)
(pad~2 :initform 12 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name ids type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(ids :initarg :ids :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(data~ :initform
'(name data type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ret-val :initarg :ret-val :type xcb:glx: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:INT32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:CARD32 size
(xcb:-fieldref 'n))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
;;; xcb-glx.el ends here
xelb-master/xcb-icccm.el 0000664 0000000 0000000 00000054447 14562520677 0015507 0 ustar 00root root 0000000 0000000 ;;; xcb-icccm.el --- Inter-Client Communication -*- lexical-binding: t -*-
;;; Conventions Manual
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library implements ICCCM the same way as xcb/util-wm.
;; Usage tips:
;; + Do not forget to call `xcb:icccm:init' for _every_ connection using
;; this library.
;; + Use `xcb:icccm:SendEvent' instead of `xcb:SendEvent' to send client
;; messages defined in this library.
;; Todo:
;; + Interned atoms are actually connection-dependent. Currently they are
;; simply saved as global variables.
;; References:
;; + ICCCM (http://www.x.org/releases/X11R7.7/doc/xorg-docs/icccm/icccm.txt)
;; + xcb/util-wm (git://anongit.freedesktop.org/xcb/util-wm)
;;; Code:
(eval-when-compile (require 'cl-lib))
(require 'xcb)
;;;; ICCCM atoms
(eval-and-compile
(defconst xcb:icccm:-atoms
'(UTF8_STRING COMPOUND_TEXT TEXT C_STRING MANAGER
WM_PROTOCOLS WM_TAKE_FOCUS WM_DELETE_WINDOW
WM_STATE WM_CHANGE_STATE WM_S0)
"Atoms involved in ICCCM.")
(dolist (atom xcb:icccm:-atoms)
(eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil))))
(cl-defmethod xcb:icccm:init ((obj xcb:connection) &optional force)
"Initialize ICCCM module.
This method must be called before using any other method in this module."
(when (or force (not xcb:Atom:WM_PROTOCOLS))
(let ((atoms xcb:icccm:-atoms))
(dotimes (i (1- (x-display-screens)))
(push (intern (format "WM_S%d" (1+ i))) atoms))
(xcb:icccm:intern-atoms obj atoms force))))
(cl-defmethod xcb:icccm:intern-atoms ((obj xcb:connection) atoms
&optional force)
"Intern the X atoms listed in the list ATOMS.
The value of these atoms will be available in `xcb:Atom' namespace."
(dolist (atom atoms)
(let* ((name (symbol-name atom))
(var-name (intern (concat "xcb:Atom:" name))))
(when (or force (not (and (boundp var-name) (symbol-value var-name))))
(set var-name
(slot-value (xcb:+request-unchecked+reply obj
(make-instance 'xcb:InternAtom
:only-if-exists 0
:name-len (length name)
:name name))
'atom))))))
;;;; Client message
(defclass xcb:icccm:SendEvent (xcb:SendEvent)
((propagate :initform 0)
(event-mask :initform 'xcb:EventMask:NoEvent))
:documentation "A fork of `xcb:SendEvent' to send ICCCM client messages.")
(defclass xcb:icccm:--ClientMessage (xcb:--struct)
((data :type xcb:-ignore)) ;shadowed slot
:documentation "To shadow the data slot in `xcb:ClientMessage'.")
;;
(defclass xcb:icccm:-ClientMessage
(xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 32)
(type :initform 'xcb:Atom:WM_PROTOCOLS)
(protocol :type xcb:ATOM) ;new slot
(time :initarg :time :type xcb:TIMESTAMP) ;new slot
(pad~0 :initform 12 :type xcb:-pad)) ;new slot
:documentation "An ICCCM client message with data slot replaced by
protocol and time.")
(defclass xcb:icccm:-ManagerSelection
(xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 32)
(type :initform 'xcb:Atom:MANAGER)
(time :initarg :time :type xcb:TIMESTAMP) ;new slot
(selection :initarg :selection :type xcb:ATOM) ;new slot
(owner :initarg :owner :type xcb:WINDOW)) ;new slot
:documentation "Announce that selection was successfully acquired.")
(defclass xcb:icccm:WM_DELETE_WINDOW (xcb:icccm:-ClientMessage)
((protocol :initform 'xcb:Atom:WM_DELETE_WINDOW)
(time :initform 'xcb:Time:CurrentTime))
:documentation "Delete a window using the WM_DELETE_WINDOW client message.")
(defclass xcb:icccm:WM_TAKE_FOCUS (xcb:icccm:-ClientMessage)
((protocol :initform 'xcb:Atom:WM_TAKE_FOCUS))
:documentation "Set a focus using the WM_TAKE_FOCUS client message.
A valid timestamp (rather than `xcb:Time:CurrentTime') must be supplied.")
;;;; Abstract classes for getting/changing (plain) list properties
(defclass xcb:icccm:-GetProperty (xcb:GetProperty)
((delete :initform 0)
(long-offset :initform 0)
(long-length :initform 1000000000.)) ;as long as possible
:documentation "Get an ICCCM property (request part).")
(defclass xcb:icccm:-GetProperty~reply (xcb:GetProperty~reply)
nil
:documentation "Get an ICCCM property (reply part).")
;;
(cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty~reply) byte-array)
"Fill in the fields in the reply of ICCCM GetProperty request OBJ
according to BYTE-ARRAY.
This method automatically format the value as 8, 16 or 32 bits array."
(let ((retval (cl-call-next-method obj byte-array))
tmp)
(with-slots (~lsb length format value-len value) obj
(if (or (= 0 value-len) (= 0 length))
(setf value nil) ;no available value
(setq tmp value ;long-offset is always 0
value nil)
(pcase format
(8
(cl-assert (= value-len (length tmp)))
(setf value tmp))
(16
(cl-assert (= (* 2 value-len) (length tmp)))
(if ~lsb
(dotimes (_ value-len)
(setf value (vconcat value
(vector (xcb:-unpack-u2-lsb tmp 0))))
(setq tmp (substring tmp 2)))
(dotimes (_ value-len)
(setf value (vconcat value
(vector (xcb:-unpack-u2 tmp 0))))
(setq tmp (substring tmp 2)))))
(32
(cl-assert (= (* 4 value-len) (length tmp)))
(if ~lsb
(dotimes (_ value-len)
(setf value (vconcat value
(vector (xcb:-unpack-u4-lsb tmp 0))))
(setq tmp (substring tmp 4)))
(dotimes (_ value-len)
(setf value (vconcat value (vector (xcb:-unpack-u4 tmp 0))))
(setq tmp (substring tmp 4)))))
(_ (cl-assert nil)))))
retval))
(defclass xcb:icccm:-ChangeProperty (xcb:ChangeProperty)
((mode :initform 'xcb:PropMode:Replace)
(format :initform 32)
(data :initform nil))
:documentation "Change an ICCCM property.")
;;
(cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty))
"Return the byte-array representation of an ICCCM ChangeProperty request.
This method automatically sets the data length."
(with-slots (~lsb format data-len data) obj
(setf data-len (length data))
(setf data
(pcase format
(8 data)
(16 (mapconcat (lambda (i) (if ~lsb (xcb:-pack-u2-lsb i)
(xcb:-pack-u2 i)))
data []))
(32 (mapconcat (lambda (i) (if ~lsb (xcb:-pack-u4-lsb i)
(xcb:-pack-u4 i)))
data []))
(_ (cl-assert nil)))))
(cl-call-next-method obj))
;;;; Abstract classes for getting/changing text properties
(defclass xcb:icccm:-GetProperty-text (xcb:icccm:-GetProperty)
((type :initform 'xcb:GetPropertyType:Any))
:documentation "Get an ICCCM text property (request part).")
(defclass xcb:icccm:-GetProperty-text~reply (xcb:icccm:-GetProperty~reply)
nil
:documentation "Get an ICCCM text property (reply part).")
;;
(cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-text~reply)
byte-array)
"Fill in the fields in the reply of ICCCM GetProperty (text) request OBJ
according to BYTE-ARRAY.
This method automatically decodes the value (as string)."
(let* ((retval (cl-call-next-method obj byte-array)))
(with-slots (format type value) obj
(when (symbolp type) (setq type (symbol-value type)))
(when (and value (= format 8))
(setf value
(decode-coding-string
(apply #'unibyte-string (append value nil))
(cond ((= type xcb:Atom:UTF8_STRING) 'utf-8)
((= type xcb:Atom:STRING) 'iso-latin-1)
((= type xcb:Atom:COMPOUND_TEXT)
'compound-text-with-extensions)
((or (eq type xcb:Atom:TEXT) (eq type xcb:Atom:C_STRING))
'no-conversion)
(t (error "[XELB:ICCCM] Unsupported encoding: %d"
type)))))))
retval))
(defclass xcb:icccm:-ChangeProperty-text (xcb:icccm:-ChangeProperty)
((type :initform 'xcb:Atom:STRING) ;may be changed
(format :initform 8))
:documentation "Change an ICCCM text property.")
;;
(cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-text))
"Return the byte-array representation of an ICCCM ChangeProperty (text)
request OBJ.
This method automatically encodes the data (which is a string)."
(with-slots (type data) obj
(when (symbolp type) (setq type (symbol-value type)))
(setf data
(vconcat
(encode-coding-string
data
(cond ((= type xcb:Atom:UTF8_STRING) 'utf-8)
((= type xcb:Atom:STRING) 'iso-latin-1)
((= type xcb:Atom:COMPOUND_TEXT)
'compound-text-with-extensions)
((or (eq type xcb:Atom:TEXT) (eq type xcb:Atom:C_STRING))
'no-conversion)
(t (error "[XELB:ICCCM] Unsupported encoding: %d" type)))))))
(cl-call-next-method obj))
;;;; Abstract classes for getting/changing single field properties
(defclass xcb:icccm:-GetProperty-single (xcb:icccm:-GetProperty)
nil
:documentation "Get an ICCCM single-valued property (request part).")
(defclass xcb:icccm:-GetProperty-single~reply (xcb:icccm:-GetProperty~reply)
nil
:documentation "Get a single-valued ICCCM property (reply part).")
;;
(cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-single~reply)
byte-array)
"Fill in the fields in the reply of an ICCCM GetProperty (single-valued)
request OBJ according to BYTE-ARRAY."
(let ((retval (cl-call-next-method obj byte-array)))
(with-slots (value) obj
(when value
(cl-assert (= 1 (length value)))
(setf value (elt value 0))))
retval))
(defclass xcb:icccm:-ChangeProperty-single (xcb:icccm:-ChangeProperty)
nil
:documentation "Change a single-valued ICCCM property.")
;;
(cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-single))
"Return the byte-array representation of a single-valued ICCCM ChangeProperty
request OBJ."
(with-slots (data) obj
(setf data `[,data]))
(cl-call-next-method obj))
;;;; Abstract classes for getting/changing property with explicit fields
(defclass xcb:icccm:-GetProperty-explicit (xcb:icccm:-GetProperty)
nil
:documentation "Get an ICCCM property whose fields are explicitly listed out
(request part).")
(defclass xcb:icccm:-GetProperty-explicit~reply (xcb:icccm:-GetProperty~reply)
nil
:documentation "Get an ICCCM property whose fields are explicitly listed out
(reply part).")
;;
(cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-explicit~reply)
byte-array)
"Fill in the reply of an ICCCM GetProperty request whose fields are
explicitly listed out."
(let* ((retval (cl-call-next-method obj byte-array))
(slots-orig (eieio-class-slots 'xcb:icccm:-GetProperty~reply))
(slots (eieio-class-slots (eieio-object-class obj)))
(slots (nthcdr (length slots-orig) slots))
(value (slot-value obj 'value)))
(unless value (setq value (make-vector (length slots) nil))) ;fallback
;; Set explicit fields from value field
(dotimes (i (length value))
(setf (slot-value obj (eieio-slot-descriptor-name (elt slots i)))
(elt value i)))
retval))
(defclass xcb:icccm:-ChangeProperty-explicit (xcb:icccm:-ChangeProperty)
((format :initform 32))
:documentation "Change an ICCCM property whose fields are explicitly listed
out.")
;;
(cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-explicit))
"Return the byte-array representation of an ICCCM ChangeProperty request
whose fields are explicitly listed out."
(let* ((slots-orig (eieio-class-slots 'xcb:icccm:-ChangeProperty))
(slots (eieio-class-slots (eieio-object-class obj)))
(slots (nthcdr (length slots-orig) slots)))
;; Set data field from explicit fields
(setf (slot-value obj 'data)
(mapconcat (lambda (slot)
(list (slot-value obj
(eieio-slot-descriptor-name slot))))
slots []))
(cl-call-next-method obj)))
;;;; Client Properties
;; WM_NAME
(defclass xcb:icccm:get-WM_NAME (xcb:icccm:-GetProperty-text)
((property :initform 'xcb:Atom:WM_NAME)))
(defclass xcb:icccm:get-WM_NAME~reply (xcb:icccm:-GetProperty-text~reply)
nil)
(defclass xcb:icccm:set-WM_NAME (xcb:icccm:-ChangeProperty-text)
((property :initform 'xcb:Atom:WM_NAME)))
;; WM_ICON_NAME
(defclass xcb:icccm:get-WM_ICON_NAME (xcb:icccm:-GetProperty-text)
((property :initform 'xcb:Atom:WM_ICON_NAME)))
(defclass xcb:icccm:get-WM_ICON_NAME~reply (xcb:icccm:-GetProperty-text~reply)
nil)
(defclass xcb:icccm:set-WM_ICON_NAME (xcb:icccm:-ChangeProperty-text)
((property :initform 'xcb:Atom:WM_ICON_NAME)))
;; WM_SIZE_HINTS
(defconst xcb:icccm:WM_SIZE_HINTS:USPosition 1)
(defconst xcb:icccm:WM_SIZE_HINTS:USSize 2)
(defconst xcb:icccm:WM_SIZE_HINTS:PPosition 4)
(defconst xcb:icccm:WM_SIZE_HINTS:PSize 8)
(defconst xcb:icccm:WM_SIZE_HINTS:PMinSize 16)
(defconst xcb:icccm:WM_SIZE_HINTS:PMaxSize 32)
(defconst xcb:icccm:WM_SIZE_HINTS:PResizeInc 64)
(defconst xcb:icccm:WM_SIZE_HINTS:PAspect 128)
(defconst xcb:icccm:WM_SIZE_HINTS:PBaseSize 256)
(defconst xcb:icccm:WM_SIZE_HINTS:PWinGravity 512)
;;
(defclass xcb:icccm:-WM_SIZE_HINTS (xcb:--struct)
((flags :initarg :flags :initform 0 :type xcb:-ignore)
(x :initarg :x :initform 0 :type xcb:-ignore)
(y :initarg :y :initform 0 :type xcb:-ignore)
(width :initarg :width :initform 0 :type xcb:-ignore)
(height :initarg :height :initform 0 :type xcb:-ignore)
(min-width :initarg :min-width :initform 0 :type xcb:-ignore)
(min-height :initarg :min-height :initform 0 :type xcb:-ignore)
(max-width :initarg :max-width :initform 0 :type xcb:-ignore)
(max-height :initarg :max-height :initform 0 :type xcb:-ignore)
(width-inc :initarg :width-inc :initform 0 :type xcb:-ignore)
(height-inc :initarg :height-inc :initform 0 :type xcb:-ignore)
(min-aspect-num :initarg :min-aspect-num :initform 0 :type xcb:-ignore)
(min-aspect-den :initarg :min-aspect-den :initform 0 :type xcb:-ignore)
(max-aspect-num :initarg :max-aspect-num :initform 0 :type xcb:-ignore)
(max-aspect-den :initarg :max-aspect-den :initform 0 :type xcb:-ignore)
(base-width :initarg :base-width :initform 0 :type xcb:-ignore)
(base-height :initarg :base-height :initform 0 :type xcb:-ignore)
(win-gravity :initarg :win-gravity :initform 0 :type xcb:-ignore)))
;;
(defclass xcb:icccm:get-WM_SIZE_HINTS (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:WM_SIZE_HINTS)
(type :initform 'xcb:Atom:WM_SIZE_HINTS)
(long-length :initform 18))) ;fixed
(defclass xcb:icccm:get-WM_SIZE_HINTS~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_SIZE_HINTS)
nil)
(defclass xcb:icccm:set-WM_SIZE_HINTS
(xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_SIZE_HINTS)
((property :initform 'xcb:Atom:WM_SIZE_HINTS)
(type :initform 'xcb:Atom:WM_SIZE_HINTS)))
;; WM_NORMAL_HINTS
(defclass xcb:icccm:get-WM_NORMAL_HINTS (xcb:icccm:get-WM_SIZE_HINTS)
((property :initform 'xcb:Atom:WM_NORMAL_HINTS)))
(defclass xcb:icccm:get-WM_NORMAL_HINTS~reply
(xcb:icccm:get-WM_SIZE_HINTS~reply)
nil)
(defclass xcb:icccm:set-WM_NORMAL_HINTS (xcb:icccm:set-WM_SIZE_HINTS)
((property :initform 'xcb:Atom:WM_NORMAL_HINTS)))
;; WM_HINTS
(defconst xcb:icccm:WM_HINTS:InputHint 1)
(defconst xcb:icccm:WM_HINTS:StateHint 2)
(defconst xcb:icccm:WM_HINTS:IconPixmapHint 4)
(defconst xcb:icccm:WM_HINTS:IconWindowHint 8)
(defconst xcb:icccm:WM_HINTS:IconPositionHint 16)
(defconst xcb:icccm:WM_HINTS:IconMaskHint 32)
(defconst xcb:icccm:WM_HINTS:WindowGroupHint 64)
(defconst xcb:icccm:WM_HINTS:MessageHint 128)
(defconst xcb:icccm:WM_HINTS:UrgencyHint 256)
;;
(defclass xcb:icccm:-WM_HINTS (xcb:--struct)
((flags :initarg :flags :initform 0 :type xcb:-ignore)
(input :initarg :input :initform 0 :type xcb:-ignore)
(initial-state :initarg :initial-state :initform 0 :type xcb:-ignore)
(icon-pixmap :initarg :icon-pixmap :initform 0 :type xcb:-ignore)
(icon-window :initarg :icon-window :initform 0 :type xcb:-ignore)
(icon-x :initarg :icon-x :initform 0 :type xcb:-ignore)
(icon-y :initarg :icon-y :initform 0 :type xcb:-ignore)
(icon-mask :initarg :icon-mask :initform 0 :type xcb:-ignore)
(window-group :initarg :window-group :initform 0 :type xcb:-ignore)))
;;
(defclass xcb:icccm:get-WM_HINTS (xcb:icccm:-GetProperty-explicit)
;; (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:WM_HINTS)
(type :initform 'xcb:Atom:WM_HINTS)
(long-length :initform 9))) ;fixed
(defclass xcb:icccm:get-WM_HINTS~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_HINTS)
nil)
(defclass xcb:icccm:set-WM_HINTS
(xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_HINTS)
((property :initform 'xcb:Atom:WM_HINTS)
(type :initform 'xcb:Atom:WM_HINTS)))
;; WM_CLASS
(defclass xcb:icccm:get-WM_CLASS (xcb:icccm:-GetProperty-text)
((property :initform 'xcb:Atom:WM_CLASS)
(type :initform 'xcb:Atom:STRING)))
(defclass xcb:icccm:get-WM_CLASS~reply (xcb:icccm:-GetProperty-text~reply)
((instance-name :type xcb:-ignore)
(class-name :type xcb:-ignore)))
;;
(cl-defmethod xcb:unmarshal ((obj xcb:icccm:get-WM_CLASS~reply) byte-array)
;; Split value into instance & class names
(let* ((retval (cl-call-next-method obj byte-array))
(tmp (slot-value obj 'value))
(tmp (if tmp (split-string tmp "\0" t) '(nil nil))))
(with-slots (instance-name class-name) obj
(setf instance-name (car tmp)
class-name (cadr tmp)))
retval))
;;
(defclass xcb:icccm:set-WM_CLASS (xcb:icccm:-ChangeProperty-text)
((property :initform 'xcb:Atom:WM_CLASS)
(type :initform 'xcb:Atom:STRING)
(instance-name :initarg :instance-name :type xcb:-ignore)
(class-name :initarg :class-name :type xcb:-ignore)))
;;
(cl-defmethod xcb:marshal ((obj xcb:icccm:set-WM_CLASS))
(with-slots (data instance-name class-name) obj
(setf data (concat instance-name "\0" class-name "\0")))
(cl-call-next-method obj))
;; WM_TRANSIENT_FOR
(defclass xcb:icccm:get-WM_TRANSIENT_FOR (xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:WM_TRANSIENT_FOR)
(type :initform 'xcb:Atom:WINDOW)
(long-length :initform 1)))
(defclass xcb:icccm:get-WM_TRANSIENT_FOR~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:icccm:set-WM_TRANSIENT_FOR (xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:WM_TRANSIENT_FOR)
(type :initform 'xcb:Atom:WINDOW)))
;; WM_PROTOCOLS
(defclass xcb:icccm:get-WM_PROTOCOLS (xcb:icccm:-GetProperty)
((property :initform 'xcb:Atom:WM_PROTOCOLS)
(type :initform 'xcb:Atom:ATOM)))
(defclass xcb:icccm:get-WM_PROTOCOLS~reply (xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:icccm:set-WM_PROTOCOLS (xcb:icccm:-ChangeProperty)
((type :initform 'xcb:Atom:ATOM)
(format :initform 32)))
;; WM_COLORMAP_WINDOWS
(defclass xcb:icccm:get-WM_COLORMAP_WINDOWS (xcb:icccm:-GetProperty)
((type :initform 'xcb:Atom:WINDOW)))
(defclass xcb:icccm:get-WM_COLORMAP_WINDOWS~reply
(xcb:icccm:-GetProperty~reply)
nil)
(defclass xcb:icccm:set-WM_COLORMAP_WINDOWS (xcb:icccm:-ChangeProperty)
((type :initform 'xcb:Atom:WINDOW)
(format :initform 32)))
;; WM_CLIENT_MACHINE
(defclass xcb:icccm:get-WM_CLIENT_MACHINE (xcb:icccm:-GetProperty-text)
((property :initform 'xcb:Atom:WM_CLIENT_MACHINE)))
(defclass xcb:icccm:get-WM_CLIENT_MACHINE~reply
(xcb:icccm:-GetProperty-text~reply)
nil)
(defclass xcb:icccm:set-WM_CLIENT_MACHINE (xcb:icccm:-ChangeProperty-text)
((property :initform 'xcb:Atom:WM_CLIENT_MACHINE)))
;;;; Window Manager Properties
;; WM_STATE
(defconst xcb:icccm:WM_STATE:WithdrawnState 0)
(defconst xcb:icccm:WM_STATE:NormalState 1)
(defconst xcb:icccm:WM_STATE:IconicState 3)
;;
(defclass xcb:icccm:-WM_STATE (xcb:--struct)
((state :initarg :state :type xcb:-ignore)
(icon :initarg :icon :type xcb:-ignore)))
;;
(defclass xcb:icccm:get-WM_STATE (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:WM_STATE)
(type :initform 'xcb:Atom:WM_STATE)
(long-length :initform 2)))
(defclass xcb:icccm:get-WM_STATE~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_STATE)
nil)
(defclass xcb:icccm:set-WM_STATE
(xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_STATE)
((property :initform 'xcb:Atom:WM_STATE)
(type :initform 'xcb:Atom:WM_STATE)))
;; WM_ICON_SIZE
(defclass xcb:icccm:-WM_ICON_SIZE (xcb:--struct)
((min-width :initarg :min-width :type xcb:-ignore)
(min-height :initarg :min-height :type xcb:-ignore)
(max-width :initarg :max-width :type xcb:-ignore)
(max-height :initarg :max-height :type xcb:-ignore)
(width-inc :initarg :width-inc :type xcb:-ignore)
(height-inc :initarg :height-inc :type xcb:-ignore)))
;;
(defclass xcb:icccm:get-WM_ICON_SIZE (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:WM_ICON_SIZE)
(type :initform 'xcb:Atom:WM_ICON_SIZE)
(long-length :initform 6)))
(defclass xcb:icccm:get-WM_ICON_SIZE~reply
(xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_ICON_SIZE)
nil)
(defclass xcb:icccm:set-WM_ICON_SIZE
(xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_ICON_SIZE)
((property :initform 'xcb:Atom:WM_ICON_SIZE)
(type :initform 'xcb:Atom:WM_ICON_SIZE)))
(provide 'xcb-icccm)
;;; xcb-icccm.el ends here
xelb-master/xcb-keysyms.el 0000664 0000000 0000000 00000112270 14562520677 0016122 0 ustar 00root root 0000000 0000000 ;;; xcb-keysyms.el --- Conversion between -*- lexical-binding: t -*-
;;; X keysyms, X keycodes and Emacs key event.
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library mainly deals with the conversion between X keycodes, X keysyms
;; and Emacs key events, roughly corresponding to the xcb/util-keysyms project.
;; Usage tips:
;; + Do not forget to call `xcb:keysyms:init' for _every_ connection using
;; this library.
;; + xcb:keysyms:*-mask correctly relate Emacs modifier keys to X ones,
;; thus shall be used in preference to 'xcb:ModMask:*' or
;; 'xcb:KeyButMask:Mod*'.
;; References:
;; + X protocol (http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.txt)
;; + XKB protocol (https://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.txt)
;; + xcb/util-keysyms (git://anongit.freedesktop.org/xcb/util-keysyms)
;;; Code:
(require 'cl-lib)
(require 'xcb)
(require 'xcb-xkb)
(defclass xcb:keysyms:-device (xcb:--struct)
((keytypes :initform nil)
(keycodes :initform nil)
(min-keycode :initform 0)
(max-keycode :initform 0)
(updated :initform nil))
:documentation "Device (keyboard) properties.")
;; These variables are shared by all connections.
(defvar xcb:keysyms:meta-mask 0 "META key mask.")
(defvar xcb:keysyms:control-mask xcb:ModMask:Control "CONTROL key mask.")
(defvar xcb:keysyms:shift-mask xcb:ModMask:Shift "SHIFT key mask.")
(defvar xcb:keysyms:hyper-mask 0 "HYPER key mask.")
(defvar xcb:keysyms:super-mask 0 "SUPER key mask.")
(defvar xcb:keysyms:alt-mask 0 "ALT key mask.")
(defvar xcb:keysyms:lock-mask xcb:ModMask:Lock "LOCK key mask.")
(defvar xcb:keysyms:shift-lock-mask 0 "SHIFT-LOCK key mask.")
(defvar xcb:keysyms:num-lock-mask 0 "NUM-LOCK key mask.")
(cl-defmethod xcb:keysyms:-get-current-device ((conn xcb:connection))
"Return the device currently used."
(or (xcb:-get-extra-plist conn 'keysyms
(xcb:-get-extra-plist conn 'keysyms 'device-id))
(make-instance 'xcb:keysyms:-device)))
(cl-defmethod xcb:keysyms:init ((obj xcb:connection) &optional callback)
"Initialize keysyms module.
CALLBACK specifies a function to call every time the keyboard is updated.
This method must be called before using any other method in this module."
(cond
;; Avoid duplicated initializations.
((xcb:-get-extra-plist obj 'keysyms 'opcode))
((= 0 (slot-value (xcb:get-extension-data obj 'xcb:xkb)
'present))
(error "[XCB] XKB extension is not supported by the server"))
((not (slot-value (xcb:+request-unchecked+reply obj
(make-instance 'xcb:xkb:UseExtension
:wantedMajor 1
:wantedMinor 0))
'supported))
(error "[XCB] XKB extension version 1.0 is not supported by the server"))
(t
;; Save the major opcode of XKB and callback function.
(xcb:-set-extra-plist obj 'keysyms 'opcode
(slot-value (xcb:get-extension-data obj 'xcb:xkb)
'major-opcode))
(xcb:-set-extra-plist obj 'keysyms 'callback callback)
;; Set per-client flags.
(xcb:keysyms:-set-per-client-flags obj xcb:xkb:ID:UseCoreKbd)
;; Update data.
(xcb:keysyms:-update-keytypes obj xcb:xkb:ID:UseCoreKbd)
(xcb:-set-extra-plist obj 'keysyms 'device-id
(xcb:keysyms:-update-keycodes obj
xcb:xkb:ID:UseCoreKbd))
(xcb:keysyms:-update-modkeys obj xcb:xkb:ID:UseCoreKbd)
;; Attach event listeners.
(xcb:+event obj 'xcb:xkb:NewKeyboardNotify
(lambda (data _)
(xcb:keysyms:-on-NewKeyboardNotify obj data)))
(xcb:+event obj 'xcb:xkb:MapNotify
(lambda (data _)
(xcb:keysyms:-on-MapNotify obj data)))
;; Select XKB MapNotify and NewKeyboardNotify events.
(let ((map (logior xcb:xkb:MapPart:KeyTypes
xcb:xkb:MapPart:KeySyms
xcb:xkb:MapPart:ModifierMap))
(new-keyboard (logior xcb:xkb:NKNDetail:DeviceID
xcb:xkb:NKNDetail:Keycodes)))
(xcb:+request obj
(make-instance 'xcb:xkb:SelectEvents
:deviceSpec xcb:xkb:ID:UseCoreKbd
:affectWhich (logior
xcb:xkb:EventType:NewKeyboardNotify
xcb:xkb:EventType:MapNotify)
:clear 0
:selectAll 0
:affectMap map
:map map
:affectNewKeyboard new-keyboard
:newKeyboardDetails new-keyboard)))
(xcb:flush obj))))
(cl-defmethod xcb:keysyms:-set-per-client-flags ((obj xcb:connection)
device-id)
"Set per-client flags."
(let ((per-client-flags (logior
;; Instead of compatibility state.
xcb:xkb:PerClientFlag:GrabsUseXKBState
;; Instead of grab state.
xcb:xkb:PerClientFlag:LookupStateWhenGrabbed
;; Use XKB state in 'SendEvent'.
xcb:xkb:PerClientFlag:SendEventUsesXKBState)))
;; The reply is not used.
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:xkb:PerClientFlags
:deviceSpec device-id
:change per-client-flags
:value per-client-flags
:ctrlsToChange 0
:autoCtrls 0
:autoCtrlsValues 0))))
(cl-defmethod xcb:keysyms:-on-NewKeyboardNotify ((obj xcb:connection) data)
"Handle a \\='NewKeyboardNotify' event."
(let ((device-id (xcb:-get-extra-plist obj 'keysyms 'device-id))
(callback (xcb:-get-extra-plist obj 'keysyms 'callback))
(obj1 (make-instance 'xcb:xkb:NewKeyboardNotify))
device updated)
(xcb:unmarshal obj1 data)
(with-slots (deviceID oldDeviceID requestMajor requestMinor changed) obj1
(if (= 0 (logand changed xcb:xkb:NKNDetail:DeviceID))
(when (/= 0 (logand changed xcb:xkb:NKNDetail:Keycodes))
(setq device (xcb:-get-extra-plist obj 'keysyms deviceID))
(when (and device
(not (slot-value device 'updated)))
(xcb:keysyms:-update-keycodes obj deviceID)
(when (= deviceID device-id)
(setq updated t)
(xcb:keysyms:-update-modkeys obj deviceID))
(setf (slot-value device 'updated) t)))
(xcb:keysyms:-set-per-client-flags obj deviceID)
(xcb:keysyms:-update-keytypes obj deviceID)
(xcb:keysyms:-update-keycodes obj deviceID)
(when (or (= oldDeviceID device-id)
;; 0 is a special value for servers not supporting
;; the X Input Extension.
(= oldDeviceID 0))
;; Device changed; update the per-client flags and local data.
(setq updated t)
(xcb:keysyms:-update-modkeys obj deviceID)
(xcb:-set-extra-plist obj 'keysyms 'device-id deviceID))))
(when (and callback updated)
(with-demoted-errors "[XELB ERROR] %S"
(funcall callback)))))
(cl-defmethod xcb:keysyms:-on-MapNotify ((obj xcb:connection) data)
"Handle \\='MapNotify' event."
(let ((device-id (xcb:-get-extra-plist obj 'keysyms 'device-id))
(callback (xcb:-get-extra-plist obj 'keysyms 'callback))
(obj1 (make-instance 'xcb:xkb:MapNotify))
updated)
(xcb:unmarshal obj1 data)
(with-slots (deviceID changed firstType nTypes firstKeySym nKeySyms) obj1
;; Ensure this event is for the current device.
(when (/= 0 (logand changed xcb:xkb:MapPart:KeyTypes))
(setq updated t)
(xcb:keysyms:-update-keytypes obj deviceID firstType nTypes))
(when (/= 0 (logand changed xcb:xkb:MapPart:KeySyms))
(setq updated t)
(xcb:keysyms:-update-keycodes obj deviceID firstKeySym nKeySyms))
(when (/= 0 (logand changed xcb:xkb:MapPart:ModifierMap))
(setq updated t)
(xcb:keysyms:-update-modkeys obj deviceID))
(when (and updated
callback
(= deviceID device-id))
(with-demoted-errors "[XELB ERROR] %S"
(funcall callback))))))
(cl-defmethod xcb:keysyms:-update-keytypes ((obj xcb:connection) device-id
&optional first-keytype count)
"Update key types.
FIRST-KEYTYPE and count specify the range of key types to update."
(let (device full partial)
(if (and first-keytype count)
(setq full 0
partial xcb:xkb:MapPart:KeyTypes)
(setq full xcb:xkb:MapPart:KeyTypes
partial 0
first-keytype 0
count 0))
(with-slots (deviceID present firstType nTypes totalTypes types-rtrn)
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:xkb:GetMap
:deviceSpec device-id
:full full
:partial partial
:firstType first-keytype
:nTypes count
:firstKeySym 0
:nKeySyms 0
:firstKeyAction 0
:nKeyActions 0
:firstKeyBehavior 0
:nKeyBehaviors 0
:virtualMods 0
:firstKeyExplicit 0
:nKeyExplicit 0
:firstModMapKey 0
:nModMapKeys 0
:firstVModMapKey 0
:nVModMapKeys 0))
(cl-assert (/= 0 (logand present xcb:xkb:MapPart:KeyTypes)))
(setq device (or (xcb:-get-extra-plist obj 'keysyms deviceID)
(make-instance 'xcb:keysyms:-device)))
(with-slots (keytypes) device
(when (or (/= 0 full)
(not keytypes))
(setf keytypes (make-vector totalTypes nil)))
(setf keytypes (vconcat (substring keytypes 0 firstType)
types-rtrn
(substring keytypes (min (+ firstType nTypes)
totalTypes)))))
(xcb:-set-extra-plist obj 'keysyms deviceID device)
deviceID)))
(cl-defmethod xcb:keysyms:-update-keycodes ((obj xcb:connection) device-id
&optional first-keycode count)
"Update keycode-keysym mapping.
FIRST-KEYCODE and COUNT specify the keycode range to update."
(let (device full partial)
(if (and first-keycode count)
(setq full 0
partial xcb:xkb:MapPart:KeySyms)
(setq full xcb:xkb:MapPart:KeySyms
partial 0
first-keycode 0
count 0))
(with-slots (deviceID minKeyCode maxKeyCode present
firstKeySym nKeySyms syms-rtrn)
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:xkb:GetMap
:deviceSpec device-id
:full full
:partial partial
:firstType 0
:nTypes 0
:firstKeySym first-keycode
:nKeySyms count
:firstKeyAction 0
:nKeyActions 0
:firstKeyBehavior 0
:nKeyBehaviors 0
:virtualMods 0
:firstKeyExplicit 0
:nKeyExplicit 0
:firstModMapKey 0
:nModMapKeys 0
:firstVModMapKey 0
:nVModMapKeys 0))
(cl-assert (/= 0 (logand present xcb:xkb:MapPart:KeySyms)))
(setq device (or (xcb:-get-extra-plist obj 'keysyms deviceID)
(make-instance 'xcb:keysyms:-device)))
(with-slots (keycodes min-keycode max-keycode) device
(when (or (/= 0 full)
;; Unlikely?
(/= min-keycode minKeyCode)
(/= max-keycode maxKeyCode))
(setf keycodes (make-vector (- maxKeyCode minKeyCode -1) nil)
min-keycode minKeyCode
max-keycode maxKeyCode))
(setf keycodes
(vconcat
(substring keycodes 0 (- firstKeySym min-keycode))
syms-rtrn
(substring keycodes
(- (min (+ firstKeySym nKeySyms) max-keycode)
min-keycode)))))
(xcb:-set-extra-plist obj 'keysyms deviceID device)
deviceID)))
(cl-defmethod xcb:keysyms:-update-modkeys ((obj xcb:connection) _device-id)
"Update modifier keys."
;; Reference: 'x_find_modifier_meanings' in 'xterm.c'.
(with-slots (keycodes-per-modifier keycodes)
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:GetModifierMapping))
(setq xcb:keysyms:meta-mask 0
xcb:keysyms:hyper-mask 0
xcb:keysyms:super-mask 0
xcb:keysyms:alt-mask 0
xcb:keysyms:shift-lock-mask 0
xcb:keysyms:num-lock-mask 0)
(dolist (row (number-sequence 3 7))
(let ((mask (ash 1 row))
(col 0)
found-alt-or-meta keycode keysym)
(while (< col keycodes-per-modifier)
(setq keycode (elt keycodes (+ (* row keycodes-per-modifier) col)))
(when (/= keycode 0)
(setq keysym (car (xcb:keysyms:keycode->keysym obj keycode 0)))
(when (/= keysym 0)
(pcase (xcb:keysyms:keysym->event obj keysym nil t)
((or `lmeta* `rmeta*)
(setq found-alt-or-meta t
xcb:keysyms:meta-mask (logior xcb:keysyms:meta-mask
mask)))
((or `lalt* `ralt*)
(setq found-alt-or-meta t
xcb:keysyms:alt-mask (logior xcb:keysyms:alt-mask
mask)))
((or `lhyper* `rhyper*)
(unless found-alt-or-meta
(setq xcb:keysyms:hyper-mask (logior xcb:keysyms:hyper-mask
mask)))
(setq col keycodes-per-modifier))
((or `lsuper* `rsuper*)
(unless found-alt-or-meta
(setq xcb:keysyms:super-mask (logior xcb:keysyms:super-mask
mask)))
(setq col keycodes-per-modifier))
(`shift-lock*
(unless found-alt-or-meta
(setq xcb:keysyms:lock-mask (logior xcb:keysyms:lock-mask
mask)))
(setq col keycodes-per-modifier))
(`kp-numlock
(setq xcb:keysyms:num-lock-mask
(logior xcb:keysyms:num-lock-mask mask))))))
(cl-incf col)))))
;; Meta fallbacks to Alt.
(unless (/= 0 xcb:keysyms:meta-mask)
(setq xcb:keysyms:meta-mask xcb:keysyms:alt-mask
xcb:keysyms:alt-mask 0))
;; A key cannot be both Meta and Alt.
(when (and (/= 0 xcb:keysyms:meta-mask)
(/= 0 xcb:keysyms:alt-mask)
(/= 0 (logand xcb:keysyms:meta-mask xcb:keysyms:alt-mask)))
(setq xcb:keysyms:alt-mask (logand xcb:keysyms:alt-mask
(lognot xcb:keysyms:meta-mask)))))
(cl-defmethod xcb:keysyms:keycode->keysym ((obj xcb:connection) keycode
modifiers)
"Convert KEYCODE to keysym or get possible modifier combinations for keycode.
If MODIFIERS is non-nil, return (KEYSYM . CONSUMED-MODIFIERS) where
CONSUMED-MODIFIERS should be lognot'ed with MODIFIERS so as to make further
conversion correct. (0 . 0) is returned when conversion fails.
If MODIFIERS is nil, return all possible modifier combinations for this
keycode. The caller is responsible for checking which modifiers to use."
(let ((preserve 0)
group group-info group-number index keytype)
(with-slots (keytypes keycodes min-keycode max-keycode)
(xcb:keysyms:-get-current-device obj)
;; Reference: `XkbTranslateKeyCode' in 'XKBBind.c'.
(catch 'return
;; Check keycode range.
(unless (<= min-keycode keycode max-keycode)
(throw 'return '(0 . 0)))
;; Retrieve KeySymMap and group info.
(setq keycode (aref keycodes (- keycode min-keycode))
group-info (slot-value keycode 'groupInfo)
group-number (logand group-info #xF)) ; See .
;; Check group number.
(when (= group-number 0)
(throw 'return '(0 . 0)))
(setq group (if (null modifiers)
0
(logand (ash modifiers -13) #b11))) ;The 13, 14 bits.
;; Wrap group.
(when (>= group group-number)
(pcase (logand group-info #xC0) ;See .
(`xcb:xkb:GroupsWrap:RedirectIntoRange
(setq group (logand #xFF (ash group-info -4))) ;See .
;; Check if it's also out of range.
(when (>= group group-number)
(setq group 0)))
(`xcb:xkb:GroupsWrap:ClampIntoRange
(setq group (1- group-number)))
(_
(setq group (% group group-number)))))
;; Calculate the index of keysym.
(setq index (* group (slot-value keycode 'width)))
;; Get key type.
(setq keytype (aref keytypes
(elt (slot-value keycode 'kt-index) group)))
(with-slots (mods-mask hasPreserve map (preserve* preserve)) keytype
(if (null modifiers)
;; Return all possible modifier combinations.
(delq nil
(mapcar (lambda (entry)
(when (= (slot-value entry 'active) 1)
(slot-value entry 'mods-mask)))
map))
;; Find the shift level and preserved modifiers.
(catch 'break
(dolist (entry map)
(with-slots (active (mods-mask* mods-mask) level) entry
(when (and (= 1 active)
(= (logand modifiers mods-mask) mods-mask*))
(cl-incf index level)
(when (= 1 hasPreserve)
(setq preserve (slot-value (elt preserve*
(cl-position entry map))
'mask)))
(throw 'break nil)))))
(cons (elt (slot-value keycode 'syms) index)
(logand mods-mask (lognot preserve)))))))))
(cl-defmethod xcb:keysyms:keysym->keycode ((obj xcb:connection) keysym)
"Convert keysym to (the first matching) keycode.
Return 0 if conversion fails."
(let ((index 0)
(continue t))
(with-slots (keycodes min-keycode max-keycode)
(xcb:keysyms:-get-current-device obj)
;; Traverse all keycodes, column by column.
;; Reference: `XKeysymToKeycode' in 'XKBBind.c'.
(catch 'break
(when (= 0 keysym)
(throw 'break 0))
(while continue
(setq continue nil)
(dotimes (i (- max-keycode min-keycode -1))
(with-slots (nSyms syms) (aref keycodes i)
(when (< index nSyms)
(setq continue t)
(when (= keysym (elt syms index))
(throw 'break (+ i min-keycode))))))
(cl-incf index))
0))))
;; This list is largely base on 'lispy_function_keys' in 'keyboard.c'.
(defconst xcb:keysyms:-function-keys
`[ ;#xff00 - #xff0f
,@(make-list 8 nil) backspace tab linefeed clear nil return nil nil
;#xff10 - #xff1f
nil nil nil pause nil nil nil nil nil nil nil escape nil nil nil nil
;#xff20 - #xff2f
nil kanji muhenkan henkan romaji hiragana katakana hiragana-katakana
zenkaku hankaku zenkaku-hankaku touroku massyo kana-lock kana-shift
eisu-shift
;#xff30 - #xff3f
eisu-toggle ,@(make-list 15 nil)
;#xff40 - #xff4f
,@(make-list 16 nil)
;#xff50 - #xff5f
home left up right down prior next end begin ,@(make-list 7 nil)
;#xff60 - #xff6f
select print execute insert nil undo redo menu find cancel help break
nil nil nil nil
;#xff70 - #xff7f
;; nil nil nil nil backtab ,@(make-list 10 nil) kp-numlock
nil nil nil nil backtab ,@(make-list 9 nil) mode-switch* kp-numlock
;#xff80 - #xff8f
kp-space ,@(make-list 8 nil) kp-tab nil nil nil kp-enter nil nil
;#xff90 - #xff9f
nil kp-f1 kp-f2 kp-f3 kp-f4 kp-home kp-left kp-up kp-right kp-down
kp-prior kp-next kp-end kp-begin kp-insert kp-delete
;#xffa0 - #xffaf
,@(make-list 10 nil)
kp-multiply kp-add kp-separator kp-subtract kp-decimal kp-divide
;#xffb0 - #xffbf
kp-0 kp-1 kp-2 kp-3 kp-4 kp-5 kp-6 kp-7 kp-8 kp-9 nil nil nil kp-equal
f1 f2
;#xffc0 - #xffcf
f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18
;#xffd0 - #xffdf
f19 f20 f21 f22 f23 f24 f25 f26 f27 f28 f29 f30 f31 f32 f33 f34
;#xffe0 - #xffef
;; f35 ,@(make-list 15 nil)
f35 lshift* rshift* lcontrol* rcontrol* caps-lock* shift-lock*
lmeta* rmeta* lalt* ralt* lsuper* rsuper* lhyper* rhyper* nil
;#xff00 - #xffff
,@(make-list 15 nil) delete]
"Emacs event representations of X function keys (keysym #xff00 to #xffff).")
;; From 'iso_lispy_function_keys' in 'keyboard.c'
(defconst xcb:keysyms:-iso-function-keys
`[
;#xfe00 - #xfe0f
,@(make-list 16 nil)
;#xfe10 - #xfe1f
,@(make-list 16 nil)
;#xfe20 - #xfe2f
iso-lefttab iso-move-line-up iso-move-line-down iso-partial-line-up
iso-partial-line-down iso-partial-space-left iso-partial-space-right
iso-set-margin-left iso-set-margin-right iso-release-margin-left
iso-release-margin-right iso-release-both-margins iso-fast-cursor-left
iso-fast-cursor-right iso-fast-cursor-up iso-fast-cursor-down
;#xfe30 - #xfe3f
iso-continuous-underline iso-discontinuous-underline iso-emphasize
iso-center-object iso-enter ,@(make-list 11 nil)
;everything else
,@(make-list 192 nil)]
"Emacs event representations of ISO function keys (#xfe00 to #xfeff).")
;; This list is adapted from 'XF86keysym.h' in X source.
;; FIXME: We've intentionally left out keysyms outside the range 0x1008FF00 ~
;; 0x1008FFFF.
;; REVIEW: Could anybody verify this list?
(defconst xcb:keysyms:-xf86-keys
`[ ;#x1008ff00 - #x1008ff0f
nil XF86ModeLock XF86MonBrightnessUp XF86MonBrightnessDown
XF86KbdLightOnOff XF86KbdBrightnessUp XF86KbdBrightnessDown
,@(make-list 9 nil)
;#x1008ff10 - #x1008ff1f
XF86Standby XF86AudioLowerVolume XF86AudioMute XF86AudioRaiseVolume
XF86AudioPlay XF86AudioStop XF86AudioPrev XF86AudioNext XF86HomePage
XF86Mail XF86Start XF86Search XF86AudioRecord XF86Calculator XF86Memo
XF86ToDoList
;#x1008ff20 - #x1008ff2f
XF86Calendar XF86PowerDown XF86ContrastAdjust XF86RockerUp
XF86RockerDown XF86RockerEnter XF86Back XF86Forward XF86Stop
XF86Refresh XF86PowerOff XF86WakeUp XF86Eject XF86ScreenSaver XF86WWW
XF86Sleep
;#x1008ff30 - #x1008ff3f
XF86Favorites XF86AudioPause XF86AudioMedia XF86MyComputer
XF86VendorHome XF86LightBulb XF86Shop XF86History XF86OpenURL
XF86AddFavorite XF86HotLinks XF86BrightnessAdjust XF86Finance
XF86Community XF86AudioRewind XF86BackForward
;#x1008ff40 - #x1008ff4f
XF86Launch0 XF86Launch1 XF86Launch2 XF86Launch3 XF86Launch4 XF86Launch5
XF86Launch6 XF86Launch7 XF86Launch8 XF86Launch9 XF86LaunchA XF86LaunchB
XF86LaunchC XF86LaunchD XF86LaunchE XF86LaunchF
;#x1008ff50 - #x1008ff5f
XF86ApplicationLeft XF86ApplicationRight XF86Book XF86CD XF86Calculater
XF86Clear XF86Close XF86Copy XF86Cut XF86Display XF86DOS XF86Documents
XF86Excel XF86Explorer XF86Game XF86Go
;#x1008ff60 - #x1008ff6f
XF86iTouch XF86LogOff XF86Market XF86Meeting nil XF86MenuKB XF86MenuPB
XF86MySites XF86New XF86News XF86OfficeHome XF86Open XF86Option
XF86Paste XF86Phone nil
;#x1008ff70 - #x1008ff7f
XF86Q nil XF86Reply XF86Reload XF86RotateWindows XF86RotationPB
XF86RotationKB XF86Save XF86ScrollUp XF86ScrollDown XF86ScrollClick
XF86Send XF86Spell XF86SplitScreen XF86Support XF86TaskPane
;#x1008ff80 - #x1008ff8f
XF86Terminal XF86Tools XF86Travel nil XF86UserPB XF86User1KB
XF86User2KB XF86Video XF86WheelButton XF86Word XF86Xfer XF86ZoomIn
XF86ZoomOut XF86Away XF86Messenger XF86WebCam
;#x1008ff90 - #x1008ff9f
XF86MailForward XF86Pictures XF86Music XF86Battery XF86Bluetooth
XF86WLAN XF86UWB XF86AudioForward XF86AudioRepeat XF86AudioRandomPlay
XF86Subtitle XF86AudioCycleTrack XF86CycleAngle XF86FrameBack
XF86FrameForward XF86Time
;#x1008ffa0 - #x1008ffaf
XF86Select XF86View XF86TopMenu XF86Red XF86Green XF86Yellow XF86Blue
XF86Suspend XF86Hibernate XF86TouchpadToggle ,@(make-list 6 nil)
;#x1008ffb0 - #x1008ffbf
XF86TouchpadOn XF86TouchpadOff XF86AudioMicMute ,@(make-list 13 nil)
;everything rest
,@(make-list 64 nil)]
"Emacs event representations of XF86keysym (#x1008ff00 - #x1008ffff).")
(cl-defmethod xcb:keysyms:event->keysyms ((obj xcb:connection) event)
"Translate Emacs key event EVENT to list of (keysym . mod-mask).
Return ((0 . 0)) when conversion fails."
(let ((modifiers (event-modifiers event))
(event (event-basic-type event))
keysym)
(if (not (integerp event))
(setq keysym
(pcase event
(`mouse-1 xcb:ButtonIndex:1)
(`mouse-2 xcb:ButtonIndex:2)
(`mouse-3 xcb:ButtonIndex:3)
(`mouse-4 xcb:ButtonIndex:4)
(`mouse-5 xcb:ButtonIndex:5)
(_
(cond
((setq keysym (cl-position event
xcb:keysyms:-function-keys))
;; Function keys.
(logior keysym #xff00))
((setq keysym (cl-position event xcb:keysyms:-xf86-keys))
;; XF86 keys.
(logior keysym #x1008ff00))
((setq keysym (cl-position event
xcb:keysyms:-iso-function-keys))
;; ISO function keys.
(logior keysym #xfe00))
((and (symbolp event)
(= 1 (length (symbol-name event))))
;; Symbol representations of ASCII characters.
(aref (symbol-name event) 0))
(t
;; Finally try system-specific keysyms.
(car (rassq event system-key-alist)))))))
(setq keysym
(cond
((<= #x20 event #xff)
;; Latin-1.
event)
((<= #x100 event #x10ffff)
;; Unicode.
(+ #x1000000 event))
(t (or
;; Try system-specific keysyms.
(car (rassq event system-key-alist))
;; Try legacy keysyms.
(catch 'break
(maphash (lambda (key val)
(when (= event val)
(throw 'break key)))
x-keysym-table)))))))
(if (not keysym)
'((0 . 0))
(when modifiers
;; Do transforms: * -> x-*-keysym -> xcb:keysyms:*-mask.
(setq modifiers (mapcar (lambda (i)
(or (pcase i
(`alt x-alt-keysym)
(`meta x-meta-keysym)
(`hyper x-hyper-keysym)
(`super x-super-keysym))
i))
modifiers)
modifiers (mapcar (lambda (i)
(pcase i
((and x (pred integerp)) x)
(`meta
(when (= 0 xcb:keysyms:meta-mask)
(setq keysym 0))
xcb:keysyms:meta-mask)
(`control
(when (= 0 xcb:keysyms:control-mask)
(setq keysym 0))
xcb:keysyms:control-mask)
(`shift
(when (= 0 xcb:keysyms:shift-mask)
(setq keysym 0))
xcb:keysyms:shift-mask)
(`hyper
(when (= 0 xcb:keysyms:hyper-mask)
(setq keysym 0))
xcb:keysyms:hyper-mask)
(`super
(when (= 0 xcb:keysyms:super-mask)
(setq keysym 0))
xcb:keysyms:super-mask)
(`alt
(when (= 0 xcb:keysyms:alt-mask)
(setq keysym 0))
xcb:keysyms:alt-mask)
(_
;; Include but not limit to: down.
0)))
modifiers)
modifiers (apply #'logior modifiers)))
(let ((keycode (xcb:keysyms:keysym->keycode obj keysym))
extra-modifiers)
(when (/= 0 keycode)
(setq extra-modifiers (xcb:keysyms:keycode->keysym obj keycode nil)
;; Always try without other modifier.
extra-modifiers (append '(0) extra-modifiers)
;; Keep all modifiers helping convert keycode to this keysym.
extra-modifiers
(delq nil
(mapcar (lambda (modifier)
(when (= (car (xcb:keysyms:keycode->keysym
obj keycode modifier))
keysym)
modifier))
extra-modifiers))))
(mapcar (lambda (extra-modifier)
(cons keysym (logior (or modifiers 0) extra-modifier)))
extra-modifiers)))))
(cl-defmethod xcb:keysyms:keysym->event ((_obj xcb:connection) keysym
&optional mask allow-modifiers)
"Translate X Keysym KEYSYM into Emacs key event.
One may use MASK to provide modifier keys. If ALLOW-MODIFIERS is non-nil,
this function will also return symbols for pure modifiers keys."
;; Convert nil to 0.
(unless mask
(setq mask 0))
(let ((event (cond ((<= #x20 keysym #xff)
keysym)
((<= #xff00 keysym #xffff)
(aref xcb:keysyms:-function-keys (logand keysym #xff)))
((<= #x1000100 keysym #x110ffff)
(- keysym #x1000000))
((<= 1 keysym 5) ;ButtonPress assuemd
(intern-soft (format "down-mouse-%d" keysym)))
((<= #x1008ff00 keysym #x1008ffff)
(aref xcb:keysyms:-xf86-keys (logand keysym #xff)))
((<= #xfe00 keysym #xfeff)
(aref xcb:keysyms:-iso-function-keys
(logand keysym #xff)))
(t (or
;; Search system-specific keysyms.
(car (assq keysym system-key-alist))
;; Search `x-keysym-table' for legacy keysyms.
(gethash keysym x-keysym-table)))))
mod-alt mod-meta mod-hyper mod-super)
(when event
(if allow-modifiers
(when (/= 0 mask)
;; Clear modifier bits for modifier keys.
(pcase event
((or `lmeta* `rmeta*)
(setq mask (logand mask (lognot xcb:keysyms:meta-mask))))
((or `lcontrol* `rcontrol*)
(setq mask (logand mask (lognot xcb:keysyms:control-mask))))
((or `lshift* `rshift*)
(setq mask (logand mask (lognot xcb:keysyms:shift-mask))))
((or `lhyper* `rhyper*)
(setq mask (logand mask (lognot xcb:keysyms:hyper-mask))))
((or `lsuper* `rsuper*)
(setq mask (logand mask (lognot xcb:keysyms:super-mask))))
((or `lalt* `ralt*)
(setq mask (logand mask (lognot xcb:keysyms:alt-mask))))))
(when (memq event
'(lshift*
rshift*
lcontrol*
rcontrol*
caps-lock*
shift-lock*
lmeta*
rmeta*
lalt*
ralt*
lsuper*
rsuper*
lhyper*
rhyper*
mode-switch*
kp-numlock))
(setq event nil))))
(when event
(if (= 0 mask)
event
;; Set mod-* if possible.
(when x-alt-keysym
(pcase x-alt-keysym
(`meta (setq mod-meta 'alt))
(`hyper (setq mod-hyper 'alt))
(`super (setq mod-super 'alt))))
(when x-meta-keysym
(pcase x-meta-keysym
(`alt (setq mod-alt 'meta))
(`hyper (setq mod-hyper 'meta))
(`super (setq mod-super 'meta))))
(when x-hyper-keysym
(pcase x-hyper-keysym
(`alt (setq mod-alt 'hyper))
(`meta (setq mod-meta 'hyper))
(`super (setq mod-super 'hyper))))
(when x-super-keysym
(pcase x-super-keysym
(`alt (setq mod-alt 'super))
(`meta (setq mod-meta 'super))
(`hyper (setq mod-hyper 'super))))
;; Convert modifiers.
(setq event (list event))
(when (/= 0 (logand mask xcb:keysyms:meta-mask))
(push (or mod-meta 'meta) event))
(when (/= 0 (logand mask xcb:keysyms:control-mask))
(push 'control event))
(when (and (/= 0 (logand mask (logior xcb:keysyms:shift-mask
xcb:keysyms:shift-lock-mask)))
(or (not (<= #x20 keysym #xff)) ;Not a Latin-1 character
(<= ?A keysym ?Z))) ;An uppercase letter
(push 'shift event))
(when (/= 0 (logand mask xcb:keysyms:hyper-mask))
(push (or mod-hyper 'hyper) event))
(when (/= 0 (logand mask xcb:keysyms:super-mask))
(push (or mod-super 'super) event))
(when (/= 0 (logand mask xcb:keysyms:alt-mask))
(push (or mod-alt 'alt) event))
(event-convert-list event)))))
(provide 'xcb-keysyms)
;;; xcb-keysyms.el ends here
xelb-master/xcb-present.el 0000664 0000000 0000000 00000021021 14562520677 0016067 0 ustar 00root root 0000000 0000000 ;;; xcb-present.el --- X11 Present extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'present.xml',
;; which you can retrieve from .
;;; Code:
(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 3)
(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:Option:Suboptimal 8)
(defconst xcb:present:Option:AsyncMayTear 16)
(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:Capability:AsyncMayTear 8)
(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)
(defconst xcb:present:CompleteMode:SuboptimalCopy 3)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(pad~0 :initform 8 :type xcb:-pad-align)
(window :initarg :window :type xcb:WINDOW)
(pixmap :initarg :pixmap :type xcb:PIXMAP)
(serial :initarg :serial :type xcb:CARD32)
(valid :initarg :valid :type xcb:xfixes:REGION)
(update :initarg :update :type xcb:xfixes:REGION)
(x-off :initarg :x-off :type xcb:INT16)
(y-off :initarg :y-off :type xcb:INT16)
(target-crtc :initarg :target-crtc :type xcb:randr:CRTC)
(wait-fence :initarg :wait-fence :type xcb:sync:FENCE)
(idle-fence :initarg :idle-fence :type xcb:sync:FENCE)
(options :initarg :options :type xcb:CARD32)
(pad~1 :initform 4 :type xcb:-pad)
(target-msc :initarg :target-msc :type xcb:CARD64)
(divisor :initarg :divisor :type xcb:CARD64)
(remainder :initarg :remainder :type xcb:CARD64)
(notifies~ :initform
'(name notifies type xcb:present:Notify size nil)
:type xcb:-list)
(notifies :initarg :notifies :type xcb:-ignore)))
(defclass xcb:present:NotifyMSC
(xcb:-request)
((~opcode :initform 2 :type xcb:-u1)
(pad~0 :initform 8 :type xcb:-pad-align)
(window :initarg :window :type xcb:WINDOW)
(serial :initarg :serial :type xcb:CARD32)
(pad~1 :initform 4 :type xcb:-pad)
(target-msc :initarg :target-msc :type xcb:CARD64)
(divisor :initarg :divisor :type xcb:CARD64)
(remainder :initarg :remainder :type xcb: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(capabilities :initarg :capabilities :type xcb:CARD32)))
(defclass xcb:present:Generic
(xcb:-event)
((~code :initform 0)
(extension :initarg :extension :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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:-generic-event)
((~evtype :initform 0)
(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:-generic-event)
((~evtype :initform 1)
(pad~0 :initform 8 :type xcb:-pad-align)
(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:CARD64)
(msc :initarg :msc :type xcb:CARD64)))
(defclass xcb:present:IdleNotify
(xcb:-generic-event)
((~evtype :initform 2)
(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:sync:FENCE)))
(defclass xcb:present:RedirectNotify
(xcb:-generic-event)
((~evtype :initform 3)
(pad~0 :initform 8 :type xcb:-pad-align)
(update-window :initarg :update-window :type xcb:BOOL)
(pad~1 :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:xfixes:REGION)
(update-region :initarg :update-region :type xcb:xfixes: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:randr:CRTC)
(wait-fence :initarg :wait-fence :type xcb:sync:FENCE)
(idle-fence :initarg :idle-fence :type xcb:sync:FENCE)
(options :initarg :options :type xcb:CARD32)
(pad~2 :initform 4 :type xcb:-pad)
(target-msc :initarg :target-msc :type xcb:CARD64)
(divisor :initarg :divisor :type xcb:CARD64)
(remainder :initarg :remainder :type xcb:CARD64)
(notifies~ :initform
'(name notifies type xcb:present:Notify size nil)
:type xcb:-list)
(notifies :initarg :notifies :type xcb:-ignore)))
(defconst xcb:present:event-number-class-alist
'((0 . xcb:present:Generic))
"(event-number . event-class) alist.")
(defconst xcb:present:xge-number-class-alist
'((0 . xcb:present:ConfigureNotify)
(1 . xcb:present:CompleteNotify)
(2 . xcb:present:IdleNotify)
(3 . xcb:present:RedirectNotify))
"(xge-number . event-class) alist.")
(provide 'xcb-present)
;;; xcb-present.el ends here
xelb-master/xcb-randr.el 0000664 0000000 0000000 00000116646 14562520677 0015537 0 ustar 00root root 0000000 0000000 ;;; xcb-randr.el --- X11 RandR extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'randr.xml',
;; which you can retrieve from .
;;; Code:
(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 6)
(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)
(xcb:deftypealias 'xcb:randr:LEASE 'xcb:-u4)
(defclass xcb:randr:BadOutput
(xcb:-error)
((~code :initform 0)))
(defclass xcb:randr:BadCrtc
(xcb:-error)
((~code :initform 1)))
(defclass xcb:randr:BadMode
(xcb:-error)
((~code :initform 2)))
(defclass xcb:randr:BadProvider
(xcb:-error)
((~code :initform 3)))
(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~ :initform
'(name rates type xcb:CARD16 size
(xcb:-fieldref 'nRates))
:type xcb:-list)
(rates :initarg :rates :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(defconst xcb:randr:NotifyMask:Lease 128)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name sizes type xcb:randr:ScreenSize size
(xcb:-fieldref 'nSizes))
:type xcb:-list)
(sizes :initarg :sizes :type xcb:-ignore)
(rates~ :initform
'(name rates type xcb:randr:RefreshRates size
(-
(xcb:-fieldref 'nInfo)
(xcb:-fieldref 'nSizes)))
:type xcb:-list)
(rates :initarg :rates :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name crtcs type xcb:randr:CRTC size
(xcb:-fieldref 'num-crtcs))
:type xcb:-list)
(crtcs :initarg :crtcs :type xcb:-ignore)
(outputs~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-outputs))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)
(modes~ :initform
'(name modes type xcb:randr:ModeInfo size
(xcb:-fieldref 'num-modes))
:type xcb:-list)
(modes :initarg :modes :type xcb:-ignore)
(names~ :initform
'(name names type xcb:BYTE size
(xcb:-fieldref 'names-len))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name crtcs type xcb:randr:CRTC size
(xcb:-fieldref 'num-crtcs))
:type xcb:-list)
(crtcs :initarg :crtcs :type xcb:-ignore)
(modes~ :initform
'(name modes type xcb:randr:MODE size
(xcb:-fieldref 'num-modes))
:type xcb:-list)
(modes :initarg :modes :type xcb:-ignore)
(clones~ :initform
'(name clones type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-clones))
:type xcb:-list)
(clones :initarg :clones :type xcb:-ignore)
(name~ :initform
'(name name type xcb:BYTE size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-atoms :initarg :num-atoms :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(atoms~ :initform
'(name atoms type xcb:ATOM size
(xcb:-fieldref 'num-atoms))
:type xcb:-list)
(atoms :initarg :atoms :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name validValues type xcb:INT32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(validValues :initarg :validValues :type xcb:-ignore)))
(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~ :initform
'(name values type xcb:INT32 size nil)
:type xcb:-list)
(values :initarg :values :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:void size
(/
(*
(xcb:-fieldref 'num-units)
(xcb:-fieldref 'format))
8))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'num-items)
(/
(xcb:-fieldref 'format)
8)))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size nil)
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:randr:CreateMode~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-outputs))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)
(possible~ :initform
'(name possible type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-possible-outputs))
:type xcb:-list)
(possible :initarg :possible :type xcb:-ignore)))
(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~ :initform
'(name outputs type xcb:randr:OUTPUT size nil)
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)))
(defclass xcb:randr:SetCrtcConfig~reply
(xcb:-reply)
((status :initarg :status :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(size :initarg :size :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(red~ :initform
'(name red type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(red :initarg :red :type xcb:-ignore)
(green~ :initform
'(name green type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(green :initarg :green :type xcb:-ignore)
(blue~ :initform
'(name blue type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(blue :initarg :blue :type xcb:-ignore)))
(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~ :initform
'(name red type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(red :initarg :red :type xcb:-ignore)
(green~ :initform
'(name green type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(green :initarg :green :type xcb:-ignore)
(blue~ :initform
'(name blue type xcb:CARD16 size
(xcb:-fieldref 'size))
:type xcb:-list)
(blue :initarg :blue :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name crtcs type xcb:randr:CRTC size
(xcb:-fieldref 'num-crtcs))
:type xcb:-list)
(crtcs :initarg :crtcs :type xcb:-ignore)
(outputs~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-outputs))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)
(modes~ :initform
'(name modes type xcb:randr:ModeInfo size
(xcb:-fieldref 'num-modes))
:type xcb:-list)
(modes :initarg :modes :type xcb:-ignore)
(names~ :initform
'(name names type xcb:BYTE size
(xcb:-fieldref 'names-len))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)))
(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:render:TRANSFORM)
(filter-len :initarg :filter-len :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)
(filter-name~ :initform
'(name filter-name type xcb:char size
(xcb:-fieldref 'filter-len))
:type xcb:-list)
(filter-name :initarg :filter-name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(filter-params~ :initform
'(name filter-params type xcb:render:FIXED size nil)
:type xcb:-list)
(filter-params :initarg :filter-params :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pending-transform :initarg :pending-transform :type xcb:render:TRANSFORM)
(has-transforms :initarg :has-transforms :type xcb:BOOL)
(pad~1 :initform 3 :type xcb:-pad)
(current-transform :initarg :current-transform :type xcb:render: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~ :initform
'(name pending-filter-name type xcb:char size
(xcb:-fieldref 'pending-len))
:type xcb:-list)
(pending-filter-name :initarg :pending-filter-name :type xcb:-ignore)
(pad~3 :initform 4 :type xcb:-pad-align)
(pending-params~ :initform
'(name pending-params type xcb:render:FIXED size
(xcb:-fieldref 'pending-nparams))
:type xcb:-list)
(pending-params :initarg :pending-params :type xcb:-ignore)
(current-filter-name~ :initform
'(name current-filter-name type xcb:char size
(xcb:-fieldref 'current-len))
:type xcb:-list)
(current-filter-name :initarg :current-filter-name :type xcb:-ignore)
(pad~4 :initform 4 :type xcb:-pad-align)
(current-params~ :initform
'(name current-params type xcb:render:FIXED size
(xcb:-fieldref 'current-nparams))
:type xcb:-list)
(current-params :initarg :current-params :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:TIMESTAMP)
(num-providers :initarg :num-providers :type xcb:CARD16)
(pad~1 :initform 18 :type xcb:-pad)
(providers~ :initform
'(name providers type xcb:randr:PROVIDER size
(xcb:-fieldref 'num-providers))
:type xcb:-list)
(providers :initarg :providers :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name crtcs type xcb:randr:CRTC size
(xcb:-fieldref 'num-crtcs))
:type xcb:-list)
(crtcs :initarg :crtcs :type xcb:-ignore)
(outputs~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-outputs))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)
(associated-providers~ :initform
'(name associated-providers type xcb:randr:PROVIDER size
(xcb:-fieldref 'num-associated-providers))
:type xcb:-list)
(associated-providers :initarg :associated-providers :type xcb:-ignore)
(associated-capability~ :initform
'(name associated-capability type xcb:CARD32 size
(xcb:-fieldref 'num-associated-providers))
:type xcb:-list)
(associated-capability :initarg :associated-capability :type xcb:-ignore)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-atoms :initarg :num-atoms :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(atoms~ :initform
'(name atoms type xcb:ATOM size
(xcb:-fieldref 'num-atoms))
:type xcb:-list)
(atoms :initarg :atoms :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name valid-values type xcb:INT32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(valid-values :initarg :valid-values :type xcb:-ignore)))
(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~ :initform
'(name values type xcb:INT32 size nil)
:type xcb:-list)
(values :initarg :values :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:void size
(*
(xcb:-fieldref 'num-items)
(/
(xcb:-fieldref 'format)
8)))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:void size
(*
(xcb:-fieldref 'num-items)
(/
(xcb:-fieldref 'format)
8)))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(defclass xcb:randr:ScreenChangeNotify
(xcb:-event)
((~code :initform 0)
(rotation :initarg :rotation :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
(defconst xcb:randr:Notify:Lease 6)
(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:MonitorInfo
(xcb:-struct)
((name :initarg :name :type xcb:ATOM)
(primary :initarg :primary :type xcb:BOOL)
(automatic :initarg :automatic :type xcb:BOOL)
(nOutput :initarg :nOutput :type xcb:CARD16)
(x :initarg :x :type xcb:INT16)
(y :initarg :y :type xcb:INT16)
(width :initarg :width :type xcb:CARD16)
(height :initarg :height :type xcb:CARD16)
(width-in-millimeters :initarg :width-in-millimeters :type xcb:CARD32)
(height-in-millimeters :initarg :height-in-millimeters :type xcb:CARD32)
(outputs~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'nOutput))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)))
(defclass xcb:randr:GetMonitors
(xcb:-request)
((~opcode :initform 42 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(get-active :initarg :get-active :type xcb:BOOL)))
(defclass xcb:randr:GetMonitors~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(timestamp :initarg :timestamp :type xcb:TIMESTAMP)
(nMonitors :initarg :nMonitors :type xcb:CARD32)
(nOutputs :initarg :nOutputs :type xcb:CARD32)
(pad~1 :initform 12 :type xcb:-pad)
(monitors~ :initform
'(name monitors type xcb:randr:MonitorInfo size
(xcb:-fieldref 'nMonitors))
:type xcb:-list)
(monitors :initarg :monitors :type xcb:-ignore)))
(defclass xcb:randr:SetMonitor
(xcb:-request)
((~opcode :initform 43 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(monitorinfo :initarg :monitorinfo :type xcb:randr:MonitorInfo)))
(defclass xcb:randr:DeleteMonitor
(xcb:-request)
((~opcode :initform 44 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(name :initarg :name :type xcb:ATOM)))
(defclass xcb:randr:CreateLease
(xcb:-request)
((~opcode :initform 45 :type xcb:-u1)
(window :initarg :window :type xcb:WINDOW)
(lid :initarg :lid :type xcb:randr:LEASE)
(num-crtcs :initarg :num-crtcs :type xcb:CARD16)
(num-outputs :initarg :num-outputs :type xcb:CARD16)
(crtcs~ :initform
'(name crtcs type xcb:randr:CRTC size
(xcb:-fieldref 'num-crtcs))
:type xcb:-list)
(crtcs :initarg :crtcs :type xcb:-ignore)
(outputs~ :initform
'(name outputs type xcb:randr:OUTPUT size
(xcb:-fieldref 'num-outputs))
:type xcb:-list)
(outputs :initarg :outputs :type xcb:-ignore)))
(defclass xcb:randr:CreateLease~reply
(xcb:-reply)
((nfd :initarg :nfd :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(master-fd :type xcb:fd)
(pad~0 :initform 24 :type xcb:-pad)))
(defclass xcb:randr:FreeLease
(xcb:-request)
((~opcode :initform 46 :type xcb:-u1)
(lid :initarg :lid :type xcb:randr:LEASE)
(terminate :initarg :terminate :type xcb:BYTE)))
(defclass xcb:randr:LeaseNotify
(xcb:-struct)
((timestamp :initarg :timestamp :type xcb:TIMESTAMP)
(window :initarg :window :type xcb:WINDOW)
(lease :initarg :lease :type xcb:randr:LEASE)
(created :initarg :created :type xcb:CARD8)
(pad~0 :initform 15 :type xcb:-pad)))
(defclass xcb:randr:NotifyData
(xcb:-union)
((~size :initform 28)
(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)
(lc :initarg :lc :type xcb:randr:LeaseNotify)))
(defclass xcb:randr:Notify
(xcb:-event)
((~code :initform 1)
(subCode :initarg :subCode :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-randr.el ends here
xelb-master/xcb-record.el 0000664 0000000 0000000 00000016741 14562520677 0015702 0 ustar 00root root 0000000 0000000 ;;; xcb-record.el --- X11 Record extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'record.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name ranges type xcb:record:Range size
(xcb:-fieldref 'num-ranges))
:type xcb:-list)
(ranges :initarg :ranges :type xcb:-ignore)))
(defclass xcb:record:BadContext
(xcb:-error)
((~code :initform 0)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name client-specs type xcb:record:ClientSpec size
(xcb:-fieldref 'num-client-specs))
:type xcb:-list)
(client-specs :initarg :client-specs :type xcb:-ignore)
(ranges~ :initform
'(name ranges type xcb:record:Range size
(xcb:-fieldref 'num-ranges))
:type xcb:-list)
(ranges :initarg :ranges :type xcb:-ignore)))
(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~ :initform
'(name client-specs type xcb:record:ClientSpec size
(xcb:-fieldref 'num-client-specs))
:type xcb:-list)
(client-specs :initarg :client-specs :type xcb:-ignore)
(ranges~ :initform
'(name ranges type xcb:record:Range size
(xcb:-fieldref 'num-ranges))
:type xcb:-list)
(ranges :initarg :ranges :type xcb:-ignore)))
(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~ :initform
'(name client-specs type xcb:record:ClientSpec size
(xcb:-fieldref 'num-client-specs))
:type xcb:-list)
(client-specs :initarg :client-specs :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name intercepted-clients type xcb:record:ClientInfo size
(xcb:-fieldref 'num-intercepted-clients))
:type xcb:-list)
(intercepted-clients :initarg :intercepted-clients :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
;;; xcb-record.el ends here
xelb-master/xcb-render.el 0000664 0000000 0000000 00000064417 14562520677 0015706 0 ustar 00root root 0000000 0000000 ;;; xcb-render.el --- X11 Render extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'render.xml',
;; which you can retrieve from .
;;; Code:
(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)
((~code :initform 0)))
(defclass xcb:render:Picture
(xcb:-error)
((~code :initform 1)))
(defclass xcb:render:PictOp
(xcb:-error)
((~code :initform 2)))
(defclass xcb:render:GlyphSet
(xcb:-error)
((~code :initform 3)))
(defclass xcb:render:Glyph
(xcb:-error)
((~code :initform 4)))
(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~ :initform
'(name visuals type xcb:render:PICTVISUAL size
(xcb:-fieldref 'num-visuals))
:type xcb:-list)
(visuals :initarg :visuals :type xcb:-ignore)))
(defclass xcb:render:PICTSCREEN
(xcb:-struct)
((num-depths :initarg :num-depths :type xcb:CARD32)
(fallback :initarg :fallback :type xcb:render:PICTFORMAT)
(depths~ :initform
'(name depths type xcb:render:PICTDEPTH size
(xcb:-fieldref 'num-depths))
:type xcb:-list)
(depths :initarg :depths :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name formats type xcb:render:PICTFORMINFO size
(xcb:-fieldref 'num-formats))
:type xcb:-list)
(formats :initarg :formats :type xcb:-ignore)
(screens~ :initform
'(name screens type xcb:render:PICTSCREEN size
(xcb:-fieldref 'num-screens))
:type xcb:-list)
(screens :initarg :screens :type xcb:-ignore)
(subpixels~ :initform
'(name subpixels type xcb:CARD32 size
(xcb:-fieldref 'num-subpixel))
:type xcb:-list)
(subpixels :initarg :subpixels :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-values :initarg :num-values :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(values~ :initform
'(name values type xcb:render:INDEXVALUE size
(xcb:-fieldref 'num-values))
:type xcb:-list)
(values :initarg :values :type xcb:-ignore)))
(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
((1 repeat)
(2 alphamap)
(4 alphaxorigin)
(8 alphayorigin)
(16 clipxorigin)
(32 clipyorigin)
(64 clipmask)
(128 graphicsexposure)
(256 subwindowmode)
(512 polyedge)
(1024 polymode)
(2048 dither)
(4096 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
((1 repeat)
(2 alphamap)
(4 alphaxorigin)
(8 alphayorigin)
(16 clipxorigin)
(32 clipyorigin)
(64 clipmask)
(128 graphicsexposure)
(256 subwindowmode)
(512 polyedge)
(1024 polymode)
(2048 dither)
(4096 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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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~ :initform
'(name traps type xcb:render:TRAPEZOID size nil)
:type xcb:-list)
(traps :initarg :traps :type xcb:-ignore)))
(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~ :initform
'(name triangles type xcb:render:TRIANGLE size nil)
:type xcb:-list)
(triangles :initarg :triangles :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:render:POINTFIX size nil)
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:render:POINTFIX size nil)
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name glyphids type xcb:CARD32 size
(xcb:-fieldref 'glyphs-len))
:type xcb:-list)
(glyphids :initarg :glyphids :type xcb:-ignore)
(glyphs~ :initform
'(name glyphs type xcb:render:GLYPHINFO size
(xcb:-fieldref 'glyphs-len))
:type xcb:-list)
(glyphs :initarg :glyphs :type xcb:-ignore)
(data~ :initform
'(name data type xcb:BYTE size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(defclass xcb:render:FreeGlyphs
(xcb:-request)
((~opcode :initform 22 :type xcb:-u1)
(glyphset :initarg :glyphset :type xcb:render:GLYPHSET)
(glyphs~ :initform
'(name glyphs type xcb:render:GLYPH size nil)
:type xcb:-list)
(glyphs :initarg :glyphs :type xcb:-ignore)))
(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~ :initform
'(name glyphcmds type xcb:BYTE size nil)
:type xcb:-list)
(glyphcmds :initarg :glyphcmds :type xcb:-ignore)))
(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~ :initform
'(name glyphcmds type xcb:BYTE size nil)
:type xcb:-list)
(glyphcmds :initarg :glyphcmds :type xcb:-ignore)))
(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~ :initform
'(name glyphcmds type xcb:BYTE size nil)
:type xcb:-list)
(glyphcmds :initarg :glyphcmds :type xcb:-ignore)))
(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~ :initform
'(name rects type xcb:RECTANGLE size nil)
:type xcb:-list)
(rects :initarg :rects :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-aliases :initarg :num-aliases :type xcb:CARD32)
(num-filters :initarg :num-filters :type xcb:CARD32)
(pad~1 :initform 16 :type xcb:-pad)
(aliases~ :initform
'(name aliases type xcb:CARD16 size
(xcb:-fieldref 'num-aliases))
:type xcb:-list)
(aliases :initarg :aliases :type xcb:-ignore)
(filters~ :initform
'(name filters type xcb:STR size
(xcb:-fieldref 'num-filters))
:type xcb:-list)
(filters :initarg :filters :type xcb:-ignore)))
(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~ :initform
'(name filter type xcb:char size
(xcb:-fieldref 'filter-len))
:type xcb:-list)
(filter :initarg :filter :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(values~ :initform
'(name values type xcb:render:FIXED size nil)
:type xcb:-list)
(values :initarg :values :type xcb:-ignore)))
(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~ :initform
'(name cursors type xcb:render:ANIMCURSORELT size nil)
:type xcb:-list)
(cursors :initarg :cursors :type xcb:-ignore)))
(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~ :initform
'(name traps type xcb:render:TRAP size nil)
:type xcb:-list)
(traps :initarg :traps :type xcb:-ignore)))
(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~ :initform
'(name stops type xcb:render:FIXED size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(stops :initarg :stops :type xcb:-ignore)
(colors~ :initform
'(name colors type xcb:render:COLOR size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(colors :initarg :colors :type xcb:-ignore)))
(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~ :initform
'(name stops type xcb:render:FIXED size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(stops :initarg :stops :type xcb:-ignore)
(colors~ :initform
'(name colors type xcb:render:COLOR size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(colors :initarg :colors :type xcb:-ignore)))
(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~ :initform
'(name stops type xcb:render:FIXED size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(stops :initarg :stops :type xcb:-ignore)
(colors~ :initform
'(name colors type xcb:render:COLOR size
(xcb:-fieldref 'num-stops))
:type xcb:-list)
(colors :initarg :colors :type xcb:-ignore)))
(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)
;;; xcb-render.el ends here
xelb-master/xcb-renderutil.el 0000664 0000000 0000000 00000033337 14562520677 0016601 0 ustar 00root root 0000000 0000000 ;;; xcb-renderutil.el --- Utility functions for -*- lexical-binding: t -*-
;;; the Render extension
;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library provides utility functions for the Render extension.
;; Todo
;; + Glyph-related functions are not implemented.
;; References:
;; + xcb/util-renderutil (git://anongit.freedesktop.org/xcb/util-renderutil)
;;; Code:
(require 'xcb)
(require 'xcb-render)
;; Protocol version.
(defconst xcb:renderutil:-MAJOR_VERSION 0)
(defconst xcb:renderutil:-MINOR_VERSION 11)
;; PICTFORMINFO masks.
(defconst xcb:renderutil:PICT_FORMAT:ID 1)
(defconst xcb:renderutil:PICT_FORMAT:TYPE 2)
(defconst xcb:renderutil:PICT_FORMAT:DEPTH 4)
(defconst xcb:renderutil:PICT_FORMAT:RED 8)
(defconst xcb:renderutil:PICT_FORMAT:RED_MASK 16)
(defconst xcb:renderutil:PICT_FORMAT:GREEN 32)
(defconst xcb:renderutil:PICT_FORMAT:GREEN_MASK 64)
(defconst xcb:renderutil:PICT_FORMAT:BLUE 128)
(defconst xcb:renderutil:PICT_FORMAT:BLUE_MASK 256)
(defconst xcb:renderutil:PICT_FORMAT:ALPHA 512)
(defconst xcb:renderutil:PICT_FORMAT:ALPHA_MASK 1024)
(defconst xcb:renderutil:PICT_FORMAT:COLORMAP 2048)
;; Indices of standard PictFormats.
(defconst xcb:renderutil:PICT_STANDARD:ARGB_32 0)
(defconst xcb:renderutil:PICT_STANDARD:RGB_24 1)
(defconst xcb:renderutil:PICT_STANDARD:A_8 2)
(defconst xcb:renderutil:PICT_STANDARD:A_4 3)
(defconst xcb:renderutil:PICT_STANDARD:A_1 4)
(defconst xcb:renderutil:STANDARD-TEMPLATES
(list
;; xcb:renderutil:PICT_STANDARD:ARGB_32
(vector (make-instance 'xcb:render:PICTFORMINFO
:id 0
:type xcb:render:PictType:Direct
:depth 32
:direct (make-instance 'xcb:render:DIRECTFORMAT
:red-shift 16
:red-mask #xFF
:green-shift 8
:green-mask #xFF
:blue-shift 0
:blue-mask #xFF
:alpha-shift 24
:alpha-mask #xFF)
:colormap 0)
(logior xcb:renderutil:PICT_FORMAT:TYPE
xcb:renderutil:PICT_FORMAT:DEPTH
xcb:renderutil:PICT_FORMAT:RED
xcb:renderutil:PICT_FORMAT:RED_MASK
xcb:renderutil:PICT_FORMAT:GREEN
xcb:renderutil:PICT_FORMAT:GREEN_MASK
xcb:renderutil:PICT_FORMAT:BLUE
xcb:renderutil:PICT_FORMAT:BLUE_MASK
xcb:renderutil:PICT_FORMAT:ALPHA
xcb:renderutil:PICT_FORMAT:ALPHA_MASK))
;; xcb:renderutil:PICT_STANDARD:RGB_24
(vector (make-instance 'xcb:render:PICTFORMINFO
:id 0
:type xcb:render:PictType:Direct
:depth 24
:direct (make-instance 'xcb:render:DIRECTFORMAT
:red-shift 16
:red-mask #xFF
:green-shift 8
:green-mask #xFF
:blue-shift 0
:blue-mask #xFF
:alpha-shift 0
:alpha-mask #x00)
:colormap 0)
(logior xcb:renderutil:PICT_FORMAT:TYPE
xcb:renderutil:PICT_FORMAT:DEPTH
xcb:renderutil:PICT_FORMAT:RED
xcb:renderutil:PICT_FORMAT:RED_MASK
xcb:renderutil:PICT_FORMAT:GREEN
xcb:renderutil:PICT_FORMAT:GREEN_MASK
xcb:renderutil:PICT_FORMAT:BLUE
xcb:renderutil:PICT_FORMAT:BLUE_MASK
xcb:renderutil:PICT_FORMAT:ALPHA_MASK))
;; xcb:renderutil:PICT_STANDARD:A_8
(vector (make-instance 'xcb:render:PICTFORMINFO
:id 0
:type xcb:render:PictType:Direct
:depth 8
:direct (make-instance 'xcb:render:DIRECTFORMAT
:red-shift 0
:red-mask #x00
:green-shift 0
:green-mask #x00
:blue-shift 0
:blue-mask #x00
:alpha-shift 0
:alpha-mask #xFF)
:colormap 0)
(logior xcb:renderutil:PICT_FORMAT:TYPE
xcb:renderutil:PICT_FORMAT:DEPTH
xcb:renderutil:PICT_FORMAT:RED_MASK
xcb:renderutil:PICT_FORMAT:GREEN_MASK
xcb:renderutil:PICT_FORMAT:BLUE_MASK
xcb:renderutil:PICT_FORMAT:ALPHA
xcb:renderutil:PICT_FORMAT:ALPHA_MASK))
;; xcb:renderutil:PICT_STANDARD:A_4
(vector (make-instance 'xcb:render:PICTFORMINFO
:id 0
:type xcb:render:PictType:Direct
:depth 4
:direct (make-instance 'xcb:render:DIRECTFORMAT
:red-shift 0
:red-mask #x00
:green-shift 0
:green-mask #x00
:blue-shift 0
:blue-mask #x00
:alpha-shift 0
:alpha-mask #x0F)
:colormap 0)
(logior xcb:renderutil:PICT_FORMAT:TYPE
xcb:renderutil:PICT_FORMAT:DEPTH
xcb:renderutil:PICT_FORMAT:RED_MASK
xcb:renderutil:PICT_FORMAT:GREEN_MASK
xcb:renderutil:PICT_FORMAT:BLUE_MASK
xcb:renderutil:PICT_FORMAT:ALPHA
xcb:renderutil:PICT_FORMAT:ALPHA_MASK))
;; xcb:renderutil:PICT_STANDARD:A_1
(vector (make-instance 'xcb:render:PICTFORMINFO
:id 0
:type xcb:render:PictType:Direct
:depth 1
:direct (make-instance 'xcb:render:DIRECTFORMAT
:red-shift 0
:red-mask #x00
:green-shift 0
:green-mask #x00
:blue-shift 0
:blue-mask #x00
:alpha-shift 0
:alpha-mask #x01)
:colormap 0)
(logior xcb:renderutil:PICT_FORMAT:TYPE
xcb:renderutil:PICT_FORMAT:DEPTH
xcb:renderutil:PICT_FORMAT:RED_MASK
xcb:renderutil:PICT_FORMAT:GREEN_MASK
xcb:renderutil:PICT_FORMAT:BLUE_MASK
xcb:renderutil:PICT_FORMAT:ALPHA
xcb:renderutil:PICT_FORMAT:ALPHA_MASK)))
"Standard PictFormats.")
(cl-defmethod xcb:renderutil:-get-cache ((obj xcb:connection))
"Return the cache and initialize the extension when first called."
(let ((result (plist-get (slot-value obj 'extra-plist) 'renderutil))
required-depths)
(unless (or result
(= 0 (slot-value
(xcb:get-extension-data obj 'xcb:render)
'present)))
(setq result
(vector (xcb:+request-unchecked+reply obj
(make-instance 'xcb:render:QueryVersion
:client-major-version
xcb:renderutil:-MAJOR_VERSION
:client-minor-version
xcb:renderutil:-MINOR_VERSION))
(xcb:+request-unchecked+reply obj
(make-instance 'xcb:render:QueryPictFormats))))
(setq required-depths '(1 4 8 24 32))
(catch 'break
(dolist (s (slot-value (aref result 1) 'screens))
(dolist (d (slot-value s 'depths))
(setq required-depths
(delq (slot-value d 'depth) required-depths))
(unless required-depths
(throw 'break nil)))))
(if required-depths
(setq result nil)
(setf (slot-value obj 'extra-plist)
(plist-put (slot-value obj 'extra-plist) 'renderutil result))))
result))
(defun xcb:renderutil:find-visual-format (formats visual)
"Search FORMATS for a format matching visual VISUAL."
(catch 'return
(dolist (s (slot-value formats 'screens))
(dolist (d (slot-value s 'depths))
(dolist (v (slot-value d 'visuals))
(when (= (slot-value v 'visual) visual)
(throw 'return (slot-value v 'format))))))))
(defun xcb:renderutil:find-format (formats mask template count)
"Search FORMATS for a format matching mask MASK and template TEMPLATE.
Return COUNT-th match."
(catch 'return
(unless formats
(throw 'return nil))
(dolist (f (slot-value formats 'formats))
(when (and (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:ID))
(eq (slot-value template 'id) (slot-value f 'id))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:TYPE))
(eq (slot-value template 'type) (slot-value f 'type))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:DEPTH))
(eq (slot-value template 'depth) (slot-value f 'depth))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:RED))
(eq (slot-value (slot-value template 'direct) 'red-shift)
(slot-value (slot-value f 'direct) 'red-shift))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:RED_MASK))
(eq (slot-value (slot-value template 'direct) 'red-mask)
(slot-value (slot-value f 'direct) 'red-mask))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:GREEN))
(eq (slot-value (slot-value template 'direct) 'red-shift)
(slot-value (slot-value f 'direct) 'red-shift))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:GREEN_MASK))
(eq (slot-value (slot-value template 'direct) 'red-mask)
(slot-value (slot-value f 'direct) 'red-mask))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:BLUE))
(eq (slot-value (slot-value template 'direct) 'red-shift)
(slot-value (slot-value f 'direct) 'red-shift))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:BLUE_MASK))
(eq (slot-value (slot-value template 'direct) 'red-mask)
(slot-value (slot-value f 'direct) 'red-mask))
t)
(if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:COLORMAP))
(eq (slot-value template 'colormap)
(slot-value f 'colormap))
t))
(when (= count 0)
(throw 'return (slot-value f 'id))
(cl-decf count))))))
(defun xcb:renderutil:find-standard (formats format)
"Search FORMATS for a standard format matching format ID FORMAT."
(when (and (<= 0 format (1- (length xcb:renderutil:STANDARD-TEMPLATES))))
(let ((standard-format (elt xcb:renderutil:STANDARD-TEMPLATES format)))
(xcb:renderutil:find-format formats
(aref standard-format 1)
(aref standard-format 0)
0))))
(cl-defmethod xcb:renderutil:query-version ((obj xcb:connection))
"Return the version of Render extension."
(let ((cache (xcb:renderutil:-get-cache obj)))
(when cache
(aref cache 0))))
(cl-defmethod xcb:renderutil:query-formats ((obj xcb:connection))
"Return supported formats of this X server."
(let ((cache (xcb:renderutil:-get-cache obj)))
(when cache
(aref cache 1))))
(provide 'xcb-renderutil)
;;; xcb-renderutil.el ends here
xelb-master/xcb-res.el 0000664 0000000 0000000 00000014271 14562520677 0015211 0 ustar 00root root 0000000 0000000 ;;; xcb-res.el --- X11 Res extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'res.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name value type xcb:CARD32 size
(/
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(value :initarg :value :type xcb:-ignore)))
(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~ :initform
'(name cross-references type xcb:res:ResourceSizeSpec size
(xcb:-fieldref 'num-cross-references))
:type xcb:-list)
(cross-references :initarg :cross-references :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-clients :initarg :num-clients :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(clients~ :initform
'(name clients type xcb:res:Client size
(xcb:-fieldref 'num-clients))
:type xcb:-list)
(clients :initarg :clients :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-types :initarg :num-types :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(types~ :initform
'(name types type xcb:res:Type size
(xcb:-fieldref 'num-types))
:type xcb:-list)
(types :initarg :types :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name specs type xcb:res:ClientIdSpec size
(xcb:-fieldref 'num-specs))
:type xcb:-list)
(specs :initarg :specs :type xcb:-ignore)))
(defclass xcb:res:QueryClientIds~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-ids :initarg :num-ids :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(ids~ :initform
'(name ids type xcb:res:ClientIdValue size
(xcb:-fieldref 'num-ids))
:type xcb:-list)
(ids :initarg :ids :type xcb:-ignore)))
(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~ :initform
'(name specs type xcb:res:ResourceIdSpec size
(xcb:-fieldref 'num-specs))
:type xcb:-list)
(specs :initarg :specs :type xcb:-ignore)))
(defclass xcb:res:QueryResourceBytes~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-sizes :initarg :num-sizes :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(sizes~ :initform
'(name sizes type xcb:res:ResourceSizeValue size
(xcb:-fieldref 'num-sizes))
:type xcb:-list)
(sizes :initarg :sizes :type xcb:-ignore)))
(provide 'xcb-res)
;;; xcb-res.el ends here
xelb-master/xcb-screensaver.el 0000664 0000000 0000000 00000013406 14562520677 0016737 0 ustar 00root root 0000000 0000000 ;;; xcb-screensaver.el --- X11 ScreenSaver extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'screensaver.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
((1 background-pixmap)
(2 background-pixel)
(4 border-pixmap)
(8 border-pixel)
(16 bit-gravity)
(32 win-gravity)
(64 backing-store)
(128 backing-planes)
(256 backing-pixel)
(512 override-redirect)
(1024 save-under)
(2048 event-mask)
(4096 do-not-propogate-mask)
(8192 colormap)
(16384 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:CARD32)))
(defclass xcb:screensaver:Notify
(xcb:-event)
((~code :initform 0)
(state :initarg :state :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-screensaver.el ends here
xelb-master/xcb-shape.el 0000664 0000000 0000000 00000015567 14562520677 0015531 0 ustar 00root root 0000000 0000000 ;;; xcb-shape.el --- X11 Shape extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'shape.xml',
;; which you can retrieve from .
;;; Code:
(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)
((~code :initform 0)
(shape-kind :initarg :shape-kind :type xcb:shape:KIND)
(~sequence :type xcb:CARD16)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(rectangles-len :initarg :rectangles-len :type xcb:CARD32)
(pad~0 :initform 20 :type xcb:-pad)
(rectangles~ :initform
'(name rectangles type xcb:RECTANGLE size
(xcb:-fieldref 'rectangles-len))
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(defconst xcb:shape:event-number-class-alist
'((0 . xcb:shape:Notify))
"(event-number . event-class) alist.")
(provide 'xcb-shape)
;;; xcb-shape.el ends here
xelb-master/xcb-shm.el 0000664 0000000 0000000 00000013150 14562520677 0015202 0 ustar 00root root 0000000 0000000 ;;; xcb-shm.el --- X11 Shm extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'shm.xml',
;; which you can retrieve from .
;;; Code:
(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)
((~code :initform 0)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 0)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:BOOL)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
;;; xcb-shm.el ends here
xelb-master/xcb-sync.el 0000664 0000000 0000000 00000025276 14562520677 0015403 0 ustar 00root root 0000000 0000000 ;;; xcb-sync.el --- X11 Sync extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'sync.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)))
(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)
((~code :initform 0)
(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)
((~code :initform 1)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(counters-len :initarg :counters-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(counters~ :initform
'(name counters type xcb:sync:SYSTEMCOUNTER size
(xcb:-fieldref 'counters-len))
:type xcb:-list)
(counters :initarg :counters :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(counter-value :initarg :counter-value :type xcb:sync:INT64)))
(defclass xcb:sync:Await
(xcb:-request)
((~opcode :initform 7 :type xcb:-u1)
(wait-list~ :initform
'(name wait-list type xcb:sync:WAITCONDITION size nil)
:type xcb:-list)
(wait-list :initarg :wait-list :type xcb:-ignore)))
(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
((1 counter)
(2 valueType)
(4 value)
(8 testType)
(16 delta)
(32 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
((1 counter)
(2 valueType)
(4 value)
(8 testType)
(16 delta)
(32 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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name fence-list type xcb:sync:FENCE size nil)
:type xcb:-list)
(fence-list :initarg :fence-list :type xcb:-ignore)))
(defclass xcb:sync:CounterNotify
(xcb:-event)
((~code :initform 0)
(kind :initarg :kind :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(kind :initarg :kind :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-sync.el ends here
xelb-master/xcb-systemtray.el 0000664 0000000 0000000 00000012227 14562520677 0016643 0 ustar 00root root 0000000 0000000 ;;; xcb-systemtray.el --- System tray protocol -*- lexical-binding: t -*-
;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library implements the system tray protocol.
;; Usage tips:
;; + Do not forget to call `xcb:systemtray:init' for _every_ connection using
;; this library.
;; + Use `xcb:systemtray:SendEvent' instead of `xcb:SendEvent' to send opcode
;; messages defined in this library.
;; + Initializing this library auto loads and initializes 'xcb-ewmh'.
;; References:
;; + System Tray Protocol (https://specifications.freedesktop.org/
;; systemtray-spec/systemtray-spec-0.3.html)
;;; Code:
(require 'xcb-ewmh)
;; System tray atoms.
(eval-and-compile
(defconst xcb:systemtray:-atoms ;_NET_SYSTEM_TRAY_Sn are left out.
'(_NET_SYSTEM_TRAY_OPCODE
_NET_SYSTEM_TRAY_ORIENTATION
_NET_SYSTEM_TRAY_VISUAL
_NET_SYSTEM_TRAY_MESSAGE_DATA)
"Atoms involved in the system tray protocol.")
(dolist (atom xcb:systemtray:-atoms)
(eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil))))
;; Opcodes.
(defconst xcb:systemtray:opcode:REQUEST-DOCK 0)
(defconst xcb:systemtray:opcode:BEGIN-MESSAGE 1)
(defconst xcb:systemtray:opcode:CANCEL-MESSAGE 2)
(cl-defmethod xcb:systemtray:init ((obj xcb:connection) &optional force)
"Initialize the system tray module.
This method must be called before using any other method in this module."
(when (or force (not xcb:Atom:_NET_SYSTEM_TRAY_OPCODE))
(xcb:ewmh:init obj) ;required.
(let ((atoms xcb:systemtray:-atoms))
(dotimes (i (x-display-screens))
(push (intern (format "_NET_SYSTEM_TRAY_S%d" i)) atoms))
(xcb:icccm:intern-atoms obj atoms force))))
(defclass xcb:systemtray:SendEvent (xcb:SendEvent)
((propagate :initform 0)
(event-mask :initform 'xcb:EventMask:NoEvent))
:documentation "Send system tray opcode message.")
(defclass xcb:systemtray:-ClientMessage
(xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 32)
(type :initform 'xcb:Atom:_NET_SYSTEM_TRAY_OPCODE)
(time :initarg :time :type xcb:TIMESTAMP) ;new slot
(opcode :initarg :opcode :type xcb:CARD32)) ;new slot
:documentation "An system tray opcode message.")
(defclass xcb:systemtray:REQUEST-DOCK (xcb:systemtray:-ClientMessage)
((opcode :initform 'xcb:systemtray:opcode:REQUEST-DOCK)
(id :initarg :id :type xcb:CARD32)
(pad~0 :initform 8 :type xcb:-pad))
:documentation "Dock a tray icon.")
(defclass xcb:systemtray:BEGIN-MESSAGE (xcb:systemtray:-ClientMessage)
((opcode :initform 'xcb:systemtray:opcode:BEGIN-MESSAGE)
(timeout :initarg :timeout :type xcb:TIMESTAMP)
(length :initarg :length :type xcb:CARD32)
(id :initarg :id :type xcb:CARD32))
:documentation "Begin balloon message.")
(defclass xcb:systemtray:MESSAGE-DATA
(xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 8)
(type :initform 'xcb:Atom:_NET_SYSTEM_TRAY_MESSAGE_DATA)
(data~ :initform '(name data type xcb:CARD8 size 20) :type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(defclass xcb:systemtray:CANCEL-MESSAGE (xcb:systemtray:-ClientMessage)
((opcode :initform 'xcb:systemtray:opcode:CANCEL-MESSAGE)
(id :initarg :id :type xcb:CARD32)
(pad~0 :initform 8 :type xcb:-pad))
:documentation "Cancel balloon message.")
;; Value of _NET_SYSTEM_TRAY_ORIENTATION.
(defconst xcb:systemtray:ORIENTATION:HORZ 0)
(defconst xcb:systemtray:ORIENTATION:VERT 1)
(defclass xcb:xembed:get-_NET_SYSTEM_TRAY_ORIENTATION
(xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_SYSTEM_TRAY_ORIENTATION)
(type :initform 'xcb:Atom:CARDINAL)))
(defclass xcb:xembed:get-_NET_SYSTEM_TRAY_ORIENTATION~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:xembed:set-_NET_SYSTEM_TRAY_ORIENTATION
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_SYSTEM_TRAY_ORIENTATION)
(type :initform 'xcb:Atom:CARDINAL)
(format :initform 32)))
(defclass xcb:xembed:get-_NET_SYSTEM_TRAY_VISUAL
(xcb:icccm:-GetProperty-single)
((property :initform 'xcb:Atom:_NET_SYSTEM_TRAY_VISUAL)
(type :initform 'xcb:Atom:VISUALID)))
(defclass xcb:xembed:get-_NET_SYSTEM_TRAY_VISUAL~reply
(xcb:icccm:-GetProperty-single~reply)
nil)
(defclass xcb:xembed:set-_NET_SYSTEM_TRAY_VISUAL
(xcb:icccm:-ChangeProperty-single)
((property :initform 'xcb:Atom:_NET_SYSTEM_TRAY_VISUAL)
(type :initform 'xcb:Atom:VISUALID)
(format :initform 32)))
(provide 'xcb-systemtray)
;;; xcb-systemtray.el ends here
xelb-master/xcb-types.el 0000664 0000000 0000000 00000115763 14562520677 0015574 0 ustar 00root root 0000000 0000000 ;;; xcb-types.el --- Type definitions for XCB -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; 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.
;; + for `xcb:-marshal-field'?
;; References:
;; + X protocol (http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.txt)
;;; Code:
(require 'cl-lib) ; cl-coerce
(require 'cl-generic)
(require 'eieio)
(require 'xcb-debug)
(define-minor-mode xcb:debug
"Debug-logging enabled if non-nil."
:group 'debug
:global t)
(defmacro xcb:-log (&optional format-string &rest objects)
"Emit a message prepending the name of the function being executed.
FORMAT-STRING is a string specifying the message to output, as in
`format'. The OBJECTS arguments specify the substitutions."
(unless format-string (setq format-string ""))
`(when xcb:debug
(xcb-debug:message ,(concat "%s%s:\t" format-string "\n")
(if xcb-debug:log-time-function
(funcall xcb-debug:log-time-function)
"")
(xcb-debug:compile-time-function-name)
,@objects)
nil))
;;;; 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 (ash 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 (ash 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)))))))
;; Due to loss of significance of floating-point numbers, `xcb:-pack-u8' and
;; `xcb:-pack-u8-lsb' may return approximate results.
(eval-and-compile
(if (/= 0 (ash 1 32))
;; 64 bit
(progn
(defsubst xcb:-pack-u4 (value)
"4 bytes unsigned integer => byte array (MSB first, 64-bit)."
(vector (logand (ash value -24) #xFF) (logand (ash value -16) #xFF)
(logand (ash 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 (ash value -8) #xFF)
(logand (ash value -16) #xFF)
(logand (ash value -24) #xFF)))
(defsubst xcb:-pack-u8 (value)
"8 bytes unsigned integer => byte array (MSB first)."
(if (integerp value)
(vector (logand (ash value -56) #xFF)
(logand (ash value -48) #xFF)
(logand (ash value -40) #xFF)
(logand (ash value -32) #xFF)
(logand (ash value -24) #xFF)
(logand (ash value -16) #xFF)
(logand (ash value -8) #xFF)
(logand value #xFF))
(let* ((msdw (min 4294967295. (truncate value 4294967296.)))
(lsdw (min 4294967295.
(truncate (- value (* msdw 4294967296.0))))))
(vector (logand (ash msdw -24) #xFF) (logand (ash msdw -16) #xFF)
(logand (ash msdw -8) #xFF) (logand msdw #xFF)
(logand (ash lsdw -24) #xFF) (logand (ash lsdw -16) #xFF)
(logand (ash lsdw -8) #xFF) (logand lsdw #xFF)))))
(defsubst xcb:-pack-u8-lsb (value)
"8 bytes unsigned integer => byte array (LSB first)."
(if (integerp value)
(vector (logand value #xFF)
(logand (ash value -8) #xFF)
(logand (ash value -16) #xFF)
(logand (ash value -24) #xFF)
(logand (ash value -32) #xFF)
(logand (ash value -40) #xFF)
(logand (ash value -48) #xFF)
(logand (ash value -56) #xFF))
(let* ((msdw (min 4294967295. (truncate value 4294967296.)))
(lsdw (min 4294967295.
(truncate (- value (* msdw 4294967296.0))))))
(vector (logand lsdw #xFF) (logand (ash lsdw -8) #xFF)
(logand (ash lsdw -16) #xFF) (logand (ash lsdw -24) #xFF)
(logand msdw #xFF)
(logand (ash msdw -8) #xFF)
(logand (ash msdw -16) #xFF)
(logand (ash msdw -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 (ash value -24) #xFF) (logand (ash value -16) #xFF)
(logand (ash value -8) #xFF) (logand value #xFF))
(let* ((msw (truncate value #x10000))
(lsw (truncate (- value (* msw 65536.0)))))
(vector (logand (ash msw -8) #xFF) (logand msw #xFF)
(logand (ash 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 (ash value -8) #xFF)
(logand (ash value -16) #xFF) (logand (ash value -24) #xFF))
(let* ((msw (truncate value #x10000))
(lsw (truncate (- value (* msw 65536.0)))))
(vector (logand lsw #xFF) (logand (ash lsw -8) #xFF)
(logand msw #xFF) (logand (ash msw -8) #xFF)))))
(defsubst xcb:-pack-u8 (value)
"8 bytes unsigned integer => byte array (MSB first, 32-bit)."
(if (integerp value)
(vector 0 0 0 0
(logand (ash value -24) #xFF) (logand (ash value -16) #xFF)
(logand (ash value -8) #xFF) (logand value #xFF))
(let* ((msw (min #xFFFF (truncate value 281474976710656.)))
(w1 (min #xFFFF
(truncate (setq value
(- value (* msw 281474976710656.0)))
4294967296.)))
(w2 (min #xFFFF
(truncate (setq value (- value (* w1 4294967296.0)))
#x10000)))
(lsw (min #xFFFF (truncate (- value (* w2 65536.0))))))
(vector (logand (ash msw -8) #xFF) (logand msw #xFF)
(logand (ash w1 -8) #xFF) (logand w1 #xFF)
(logand (ash w2 -8) #xFF) (logand w2 #xFF)
(logand (ash lsw -8) #xFF) (logand lsw #xFF)))))
(defsubst xcb:-pack-u8-lsb (value)
"8 bytes unsigned integer => byte array (LSB first, 32-bit)."
(if (integerp value)
(vector (logand value #xFF) (logand (ash value -8) #xFF)
(logand (ash value -16) #xFF) (logand (ash value -24) #xFF)
0 0 0 0)
(let* ((msw (min #xFFFF (truncate value 281474976710656.)))
(w1 (min #xFFFF
(truncate (setq value
(- value (* msw 281474976710656.0)))
4294967296.)))
(w2 (min #xFFFF
(truncate (setq value (- value (* w1 4294967296.0)))
#x10000)))
(lsw (min #xFFFF (truncate (- value (* w2 65536.0))))))
(vector (logand lsw #xFF) (logand (ash lsw -8) #xFF)
(logand w2 #xFF) (logand (ash w2 -8) #xFF)
(logand w1 #xFF) (logand (ash w1 -8) #xFF)
(logand msw #xFF) (logand (ash msw -8) #xFF)))))))
(defsubst xcb:-pack-i4 (value)
"4 bytes signed integer => byte array (MSB first)."
(xcb:-pack-u4 (if (>= value 0)
value
(+ value 4294967296.)))) ;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 4294967296.)))) ;treated as float for 32-bit
(defsubst xcb:-unpack-u1 (data offset)
"Byte array => 1 byte unsigned integer."
(aref data offset))
(defsubst xcb:-unpack-i1 (data offset)
"Byte array => 1 byte signed integer."
(let ((value (xcb:-unpack-u1 data offset)))
(if (= 0 (logand #x80 value))
value
(- (logand #xFF (lognot (1- value)))))))
(defsubst xcb:-unpack-u2 (data offset)
"Byte array => 2 bytes unsigned integer (MSB first)."
(logior (ash (aref data offset) 8) (aref data (1+ offset))))
(defsubst xcb:-unpack-u2-lsb (data offset)
"Byte array => 2 bytes unsigned integer (LSB first)."
(logior (aref data offset) (ash (aref data (1+ offset)) 8)))
(defsubst xcb:-unpack-i2 (data offset)
"Byte array => 2 bytes signed integer (MSB first)."
(let ((value (xcb:-unpack-u2 data offset)))
(if (= 0 (logand #x8000 value))
value
(- (logand #xFFFF (lognot (1- value)))))))
(defsubst xcb:-unpack-i2-lsb (data offset)
"Byte array => 2 bytes signed integer (LSB first)."
(let ((value (xcb:-unpack-u2-lsb data offset)))
(if (= 0 (logand #x8000 value))
value
(- (logand #xFFFF (lognot (1- value)))))))
;; Due to loss of significance of floating-point numbers, `xcb:-unpack-u8' and
;; `xcb:-unpack-u8-lsb' may return approximate results.
(eval-and-compile
(if (/= 0 (ash 1 32))
;; 64-bit
(progn
(defsubst xcb:-unpack-u4 (data offset)
"Byte array => 4 bytes unsigned integer (MSB first, 64-bit)."
(logior (ash (aref data offset) 24) (ash (aref data (1+ offset)) 16)
(ash (aref data (+ offset 2)) 8) (aref data (+ offset 3))))
(defsubst xcb:-unpack-u4-lsb (data offset)
"Byte array => 4 bytes unsigned integer (LSB first, 64-bit)."
(logior (aref data offset) (ash (aref data (1+ offset)) 8)
(ash (aref data (+ offset 2)) 16)
(ash (aref data (+ offset 3)) 24)))
(defsubst xcb:-unpack-u8 (data offset)
"Byte array => 8 bytes unsigned integer (MSB first)."
(let ((msb (aref data offset)))
(+ (if (> msb 31) (* msb 72057594037927936.0) (ash msb 56))
(logior (ash (aref data (1+ offset)) 48)
(ash (aref data (+ offset 2)) 40)
(ash (aref data (+ offset 3)) 32)
(ash (aref data (+ offset 4)) 24)
(ash (aref data (+ offset 5)) 16)
(ash (aref data (+ offset 6)) 8)
(aref data (+ offset 7))))))
(defsubst xcb:-unpack-u8-lsb (data offset)
"Byte array => 8 bytes unsigned integer (LSB first)."
(let ((msb (aref data (+ offset 7))))
(+ (if (> msb 31) (* msb 72057594037927936.0) (ash msb 56))
(logior (ash (aref data (+ offset 6)) 48)
(ash (aref data (+ offset 5)) 40)
(ash (aref data (+ offset 4)) 32)
(ash (aref data (+ offset 3)) 24)
(ash (aref data (+ offset 2)) 16)
(ash (aref data (1+ offset)) 8)
(aref data offset))))))
;; 32-bit (30-bit actually; large numbers are represented as float type)
(defsubst xcb:-unpack-u4 (data offset)
"Byte array => 4 bytes unsigned integer (MSB first, 32-bit)."
(let ((msb (aref data offset)))
(+ (if (> msb 31) (* msb 16777216.0) (ash msb 24))
(logior (ash (aref data (1+ offset)) 16)
(ash (aref data (+ offset 2)) 8)
(aref data (+ offset 3))))))
(defsubst xcb:-unpack-u4-lsb (data offset)
"Byte array => 4 bytes unsigned integer (LSB first, 32-bit)."
(let ((msb (aref data (+ offset 3))))
(+ (if (> msb 31) (* msb 16777216.0) (ash msb 24))
(logior (aref data offset)
(ash (aref data (1+ offset)) 8)
(ash (aref data (+ offset 2)) 16)))))
(defsubst xcb:-unpack-u8 (data offset)
"Byte array => 8 bytes unsigned integer (MSB first, 32-bit)."
(+ (* (aref data offset) 72057594037927936.0)
(* (aref data (1+ offset)) 281474976710656.0)
(* (aref data (+ offset 2)) 1099511627776.0)
(* (aref data (+ offset 3)) 4294967296.0)
(* (aref data (+ offset 4)) 16777216.0)
(logior (ash (aref data (+ offset 5)) 16)
(ash (aref data (+ offset 6)) 8)
(aref data (+ offset 7)))))
(defsubst xcb:-unpack-u8-lsb (data offset)
"Byte array => 8 bytes unsigned integer (LSB first, 32-bit)."
(+ (* (aref data (+ offset 7)) 72057594037927936.0)
(* (aref data (+ offset 6)) 281474976710656.0)
(* (aref data (+ offset 5)) 1099511627776.0)
(* (aref data (+ offset 4)) 4294967296.0)
(* (aref data (+ offset 3)) 16777216.0)
(logior (ash (aref data (+ offset 2)) 16)
(ash (aref data (1+ offset)) 8)
(aref data offset))))))
(defsubst xcb:-unpack-i4 (data offset)
"Byte array => 4 bytes signed integer (MSB first)."
(let ((value (xcb:-unpack-u4 data offset)))
(if (< value 2147483648.) ;treated as float for 32-bit
value
(- value 4294967296.)))) ;treated as float for 32-bit
(defsubst xcb:-unpack-i4-lsb (data offset)
"Byte array => 4 bytes signed integer (LSB first)."
(let ((value (xcb:-unpack-u4-lsb data offset)))
(if (< value 2147483648.) ;treated as float for 32-bit
value
(- value 4294967296.)))) ;treated as float for 32-bit
(defsubst xcb:-f64-to-binary64 (value)
"Encode a 64-bit float VALUE as a binary64 (IEEE 754)."
(let* ((sigexp (frexp value))
(exp (+ (cdr sigexp) 1022))
(frac (abs (car sigexp)))
(isneg (< (copysign 1.0 (car sigexp)) 0)) ; use `copysign' to detect -0.0
(signmask (if isneg #x8000000000000000 0)))
(+ (cond ((zerop frac) 0) ; 0
((isnan frac) #xff0000000000001) ; NaN
((or (>= exp 2047) (= frac 1e+INF)) #x7ff0000000000000) ; Inf
((<= exp 0) (ash (round (ldexp frac 52)) exp)) ; Subnormal
(t (+ (ash exp 52) (logand #xfffffffffffff
(round (ldexp frac 53)))))) ; Normal
signmask)))
(defsubst xcb:-f32-to-binary32 (value)
"Encode a 32-bit float VALUE as a binary32 (IEEE 754)."
(let* ((sigexp (frexp value))
(exp (+ (cdr sigexp) 126))
(frac (abs (car sigexp)))
(isneg (< (copysign 1.0 (car sigexp)) 0)) ; use `copysign' to detect -0.0
(signmask (if isneg #x80000000 0)))
(+ (cond ((zerop frac) 0) ; 0
((isnan frac) #x7f800001) ; NaN
((or (>= exp 255) (= frac 1e+INF)) #x7f800000) ; Inf
((<= exp 0) (ash (round (ldexp frac 23)) exp)) ; Subnormal
(t (+ (ash exp 23) (logand #x7fffff (round (ldexp frac 24)))))) ; Normal
signmask)))
(defsubst xcb:-binary64-to-f64 (value)
"Decode binary64 VALUE into a float."
(let ((sign (pcase (ash value -63)
(0 +0.0)
(1 -0.0)
(_ (error "[XCB] Value too large for a float64: %d" value))))
(exp (logand 2047 (ash value -52)))
(frac (logand #xfffffffffffff value)))
(copysign ; Use copysign, not multiplication, to deal with +/- NAN.
(pcase exp
(2047 (if (zerop frac) 1e+INF 1e+NaN)) ; INF/NAN
(0 (ldexp frac -1074)) ; Subnormal
(_ (ldexp (+ #x10000000000000 frac) (- exp 1075)))) ; Normal
sign)))
(defsubst xcb:-binary32-to-f32 (value)
"Decode binary32 VALUE into a float."
(let ((sign (pcase (ash value -31)
(0 +0.0)
(1 -0.0)
(_ (error "[XCB] Value too large for a float32: %d" value))))
(exp (logand 255 (ash value -23)))
(frac (logand #x7fffff value)))
(copysign ; Use copysign, not multiplication, to deal with +/- NAN.
(pcase exp
(255 (if (zerop frac) 1e+INF 1e+NaN)) ; INF/NAN
(0 (ldexp frac -149)) ; Subnormal
(_ (ldexp (+ #x800000 frac) (- exp 150)))) ; Normal
sign)))
(defmacro xcb:-fieldref (field)
"Evaluate a field."
`(slot-value obj ,field))
(defmacro xcb:-paramref (field)
"Evaluate a field."
`(slot-value ctx ,field))
(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.
Also the fundamental type is stored in the `xcb--typealias'
variable property (for internal use only)."
`(progn
;; FIXME: `new-type' should probably just not be eval'd at all,
;; but that requires changing all callers not to quote their arg.
(cl-deftype ,(eval new-type t) nil ,old-type)
(put ,new-type 'xcb--typealias
(or (get ,old-type 'xcb--typealias) ,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)
;; 8 B unsigned integer
(cl-deftype xcb:-u8 () t)
;; floats & doubles
(cl-deftype xcb:-f32 () t)
(cl-deftype xcb:-f64 () t)
;;
(cl-deftype xcb:-pad () t)
;; with align attribute
(cl-deftype xcb:-pad-align () t)
;;
(xcb:deftypealias 'xcb:fd 'xcb:-i4)
;;
(cl-deftype xcb:-list () t)
;;
(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:CARD64 'xcb:-u8)
(xcb:deftypealias 'xcb:BOOL 'xcb:-u1)
(xcb:deftypealias 'xcb:float 'xcb:-f32)
(xcb:deftypealias 'xcb:double 'xcb:-f64)
;;;; Struct type
(eval-and-compile
(defvar xcb:lsb t
"Non-nil for LSB first (i.e., little-endian), nil otherwise.
Consider let-bind it rather than change its global value."))
(defclass xcb:--struct ()
nil)
(cl-defmethod slot-unbound ((object xcb:--struct) class slot-name fn)
(unless (eq fn #'oref-default)
(xcb:-log "unbound-slot: %s" (list (eieio-class-name class)
(eieio-object-name object)
slot-name fn))))
(defclass xcb:-struct (xcb:--struct)
((~lsb :initarg :~lsb
:initform (symbol-value 'xcb:lsb) ;see `eieio-default-eval-maybe'
:type xcb:-ignore)
(~size :initform nil :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 (eq type 'xcb:-ignore)
(setq name (eieio-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)))))
;; If we specify a size, verify that it matches the actual size.
(when-let* ((size-exp (slot-value obj '~size))
(size (eval size-exp `((obj . ,obj)))))
(unless (length= result size)
(error "[XCB] Unexpected size for type %s: got %d, expected %d"
(type-of obj)
(length result)
size)))
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 (or (get type 'xcb--typealias) 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:-u8
(if (slot-value obj '~lsb) (xcb:-pack-u8-lsb value) (xcb:-pack-u8 value)))
(`xcb:-f32
(let ((value (xcb:-f32-to-binary32 value)))
(if (slot-value obj '~lsb) (xcb:-pack-u4-lsb value) (xcb:-pack-u4 value))))
(`xcb:-f64
(let ((value (xcb:-f64-to-binary64 value)))
(if (slot-value obj '~lsb) (xcb:-pack-u8-lsb value) (xcb:-pack-u8 value))))
(`xcb:void (vector value))
(`xcb:-pad
(unless (integerp value)
(setq value (eval value `((obj . ,obj)))))
(make-vector value 0))
(`xcb:-pad-align
;; The length slot in xcb:-request is left out
(let ((len (if (object-of-class-p obj 'xcb:-request) (+ pos 2) pos)))
(when (vectorp value)
;; Alignment with offset.
(setq len (- len (aref value 1))
value (aref value 0)))
(unless (integerp value)
(setq value (eval value `((obj . ,obj)))))
(make-vector (% (- value (% len value)) value) 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)))
;; The data may be large, and if it's a string that's supposed
;; to be converted to a vector of bytes, then the transform can
;; be done trivially and much faster by just coercing.
(if (and (eq list-type 'xcb:BYTE)
(eq (type-of data) 'string))
(cl-coerce data 'vector)
(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 flag 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)
(cl-assert (or (integerp condition) (listp condition)))
(if (integerp condition)
(setq flag (/= 0 (logand expression condition)))
(if (eq 'logior (car condition))
(setq flag (/= 0 (logand expression
(apply #'logior (cdr condition)))))
(setq flag (memq expression condition))))
(when flag
(dolist (name name-list)
(catch 'break
(dolist (slot slots) ;better way to find the slot type?
(when (eq name (eieio-slot-descriptor-name slot))
(setq slot-type (cl--slot-descriptor-type slot))
(throw 'break nil))))
(unless (eq slot-type 'xcb:-ignore)
(setq result
(vconcat result
(xcb:-marshal-field obj slot-type
(slot-value obj name)
(+ pos
(length result)))))))))
result))
((guard (child-of-class-p type '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
total-length)
"Fill in fields of struct OBJ according to its byte-array representation.
The optional argument CTX is for ."
(unless total-length
(setq total-length (length byte-array)))
(let ((slots (eieio-class-slots (eieio-object-class obj)))
(result 0)
slot-name tmp type)
(catch 'break
(dolist (slot slots)
(setq type (cl--slot-descriptor-type slot))
(unless (eq type 'xcb:-ignore)
(setq slot-name (eieio-slot-descriptor-name slot)
tmp (xcb:-unmarshal-field obj type byte-array result
(eieio-oref-default obj slot-name)
ctx total-length))
(setf (slot-value obj slot-name) (car tmp))
(setq result (+ result (cadr tmp)))
(when (eq type 'xcb:-switch) ;xcb:-switch always finishes a struct
(throw 'break 'nil)))))
;; Let the struct compute it's size if a length field is specified. This lets us skip unknown
;; fields.
(when-let* ((size-exp (slot-value obj '~size))
(size (eval size-exp `((obj . ,obj)))))
;; Make sure the stated size is reasonable.
(cond
((< size result)
(error "[XCB] Object of type `%s' specified a size (%d) less than the number of bytes read (%d)"
(type-of obj) size result))
((length< byte-array (- size result))
(error "[XCB] Object of type `%s' specified a size (%d) greater than the size of the input (%d)"
(type-of obj) size (+ result (length byte-array)))))
;; Skip any additional bytes.
(setq result size))
result))
(cl-defmethod xcb:-unmarshal-field ((obj xcb:-struct) type data offset
initform &optional ctx total-length)
"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 .
This method returns a list of two components, with the first being the result
and the second the consumed length."
(pcase (or (get type 'xcb--typealias) type)
(`xcb:-u1 (list (aref data offset) 1))
(`xcb:-i1 (let ((result (aref data offset)))
(list (if (< result 128) result (- result 255)) 1)))
(`xcb:-u2 (list (if (slot-value obj '~lsb)
(xcb:-unpack-u2-lsb data offset)
(xcb:-unpack-u2 data offset))
2))
(`xcb:-i2 (list (if (slot-value obj '~lsb)
(xcb:-unpack-i2-lsb data offset)
(xcb:-unpack-i2 data offset))
2))
(`xcb:-u4 (list (if (slot-value obj '~lsb)
(xcb:-unpack-u4-lsb data offset)
(xcb:-unpack-u4 data offset))
4))
(`xcb:-i4 (list (if (slot-value obj '~lsb)
(xcb:-unpack-i4-lsb data offset)
(xcb:-unpack-i4 data offset))
4))
(`xcb:-u8 (list (if (slot-value obj '~lsb)
(xcb:-unpack-u8-lsb data offset)
(xcb:-unpack-u8 data offset))
8))
(`xcb:-f32 (list (xcb:-binary32-to-f32
(if (slot-value obj '~lsb)
(xcb:-unpack-u4-lsb data offset)
(xcb:-unpack-u4 data offset)))
4))
(`xcb:-f64 (list (xcb:-binary64-to-f64
(if (slot-value obj '~lsb)
(xcb:-unpack-u8-lsb data offset)
(xcb:-unpack-u8 data offset)))
8))
(`xcb:void (list (aref data offset) 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
(let ((len (- total-length (- (length data) offset))))
(if (vectorp initform)
;; Alignment with offset.
(setq len (- len (aref initform 1))
initform (aref initform 0))
(unless (integerp initform)
(when (eq 'quote (car initform))
(setq initform (cadr initform)))
(setq initform (eval initform `((obj . ,obj) (ctx . ,ctx))))))
(list initform (% (- initform (% len initform)) 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 offset
(+ offset list-size))
nil))
'iso-latin-1)))
(`xcb:void ;for further unmarshalling
(setf (slot-value obj list-name)
(substring data offset (+ offset list-size))))
(x
(let ((count 0)
result tmp)
(dotimes (_ list-size)
(setq tmp (xcb:-unmarshal-field obj x data (+ offset count) nil
nil total-length))
(setq result (nconc result (list (car tmp))))
(setq count (+ count (cadr tmp))))
(setf (slot-value obj list-name) result)
(setq list-size count)))) ;to byte length
(list initform list-size)))
(`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)
(cl-assert (or (integerp condition) (listp condition)))
(if (integerp condition)
(setq flag (/= 0 (logand expression condition)))
(if (eq 'logior (car condition))
(setq flag (/= 0 (logand expression
(apply #'logior (cdr condition)))))
(setq flag (memq expression condition))))
(when flag
(dolist (name name-list)
(catch 'break
(dolist (slot slots) ;better way to find the slot type?
(when (eq name (eieio-slot-descriptor-name slot))
(setq slot-type (cl--slot-descriptor-type slot))
(throw 'break nil))))
(unless (eq slot-type 'xcb:-ignore)
(setq tmp (xcb:-unmarshal-field obj slot-type data (+ offset count)
(eieio-oref-default obj name)
nil total-length))
(setf (slot-value obj name) (car tmp))
(setq count (+ count (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 (substring data offset) obj
total-length)))
(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)
((~reply :initform 1 :type xcb:-u1))
:documentation "X reply type.")
(defclass xcb:-event (xcb:-struct)
((~code :type xcb:-u1))
:documentation "Event type.")
;; Implemented in 'xcb.el'
(cl-defgeneric xcb:-error-or-event-class->number (obj class))
;;
(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 of extensions. If SEQUENCE is non-nil, it is used as
the sequence number of the synthetic event (if the event uses sequence
number); otherwise, 0 is assumed.
This method auto-pads short results to 32 bytes."
(let ((event-number
(xcb:-error-or-event-class->number connection
(eieio-object-class obj)))
result)
(when (consp event-number)
(setq event-number (cdr event-number))
(if (= 1 (length event-number))
;; XKB event.
(setf (slot-value obj 'xkbType) (aref event-number 0))
;; Generic event.
(setf (slot-value obj 'extensions) (aref event-number 0)
(slot-value obj 'evtype) (aref event-number 1))))
(when (slot-exists-p obj '~sequence)
(setf (slot-value obj '~sequence) (or sequence 0)))
(setq result (cl-call-next-method obj))
(when (> 32 (length result))
(setq result (vconcat result (make-vector (- 32 (length result)) 0))))
result))
(defclass xcb:-generic-event (xcb:-event)
((~code :initform 35)
(~extension :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(~length :type xcb:CARD32)
(~evtype :type xcb:CARD16))
:documentation "Generic event type.")
(defclass xcb:-error (xcb:-struct)
((~error :initform 0 :type xcb:-u1)
(~code :type xcb:-u1)
(~sequence :type xcb:CARD16))
:documentation "X error type.")
(defclass xcb:-union (xcb:-struct)
((~size :initarg :~size :type xcb:-ignore)) ;Size of the largest member.
:documentation "Union type.")
;;
(cl-defmethod slot-unbound ((_object xcb:-union) _class _slot-name _fn)
nil)
;;
(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)))
(size (slot-value obj '~size))
result slot type name tmp)
(while (and (not result) slots (> size (length result)))
(setq slot (pop slots))
(setq type (cl--slot-descriptor-type slot)
name (eieio-slot-descriptor-name slot))
(unless (or (not (slot-value obj name))
(eq type 'xcb:-ignore)
;; Dealing with `xcb:-list' type
(and (eq type 'xcb:-list)
(not (slot-value obj (plist-get (slot-value obj name)
'name)))))
(setq tmp (xcb:-marshal-field obj (cl--slot-descriptor-type slot)
(slot-value obj name)))
(when (> (length tmp) (length result))
(setq result tmp))))
(cond
((length< result size)
(setq result (vconcat result (make-vector (- size (length result)) 0))))
((length> result size)
(error "[XCB] Marshaled enum `%s' is larger than its declared size (%d > %d)"
(type-of obj) (length result) size)))
result))
;;
(cl-defmethod xcb:unmarshal ((obj xcb:-union) byte-array &optional ctx
total-length)
"Fill in every field in union OBJ, according to BYTE-ARRAY.
The optional argument CTX is for ."
(unless total-length
(setq total-length (length byte-array)))
(let ((slots (eieio-class-slots (eieio-object-class obj)))
slot-name tmp type)
(dolist (slot slots)
(setq type (cl--slot-descriptor-type slot))
(unless (eq type 'xcb:-ignore)
(setq slot-name (eieio-slot-descriptor-name slot)
tmp (xcb:-unmarshal-field obj type byte-array 0
(eieio-oref-default obj slot-name)
ctx total-length))
(setf (slot-value obj (eieio-slot-descriptor-name slot)) (car tmp))))
(slot-value obj '~size)))
(provide 'xcb-types)
;;; xcb-types.el ends here
xelb-master/xcb-xc_misc.el 0000664 0000000 0000000 00000005104 14562520677 0016040 0 ustar 00root root 0000000 0000000 ;;; xcb-xc_misc.el --- X11 XCMisc extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xc_misc.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(ids-len :initarg :ids-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(ids~ :initform
'(name ids type xcb:CARD32 size
(xcb:-fieldref 'ids-len))
:type xcb:-list)
(ids :initarg :ids :type xcb:-ignore)))
(provide 'xcb-xc_misc)
;;; xcb-xc_misc.el ends here
xelb-master/xcb-xembed.el 0000664 0000000 0000000 00000015411 14562520677 0015661 0 ustar 00root root 0000000 0000000 ;;; xcb-xembed.el --- XEmbed protocol -*- lexical-binding: t -*-
;; Copyright (C) 2016-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library implements the XEmbed protocol.
;; Usage tips:
;; + Do not forget to call `xcb:xembed:init' for _every_ connection using this
;; library.
;; + Use `xcb:xembed:SendEvent' instead of `xcb:SendEvent' to send XEmbed
;; messages defined in this library.
;; References:
;; + Xembed protocol (https://specifications.freedesktop.org/
;; xembed-spec/xembed-spec-0.5.html)
;;; Code:
(require 'xcb-icccm)
;; XEmbed atoms
(eval-and-compile
(defconst xcb:xembed:-atoms
'(_XEMBED_INFO _XEMBED)
"XEmbed atoms.")
(dolist (atom xcb:xembed:-atoms)
(eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil))))
;; XEMBED message opcodes.
(defconst xcb:xembed:opcode:EMBEDDED-NOTIFY 0)
(defconst xcb:xembed:opcode:WINDOW-ACTIVATE 1)
(defconst xcb:xembed:opcode:WINDOW-DEACTIVATE 2)
(defconst xcb:xembed:opcode:REQUEST-FOCUS 3)
(defconst xcb:xembed:opcode:FOCUS-IN 4)
(defconst xcb:xembed:opcode:FOCUS-OUT 5)
(defconst xcb:xembed:opcode:FOCUS-NEXT 6)
(defconst xcb:xembed:opcode:FOCUS-PREV 7)
(defconst xcb:xembed:opcode:MODALITY-ON 10)
(defconst xcb:xembed:opcode:MODALITY-OFF 11)
(defconst xcb:xembed:opcode:REGISTER-ACCELERATOR 12)
(defconst xcb:xembed:opcode:UNREGISTER-ACCELERATOR 13)
(defconst xcb:xembed:opcode:ACTIVATE-ACCELERATOR 14)
(cl-defmethod xcb:xembed:init ((obj xcb:connection) &optional force)
"Initialize the XEmbed module.
This method must be called before using any other method in this module."
(when (or force (not xcb:Atom:_XEMBED_INFO))
(xcb:icccm:intern-atoms obj xcb:xembed:-atoms force)))
;; Flags for _XEMBED_INFO.
(defconst xcb:xembed:MAPPED 1)
(defclass xcb:xembed:get-_XEMBED_INFO (xcb:icccm:-GetProperty-explicit)
((property :initform 'xcb:Atom:_XEMBED_INFO)
(type :initform 'xcb:Atom:_XEMBED_INFO)))
(defclass xcb:xembed:get-_XEMBED_INFO~reply
(xcb:icccm:-GetProperty-explicit~reply)
((version :type xcb:-ignore)
(flags :type xcb:-ignore)))
(defclass xcb:xembed:set-_XEMBED_INFO (xcb:icccm:-ChangeProperty-explicit)
((property :initform 'xcb:Atom:_XEMBED_INFO)
(type :initform 'xcb:Atom:_XEMBED_INFO)
(format :initform 32)
(version :initarg :version :type xcb:-ignore)
(flags :initarg :flags :type xcb:-ignore)))
(defclass xcb:xembed:SendEvent (xcb:SendEvent)
((propagate :initform 0)
(event-mask :initform 'xcb:EventMask:NoEvent))
:documentation "Send XEmbed message.")
(defclass xcb:xembed:-ClientMessage
(xcb:icccm:--ClientMessage xcb:ClientMessage)
((format :initform 32)
(type :initform 'xcb:Atom:_XEMBED)
(time :initarg :time :type xcb:TIMESTAMP) ;new slot
(opcode :initarg :opcode :type xcb:CARD32) ;new slot
(detail :initarg :detail :initform 0 :type xcb:CARD32)) ;new slot
:documentation "An XEmbed client message.")
(defclass xcb:xembed:EMBEDDED-NOTIFY (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:EMBEDDED-NOTIFY)
(embedder :initarg :embedder :type xcb:WINDOW)
(version :initarg :version :type xcb:CARD32)))
(defclass xcb:xembed:WINDOW-ACTIVATE (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:WINDOW-ACTIVATE)
(pad~0 :initform 8 :type xcb:-pad)))
(defclass xcb:xembed:WINDOW-DEACTIVATE (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:WINDOW-DEACTIVATE)
(pad~0 :initform 8 :type xcb:-pad)))
(defclass xcb:xembed:REQUEST-FOCUS (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:REQUEST-FOCUS)
(pad~0 :initform 8 :type xcb:-pad)))
;; Details for xcb:xembed:FOCUS-IN.
(defconst xcb:xembed:FOCUS:CURRENT 0)
(defconst xcb:xembed:FOCUS:FIRST 1)
(defconst xcb:xembed:FOCUS:LAST 2)
;; Directions for focusing.
(defconst xcb:xembed:DIRECTION:DEFAULT 0)
(defconst xcb:xembed:DIRECTION:UP-DOWN 1)
(defconst xcb:xembed:DIRECTION:LEFT-RIGHT 2)
(defclass xcb:xembed:FOCUS-IN (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:FOCUS-IN)
(direction :initarg :direction :initform 0 :type xcb:CARD32)
(pad~0 :initform 4 :type xcb:-pad)))
(defclass xcb:xembed:FOCUS-OUT (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:FOCUS-OUT)
(pad~0 :initform 8 :type xcb:-pad)))
(defclass xcb:xembed:FOCUS-NEXT (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:FOCUS-NEXT)
(direction :initarg :direction :initform 0 :type xcb:CARD32)
(pad~0 :initform 4 :type xcb:-pad)))
(defclass xcb:xembed:FOCUS-PREV (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:FOCUS-PREV)
(direction :initarg :direction :initform 0 :type xcb:CARD32)
(pad~0 :initform 4 :type xcb:-pad)))
;; Modifiers field for xcb:xembed:REGISTER-ACCELERATOR.
(defconst xcb:xembed:MODIFIER:SHIFT 1)
(defconst xcb:xembed:MODIFIER:CONTROL 2)
(defconst xcb:xembed:MODIFIER:ALT 4)
(defconst xcb:xembed:MODIFIER:SUPER 8)
(defconst xcb:xembed:MODIFIER:HYPER 16)
(defclass xcb:xembed:REGISTER-ACCELERATOR (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:REGISTER-ACCELERATOR)
(keysym :initarg :keysym :type xcb:KEYSYM)
(modifier :initarg :modifier :type xcb:CARD32)))
(defclass xcb:xembed:UNREGISTER-ACCELERATOR (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:UNREGISTER-ACCELERATOR)
(pad~0 :initform 8 :type xcb:-pad)))
;; Flags for XEMBED-ACTIVATE-ACCELERATOR.
(defconst xcb:xembed:ACCELERATOR:OVERLOADED 1)
(defclass xcb:xembed:ACTIVATE-ACCELERATOR (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:ACTIVATE-ACCELERATOR)
(flags :initarg :flags :type xcb:CARD32)
(pad~0 :initform 4 :type xcb:-pad)))
(defclass xcb:xembed:MODALITY-ON (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:MODALITY-ON)
(pad~0 :initform 8 :type xcb:-pad)))
(defclass xcb:xembed:MODALITY-OFF (xcb:xembed:-ClientMessage)
((opcode :initform 'xcb:xembed:opcode:MODALITY-OFF)
(pad~0 :initform 8 :type xcb:-pad)))
(provide 'xcb-xembed)
;;; xcb-xembed.el ends here
xelb-master/xcb-xevie.el 0000664 0000000 0000000 00000006402 14562520677 0015535 0 ustar 00root root 0000000 0000000 ;;; xcb-xevie.el --- X11 Xevie extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xevie.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)))
(provide 'xcb-xevie)
;;; xcb-xevie.el ends here
xelb-master/xcb-xf86dri.el 0000664 0000000 0000000 00000017543 14562520677 0015717 0 ustar 00root root 0000000 0000000 ;;; xcb-xf86dri.el --- X11 XF86Dri extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xf86dri.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name bus-id type xcb:char size
(xcb:-fieldref 'bus-id-len))
:type xcb:-list)
(bus-id :initarg :bus-id :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name client-driver-name type xcb:char size
(xcb:-fieldref 'client-driver-name-len))
:type xcb:-list)
(client-driver-name :initarg :client-driver-name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name clip-rects type xcb:xf86dri:DrmClipRect size
(xcb:-fieldref 'num-clip-rects))
:type xcb:-list)
(clip-rects :initarg :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)
(back-clip-rects :initarg :back-clip-rects :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name device-private type xcb:CARD32 size
(xcb:-fieldref 'device-private-size))
:type xcb:-list)
(device-private :initarg :device-private :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(authenticated :initarg :authenticated :type xcb:CARD32)))
(provide 'xcb-xf86dri)
;;; xcb-xf86dri.el ends here
xelb-master/xcb-xf86vidmode.el 0000664 0000000 0000000 00000045156 14562520677 0016571 0 ustar 00root root 0000000 0000000 ;;; xcb-xf86vidmode.el --- X11 XF86VidMode extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xf86vidmode.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :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~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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name hsync type xcb:xf86vidmode:SYNCRANGE size
(xcb:-fieldref 'num-hsync))
:type xcb:-list)
(hsync :initarg :hsync :type xcb:-ignore)
(vsync~ :initform
'(name vsync type xcb:xf86vidmode:SYNCRANGE size
(xcb:-fieldref 'num-vsync))
:type xcb:-list)
(vsync :initarg :vsync :type xcb:-ignore)
(vendor~ :initform
'(name vendor type xcb:char size
(xcb:-fieldref 'vendor-length))
:type xcb:-list)
(vendor :initarg :vendor :type xcb:-ignore)
(alignment-pad~ :initform
'(name alignment-pad type xcb:void size
(-
(logand
(+
(xcb:-fieldref 'vendor-length)
3)
(lognot 3))
(xcb:-fieldref 'vendor-length)))
:type xcb:-list)
(alignment-pad :initarg :alignment-pad :type xcb:-ignore)
(model~ :initform
'(name model type xcb:char size
(xcb:-fieldref 'model-length))
:type xcb:-list)
(model :initarg :model :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(modecount :initarg :modecount :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(modeinfo~ :initform
'(name modeinfo type xcb:xf86vidmode:ModeInfo size
(xcb:-fieldref 'modecount))
:type xcb:-list)
(modeinfo :initarg :modeinfo :type xcb:-ignore)))
(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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(defclass xcb:xf86vidmode:ValidateModeLine~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name private type xcb:CARD8 size
(xcb:-fieldref 'privsize))
:type xcb:-list)
(private :initarg :private :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name clock type xcb:CARD32 size
(*
(- 1
(logand
(xcb:-fieldref 'flags)
1))
(xcb:-fieldref 'clocks)))
:type xcb:-list)
(clock :initarg :clock :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(size :initarg :size :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(red~ :initform
'(name red type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(red :initarg :red :type xcb:-ignore)
(green~ :initform
'(name green type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(green :initarg :green :type xcb:-ignore)
(blue~ :initform
'(name blue type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(blue :initarg :blue :type xcb:-ignore)))
(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~ :initform
'(name red type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(red :initarg :red :type xcb:-ignore)
(green~ :initform
'(name green type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(green :initarg :green :type xcb:-ignore)
(blue~ :initform
'(name blue type xcb:CARD16 size
(logand
(+
(xcb:-fieldref 'size)
1)
(lognot 1)))
:type xcb:-list)
(blue :initarg :blue :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(permissions :initarg :permissions :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)))
(defclass xcb:xf86vidmode:BadClock
(xcb:-error)
((~code :initform 0)))
(defclass xcb:xf86vidmode:BadHTimings
(xcb:-error)
((~code :initform 1)))
(defclass xcb:xf86vidmode:BadVTimings
(xcb:-error)
((~code :initform 2)))
(defclass xcb:xf86vidmode:ModeUnsuitable
(xcb:-error)
((~code :initform 3)))
(defclass xcb:xf86vidmode:ExtensionDisabled
(xcb:-error)
((~code :initform 4)))
(defclass xcb:xf86vidmode:ClientNotLocal
(xcb:-error)
((~code :initform 5)))
(defclass xcb:xf86vidmode:ZoomLocked
(xcb:-error)
((~code :initform 6)))
(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)
;;; xcb-xf86vidmode.el ends here
xelb-master/xcb-xfixes.el 0000664 0000000 0000000 00000035741 14562520677 0015733 0 ustar 00root root 0000000 0000000 ;;; xcb-xfixes.el --- X11 XFixes extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xfixes.xml',
;; which you can retrieve from .
;;; Code:
(require 'xcb-types)
(defconst xcb:xfixes:-extension-xname "XFIXES")
(defconst xcb:xfixes:-extension-name "XFixes")
(defconst xcb:xfixes:-major-version 6)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
((~code :initform 0)
(subtype :initarg :subtype :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(subtype :initarg :subtype :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name cursor-image type xcb:CARD32 size
(*
(xcb:-fieldref 'width)
(xcb:-fieldref 'height)))
:type xcb:-list)
(cursor-image :initarg :cursor-image :type xcb:-ignore)))
(xcb:deftypealias 'xcb:xfixes:REGION 'xcb:-u4)
(defclass xcb:xfixes:BadRegion
(xcb:-error)
((~code :initform 0)))
(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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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:render: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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(extents :initarg :extents :type xcb:RECTANGLE)
(pad~1 :initform 16 :type xcb:-pad)
(rectangles~ :initform
'(name rectangles type xcb:RECTANGLE size
(/
(xcb:-fieldref 'length)
2))
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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:render: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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'nbytes))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(atom :initarg :atom :type xcb:ATOM)
(nbytes :initarg :nbytes :type xcb:CARD16)
(pad~1 :initform 18 :type xcb:-pad)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'nbytes))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name cursor-image type xcb:CARD32 size
(*
(xcb:-fieldref 'width)
(xcb:-fieldref 'height)))
:type xcb:-list)
(cursor-image :initarg :cursor-image :type xcb:-ignore)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'nbytes))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'nbytes))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name devices type xcb:CARD16 size
(xcb:-fieldref 'num-devices))
:type xcb:-list)
(devices :initarg :devices :type xcb:-ignore)))
(defclass xcb:xfixes:DeletePointerBarrier
(xcb:-request)
((~opcode :initform 32 :type xcb:-u1)
(barrier :initarg :barrier :type xcb:xfixes:BARRIER)))
(defconst xcb:xfixes:ClientDisconnectFlags:Default 0)
(defconst xcb:xfixes:ClientDisconnectFlags:Terminate 1)
(defclass xcb:xfixes:SetClientDisconnectMode
(xcb:-request)
((~opcode :initform 33 :type xcb:-u1)
(disconnect-mode :initarg :disconnect-mode :type xcb:CARD32)))
(defclass xcb:xfixes:GetClientDisconnectMode
(xcb:-request)
((~opcode :initform 34 :type xcb:-u1)))
(defclass xcb:xfixes:GetClientDisconnectMode~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(disconnect-mode :initarg :disconnect-mode :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)))
(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)
;;; xcb-xfixes.el ends here
xelb-master/xcb-xim.el 0000664 0000000 0000000 00000117410 14562520677 0015214 0 ustar 00root root 0000000 0000000 ;;; xcb-xim.el --- XIM Protocol -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This library implements the X Input Method Protocol.
;; Please note that the byte order of an XIM packet can be different from that
;; of X packets. Moreover, if you are writing an XIM server, the byte order is
;; actually specified by the client. Therefore we provide a different global
;; variable `xim:lsb' to indicate the byte order of classes in this library.
;; You should let-bind it whenever creating new objects.
;; Todo:
;; + Add extension support.
;; References:
;; + XIM (http://www.x.org/releases/X11R7.7/doc/libX11/XIM/xim.txt)
;;; Code:
(require 'xcb-types)
(require 'xcb-xlib)
;;;; Protocol number
(defconst xim:opcode:connect 1)
(defconst xim:opcode:connect-reply 2)
(defconst xim:opcode:disconnect 3)
(defconst xim:opcode:disconnect-reply 4)
(defconst xim:opcode:auth-required 10)
(defconst xim:opcode:auth-reply 11)
(defconst xim:opcode:auth-next 12)
(defconst xim:opcode:auth-setup 13)
(defconst xim:opcode:auth-ng 14)
(defconst xim:opcode:error 20)
(defconst xim:opcode:open 30)
(defconst xim:opcode:open-reply 31)
(defconst xim:opcode:close 32)
(defconst xim:opcode:close-reply 33)
(defconst xim:opcode:register-triggerkeys 34)
(defconst xim:opcode:trigger-notify 35)
(defconst xim:opcode:trigger-notify-reply 36)
(defconst xim:opcode:set-event-mask 37)
(defconst xim:opcode:encoding-negotiation 38)
(defconst xim:opcode:encoding-negotiation-reply 39)
(defconst xim:opcode:query-extension 40)
(defconst xim:opcode:query-extension-reply 41)
(defconst xim:opcode:set-im-values 42)
(defconst xim:opcode:set-im-values-reply 43)
(defconst xim:opcode:get-im-values 44)
(defconst xim:opcode:get-im-values-reply 45)
(defconst xim:opcode:create-ic 50)
(defconst xim:opcode:create-ic-reply 51)
(defconst xim:opcode:destroy-ic 52)
(defconst xim:opcode:destroy-ic-reply 53)
(defconst xim:opcode:set-ic-values 54)
(defconst xim:opcode:set-ic-values-reply 55)
(defconst xim:opcode:get-ic-values 56)
(defconst xim:opcode:get-ic-values-reply 57)
(defconst xim:opcode:set-ic-focus 58)
(defconst xim:opcode:unset-ic-focus 59)
(defconst xim:opcode:forward-event 60)
(defconst xim:opcode:sync 61)
(defconst xim:opcode:sync-reply 62)
(defconst xim:opcode:commit 63)
(defconst xim:opcode:reset-ic 64)
(defconst xim:opcode:reset-ic-reply 65)
(defconst xim:opcode:geometry 70)
(defconst xim:opcode:str-conversion 71)
(defconst xim:opcode:str-conversion-reply 72)
(defconst xim:opcode:preedit-start 73)
(defconst xim:opcode:preedit-start-reply 74)
(defconst xim:opcode:preedit-draw 75)
(defconst xim:opcode:preedit-caret 76)
(defconst xim:opcode:preedit-caret-reply 77)
(defconst xim:opcode:preedit-done 78)
(defconst xim:opcode:status-start 79)
(defconst xim:opcode:status-draw 80)
(defconst xim:opcode:status-done 81)
(defconst xim:opcode:preeditstate 82)
;;;; Basic requests packet format
(eval-and-compile
(defvar xim:lsb xcb:lsb "Non-nil for LSB first, nil otherwise.
Consider let-bind it rather than change its global value."))
(defclass xim:-struct (xcb:-struct)
((~lsb :initform (symbol-value 'xim:lsb)))
:documentation "Struct type for XIM.")
(defclass xim:-request (xim:-struct)
((~major-opcode :type xcb:CARD8)
(~minor-opcode :initform 0 :type xcb:CARD8)
(~length :initform 0 :type xcb:CARD16))
:documentation "XIM request type.")
(cl-defmethod xcb:marshal ((obj xim:-request))
"Return the byte-array representation of XIM request OBJ."
(let ((result (cl-call-next-method obj)))
(vconcat (substring result 0 2)
(funcall (if (slot-value obj '~lsb)
#'xcb:-pack-u2-lsb
#'xcb:-pack-u2)
(1- (/ (length result) 4)))
(substring result 4))))
;;;; Data types
(xcb:deftypealias 'xim:BITMASK16 'xcb:CARD16)
(xcb:deftypealias 'xim:BITMASK32 'xcb:CARD32)
(defsubst xim:PADDING (N)
"Pad N to 4 bytes."
(% (- 4 (% N 4)) 4))
(xcb:deftypealias 'xim:LPCE 'xcb:char)
(defclass xim:STRING (xim:-struct)
((length :initarg :length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xim:LPCE size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
(defclass xim:STR (xim:-struct)
((length :initarg :length :type xcb:-u1)
(name :initarg :name :type xcb:-ignore)
(name~ :initform '(name name type xcb:char size (xcb:-fieldref 'length))
:type xcb:-list)))
(defclass xim:XIMATTR (xim:-struct)
((id :initarg :id :type xcb:CARD16)
(type :initarg :type :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(attribute :initarg :attribute :type xcb:-ignore)
(attribute~ :initform '(name attribute type xcb:char
size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
(defclass xim:XICATTR (xim:XIMATTR)
nil)
(defconst xim:ATTRIBUTE-VALUE-TYPE:separator-of-nestedlist 0)
(defconst xim:ATTRIBUTE-VALUE-TYPE:byte-data 1)
(defconst xim:ATTRIBUTE-VALUE-TYPE:word-data 2)
(defconst xim:ATTRIBUTE-VALUE-TYPE:long-data 3)
(defconst xim:ATTRIBUTE-VALUE-TYPE:char-data 4)
(defconst xim:ATTRIBUTE-VALUE-TYPE:window 5)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-styles 10)
(defconst xim:ATTRIBUTE-VALUE-TYPE:x-rectangle 11)
(defconst xim:ATTRIBUTE-VALUE-TYPE:x-point 12)
(defconst xim:ATTRIBUTE-VALUE-TYPE:x-font-set 13)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-hot-key-triggers 15)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-string-conversion 17)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-preedit-state 18)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-reset-state 19)
(defconst xim:ATTRIBUTE-VALUE-TYPE:xim-nested-list #x7FFF)
(defclass xim:XIMStyles (xim:-struct)
((number :initarg :number :type xcb:-u2)
(pad~0 :initform 2 :type xcb:-pad)
(styles :initarg :styles :type xcb:-ignore)
(styles~ :initform '(name styles type xcb:CARD32
size (/ (xcb:-fieldref 'number) 4))
:type xcb:-list)))
;; Auto set the number slot
(cl-defmethod xcb:marshal ((obj xim:XIMStyles))
(setf (slot-value obj 'number) (* 4 (length (slot-value obj 'styles))))
(cl-call-next-method obj))
(defclass xim:XFontSet (xim:-struct)
((length :initarg :length :type xcb:-u2)
(base-font-name :initarg :base-font-name :type xcb:-ignore)
(base-font-name~ :initform '(name base-font-name type xim:LPCE
size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
(defclass xim:XIMHotKeyTriggers (xim:-struct)
((number :type xcb:-u4)
(triggers :type xcb:-ignore)
(triggers~ :initform '(name triggers type xim:XIMTRIGGERKEY
size (xcb:-fieldref 'number))
:type xcb:-list)
(states :type xcb:-ignore)
(states~ :initform '(name states type xim:XIMHOTKEYSTATE
size (xcb:-fieldref 'number))
:type xcb:-list)))
(defclass xim:XIMTRIGGERKEY (xim:-struct)
((keysym :initarg :keysym :type xcb:CARD32)
(modifier :initarg :modifier :type xcb:CARD32)
(modifier-mask :initarg :modifier-mask :type xcb:CARD32)))
(defclass xim:ENCODINGINFO (xim:-struct)
((length :initarg :length :type xcb:-u2)
(encoding-info :initarg :encoding-info :type xcb:-ignore)
(encoding-info~ :initform '(name encoding-info type xcb:char
size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
(defclass xim:EXT (xim:-struct)
((major-opcode :initarg :major-opcode :type xcb:CARD8)
(minor-opcode :initarg :minor-opcode :type xcb:CARD8)
(length :initarg :length :type xcb:-u2)
(name :initarg :name :type xcb:-ignore)
(name~ :initform '(name name type xcb:char size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(defclass xim:XIMATTRIBUTE (xim:-struct)
((id :initarg :id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(value :initarg :value :type xcb:-ignore)
(value~ :initform '(name value type xcb:void size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(cl-defmethod xcb:marshal ((obj xim:XIMATTRIBUTE))
(let ((value (slot-value obj 'value)))
(when (eieio-object-p value)
(setq value (xcb:marshal value))
(setf (slot-value obj 'length) (length value)
(slot-value obj 'value) value))
(cl-call-next-method obj)))
(defclass xim:XICATTRIBUTE (xim:XIMATTRIBUTE)
nil)
(defclass xim:XIMSTRCONVTEXT (xim:-struct)
((feedback :initarg :feedback :type xcb:CARD16)
(string-length :initarg :string-length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xcb:char
size (xcb:-fieldref 'string-length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'string-length))
:type xcb:-pad)
(feedbacks-length :initarg :feedbacks-length :type xcb:-u2)
(pad~1 :initform 2 :type xcb:-pad)
(feedbacks :initarg :feedbacks :type xcb:-ignore)
(feedbacks~ :initform '(name feedbacks type xcb:void
size (xcb:-fieldref 'feedbacks-length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:XIMSTRCONVTEXT))
(let ((feedbacks (mapconcat 'xcb:marshal (slot-value obj 'feedbacks) [])))
(setf (slot-value obj 'feedbacks-length) (length feedbacks)
(slot-value obj 'feedbacks) feedbacks)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:XIMSTRCONVTEXT) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(data (slot-value obj 'feedbacks))
feedback feedbacks)
(while (< 0 (length data))
(setq feedback (make-instance 'xim:XIMSTRCONVFEEDBACK)
data (substring data (xcb:unmarshal feedback data))
feedbacks (nconc feedbacks (list feedback))))
(setf (slot-value obj 'feedbacks) feedbacks)
retval))
(defconst xim:string-conversion:left-edge #x0000001)
(defconst xim:string-conversion:right-edge #x0000002)
(defconst xim:string-conversion:top-edge #x0000004)
(defconst xim:string-conversion:bottom-edge #x0000008)
(defconst xim:string-conversion:convealed #x0000010)
(defconst xim:string-conversion:wrapped #x0000020)
(xcb:deftypealias 'xim:XIMFEEDBACK 'xcb:CARD32)
;; FIXME: different from Xlib:XIM*
(defconst xim:reverse #x000001)
(defconst xim:underline #x000002)
(defconst xim:highlight #x000004)
(defconst xim:primary #x000008)
(defconst xim:secondary #x000010)
(defconst xim:tertiary #x000020)
(defconst xim:visible-to-forward #x000040)
(defconst xim:visible-to-backward #x000080)
(defconst xim:visible-center #x000100)
(xcb:deftypealias 'xim:XIMHOTKEYSTATE 'xcb:CARD32)
(defconst xim:hot-key-state:on #x0000001)
(defconst xim:hot-key-state:off #x0000002)
(xcb:deftypealias 'xim:XIMPREEDITSTATE 'xcb:CARD32)
(defconst xim:preedit:enable #x0000001)
(defconst xim:preedit:disable #x0000002)
(xcb:deftypealias 'xim:XIMRESETSTATE 'xcb:CARD32)
(defconst xim:initial-state #x0000001)
(defconst xim:preserve-state #x0000002)
;;;; Error notification
(defclass xim:error (xim:-request)
((~major-opcode :initform 'xim:opcode:error)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(flag :initarg :flag :type xim:BITMASK16)
(error-code :initarg :error-code :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(type :initarg :type :type xcb:CARD16)
(detail :initarg :detail :type xcb:-ignore)
(detail~ :initform '(name detail type xcb:char
size (xcb:-fieldref 'length)) :type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(defconst xim:error-flag:invalid-both 0)
(defconst xim:error-flag:invalid-im-id 1)
(defconst xim:error-flag:invalid-ic-id 2)
(defconst xim:error-code:bad-alloc 1)
(defconst xim:error-code:bad-style 2)
(defconst xim:error-code:bad-client-window 3)
(defconst xim:error-code:bad-focus-window 4)
(defconst xim:error-code:bad-area 5)
(defconst xim:error-code:bad-spot-location 6)
(defconst xim:error-code:bad-colormap 7)
(defconst xim:error-code:bad-atom 8)
(defconst xim:error-code:bad-pixel 9)
(defconst xim:error-code:bad-pixmap 10)
(defconst xim:error-code:bad-name 11)
(defconst xim:error-code:bad-cursor 12)
(defconst xim:error-code:bad-protocol 13)
(defconst xim:error-code:bad-foreground 14)
(defconst xim:error-code:bad-background 15)
(defconst xim:error-code:locale-not-supported 16)
(defconst xim:error-code:bad-something 999)
;;;; Connection establishment
(defclass xim:connect (xim:-request)
((~major-opcode :initform 'xim:opcode:connect)
(byte-order :initarg :byte-order :type xcb:-u1)
(pad~0 :initform 1 :type xcb:-pad)
(major-version :initarg :major-version :type xcb:CARD16)
(minor-version :initarg :minor-version :type xcb:CARD16)
(number :initarg :number :type xcb:CARD16)
(auth-names :initarg :auth-names :type xcb:-ignore)
(auth-names~ :initform '(name auth-names type xim:STRING
size (xcb:-fieldref 'number))
:type xcb:-list)))
(defconst xim:connect-byte-order:msb-first #x42)
(defconst xim:connect-byte-order:lsb-first #x6c)
(defclass xim:auth-required (xim:-request)
((~major-opcode :initform 'xim:opcode:auth-required)
(index :initarg :index :type xcb:CARD8)
(pad~0 :initform 3 :type xcb:-pad)
(length :initarg :length :type xcb:-u2)
(pad~1 :initform 2 :type xcb:-pad)
(data :initarg :data :type xcb:-ignore)
(data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~1 :initform '(xim:PADDING (slot-value length)) :type xcb:-pad)))
(defclass xim:auth-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:auth-reply)
(length :initarg :length :type xcb:-u2)
(pad~0 :initform 2 :type xcb:-pad)
(data :initarg :data :type xcb:-ignore)
(data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(defclass xim:auth-next (xim:-request)
((~major-opcode :initform 'xim:opcode:auth-next)
(length :initarg :length :type xcb:-u2)
(pad~0 :initform 2 :type xcb:-pad)
(data :initarg :data :type xcb:-ignore)
(data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(defclass xim:auth-setup (xim:-request)
((~major-opcode :initform 'xim:opcode:auth-setup)
(number :initarg :number :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)
(names :initarg :names :type xcb:-ignore)
(names~ :initform '(name names type xim:STRING size (xcb:-fieldref 'number))
:type xcb:-list)))
(defclass xim:auth-ng (xim:-request)
((~major-opcode :initform 'xim:opcode:auth-ng)))
(defclass xim:connect-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:connect-reply)
;; Default to version 1.0
(major-version :initarg :major-version :initform 1 :type xcb:CARD16)
(minor-version :initarg :minor-version :initform 0 :type xcb:CARD16)))
(defclass xim:disconnect (xim:-request)
((~major-opcode :initform 'xim:opcode:disconnect)))
(defclass xim:disconnect-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:disconnect-reply)))
(defclass xim:open (xim:-request)
((~major-opcode :initform 'xim:opcode:open)
(locale-name :initarg :locale-name :type xim:STR)
(pad~0 :initform '(xim:PADDING (1+ (slot-value (xcb:-fieldref 'locale-name)
'length)))
:type xcb:-pad)))
(defclass xim:open-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:open-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(im-attrs-length :initarg :im-attrs-length :type xcb:-u2)
(im-attrs :initarg :im-attrs :type xcb:-ignore)
(im-attrs~ :initform '(name im-attrs type xcb:void
size (xcb:-fieldref 'im-attrs-length))
:type xcb:-list)
(ic-attrs-length :initarg :ic-attrs-length :type xcb:-u2)
(pad~0 :initform 2 :type xcb:-pad)
(ic-attrs :initarg :ic-attrs :type xcb:-ignore)
(ic-attrs~ :initform '(name ic-attrs type xcb:void
size (xcb:-fieldref 'ic-attrs-length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:open-reply))
(let ((im-attrs (mapconcat #'xcb:marshal (slot-value obj 'im-attrs) []))
(ic-attrs (mapconcat #'xcb:marshal (slot-value obj 'ic-attrs) [])))
(setf (slot-value obj 'im-attrs-length) (length im-attrs)
(slot-value obj 'im-attrs) im-attrs
(slot-value obj 'ic-attrs-length) (length ic-attrs)
(slot-value obj 'ic-attrs) ic-attrs)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:open-reply) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(im-data (slot-value obj 'im-attrs))
(ic-data (slot-value obj 'ic-attrs))
im-attr im-attrs ic-attr ic-attrs)
(while (< 0 (length im-data))
(setq im-attr (make-instance 'xim:XIMATTR)
im-data (substring im-data (xcb:unmarshal im-attr im-data))
im-attrs (nconc im-attrs (list im-attr))))
(while (< 0 (length ic-data))
(setq ic-attr (make-instance 'xim:XICATTR)
ic-data (substring ic-data (xcb:unmarshal ic-attr ic-data))
ic-attrs (nconc ic-attrs (list ic-attr))))
(setf (slot-value obj 'im-attrs) im-attrs
(slot-value obj 'ic-attrs) ic-attrs)
retval))
(defclass xim:close (xim:-request)
((~major-opcode :initform 'xim:opcode:close)
(im-id :initarg :im-id :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)))
(defclass xim:close-reply (xim:close)
((~major-opcode :initform 'xim:opcode:close-reply)))
;;;; Event flow control
(defclass xim:set-event-mask (xim:-request)
((~major-opcode :initform 'xim:opcode:set-event-mask)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(forward-event-mask :initarg :forward-event-mask :type xcb:-u4)
(synchronous-event-mask :initarg :synchronous-event-mask :type xcb:-u4)))
(defclass xim:register-triggerkeys (xim:-request)
((~major-opcode :initform 'xim:opcode:register-triggerkeys)
(im-id :initarg :im-id :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)
(on-keys-length :initarg :on-keys-length :type xcb:-u4)
(on-keys :initarg :on-keys :type xcb:-ignore)
(on-keys~ :initform '(name on-keys type xim:XIMTRIGGERKEY
size (/ (xcb:-fieldref 'on-keys-length) 12))
:type xcb:-list)
(off-keys-length :initarg :off-keys-length :type xcb:-u4)
(off-keys :initarg :off-keys :type xcb:-ignore)
(off-keys~ :initform '(name off-keys type xim:XIMTRIGGERKEY
size (/ (xcb:-fieldref 'off-keys-length) 12))
:type xcb:-list)))
(defclass xim:trigger-nofity (xim:-request)
((~major-opcode :initform 'xim:opcode:trigger-notify)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(flag :initarg :flag :type xcb:CARD32)
(index :initarg :index :type xcb:CARD32)
(client-select-event-mask :initarg :client-select-event-mask
:type xcb:-u4)))
(defconst xim:trigger-nofity-flag:on-keys 0)
(defconst xim:trigger-nofity-flag:off-keys 1)
(defclass xim:trigger-nofity-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:trigger-notify-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Encoding negotiation
(defclass xim:encoding-negotiation (xim:-request)
((~major-opcode :initform 'xim:opcode:encoding-negotiation)
(im-id :initarg :im-id :type xcb:CARD16)
(names-length :initarg :names-length :type xcb:-u2)
(names :initarg :names :type xcb:-ignore)
(names~ :initform '(name names type xcb:void
size (xcb:-fieldref 'names-length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'names-length))
:type xcb:-pad)
(encodings-length :initarg :encoding-length :type xcb:-u2)
(pad~1 :initform 2 :type xcb:-pad)
(encodings :initarg :encodings :type xcb:-ignore)
(encodings~ :initform '(name encodings type xcb:void
size (xcb:-fieldref 'encodings-length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:encoding-negotiation))
(let ((names (mapconcat #'xcb:marshal (slot-value obj 'names) []))
(encodings (mapconcat #'xcb:marshal (slot-value obj 'encodings) [])))
(setf (slot-value obj 'names-length) (length names)
(slot-value obj 'names) names
(slot-value obj 'encodings-length) (length encodings)
(slot-value obj 'encodings) encodings)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:encoding-negotiation) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(names-data (slot-value obj 'names))
(encodings-data (slot-value obj 'encodings))
name names encoding encodings)
(while (< 0 (length names-data))
(setq name (make-instance 'xim:STR)
names-data (substring names-data (xcb:unmarshal name names-data))
names (nconc names (list name))))
(while (< 0 (length encodings-data))
(setq encoding (make-instance 'xim:ENCODINGINFO)
encodings-data
(substring encodings-data (xcb:unmarshal encoding encodings-data))
encodings (nconc encodings (list encoding))))
(setf (slot-value obj 'names) names
(slot-value obj 'encodings) encodings)
retval))
(defclass xim:encoding-negotiation-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:encoding-negotiation-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(category :initarg :category :type xcb:CARD16)
(index :initarg :index :type xcb:INT16)
(pad~0 :initform 2 :type xcb:-pad)))
(defconst xim:encoding-negotiation-reply-category:name 0)
(defconst xim:encoding-negotiation-reply-category:data 1)
;;;; Query the supported extension protocol list
(defclass xim:query-extension (xim:-request)
((~major-opcode :initform 'xim:opcode:query-extension)
(im-id :initarg :im-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(extensions :initarg :extensions :type xcb:-ignore)
(extensions~ :initform '(name extensions type xcb:void
size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(cl-defmethod xcb:marshal ((obj xim:query-extension))
(let ((extensions (mapconcat #'xcb:marshal (slot-value obj 'extensions) [])))
(setf (slot-value obj 'length) (length extensions)
(slot-value obj 'extensions) extensions)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:query-extension) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(data (slot-value obj 'extensions))
extension extensions)
(while (< 0 (length data))
(setq extension (make-instance 'xim:STR)
data (substring data (xcb:unmarshal extension data))
extensions (nconc extensions (list extension))))
(setf (slot-value obj 'extensions) extensions)
retval))
(defclass xim:query-extension-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:query-extension-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(extensions :initarg :extensions :type xcb:-ignore)
(extensions~ :initform '(name extensions type xcb:void
size (xcb:-fieldref 'length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:query-extension-reply))
(let ((extensions (mapconcat 'xcb:marshal (slot-value obj 'extensions) [])))
(setf (slot-value obj 'length) (length extensions)
(slot-value obj 'extensions) extensions)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:query-extension-reply) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(data (slot-value obj 'extensions))
extension extensions)
(while (< 0 (length data))
(setq extension (make-instance 'xim:EXT)
data (substring data (xcb:unmarshal extension data))
extensions (nconc extensions (list extension))))
(setf (slot-value obj 'extensions) extensions)
retval))
;;;; Setting IM values
(defclass xim:set-im-values (xim:-request)
((~major-opcode :initform 'xim:opcode:set-im-values)
(im-id :initarg :im-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(im-attributes :initarg :im-attributes :type xcb:-ignore)
(im-attributes~ :initform '(name im-attributes type xcb:void
size (xcb:-fieldref 'length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:set-im-values))
(let ((im-attributes (mapconcat #'xcb:marshal
(slot-value obj 'im-attributes) [])))
(setf (slot-value obj 'length) (length im-attributes)
(slot-value obj 'im-attributes) im-attributes)
(cl-call-next-method obj)))
(defclass xim:set-im-values-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:set-im-values-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)))
;;;; Getting IM values
(defclass xim:get-im-values (xim:-request)
((~major-opcode :initform 'xim:opcode:get-im-values)
(im-id :initarg :im-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(im-attributes-id :initarg :im-attributes-id :type xcb:-ignore)
(im-attributes-id~ :initform '(name im-attributes-id type xcb:CARD16
size (/ (xcb:-fieldref 'length) 2))
:type xcb:-list)))
(defclass xim:get-im-values-reply (xim:set-im-values)
((~major-opcode :initform 'xim:opcode:get-im-values-reply)))
;;;; Creating an IC
(defclass xim:create-ic (xim:-request)
((~major-opcode :initform 'xim:opcode:create-ic)
(im-id :initarg :im-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(ic-attributes :initarg :ic-attributes :type xcb:-ignore)
(ic-attributes~ :initform '(name ic-attributes type xcb:void
size (xcb:-fieldref 'length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:create-ic))
(let ((ic-attributes (mapconcat #'xcb:marshal
(slot-value obj 'ic-attributes) [])))
(setf (slot-value obj 'length) (length ic-attributes)
(slot-value obj 'ic-attributes) ic-attributes)
(cl-call-next-method obj)))
(cl-defmethod xcb:unmarshal ((obj xim:create-ic) byte-array)
(let ((retval (cl-call-next-method obj byte-array))
(data (slot-value obj 'ic-attributes))
ic-attribute ic-attributes)
(while (< 0 (length data))
(setq ic-attribute (make-instance 'xim:XICATTRIBUTE)
data (substring data (xcb:unmarshal ic-attribute data))
ic-attributes (nconc ic-attributes (list ic-attribute))))
(setf (slot-value obj 'ic-attributes) ic-attributes)
retval))
(defclass xim:create-ic-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:create-ic-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Destroy the IC
(defclass xim:destroy-ic (xim:-request)
((~major-opcode :initform 'xim:opcode:destroy-ic)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(defclass xim:destroy-ic-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:destroy-ic-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Setting IC values
(defclass xim:set-ic-values (xim:-request)
((~major-opcode :initform 'xim:opcode:set-ic-values)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(pad~0 :initform 2 :type xcb:-pad)
(ic-attributes :initarg :ic-attributes :type xcb:-ignore)
(ic-attributes~ :initform '(name ic-attributes type xcb:void
size (xcb:-fieldref 'length))
:type xcb:-list)))
(cl-defmethod xcb:marshal ((obj xim:set-ic-values))
(let ((ic-attributes (mapconcat 'xcb:marshal
(slot-value obj 'ic-attributes) [])))
(setf (slot-value obj 'length) (length ic-attributes)
(slot-value obj 'ic-attributes) ic-attributes)
(cl-call-next-method obj)))
(defclass xim:set-ic-values-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:set-ic-values-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Getting IC values
(defclass xim:get-ic-values (xim:-request)
((~major-opcode :initform 'xim:opcode:get-ic-values)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(ic-attributes-id :initarg :ic-attributes-id :type xcb:-ignore)
(ic-attributes-id~ :initform '(name ic-attributes-id type xcb:CARD16
size (/ (xcb:-fieldref 'length) 2))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
(defclass xim:get-ic-values-reply (xim:set-ic-values)
((~major-opcode :initform 'xim:opcode:get-ic-values-reply)))
;;;; Setting IC focus
(defclass xim:set-ic-focus (xim:-request)
((~major-opcode :initform 'xim:opcode:set-ic-focus)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Unsetting IC focus
(defclass xim:unset-ic-focus (xim:-request)
((~major-opcode :initform 'xim:opcode:unset-ic-focus)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Filtering events
(defclass xim:forward-event (xim:-request)
((~major-opcode :initform 'xim:opcode:forward-event)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(flag :initarg :flag :type xim:BITMASK16)
(serial-number :initarg :serial-number :type xcb:CARD16)
(event :initarg :event :type xcb:-ignore)
(event~ :initform '(name event type xcb:void size 32) :type xcb:-list)))
(defconst xim:forward-event-flag:synchronous 1)
(defconst xim:forward-event-flag:request-filtering 2)
(defconst xim:forward-event-flag:request-lookupstring 4)
;;;; Synchronizing with the IM server
(defclass xim:sync (xim:-request)
((~major-opcode :initform 'xim:opcode:sync)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(defclass xim:sync-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:sync-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;;;; Sending a committed string
(defclass xim:commit (xim:-request)
((~major-opcode :initform 'xim:opcode:commit)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(flag :initarg :flag :type xim:BITMASK16)))
(defconst xim:commit-flag:synchronous 1)
;; FIXME: different from Xlib:XLookup*
(defconst xim:commit-flag:x-lookup-chars 2)
(defconst xim:commit-flag:x-lookup-key-sym 4)
(defconst xim:commit-flag:x-lookup-both 6)
(defclass xim:commit-x-lookup-key-sym (xim:commit)
((flag :initform 'xim:commit-flag:x-lookup-key-sym)
(pad~0 :initform 2 :type xcb:-pad)
(key-sym :initarg :key-sym :type xcb:KEYSYM)))
(defclass xim:commit-x-lookup-chars (xim:commit)
((flag :initform 'xim:commit-flag:x-lookup-chars)
(length :initarg :length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xcb:BYTE size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad)))
(defclass xim:commit-x-lookup-both (xim:commit-x-lookup-key-sym
xim:commit-x-lookup-chars)
((flag :initform 'xim:commit-flag:x-lookup-both)
(pad~1 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
;;;; Reset IC
(defclass xim:reset-ic (xim:-request)
((~major-opcode :initform 'xim:opcode:reset-ic)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(defclass xim:reset-ic-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:reset-ic-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(length :initarg :length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xcb:BYTE size (xcb:-fieldref 'length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length)))
:type xcb:-pad)))
;;;; Callbacks
;; Negotiating geometry
(defclass xim:geometry (xim:-request)
((~major-opcode :initform 'xim:opcode:geometry)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;; Converting a string
(defclass xim:str-conversion (xim:-request)
((~major-opcode :initform 'xim:opcode:str-conversion)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(position :initarg :position :type xcb:CARD16)
(pad~0 :initform 2 :type xcb:-pad)
(direction :initarg :direction :type xcb:CARD32)
(factor :initarg :factor :type xcb:CARD16)
(operation :initarg :operation :type xcb:CARD16)
(length :initarg :length :type xcb:INT16)))
(defconst xim:caret-direction:forward-char 0)
(defconst xim:caret-direction:backward-char 1)
(defconst xim:caret-direction:forward-word 2)
(defconst xim:caret-direction:backward-word 3)
(defconst xim:caret-direction:caret-up 4)
(defconst xim:caret-direction:caret-down 5)
(defconst xim:caret-direction:next-line 6)
(defconst xim:caret-direction:previous-line 7)
(defconst xim:caret-direction:line-start 8)
(defconst xim:caret-direction:line-end 9)
(defconst xim:caret-direction:absolute-position 10)
(defconst xim:caret-direction:dont-change 11)
(defconst xim:string-conversion-operation:substitution 1)
(defconst xim:string-conversion-operation:retrieval 2)
(defclass xim:str-conversion-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:str-conversion-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(feedback :initarg :feedback :type xcb:CARD32)
(text :initarg :text :type xim:XIMSTRCONVTEXT)))
;; Preedit callbacks
(defclass xim:preedit-start (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-start)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(defclass xim:preedit-start-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-start-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(return-value :initarg :return-value :type xcb:INT32)))
(defclass xim:preedit-draw (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-draw)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(caret :initarg :caret :type xcb:INT32)
(chg-first :initarg :chg-first :type xcb:INT32)
(chg-length :initarg :chg-length :type xcb:INT32)
(status :initarg :status :type xim:BITMASK32)
(string-length :initarg :string-length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xcb:char
size (xcb:-fieldref 'string-length))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'string-length)))
:type xcb:-pad)
(feedback-length :initarg :feedback-length :type xcb:-u2)
(pad~1 :initform 2 :type xcb:-pad)
(feedback :initarg :feedback :type xcb:-ignore)
(feedback~ :initform '(name feedback type xim:XIMFEEDBACK
size (/ (xcb:-fieldref 'feedback-length) 4))
:type xcb:-list)))
(defconst xim:preedit-draw-status:no-string 1)
(defconst xim:preedit-draw-status:no-feedback 2)
(defclass xim:preedit-caret (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-caret)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(position :initarg :position :type xcb:INT32)
(direction :initarg :direction :type xcb:CARD32)
(style :initarg :style :type xcb:CARD32)))
(defconst xim:preedit-caret-style:invisible 0)
(defconst xim:preedit-caret-style:primary 1)
(defconst xim:preedit-caret-style:secondary 2)
(defclass xim:preedit-caret-reply (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-caret-reply)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(position :initarg :position :type xcb:CARD32)))
(defclass xim:preedit-done (xim:-request)
((~major-opcode :initform 'xim:opcode:preedit-done)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
;; Preedit state notify
(defclass xim:preeditstate (xim:-request)
((~major-opcode :initform 'xim:opcode:preeditstate)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(state :initarg :state :type xim:BITMASK32)))
(defconst xim:preeditstate:unknown 0)
(defconst xim:preeditstate:enable 1)
(defconst xim:preeditstate:disable 2)
;; Status callbacks
(defclass xim:status-start (xim:-request)
((~major-opcode :initform 'xim:opcode:status-start)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(defclass xim:status-draw (xim:-request)
((~major-opcode :initform 'xim:opcode:status-draw)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)
(type :initarg :type :type xcb:CARD32)))
(defconst xim:status-draw-type:text 0)
(defconst xim:status-draw-type:bitmap 1)
(defclass xim:status-draw-text (xim:status-draw)
((type :initarg :type :initform 'xim:status-draw-type:text)
(status :initarg :status :type xim:BITMASK32)
(string-length :initarg :string-length :type xcb:-u2)
(string :initarg :string :type xcb:-ignore)
(string~ :initform '(name string type xcb:char
size (xcb:-fieldref 'string-lessp))
:type xcb:-list)
(pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'string-length)))
:type xcb:-pad)
(feedback-length :initarg :feedback-length :type xcb:-u2)
(pad~1 :initform 2 :type xcb:-pad)
(feedback :initarg :feedback :type xcb:-ignore)
(feedback~ :initform '(name feedback type xim:XIMFEEDBACK
size (/ (xcb:-fieldref 'feedback-length) 4))
:type xcb:-list)))
(defclass xim:status-draw-bitmap (xim:status-draw)
((type :initarg :type :initform 'xim:status-draw-type:bitmap)
(pixmap-data :initarg :pixmap-data :type xcb:PIXMAP)))
(defclass xim:status-done (xim:-request)
((~major-opcode :initform 'xim:opcode:status-done)
(im-id :initarg :im-id :type xcb:CARD16)
(ic-id :initarg :ic-id :type xcb:CARD16)))
(provide 'xcb-xim)
;;; xcb-xim.el ends here
xelb-master/xcb-xinerama.el 0000664 0000000 0000000 00000007577 14562520677 0016237 0 ustar 00root root 0000000 0000000 ;;; xcb-xinerama.el --- X11 Xinerama extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xinerama.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(number :initarg :number :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(screen-info~ :initform
'(name screen-info type xcb:xinerama:ScreenInfo size
(xcb:-fieldref 'number))
:type xcb:-list)
(screen-info :initarg :screen-info :type xcb:-ignore)))
(provide 'xcb-xinerama)
;;; xcb-xinerama.el ends here
xelb-master/xcb-xinput.el 0000664 0000000 0000000 00000316266 14562520677 0015760 0 ustar 00root root 0000000 0000000 ;;; xcb-xinput.el --- X11 Input extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xinput.xml',
;; which you can retrieve from .
;;; Code:
(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 4)
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:xinput:GetExtensionVersion~reply
(xcb:-reply)
((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name axes type xcb:xinput:AxisInfo size
(xcb:-fieldref 'axes-len))
:type xcb:-list)
(axes :initarg :axes :type xcb:-ignore)))
(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
(((0)
min-keycode max-keycode num-keys pad~0)
((1)
num-buttons)
((2)
pad~1 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~0 :initform 2 :type xcb:-pad)
(num-buttons :initarg :num-buttons :type xcb:CARD16)
(pad~1 :initform
[4 2]
:type xcb:-pad-align)
(axes-len :initarg :axes-len :type xcb:CARD8)
(mode :initarg :mode :type xcb:CARD8)
(motion-size :initarg :motion-size :type xcb:CARD32)
(axes~ :initform
'(name axes type xcb:xinput:AxisInfo size
(xcb:-fieldref 'axes-len))
:type xcb:-list)
(axes :initarg :axes :type xcb:-ignore)))
(defclass xcb:xinput:DeviceName
(xcb:-struct)
((len :initarg :len :type xcb:CARD8)
(string~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'len))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(devices-len :initarg :devices-len :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(devices~ :initform
'(name devices type xcb:xinput:DeviceInfo size
(xcb:-fieldref 'devices-len))
:type xcb:-list)
(devices :initarg :devices :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)
(infos :initarg :infos :type xcb:-ignore)
(names~ :initform
'(name names type xcb:STR size
(xcb:-fieldref 'devices-len))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)))
(xcb:deftypealias 'xcb:xinput:EventTypeBase 'xcb:CARD8)
(defclass xcb:xinput:InputClassInfo
(xcb:-struct)
((class-id :initarg :class-id :type xcb:CARD8)
(event-type-base :initarg :event-type-base :type xcb:xinput:EventTypeBase)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-classes :initarg :num-classes :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(class-info~ :initform
'(name class-info type xcb:xinput:InputClassInfo size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(class-info :initarg :class-info :type xcb:-ignore)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name this-classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-this-classes))
:type xcb:-list)
(this-classes :initarg :this-classes :type xcb:-ignore)
(all-classes~ :initform
'(name all-classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-all-classes))
:type xcb:-list)
(all-classes :initarg :all-classes :type xcb:-ignore)))
(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~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-classes :initarg :num-classes :type xcb:CARD16)
(pad~0 :initform 22 :type xcb:-pad)
(classes~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(defclass xcb:xinput:DeviceTimeCoord
(xcb:-struct)
((time :initarg :time :type xcb:TIMESTAMP)
(axisvalues~ :initform
'(name axisvalues type xcb:INT32 size
(xcb:-paramref 'num-axes))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name events type xcb:xinput:DeviceTimeCoord size
(xcb:-fieldref 'num-events))
:type xcb:-list)
(events :initarg :events :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(defclass xcb:xinput:GrabDevice~reply
(xcb:-reply)
((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name auto-repeats type xcb:CARD8 size 32)
:type xcb:-list)
(auto-repeats :initarg :auto-repeats :type xcb:-ignore)))
(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~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'num-keysyms))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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
(((0)
pitch duration led-mask led-values global-auto-repeat click percent pad~0 auto-repeats~)
((1)
pad~1 accel-num accel-denom threshold)
((2)
max-symbols num-keysyms keysyms~)
((3)
resolution min-value max-value)
((4)
led-mask* led-values*)
((5)
percent* pad~2 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~0 :initform 1 :type xcb:-pad)
(auto-repeats~ :initform
'(name auto-repeats type xcb:CARD8 size 32)
:type xcb:-list)
(auto-repeats :initarg :auto-repeats :type xcb:-ignore)
(pad~1 :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~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'num-keysyms))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)
(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~2 :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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-feedbacks :initarg :num-feedbacks :type xcb:CARD16)
(pad~0 :initform 22 :type xcb:-pad)
(feedbacks~ :initform
'(name feedbacks type xcb:xinput:FeedbackState size
(xcb:-fieldref 'num-feedbacks))
:type xcb:-list)
(feedbacks :initarg :feedbacks :type xcb:-ignore)))
(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~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'num-keysyms))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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
(((0)
key auto-repeat-mode key-click-percent bell-percent bell-pitch bell-duration led-mask led-values)
((1)
pad~0 num denom threshold)
((2)
pad~1 num-keysyms keysyms~)
((3)
int-to-display)
((4)
led-mask* led-values*)
((5)
percent pad~2 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~0 :initform 2 :type xcb:-pad)
(num :initarg :num :type xcb:INT16)
(denom :initarg :denom :type xcb:INT16)
(threshold :initarg :threshold :type xcb:INT16)
(pad~1 :initform 2 :type xcb:-pad)
(num-keysyms :initarg :num-keysyms :type xcb:CARD16)
(keysyms~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'num-keysyms))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)
(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~2 :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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(keysyms~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'length))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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~ :initform
'(name keysyms type xcb:KEYSYM size
(*
(xcb:-fieldref 'keycode-count)
(xcb:-fieldref 'keysyms-per-keycode)))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(keymaps~ :initform
'(name keymaps type xcb:CARD8 size
(*
(xcb:-fieldref 'keycodes-per-modifier)
8))
:type xcb:-list)
(keymaps :initarg :keymaps :type xcb:-ignore)))
(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~ :initform
'(name keymaps type xcb:CARD8 size
(*
(xcb:-fieldref 'keycodes-per-modifier)
8))
:type xcb:-list)
(keymaps :initarg :keymaps :type xcb:-ignore)))
(defclass xcb:xinput:SetDeviceModifierMapping~reply
(xcb:-reply)
((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(map-size :initarg :map-size :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(map~ :initform
'(name map type xcb:CARD8 size
(xcb:-fieldref 'map-size))
:type xcb:-list)
(map :initarg :map :type xcb:-ignore)
(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~ :initform
'(name map type xcb:CARD8 size
(xcb:-fieldref 'map-size))
:type xcb:-list)
(map :initarg :map :type xcb:-ignore)))
(defclass xcb:xinput:SetDeviceButtonMapping~reply
(xcb:-reply)
((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name keys type xcb:CARD8 size 32)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(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~ :initform
'(name buttons type xcb:CARD8 size 32)
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)))
(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~ :initform
'(name valuators type xcb:INT32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(valuators :initarg :valuators :type xcb:-ignore)))
(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
(((0)
pad~0 num-keys pad~1 keys~)
((1)
num-buttons pad~2 buttons~)
((2)
pad~3 num-valuators mode valuators~)))
:type xcb:-switch)
(pad~0 :initform
[4 2]
:type xcb:-pad-align)
(num-keys :initarg :num-keys :type xcb:CARD8)
(pad~1 :initform 1 :type xcb:-pad)
(keys~ :initform
'(name keys type xcb:CARD8 size 32)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)
(num-buttons :initarg :num-buttons :type xcb:CARD8)
(pad~2 :initform 1 :type xcb:-pad)
(buttons~ :initform
'(name buttons type xcb:CARD8 size 32)
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)
(pad~3 :initform
[4 2]
:type xcb:-pad-align)
(num-valuators :initarg :num-valuators :type xcb:CARD8)
(mode :initarg :mode :type xcb:CARD8)
(valuators~ :initform
'(name valuators type xcb:INT32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(valuators :initarg :valuators :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-classes :initarg :num-classes :type xcb:CARD8)
(pad~0 :initform 23 :type xcb:-pad)
(classes~ :initform
'(name classes type xcb:xinput:InputState size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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~ :initform
'(name valuators type xcb:INT32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(valuators :initarg :valuators :type xcb:-ignore)))
(defclass xcb:xinput:SetDeviceValuators~reply
(xcb:-reply)
((xi-reply-type :initarg :xi-reply-type :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name resolution-values type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-values :initarg :resolution-values :type xcb:-ignore)
(resolution-min~ :initform
'(name resolution-min type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-min :initarg :resolution-min :type xcb:-ignore)
(resolution-max~ :initform
'(name resolution-max type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-max :initarg :resolution-max :type xcb:-ignore)))
(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
(((1)
num-valuators resolution-values~ resolution-min~ resolution-max~)
((2)
min-x max-x min-y max-y flip-x flip-y rotation button-threshold)
((3)
status iscore pad~0)
((4)
enable pad~1)
((5)
offset-x offset-y width height screen following)))
:type xcb:-switch)
(num-valuators :initarg :num-valuators :type xcb:CARD32)
(resolution-values~ :initform
'(name resolution-values type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-values :initarg :resolution-values :type xcb:-ignore)
(resolution-min~ :initform
'(name resolution-min type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-min :initarg :resolution-min :type xcb:-ignore)
(resolution-max~ :initform
'(name resolution-max type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-max :initarg :resolution-max :type xcb:-ignore)
(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~0 :initform 2 :type xcb:-pad)
(enable :initarg :enable :type xcb:CARD8)
(pad~1 :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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name resolution-values type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-values :initarg :resolution-values :type xcb:-ignore)))
(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
(((1)
first-valuator num-valuators pad~0 resolution-values~)
((2)
min-x max-x min-y max-y flip-x flip-y rotation button-threshold)
((3)
status pad~1)
((4)
enable pad~2)
((5)
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~0 :initform 2 :type xcb:-pad)
(resolution-values~ :initform
'(name resolution-values type xcb:CARD32 size
(xcb:-fieldref 'num-valuators))
:type xcb:-list)
(resolution-values :initarg :resolution-values :type xcb:-ignore)
(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~1 :initform 3 :type xcb:-pad)
(enable :initarg :enable :type xcb:CARD8)
(pad~2 :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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-atoms :initarg :num-atoms :type xcb:CARD16)
(pad~0 :initform 22 :type xcb:-pad)
(atoms~ :initform
'(name atoms type xcb:ATOM size
(xcb:-fieldref 'num-atoms))
:type xcb:-list)
(atoms :initarg :atoms :type xcb:-ignore)))
(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
(((8)
data8~ pad~1)
((16)
data16~ pad~2)
((32)
data32~)))
:type xcb:-switch)
(data8~ :initform
'(name data8 type xcb:CARD8 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data8 :initarg :data8 :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(data16~ :initform
'(name data16 type xcb:CARD16 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data16 :initarg :data16 :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(data32~ :initform
'(name data32 type xcb:CARD32 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data32 :initarg :data32 :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
(((8)
data8~ pad~1)
((16)
data16~ pad~2)
((32)
data32~)))
:type xcb:-switch)
(data8~ :initform
'(name data8 type xcb:CARD8 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data8 :initarg :data8 :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(data16~ :initform
'(name data16 type xcb:CARD16 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data16 :initarg :data16 :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(data32~ :initform
'(name data32 type xcb:CARD32 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data32 :initarg :data32 :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name buttons type xcb:CARD32 size
(xcb:-fieldref 'buttons-len))
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(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
(((1)
name-len send-core enable name~ pad~0)
((2)
deviceid return-mode pad~1 return-pointer return-keyboard)
((3)
deviceid* master)
((4)
deviceid** pad~2)))
: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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(deviceid :initarg :deviceid :type xcb:xinput:DeviceId)
(return-mode :initarg :return-mode :type xcb:CARD8)
(pad~1 :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~2 :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~ :initform
'(name changes type xcb:xinput:HierarchyChange size
(xcb:-fieldref 'num-changes))
:type xcb:-list)
(changes :initarg :changes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name mask type xcb:CARD32 size
(xcb:-fieldref 'mask-len))
:type xcb:-list)
(mask :initarg :mask :type xcb:-ignore)))
(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~ :initform
'(name masks type xcb:xinput:EventMask size
(xcb:-fieldref 'num-mask))
:type xcb:-list)
(masks :initarg :masks :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:DeviceClassType:Gesture 9)
(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~ :initform
'(name state type xcb:CARD32 size
(/
(+
(xcb:-fieldref 'num-buttons)
31)
32))
:type xcb:-list)
(state :initarg :state :type xcb:-ignore)
(labels~ :initform
'(name labels type xcb:ATOM size
(xcb:-fieldref 'num-buttons))
:type xcb:-list)
(labels :initarg :labels :type xcb:-ignore)))
(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~ :initform
'(name keys type xcb:CARD32 size
(xcb:-fieldref 'num-keys))
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(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:GestureClass
(xcb:-struct)
((type :initarg :type :type xcb:CARD16)
(len :initarg :len :type xcb:CARD16)
(sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
(num-touches :initarg :num-touches :type xcb:CARD8)
(pad~0 :initform 1 :type xcb:-pad)))
(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)
((~size :initform
'(*
(xcb:-fieldref 'len)
4))
(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
(((0)
pad~0 num-keys keys~)
((1)
pad~1 num-buttons state~ labels~)
((2)
pad~2 number label min max value resolution mode pad~3)
((3)
pad~4 number* scroll-type pad~5 flags increment)
((8)
mode* num-touches)
((9)
num-touches* pad~6)))
:type xcb:-switch)
(pad~0 :initform
[4 2]
:type xcb:-pad-align)
(num-keys :initarg :num-keys :type xcb:CARD16)
(keys~ :initform
'(name keys type xcb:CARD32 size
(xcb:-fieldref 'num-keys))
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)
(pad~1 :initform
[4 2]
:type xcb:-pad-align)
(num-buttons :initarg :num-buttons :type xcb:CARD16)
(state~ :initform
'(name state type xcb:CARD32 size
(/
(+
(xcb:-fieldref 'num-buttons)
31)
32))
:type xcb:-list)
(state :initarg :state :type xcb:-ignore)
(labels~ :initform
'(name labels type xcb:ATOM size
(xcb:-fieldref 'num-buttons))
:type xcb:-list)
(labels :initarg :labels :type xcb:-ignore)
(pad~2 :initform
[4 2]
:type xcb:-pad-align)
(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~3 :initform 3 :type xcb:-pad)
(pad~4 :initform
[4 2]
:type xcb:-pad-align)
(number* :initarg :number* :type xcb:CARD16)
(scroll-type :initarg :scroll-type :type xcb:CARD16)
(pad~5 :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)
(num-touches* :initarg :num-touches* :type xcb:CARD8)
(pad~6 :initform 1 :type xcb:-pad)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(classes~ :initform
'(name classes type xcb:xinput:DeviceClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-infos :initarg :num-infos :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(infos~ :initform
'(name infos type xcb:xinput:XIDeviceInfo size
(xcb:-fieldref 'num-infos))
:type xcb:-list)
(infos :initarg :infos :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name mask type xcb:CARD32 size
(xcb:-fieldref 'mask-len))
:type xcb:-list)
(mask :initarg :mask :type xcb:-ignore)))
(defclass xcb:xinput:XIGrabDevice~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:GrabType:GesturePinchBegin 5)
(defconst xcb:xinput:GrabType:GestureSwipeBegin 6)
(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~ :initform
'(name mask type xcb:CARD32 size
(xcb:-fieldref 'mask-len))
:type xcb:-list)
(mask :initarg :mask :type xcb:-ignore)
(modifiers~ :initform
'(name modifiers type xcb:CARD32 size
(xcb:-fieldref 'num-modifiers))
:type xcb:-list)
(modifiers :initarg :modifiers :type xcb:-ignore)))
(defclass xcb:xinput:XIPassiveGrabDevice~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-modifiers :initarg :num-modifiers :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(modifiers~ :initform
'(name modifiers type xcb:xinput:GrabModifierInfo size
(xcb:-fieldref 'num-modifiers))
:type xcb:-list)
(modifiers :initarg :modifiers :type xcb:-ignore)))
(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~ :initform
'(name modifiers type xcb:CARD32 size
(xcb:-fieldref 'num-modifiers))
:type xcb:-list)
(modifiers :initarg :modifiers :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-properties :initarg :num-properties :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(properties~ :initform
'(name properties type xcb:ATOM size
(xcb:-fieldref 'num-properties))
:type xcb:-list)
(properties :initarg :properties :type xcb:-ignore)))
(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
(((8)
data8~ pad~0)
((16)
data16~ pad~1)
((32)
data32~)))
:type xcb:-switch)
(data8~ :initform
'(name data8 type xcb:CARD8 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data8 :initarg :data8 :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(data16~ :initform
'(name data16 type xcb:CARD16 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data16 :initarg :data16 :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(data32~ :initform
'(name data32 type xcb:CARD32 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data32 :initarg :data32 :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
(((8)
data8~ pad~2)
((16)
data16~ pad~3)
((32)
data32~)))
:type xcb:-switch)
(data8~ :initform
'(name data8 type xcb:CARD8 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data8 :initarg :data8 :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(data16~ :initform
'(name data16 type xcb:CARD16 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data16 :initarg :data16 :type xcb:-ignore)
(pad~3 :initform 4 :type xcb:-pad-align)
(data32~ :initform
'(name data32 type xcb:CARD32 size
(xcb:-fieldref 'num-items))
:type xcb:-list)
(data32 :initarg :data32 :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-masks :initarg :num-masks :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(masks~ :initform
'(name masks type xcb:xinput:EventMask size
(xcb:-fieldref 'num-masks))
:type xcb:-list)
(masks :initarg :masks :type xcb:-ignore)))
(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:xfixes: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~ :initform
'(name barriers type xcb:xinput:BarrierReleasePointerInfo size
(xcb:-fieldref 'num-barriers))
:type xcb:-list)
(barriers :initarg :barriers :type xcb:-ignore)))
(defclass xcb:xinput:DeviceValuator
(xcb:-event)
((~code :initform 0)
(device-id :initarg :device-id :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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~ :initform
'(name valuators type xcb:INT32 size 6)
:type xcb:-list)
(valuators :initarg :valuators :type xcb:-ignore)))
(defconst xcb:xinput:MoreEventsMask:MoreEvents 128)
(defclass xcb:xinput:DeviceKeyPress
(xcb:-event)
((~code :initform 1)
(detail :initarg :detail :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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:xinput:DeviceKeyPress)
((~code :initform 2)))
(defclass xcb:xinput:DeviceButtonPress
(xcb:xinput:DeviceKeyPress)
((~code :initform 3)))
(defclass xcb:xinput:DeviceButtonRelease
(xcb:xinput:DeviceKeyPress)
((~code :initform 4)))
(defclass xcb:xinput:DeviceMotionNotify
(xcb:xinput:DeviceKeyPress)
((~code :initform 5)))
(defclass xcb:xinput:DeviceFocusIn
(xcb:-event)
((~code :initform 6)
(detail :initarg :detail :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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:xinput:DeviceFocusIn)
((~code :initform 7)))
(defclass xcb:xinput:ProximityIn
(xcb:xinput:DeviceKeyPress)
((~code :initform 8)))
(defclass xcb:xinput:ProximityOut
(xcb:xinput:DeviceKeyPress)
((~code :initform 9)))
(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)
((~code :initform 10)
(device-id :initarg :device-id :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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~ :initform
'(name buttons type xcb:CARD8 size 4)
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)
(keys~ :initform
'(name keys type xcb:CARD8 size 4)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)
(valuators~ :initform
'(name valuators type xcb:CARD32 size 3)
:type xcb:-list)
(valuators :initarg :valuators :type xcb:-ignore)))
(defclass xcb:xinput:DeviceMappingNotify
(xcb:-event)
((~code :initform 11)
(device-id :initarg :device-id :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 12)
(device-id :initarg :device-id :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 13)
(device-id :initarg :device-id :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(keys~ :initform
'(name keys type xcb:CARD8 size 28)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(defclass xcb:xinput:DeviceButtonStateNotify
(xcb:-event)
((~code :initform 14)
(device-id :initarg :device-id :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(buttons~ :initform
'(name buttons type xcb:CARD8 size 28)
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)))
(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)
((~code :initform 15)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 16)
(state :initarg :state :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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:-generic-event)
((~evtype :initform 1)
(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~ :initform
'(name classes type xcb:xinput:DeviceClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(defconst xcb:xinput:KeyEventFlags:KeyRepeat 65536)
(defclass xcb:xinput:KeyPress
(xcb:-generic-event)
((~evtype :initform 2)
(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~ :initform
'(name button-mask type xcb:CARD32 size
(xcb:-fieldref 'buttons-len))
:type xcb:-list)
(button-mask :initarg :button-mask :type xcb:-ignore)
(valuator-mask~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)))
(defclass xcb:xinput:KeyRelease
(xcb:xinput:KeyPress)
((~evtype :initform 3)))
(defconst xcb:xinput:PointerEventFlags:PointerEmulated 65536)
(defclass xcb:xinput:ButtonPress
(xcb:-generic-event)
((~evtype :initform 4)
(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~ :initform
'(name button-mask type xcb:CARD32 size
(xcb:-fieldref 'buttons-len))
:type xcb:-list)
(button-mask :initarg :button-mask :type xcb:-ignore)
(valuator-mask~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)))
(defclass xcb:xinput:ButtonRelease
(xcb:xinput:ButtonPress)
((~evtype :initform 5)))
(defclass xcb:xinput:Motion
(xcb:xinput:ButtonPress)
((~evtype :initform 6)))
(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:-generic-event)
((~evtype :initform 7)
(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~ :initform
'(name buttons type xcb:CARD32 size
(xcb:-fieldref 'buttons-len))
:type xcb:-list)
(buttons :initarg :buttons :type xcb:-ignore)))
(defclass xcb:xinput:Leave
(xcb:xinput:Enter)
((~evtype :initform 8)))
(defclass xcb:xinput:FocusIn
(xcb:xinput:Enter)
((~evtype :initform 9)))
(defclass xcb:xinput:FocusOut
(xcb:xinput:Enter)
((~evtype :initform 10)))
(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:-generic-event)
((~evtype :initform 11)
(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~ :initform
'(name infos type xcb:xinput:HierarchyInfo size
(xcb:-fieldref 'num-infos))
:type xcb:-list)
(infos :initarg :infos :type xcb:-ignore)))
(defconst xcb:xinput:PropertyFlag:Deleted 0)
(defconst xcb:xinput:PropertyFlag:Created 1)
(defconst xcb:xinput:PropertyFlag:Modified 2)
(defclass xcb:xinput:Property
(xcb:-generic-event)
((~evtype :initform 12)
(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:-generic-event)
((~evtype :initform 13)
(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~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)
(axisvalues-raw~ :initform
'(name axisvalues-raw type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)))
(defclass xcb:xinput:RawKeyRelease
(xcb:xinput:RawKeyPress)
((~evtype :initform 14)))
(defclass xcb:xinput:RawButtonPress
(xcb:-generic-event)
((~evtype :initform 15)
(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~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)
(axisvalues-raw~ :initform
'(name axisvalues-raw type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)))
(defclass xcb:xinput:RawButtonRelease
(xcb:xinput:RawButtonPress)
((~evtype :initform 16)))
(defclass xcb:xinput:RawMotion
(xcb:xinput:RawButtonPress)
((~evtype :initform 17)))
(defconst xcb:xinput:TouchEventFlags:TouchPendingEnd 65536)
(defconst xcb:xinput:TouchEventFlags:TouchEmulatingPointer 131072)
(defclass xcb:xinput:TouchBegin
(xcb:-generic-event)
((~evtype :initform 18)
(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~ :initform
'(name button-mask type xcb:CARD32 size
(xcb:-fieldref 'buttons-len))
:type xcb:-list)
(button-mask :initarg :button-mask :type xcb:-ignore)
(valuator-mask~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)))
(defclass xcb:xinput:TouchUpdate
(xcb:xinput:TouchBegin)
((~evtype :initform 19)))
(defclass xcb:xinput:TouchEnd
(xcb:xinput:TouchBegin)
((~evtype :initform 20)))
(defconst xcb:xinput:TouchOwnershipFlags:None 0)
(defclass xcb:xinput:TouchOwnership
(xcb:-generic-event)
((~evtype :initform 21)
(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:-generic-event)
((~evtype :initform 22)
(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~ :initform
'(name valuator-mask type xcb:CARD32 size
(xcb:-fieldref 'valuators-len))
:type xcb:-list)
(valuator-mask :initarg :valuator-mask :type xcb:-ignore)
(axisvalues~ :initform
'(name axisvalues type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues :initarg :axisvalues :type xcb:-ignore)
(axisvalues-raw~ :initform
'(name axisvalues-raw type xcb:xinput:FP3232 size
(apply #'+
(mapcar
(lambda
(i)
(eval
'(logcount obj)
(list
(nconc
'(obj)
i))))
(slot-value obj 'valuator-mask))))
:type xcb:-list)
(axisvalues-raw :initarg :axisvalues-raw :type xcb:-ignore)))
(defclass xcb:xinput:RawTouchUpdate
(xcb:xinput:RawTouchBegin)
((~evtype :initform 23)))
(defclass xcb:xinput:RawTouchEnd
(xcb:xinput:RawTouchBegin)
((~evtype :initform 24)))
(defconst xcb:xinput:BarrierFlags:PointerReleased 1)
(defconst xcb:xinput:BarrierFlags:DeviceIsGrabbed 2)
(defclass xcb:xinput:BarrierHit
(xcb:-generic-event)
((~evtype :initform 25)
(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:xfixes: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:xinput:BarrierHit)
((~evtype :initform 26)))
(defconst xcb:xinput:GesturePinchEventFlags:GesturePinchCancelled 1)
(defclass xcb:xinput:GesturePinchBegin
(xcb:-generic-event)
((~evtype :initform 27)
(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)
(delta-x :initarg :delta-x :type xcb:xinput:FP1616)
(delta-y :initarg :delta-y :type xcb:xinput:FP1616)
(delta-unaccel-x :initarg :delta-unaccel-x :type xcb:xinput:FP1616)
(delta-unaccel-y :initarg :delta-unaccel-y :type xcb:xinput:FP1616)
(scale :initarg :scale :type xcb:xinput:FP1616)
(delta-angle :initarg :delta-angle :type xcb:xinput:FP1616)
(sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
(pad~0 :initform 2 :type xcb:-pad)
(mods :initarg :mods :type xcb:xinput:ModifierInfo)
(group :initarg :group :type xcb:xinput:GroupInfo)
(flags :initarg :flags :type xcb:CARD32)))
(defclass xcb:xinput:GesturePinchUpdate
(xcb:xinput:GesturePinchBegin)
((~evtype :initform 28)))
(defclass xcb:xinput:GesturePinchEnd
(xcb:xinput:GesturePinchBegin)
((~evtype :initform 29)))
(defconst xcb:xinput:GestureSwipeEventFlags:GestureSwipeCancelled 1)
(defclass xcb:xinput:GestureSwipeBegin
(xcb:-generic-event)
((~evtype :initform 30)
(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)
(delta-x :initarg :delta-x :type xcb:xinput:FP1616)
(delta-y :initarg :delta-y :type xcb:xinput:FP1616)
(delta-unaccel-x :initarg :delta-unaccel-x :type xcb:xinput:FP1616)
(delta-unaccel-y :initarg :delta-unaccel-y :type xcb:xinput:FP1616)
(sourceid :initarg :sourceid :type xcb:xinput:DeviceId)
(pad~0 :initform 2 :type xcb:-pad)
(mods :initarg :mods :type xcb:xinput:ModifierInfo)
(group :initarg :group :type xcb:xinput:GroupInfo)
(flags :initarg :flags :type xcb:CARD32)))
(defclass xcb:xinput:GestureSwipeUpdate
(xcb:xinput:GestureSwipeBegin)
((~evtype :initform 31)))
(defclass xcb:xinput:GestureSwipeEnd
(xcb:xinput:GestureSwipeBegin)
((~evtype :initform 32)))
(defclass xcb:xinput:EventForSend
(xcb:-event)
nil)
(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~ :initform
'(name events type xcb:xinput:EventForSend size
(xcb:-fieldref 'num-events))
:type xcb:-list)
(events :initarg :events :type xcb:-ignore)
(classes~ :initform
'(name classes type xcb:xinput:EventClass size
(xcb:-fieldref 'num-classes))
:type xcb:-list)
(classes :initarg :classes :type xcb:-ignore)))
(defclass xcb:xinput:Device
(xcb:-error)
((~code :initform 0)))
(defclass xcb:xinput:Event
(xcb:-error)
((~code :initform 1)))
(defclass xcb:xinput:Mode
(xcb:-error)
((~code :initform 2)))
(defclass xcb:xinput:DeviceBusy
(xcb:-error)
((~code :initform 3)))
(defclass xcb:xinput:Class
(xcb:-error)
((~code :initform 4)))
(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))
"(event-number . event-class) alist.")
(defconst xcb:xinput:xge-number-class-alist
'((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)
(27 . xcb:xinput:GesturePinchBegin)
(28 . xcb:xinput:GesturePinchUpdate)
(29 . xcb:xinput:GesturePinchEnd)
(30 . xcb:xinput:GestureSwipeBegin)
(31 . xcb:xinput:GestureSwipeUpdate)
(32 . xcb:xinput:GestureSwipeEnd))
"(xge-number . event-class) alist.")
(provide 'xcb-xinput)
;;; xcb-xinput.el ends here
xelb-master/xcb-xkb.el 0000664 0000000 0000000 00000261013 14562520677 0015202 0 ustar 00root root 0000000 0000000 ;;; xcb-xkb.el --- X11 xkb extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xkb.xml',
;; which you can retrieve from .
;;; Code:
(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: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~ :initform
'(name name type xcb:char size 4)
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:xkb:KeyAlias
(xcb:-struct)
((real~ :initform
'(name real type xcb:char size 4)
:type xcb:-list)
(real :initarg :real :type xcb:-ignore)
(alias~ :initform
'(name alias type xcb:char size 4)
:type xcb:-list)
(alias :initarg :alias :type xcb:-ignore)))
(defclass xcb:xkb:CountedString16
(xcb:-struct)
((length :initarg :length :type xcb:CARD16)
(string~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'length))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)
(alignment-pad~ :initform
'(name alignment-pad type xcb:void size
(-
(logand
(+
(xcb:-fieldref 'length)
5)
(lognot 3))
(+
(xcb:-fieldref 'length)
2)))
:type xcb:-list)
(alignment-pad :initarg :alignment-pad :type xcb:-ignore)))
(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~ :initform
'(name map type xcb:xkb:KTMapEntry size
(xcb:-fieldref 'nMapEntries))
:type xcb:-list)
(map :initarg :map :type xcb:-ignore)
(preserve~ :initform
'(name preserve type xcb:xkb:ModDef size
(*
(xcb:-fieldref 'hasPreserve)
(xcb:-fieldref 'nMapEntries)))
:type xcb:-list)
(preserve :initarg :preserve :type xcb:-ignore)))
(defclass xcb:xkb:KeySymMap
(xcb:-struct)
((kt-index~ :initform
'(name kt-index type xcb:CARD8 size 4)
:type xcb:-list)
(kt-index :initarg :kt-index :type xcb:-ignore)
(groupInfo :initarg :groupInfo :type xcb:CARD8)
(width :initarg :width :type xcb:CARD8)
(nSyms :initarg :nSyms :type xcb:CARD16)
(syms~ :initform
'(name syms type xcb:KEYSYM size
(xcb:-fieldref 'nSyms))
:type xcb:-list)
(syms :initarg :syms :type xcb:-ignore)))
(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)
((~size :initform 2)
(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~ :initform
'(name entries type xcb:xkb:KTSetMapEntry size
(xcb:-fieldref 'nMapEntries))
:type xcb:-list)
(entries :initarg :entries :type xcb:-ignore)
(preserve-entries~ :initform
'(name preserve-entries type xcb:xkb:KTSetMapEntry size
(*
(xcb:-fieldref 'preserve)
(xcb:-fieldref 'nMapEntries)))
:type xcb:-list)
(preserve-entries :initarg :preserve-entries :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:POINT size
(xcb:-fieldref 'nPoints))
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name outlines type xcb:xkb:Outline size
(xcb:-fieldref 'nOutlines))
:type xcb:-list)
(outlines :initarg :outlines :type xcb:-ignore)))
(defclass xcb:xkb:Key
(xcb:-struct)
((name~ :initform
'(name name type xcb:xkb:STRING8 size 4)
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(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~ :initform
'(name over type xcb:xkb:STRING8 size 4)
:type xcb:-list)
(over :initarg :over :type xcb:-ignore)
(under~ :initform
'(name under type xcb:xkb:STRING8 size 4)
:type xcb:-list)
(under :initarg :under :type xcb:-ignore)))
(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~ :initform
'(name keys type xcb:xkb:OverlayKey size
(xcb:-fieldref 'nKeys))
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(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~ :initform
'(name rows type xcb:xkb:OverlayRow size
(xcb:-fieldref 'nRows))
:type xcb:-list)
(rows :initarg :rows :type xcb:-ignore)))
(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~ :initform
'(name keys type xcb:xkb:Key size
(xcb:-fieldref 'nKeys))
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(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~ :initform
'(name string type xcb:xkb:STRING8 size
(xcb:-fieldref 'length))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)
(pad~0 :initform 2 :type xcb:-pad-align)))
(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~ :initform
'(name names type xcb:ATOM size
(logcount
(xcb:-fieldref 'namesPresent)))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)
(maps~ :initform
'(name maps type xcb:xkb:IndicatorMap size
(logcount
(xcb:-fieldref 'mapsPresent)))
:type xcb:-list)
(maps :initarg :maps :type xcb:-ignore)))
(defconst xcb:xkb:Error:BadDevice 255)
(defconst xcb:xkb:Error:BadClass 254)
(defconst xcb:xkb:Error:BadId 253)
(defclass xcb:xkb:Keyboard
(xcb:-error)
((~code :initform 0)
(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~ :initform
'(name message type xcb:CARD8 size 6)
:type xcb:-list)
(message :initarg :message :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:CARD8 size 7)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
((~size :initform 8)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
(xcb:-fieldref 'clear))
(lognot
(xcb:-fieldref 'selectAll))))
cases
((1 affectNewKeyboard newKeyboardDetails)
(4 affectState stateDetails)
(8 affectCtrls ctrlDetails)
(16 affectIndicatorState indicatorStateDetails)
(32 affectIndicatorMap indicatorMapDetails)
(64 affectNames namesDetails)
(128 affectCompat compatDetails)
(256 affectBell bellDetails)
(512 affectMsgDetails msgDetails)
(1024 affectAccessX accessXDetails)
(2048 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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name perKeyRepeat type xcb:CARD8 size 32)
:type xcb:-list)
(perKeyRepeat :initarg :perKeyRepeat :type xcb:-ignore)))
(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~ :initform
'(name perKeyRepeat type xcb:CARD8 size 32)
:type xcb:-list)
(perKeyRepeat :initarg :perKeyRepeat :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
((1 types-rtrn~)
(2 syms-rtrn~)
(16 acts-rtrn-count~ pad~2 acts-rtrn-acts~)
(32 behaviors-rtrn~)
(64 vmods-rtrn~ pad~3)
(8 explicit-rtrn~ pad~4)
(4 modmap-rtrn~ pad~5)
(128 vmodmap-rtrn~)))
:type xcb:-switch)
(types-rtrn~ :initform
'(name types-rtrn type xcb:xkb:KeyType size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(types-rtrn :initarg :types-rtrn :type xcb:-ignore)
(syms-rtrn~ :initform
'(name syms-rtrn type xcb:xkb:KeySymMap size
(xcb:-fieldref 'nKeySyms))
:type xcb:-list)
(syms-rtrn :initarg :syms-rtrn :type xcb:-ignore)
(acts-rtrn-count~ :initform
'(name acts-rtrn-count type xcb:CARD8 size
(xcb:-fieldref 'nKeyActions))
:type xcb:-list)
(acts-rtrn-count :initarg :acts-rtrn-count :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(acts-rtrn-acts~ :initform
'(name acts-rtrn-acts type xcb:xkb:Action size
(xcb:-fieldref 'totalActions))
:type xcb:-list)
(acts-rtrn-acts :initarg :acts-rtrn-acts :type xcb:-ignore)
(behaviors-rtrn~ :initform
'(name behaviors-rtrn type xcb:xkb:SetBehavior size
(xcb:-fieldref 'totalKeyBehaviors))
:type xcb:-list)
(behaviors-rtrn :initarg :behaviors-rtrn :type xcb:-ignore)
(vmods-rtrn~ :initform
'(name vmods-rtrn type xcb:CARD8 size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(vmods-rtrn :initarg :vmods-rtrn :type xcb:-ignore)
(pad~3 :initform 4 :type xcb:-pad-align)
(explicit-rtrn~ :initform
'(name explicit-rtrn type xcb:xkb:SetExplicit size
(xcb:-fieldref 'totalKeyExplicit))
:type xcb:-list)
(explicit-rtrn :initarg :explicit-rtrn :type xcb:-ignore)
(pad~4 :initform 4 :type xcb:-pad-align)
(modmap-rtrn~ :initform
'(name modmap-rtrn type xcb:xkb:KeyModMap size
(xcb:-fieldref 'totalModMapKeys))
:type xcb:-list)
(modmap-rtrn :initarg :modmap-rtrn :type xcb:-ignore)
(pad~5 :initform 4 :type xcb:-pad-align)
(vmodmap-rtrn~ :initform
'(name vmodmap-rtrn type xcb:xkb:KeyVModMap size
(xcb:-fieldref 'totalVModMapKeys))
:type xcb:-list)
(vmodmap-rtrn :initarg :vmodmap-rtrn :type xcb:-ignore)))
(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
((1 types~)
(2 syms~)
(16 actionsCount~ pad~0 actions~)
(32 behaviors~)
(64 vmods~ pad~1)
(8 explicit~)
(4 modmap~)
(128 vmodmap~)))
:type xcb:-switch)
(types~ :initform
'(name types type xcb:xkb:SetKeyType size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(types :initarg :types :type xcb:-ignore)
(syms~ :initform
'(name syms type xcb:xkb:KeySymMap size
(xcb:-fieldref 'nKeySyms))
:type xcb:-list)
(syms :initarg :syms :type xcb:-ignore)
(actionsCount~ :initform
'(name actionsCount type xcb:CARD8 size
(xcb:-fieldref 'nKeyActions))
:type xcb:-list)
(actionsCount :initarg :actionsCount :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(actions~ :initform
'(name actions type xcb:xkb:Action size
(xcb:-fieldref 'totalActions))
:type xcb:-list)
(actions :initarg :actions :type xcb:-ignore)
(behaviors~ :initform
'(name behaviors type xcb:xkb:SetBehavior size
(xcb:-fieldref 'totalKeyBehaviors))
:type xcb:-list)
(behaviors :initarg :behaviors :type xcb:-ignore)
(vmods~ :initform
'(name vmods type xcb:CARD8 size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(vmods :initarg :vmods :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(explicit~ :initform
'(name explicit type xcb:xkb:SetExplicit size
(xcb:-fieldref 'totalKeyExplicit))
:type xcb:-list)
(explicit :initarg :explicit :type xcb:-ignore)
(modmap~ :initform
'(name modmap type xcb:xkb:KeyModMap size
(xcb:-fieldref 'totalModMapKeys))
:type xcb:-list)
(modmap :initarg :modmap :type xcb:-ignore)
(vmodmap~ :initform
'(name vmodmap type xcb:xkb:KeyVModMap size
(xcb:-fieldref 'totalVModMapKeys))
:type xcb:-list)
(vmodmap :initarg :vmodmap :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name si-rtrn type xcb:xkb:SymInterpret size
(xcb:-fieldref 'nSIRtrn))
:type xcb:-list)
(si-rtrn :initarg :si-rtrn :type xcb:-ignore)
(group-rtrn~ :initform
'(name group-rtrn type xcb:xkb:ModDef size
(logcount
(xcb:-fieldref 'groupsRtrn)))
:type xcb:-list)
(group-rtrn :initarg :group-rtrn :type xcb:-ignore)))
(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~ :initform
'(name si type xcb:xkb:SymInterpret size
(xcb:-fieldref 'nSI))
:type xcb:-list)
(si :initarg :si :type xcb:-ignore)
(groupMaps~ :initform
'(name groupMaps type xcb:xkb:ModDef size
(logcount
(xcb:-fieldref 'groups)))
:type xcb:-list)
(groupMaps :initarg :groupMaps :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name maps type xcb:xkb:IndicatorMap size
(logcount
(xcb:-fieldref 'which)))
:type xcb:-list)
(maps :initarg :maps :type xcb:-ignore)))
(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~ :initform
'(name maps type xcb:xkb:IndicatorMap size
(logcount
(xcb:-fieldref 'which)))
:type xcb:-list)
(maps :initarg :maps :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
((1 keycodesName)
(2 geometryName)
(4 symbolsName)
(8 physSymbolsName)
(16 typesName)
(32 compatName)
(64 typeNames~)
(128 nLevelsPerType~ pad~1 ktLevelNames~)
(256 indicatorNames~)
(2048 virtualModNames~)
(4096 groups~)
(512 keyNames~)
(1024 keyAliases~)
(8192 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~ :initform
'(name typeNames type xcb:ATOM size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(typeNames :initarg :typeNames :type xcb:-ignore)
(nLevelsPerType~ :initform
'(name nLevelsPerType type xcb:CARD8 size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(ktLevelNames~ :initform
'(name ktLevelNames type xcb:ATOM size
(apply #'+
(slot-value obj 'nLevelsPerType)))
:type xcb:-list)
(ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
(indicatorNames~ :initform
'(name indicatorNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'indicators)))
:type xcb:-list)
(indicatorNames :initarg :indicatorNames :type xcb:-ignore)
(virtualModNames~ :initform
'(name virtualModNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(virtualModNames :initarg :virtualModNames :type xcb:-ignore)
(groups~ :initform
'(name groups type xcb:ATOM size
(logcount
(xcb:-fieldref 'groupNames)))
:type xcb:-list)
(groups :initarg :groups :type xcb:-ignore)
(keyNames~ :initform
'(name keyNames type xcb:xkb:KeyName size
(xcb:-fieldref 'nKeys))
:type xcb:-list)
(keyNames :initarg :keyNames :type xcb:-ignore)
(keyAliases~ :initform
'(name keyAliases type xcb:xkb:KeyAlias size
(xcb:-fieldref 'nKeyAliases))
:type xcb:-list)
(keyAliases :initarg :keyAliases :type xcb:-ignore)
(radioGroupNames~ :initform
'(name radioGroupNames type xcb:ATOM size
(xcb:-fieldref 'nRadioGroups))
:type xcb:-list)
(radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)))
(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
((1 keycodesName)
(2 geometryName)
(4 symbolsName)
(8 physSymbolsName)
(16 typesName)
(32 compatName)
(64 typeNames~)
(128 nLevelsPerType~ pad~1 ktLevelNames~)
(256 indicatorNames~)
(2048 virtualModNames~)
(4096 groups~)
(512 keyNames~)
(1024 keyAliases~)
(8192 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~ :initform
'(name typeNames type xcb:ATOM size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(typeNames :initarg :typeNames :type xcb:-ignore)
(nLevelsPerType~ :initform
'(name nLevelsPerType type xcb:CARD8 size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(ktLevelNames~ :initform
'(name ktLevelNames type xcb:ATOM size
(apply #'+
(slot-value obj 'nLevelsPerType)))
:type xcb:-list)
(ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
(indicatorNames~ :initform
'(name indicatorNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'indicators)))
:type xcb:-list)
(indicatorNames :initarg :indicatorNames :type xcb:-ignore)
(virtualModNames~ :initform
'(name virtualModNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(virtualModNames :initarg :virtualModNames :type xcb:-ignore)
(groups~ :initform
'(name groups type xcb:ATOM size
(logcount
(xcb:-fieldref 'groupNames)))
:type xcb:-list)
(groups :initarg :groups :type xcb:-ignore)
(keyNames~ :initform
'(name keyNames type xcb:xkb:KeyName size
(xcb:-fieldref 'nKeys))
:type xcb:-list)
(keyNames :initarg :keyNames :type xcb:-ignore)
(keyAliases~ :initform
'(name keyAliases type xcb:xkb:KeyAlias size
(xcb:-fieldref 'nKeyAliases))
:type xcb:-list)
(keyAliases :initarg :keyAliases :type xcb:-ignore)
(radioGroupNames~ :initform
'(name radioGroupNames type xcb:ATOM size
(xcb:-fieldref 'nRadioGroups))
:type xcb:-list)
(radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name keymaps type xcb:xkb:Listing size
(xcb:-fieldref 'nKeymaps))
:type xcb:-list)
(keymaps :initarg :keymaps :type xcb:-ignore)
(keycodes~ :initform
'(name keycodes type xcb:xkb:Listing size
(xcb:-fieldref 'nKeycodes))
:type xcb:-list)
(keycodes :initarg :keycodes :type xcb:-ignore)
(types~ :initform
'(name types type xcb:xkb:Listing size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(types :initarg :types :type xcb:-ignore)
(compatMaps~ :initform
'(name compatMaps type xcb:xkb:Listing size
(xcb:-fieldref 'nCompatMaps))
:type xcb:-list)
(compatMaps :initarg :compatMaps :type xcb:-ignore)
(symbols~ :initform
'(name symbols type xcb:xkb:Listing size
(xcb:-fieldref 'nSymbols))
:type xcb:-list)
(symbols :initarg :symbols :type xcb:-ignore)
(geometries~ :initform
'(name geometries type xcb:xkb:Listing size
(xcb:-fieldref 'nGeometries))
:type xcb:-list)
(geometries :initarg :geometries :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
((13 getmap-type typeDeviceID getmap-sequence getmap-length pad~1 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~2 virtualMods map)
(2 compatmap-type compatDeviceID compatmap-sequence compatmap-length groupsRtrn pad~7 firstSIRtrn nSIRtrn nTotalSI pad~8 si-rtrn~ group-rtrn~)
(16 indicatormap-type indicatorDeviceID indicatormap-sequence indicatormap-length which realIndicators nIndicators pad~9 maps~)
(160 keyname-type keyDeviceID keyname-sequence keyname-length which* keyMinKeyCode keyMaxKeyCode nTypes* groupNames virtualMods* firstKey nKeys indicators nRadioGroups nKeyAliases nKTLevels pad~10 valueList)
(64 geometry-type geometryDeviceID geometry-sequence geometry-length name geometryFound pad~12 widthMM heightMM nProperties nColors nShapes nSections nDoodads nKeyAliases* baseColorNdx labelColorNdx labelFont)))
: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~1 :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~2 :initform 1 :type xcb:-pad)
(virtualMods :initarg :virtualMods :type xcb:CARD16)
(map :initform
'(expression
(xcb:-fieldref 'present)
cases
((1 types-rtrn~)
(2 syms-rtrn~)
(16 acts-rtrn-count~ pad~3 acts-rtrn-acts~)
(32 behaviors-rtrn~)
(64 vmods-rtrn~ pad~4)
(8 explicit-rtrn~ pad~5)
(4 modmap-rtrn~ pad~6)
(128 vmodmap-rtrn~)))
:type xcb:-switch)
(types-rtrn~ :initform
'(name types-rtrn type xcb:xkb:KeyType size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(types-rtrn :initarg :types-rtrn :type xcb:-ignore)
(syms-rtrn~ :initform
'(name syms-rtrn type xcb:xkb:KeySymMap size
(xcb:-fieldref 'nKeySyms))
:type xcb:-list)
(syms-rtrn :initarg :syms-rtrn :type xcb:-ignore)
(acts-rtrn-count~ :initform
'(name acts-rtrn-count type xcb:CARD8 size
(xcb:-fieldref 'nKeyActions))
:type xcb:-list)
(acts-rtrn-count :initarg :acts-rtrn-count :type xcb:-ignore)
(pad~3 :initform 4 :type xcb:-pad-align)
(acts-rtrn-acts~ :initform
'(name acts-rtrn-acts type xcb:xkb:Action size
(xcb:-fieldref 'totalActions))
:type xcb:-list)
(acts-rtrn-acts :initarg :acts-rtrn-acts :type xcb:-ignore)
(behaviors-rtrn~ :initform
'(name behaviors-rtrn type xcb:xkb:SetBehavior size
(xcb:-fieldref 'totalKeyBehaviors))
:type xcb:-list)
(behaviors-rtrn :initarg :behaviors-rtrn :type xcb:-ignore)
(vmods-rtrn~ :initform
'(name vmods-rtrn type xcb:CARD8 size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(vmods-rtrn :initarg :vmods-rtrn :type xcb:-ignore)
(pad~4 :initform 4 :type xcb:-pad-align)
(explicit-rtrn~ :initform
'(name explicit-rtrn type xcb:xkb:SetExplicit size
(xcb:-fieldref 'totalKeyExplicit))
:type xcb:-list)
(explicit-rtrn :initarg :explicit-rtrn :type xcb:-ignore)
(pad~5 :initform 4 :type xcb:-pad-align)
(modmap-rtrn~ :initform
'(name modmap-rtrn type xcb:xkb:KeyModMap size
(xcb:-fieldref 'totalModMapKeys))
:type xcb:-list)
(modmap-rtrn :initarg :modmap-rtrn :type xcb:-ignore)
(pad~6 :initform 4 :type xcb:-pad-align)
(vmodmap-rtrn~ :initform
'(name vmodmap-rtrn type xcb:xkb:KeyVModMap size
(xcb:-fieldref 'totalVModMapKeys))
:type xcb:-list)
(vmodmap-rtrn :initarg :vmodmap-rtrn :type xcb:-ignore)
(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~7 :initform 1 :type xcb:-pad)
(firstSIRtrn :initarg :firstSIRtrn :type xcb:CARD16)
(nSIRtrn :initarg :nSIRtrn :type xcb:CARD16)
(nTotalSI :initarg :nTotalSI :type xcb:CARD16)
(pad~8 :initform 16 :type xcb:-pad)
(si-rtrn~ :initform
'(name si-rtrn type xcb:xkb:SymInterpret size
(xcb:-fieldref 'nSIRtrn))
:type xcb:-list)
(si-rtrn :initarg :si-rtrn :type xcb:-ignore)
(group-rtrn~ :initform
'(name group-rtrn type xcb:xkb:ModDef size
(logcount
(xcb:-fieldref 'groupsRtrn)))
:type xcb:-list)
(group-rtrn :initarg :group-rtrn :type xcb:-ignore)
(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~9 :initform 15 :type xcb:-pad)
(maps~ :initform
'(name maps type xcb:xkb:IndicatorMap size
(xcb:-fieldref 'nIndicators))
:type xcb:-list)
(maps :initarg :maps :type xcb:-ignore)
(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~10 :initform 4 :type xcb:-pad)
(valueList :initform
'(expression
(xcb:-fieldref 'which)
cases
((1 keycodesName)
(2 geometryName)
(4 symbolsName)
(8 physSymbolsName)
(16 typesName)
(32 compatName)
(64 typeNames~)
(128 nLevelsPerType~ pad~11 ktLevelNames~)
(256 indicatorNames~)
(2048 virtualModNames~)
(4096 groups~)
(512 keyNames~)
(1024 keyAliases~)
(8192 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~ :initform
'(name typeNames type xcb:ATOM size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(typeNames :initarg :typeNames :type xcb:-ignore)
(nLevelsPerType~ :initform
'(name nLevelsPerType type xcb:CARD8 size
(xcb:-fieldref 'nTypes))
:type xcb:-list)
(nLevelsPerType :initarg :nLevelsPerType :type xcb:-ignore)
(pad~11 :initform 4 :type xcb:-pad-align)
(ktLevelNames~ :initform
'(name ktLevelNames type xcb:ATOM size
(apply #'+
(slot-value obj 'nLevelsPerType)))
:type xcb:-list)
(ktLevelNames :initarg :ktLevelNames :type xcb:-ignore)
(indicatorNames~ :initform
'(name indicatorNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'indicators)))
:type xcb:-list)
(indicatorNames :initarg :indicatorNames :type xcb:-ignore)
(virtualModNames~ :initform
'(name virtualModNames type xcb:ATOM size
(logcount
(xcb:-fieldref 'virtualMods)))
:type xcb:-list)
(virtualModNames :initarg :virtualModNames :type xcb:-ignore)
(groups~ :initform
'(name groups type xcb:ATOM size
(logcount
(xcb:-fieldref 'groupNames)))
:type xcb:-list)
(groups :initarg :groups :type xcb:-ignore)
(keyNames~ :initform
'(name keyNames type xcb:xkb:KeyName size
(xcb:-fieldref 'nKeys))
:type xcb:-list)
(keyNames :initarg :keyNames :type xcb:-ignore)
(keyAliases~ :initform
'(name keyAliases type xcb:xkb:KeyAlias size
(xcb:-fieldref 'nKeyAliases))
:type xcb:-list)
(keyAliases :initarg :keyAliases :type xcb:-ignore)
(radioGroupNames~ :initform
'(name radioGroupNames type xcb:ATOM size
(xcb:-fieldref 'nRadioGroups))
:type xcb:-list)
(radioGroupNames :initarg :radioGroupNames :type xcb:-ignore)
(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~12 :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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name name type xcb:xkb:STRING8 size
(xcb:-fieldref 'nameLen))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(btnActions~ :initform
'(name btnActions type xcb:xkb:Action size
(xcb:-fieldref 'nBtnsRtrn))
:type xcb:-list)
(btnActions :initarg :btnActions :type xcb:-ignore)
(leds~ :initform
'(name leds type xcb:xkb:DeviceLedInfo size
(xcb:-fieldref 'nDeviceLedFBs))
:type xcb:-list)
(leds :initarg :leds :type xcb:-ignore)))
(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~ :initform
'(name btnActions type xcb:xkb:Action size
(xcb:-fieldref 'nBtns))
:type xcb:-list)
(btnActions :initarg :btnActions :type xcb:-ignore)
(leds~ :initform
'(name leds type xcb:xkb:DeviceLedInfo size
(xcb:-fieldref 'nDeviceLedFBs))
:type xcb:-list)
(leds :initarg :leds :type xcb:-ignore)))
(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~ :initform
'(name message type xcb:xkb:STRING8 size
(xcb:-fieldref 'msgLength))
:type xcb:-list)
(message :initarg :message :type xcb:-ignore)))
(defclass xcb:xkb:SetDebuggingFlags~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
((~code :initform 0)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 2)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 3)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 4)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 5)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 6)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 7)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 8)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 9)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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~ :initform
'(name message type xcb:xkb:STRING8 size 8)
:type xcb:-list)
(message :initarg :message :type xcb:-ignore)
(pad~0 :initform 10 :type xcb:-pad)))
(defclass xcb:xkb:AccessXNotify
(xcb:-event)
((~code :initform 10)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 11)
(xkbType :initarg :xkbType :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
;;; xcb-xkb.el ends here
xelb-master/xcb-xlib.el 0000664 0000000 0000000 00000010534 14562520677 0015354 0 ustar 00root root 0000000 0000000 ;;; xcb-xlib.el --- Port of Xlib -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file currently only contains constants from 'Xlib.h'
;;; Code:
(defconst xlib:XNRequiredCharSet "requiredCharSet")
(defconst xlib:XNQueryOrientation "queryOrientation")
(defconst xlib:XNBaseFontName "baseFontName")
(defconst xlib:XNOMAutomatic "omAutomatic")
(defconst xlib:XNMissingCharSet "missingCharSet")
(defconst xlib:XNDefaultString "defaultString")
(defconst xlib:XNOrientation "orientation")
(defconst xlib:XNDirectionalDependentDrawing "directionalDependentDrawing")
(defconst xlib:XNContextualDrawing "contextualDrawing")
(defconst xlib:XNFontInfo "fontInfo")
(defconst xlib:XNVaNestedList "XNVaNestedList")
(defconst xlib:XNQueryInputStyle "queryInputStyle")
(defconst xlib:XNClientWindow "clientWindow")
(defconst xlib:XNInputStyle "inputStyle")
(defconst xlib:XNFocusWindow "focusWindow")
(defconst xlib:XNResourceName "resourceName")
(defconst xlib:XNResourceClass "resourceClass")
(defconst xlib:XNGeometryCallback "geometryCallback")
(defconst xlib:XNDestroyCallback "destroyCallback")
(defconst xlib:XNFilterEvents "filterEvents")
(defconst xlib:XNPreeditStartCallback "preeditStartCallback")
(defconst xlib:XNPreeditDoneCallback "preeditDoneCallback")
(defconst xlib:XNPreeditDrawCallback "preeditDrawCallback")
(defconst xlib:XNPreeditCaretCallback "preeditCaretCallback")
(defconst xlib:XNPreeditStateNotifyCallback "preeditStateNotifyCallback")
(defconst xlib:XNPreeditAttributes "preeditAttributes")
(defconst xlib:XNStatusStartCallback "statusStartCallback")
(defconst xlib:XNStatusDoneCallback "statusDoneCallback")
(defconst xlib:XNStatusDrawCallback "statusDrawCallback")
(defconst xlib:XNStatusAttributes "statusAttributes")
(defconst xlib:XNArea "area")
(defconst xlib:XNAreaNeeded "areaNeeded")
(defconst xlib:XNSpotLocation "spotLocation")
(defconst xlib:XNColormap "colorMap")
(defconst xlib:XNStdColormap "stdColorMap")
(defconst xlib:XNForeground "foreground")
(defconst xlib:XNBackground "background")
(defconst xlib:XNBackgroundPixmap "backgroundPixmap")
(defconst xlib:XNFontSet "fontSet")
(defconst xlib:XNLineSpace "lineSpace")
(defconst xlib:XNCursor "cursor")
(defconst xlib:XNQueryIMValuesList "queryIMValuesList")
(defconst xlib:XNQueryICValuesList "queryICValuesList")
(defconst xlib:XNVisiblePosition "visiblePosition")
(defconst xlib:XNR6PreeditCallback "r6PreeditCallback")
(defconst xlib:XNStringConversionCallback "stringConversionCallback")
(defconst xlib:XNStringConversion "stringConversion")
(defconst xlib:XNResetState "resetState")
(defconst xlib:XNHotKey "hotKey")
(defconst xlib:XNHotKeyState "hotKeyState")
(defconst xlib:XNPreeditState "preeditState")
(defconst xlib:XNSeparatorofNestedList "separatorofNestedList")
(defconst xlib:XIMPreeditArea #x0001)
(defconst xlib:XIMPreeditCallbacks #x0002)
(defconst xlib:XIMPreeditPosition #x0004)
(defconst xlib:XIMPreeditNothing #x0008)
(defconst xlib:XIMPreeditNone #x0010)
(defconst xlib:XIMStatusArea #x0100)
(defconst xlib:XIMStatusCallbacks #x0200)
(defconst xlib:XIMStatusNothing #x0400)
(defconst xlib:XIMStatusNone #x0800)
(defconst xlib:XIMReverse #x001)
(defconst xlib:XIMUnderline #x002)
(defconst xlib:XIMHighlight #x004)
(defconst xlib:XIMPrimary #x010)
(defconst xlib:XIMSecondary #x020)
(defconst xlib:XIMTertiary #x040)
(defconst xlib:XIMVisibleToForward #x080)
(defconst xlib:XIMVisibleToBackword #x100)
(defconst xlib:XIMVisibleToCenter #x200)
(defconst xlib:XBufferOverflow -1)
(defconst xlib:XLookupNone 1)
(defconst xlib:XLookupChars 2)
(defconst xlib:XLookupKeySym 3)
(defconst xlib:XLookupBoth 4)
(provide 'xcb-xlib)
;;; xcb-xlib.el ends here
xelb-master/xcb-xprint.el 0000664 0000000 0000000 00000033166 14562520677 0015750 0 ustar 00root root 0000000 0000000 ;;; xcb-xprint.el --- X11 XPrint extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xprint.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name name type xcb:xprint:STRING8 size
(xcb:-fieldref 'nameLen))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(descLen :initarg :descLen :type xcb:CARD32)
(description~ :initform
'(name description type xcb:xprint:STRING8 size
(xcb:-fieldref 'descLen))
:type xcb:-list)
(description :initarg :description :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name printer-name type xcb:xprint:STRING8 size
(xcb:-fieldref 'printerNameLen))
:type xcb:-list)
(printer-name :initarg :printer-name :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(locale~ :initform
'(name locale type xcb:xprint:STRING8 size
(xcb:-fieldref 'localeLen))
:type xcb:-list)
(locale :initarg :locale :type xcb:-ignore)))
(defclass xcb:xprint:PrintGetPrinterList~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(listCount :initarg :listCount :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(printers~ :initform
'(name printers type xcb:xprint:PRINTER size
(xcb:-fieldref 'listCount))
:type xcb:-list)
(printers :initarg :printers :type xcb:-ignore)))
(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~ :initform
'(name printerName type xcb:xprint:STRING8 size
(xcb:-fieldref 'printerNameLen))
:type xcb:-list)
(printerName :initarg :printerName :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(locale~ :initform
'(name locale type xcb:xprint:STRING8 size
(xcb:-fieldref 'localeLen))
:type xcb:-list)
(locale :initarg :locale :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(xcb:-fieldref 'len-data))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(doc-format~ :initform
'(name doc-format type xcb:xprint:STRING8 size
(xcb:-fieldref 'len-fmt))
:type xcb:-list)
(doc-format :initarg :doc-format :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(options~ :initform
'(name options type xcb:xprint:STRING8 size
(xcb:-fieldref 'len-options))
:type xcb:-list)
(options :initarg :options :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name data type xcb:BYTE size
(xcb:-fieldref 'dataLen))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(stringLen :initarg :stringLen :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(attributes~ :initform
'(name attributes type xcb:xprint:STRING8 size
(xcb:-fieldref 'stringLen))
:type xcb:-list)
(attributes :initarg :attributes :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:xprint:STRING8 size
(xcb:-fieldref 'nameLen))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:xprint:PrintGetOneAttributes~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(valueLen :initarg :valueLen :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(value~ :initform
'(name value type xcb:xprint:STRING8 size
(xcb:-fieldref 'valueLen))
:type xcb:-list)
(value :initarg :value :type xcb:-ignore)))
(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~ :initform
'(name attributes type xcb:xprint:STRING8 size nil)
:type xcb:-list)
(attributes :initarg :attributes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(listCount :initarg :listCount :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(roots~ :initform
'(name roots type xcb:WINDOW size
(xcb:-fieldref 'listCount))
:type xcb:-list)
(roots :initarg :roots :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(image-resolution :initarg :image-resolution :type xcb:CARD16)))
(defclass xcb:xprint:Notify
(xcb:-event)
((~code :initform 0)
(detail :initarg :detail :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(context :initarg :context :type xcb:xprint:PCONTEXT)
(cancel :initarg :cancel :type xcb:BOOL)))
(defclass xcb:xprint:AttributNotify
(xcb:-event)
((~code :initform 1)
(detail :initarg :detail :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(context :initarg :context :type xcb:xprint:PCONTEXT)))
(defclass xcb:xprint:BadContext
(xcb:-error)
((~code :initform 0)))
(defclass xcb:xprint:BadSequence
(xcb:-error)
((~code :initform 1)))
(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)
;;; xcb-xprint.el ends here
xelb-master/xcb-xproto.el 0000664 0000000 0000000 00000303640 14562520677 0015754 0 ustar 00root root 0000000 0000000 ;;; xcb-xproto.el --- X11 core protocol -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xproto.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name visuals type xcb:VISUALTYPE size
(xcb:-fieldref 'visuals-len))
:type xcb:-list)
(visuals :initarg :visuals :type xcb:-ignore)))
(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~ :initform
'(name allowed-depths type xcb:DEPTH size
(xcb:-fieldref 'allowed-depths-len))
:type xcb:-list)
(allowed-depths :initarg :allowed-depths :type xcb:-ignore)))
(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~ :initform
'(name authorization-protocol-name type xcb:char size
(xcb:-fieldref 'authorization-protocol-name-len))
:type xcb:-list)
(authorization-protocol-name :initarg :authorization-protocol-name :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(authorization-protocol-data~ :initform
'(name authorization-protocol-data type xcb:char size
(xcb:-fieldref 'authorization-protocol-data-len))
:type xcb:-list)
(authorization-protocol-data :initarg :authorization-protocol-data :type xcb:-ignore)
(pad~3 :initform 4 :type xcb:-pad-align)))
(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~ :initform
'(name reason type xcb:char size
(xcb:-fieldref 'reason-len))
:type xcb:-list)
(reason :initarg :reason :type xcb:-ignore)))
(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~ :initform
'(name reason type xcb:char size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(reason :initarg :reason :type xcb:-ignore)))
(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~ :initform
'(name vendor type xcb:char size
(xcb:-fieldref 'vendor-len))
:type xcb:-list)
(vendor :initarg :vendor :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)
(pixmap-formats~ :initform
'(name pixmap-formats type xcb:FORMAT size
(xcb:-fieldref 'pixmap-formats-len))
:type xcb:-list)
(pixmap-formats :initarg :pixmap-formats :type xcb:-ignore)
(roots~ :initform
'(name roots type xcb:SCREEN size
(xcb:-fieldref 'roots-len))
:type xcb:-list)
(roots :initarg :roots :type xcb:-ignore)))
(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)
((~code :initform 2)
(detail :initarg :detail :type xcb:KEYCODE)
(~sequence :type xcb:CARD16)
(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:KeyPress)
((~code :initform 3)))
(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)
((~code :initform 4)
(detail :initarg :detail :type xcb:BUTTON)
(~sequence :type xcb:CARD16)
(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:ButtonPress)
((~code :initform 5)))
(defconst xcb:Motion:Normal 0)
(defconst xcb:Motion:Hint 1)
(defclass xcb:MotionNotify
(xcb:-event)
((~code :initform 6)
(detail :initarg :detail :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 7)
(detail :initarg :detail :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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:EnterNotify)
((~code :initform 8)))
(defclass xcb:FocusIn
(xcb:-event)
((~code :initform 9)
(detail :initarg :detail :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(event :initarg :event :type xcb:WINDOW)
(mode :initarg :mode :type xcb:BYTE)
(pad~0 :initform 3 :type xcb:-pad)))
(defclass xcb:FocusOut
(xcb:FocusIn)
((~code :initform 10)))
(defclass xcb:KeymapNotify
(xcb:-event)
((~code :initform 11)
(keys~ :initform
'(name keys type xcb:CARD8 size 31)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(defclass xcb:Expose
(xcb:-event)
((~code :initform 12)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 13)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 14)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 15)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(window :initarg :window :type xcb:WINDOW)
(state :initarg :state :type xcb:BYTE)
(pad~1 :initform 3 :type xcb:-pad)))
(defclass xcb:CreateNotify
(xcb:-event)
((~code :initform 16)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 17)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(event :initarg :event :type xcb:WINDOW)
(window :initarg :window :type xcb:WINDOW)))
(defclass xcb:UnmapNotify
(xcb:-event)
((~code :initform 18)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 19)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 20)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(parent :initarg :parent :type xcb:WINDOW)
(window :initarg :window :type xcb:WINDOW)))
(defclass xcb:ReparentNotify
(xcb:-event)
((~code :initform 21)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 22)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 23)
(stack-mode :initarg :stack-mode :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 24)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 25)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 26)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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:CirculateNotify)
((~code :initform 27)))
(defconst xcb:Property:NewValue 0)
(defconst xcb:Property:Delete 1)
(defclass xcb:PropertyNotify
(xcb:-event)
((~code :initform 28)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 29)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 30)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 31)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 32)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
((~size :initform 20)
(data8~ :initform
'(name data8 type xcb:CARD8 size 20)
:type xcb:-list)
(data8 :initarg :data8 :type xcb:-ignore)
(data16~ :initform
'(name data16 type xcb:CARD16 size 10)
:type xcb:-list)
(data16 :initarg :data16 :type xcb:-ignore)
(data32~ :initform
'(name data32 type xcb:CARD32 size 5)
:type xcb:-list)
(data32 :initarg :data32 :type xcb:-ignore)))
(defclass xcb:ClientMessage
(xcb:-event)
((~code :initform 33)
(format :initarg :format :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 34)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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:-generic-event)
((pad~0 :initform 22 :type xcb:-pad)))
(defclass xcb:Request
(xcb:-error)
((~code :initform 1)
(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)
((~code :initform 2)
(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)
((~code :initform 3)))
(defclass xcb:Pixmap
(xcb:-error xcb:Value)
((~code :initform 4)))
(defclass xcb:Atom
(xcb:-error xcb:Value)
((~code :initform 5)))
(defclass xcb:Cursor
(xcb:-error xcb:Value)
((~code :initform 6)))
(defclass xcb:Font
(xcb:-error xcb:Value)
((~code :initform 7)))
(defclass xcb:Match
(xcb:-error xcb:Request)
((~code :initform 8)))
(defclass xcb:Drawable
(xcb:-error xcb:Value)
((~code :initform 9)))
(defclass xcb:Access
(xcb:-error xcb:Request)
((~code :initform 10)))
(defclass xcb:Alloc
(xcb:-error xcb:Request)
((~code :initform 11)))
(defclass xcb:Colormap
(xcb:-error xcb:Value)
((~code :initform 12)))
(defclass xcb:GContext
(xcb:-error xcb:Value)
((~code :initform 13)))
(defclass xcb:IDChoice
(xcb:-error xcb:Value)
((~code :initform 14)))
(defclass xcb:Name
(xcb:-error xcb:Request)
((~code :initform 15)))
(defclass xcb:Length
(xcb:-error xcb:Request)
((~code :initform 16)))
(defclass xcb:Implementation
(xcb:-error xcb:Request)
((~code :initform 17)))
(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
((1 background-pixmap)
(2 background-pixel)
(4 border-pixmap)
(8 border-pixel)
(16 bit-gravity)
(32 win-gravity)
(64 backing-store)
(128 backing-planes)
(256 backing-pixel)
(512 override-redirect)
(1024 save-under)
(2048 event-mask)
(4096 do-not-propogate-mask)
(8192 colormap)
(16384 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
((1 background-pixmap)
(2 background-pixel)
(4 border-pixmap)
(8 border-pixel)
(16 bit-gravity)
(32 win-gravity)
(64 backing-store)
(128 backing-planes)
(256 backing-pixel)
(512 override-redirect)
(1024 save-under)
(2048 event-mask)
(4096 do-not-propogate-mask)
(8192 colormap)
(16384 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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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
((1 x)
(2 y)
(4 width)
(8 height)
(16 border-width)
(32 sibling)
(64 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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name children type xcb:WINDOW size
(xcb:-fieldref 'children-len))
:type xcb:-list)
(children :initarg :children :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:InternAtom~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(name-len :initarg :name-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:void size
(/
(*
(xcb:-fieldref 'data-len)
(xcb:-fieldref 'format))
8))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name value type xcb:void size
(*
(xcb:-fieldref 'value-len)
(/
(xcb:-fieldref 'format)
8)))
:type xcb:-list)
(value :initarg :value :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(atoms-len :initarg :atoms-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(atoms~ :initform
'(name atoms type xcb:ATOM size
(xcb:-fieldref 'atoms-len))
:type xcb:-list)
(atoms :initarg :atoms :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name event type xcb:char size 32)
:type xcb:-list)
(event :initarg :event :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(events-len :initarg :events-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(events~ :initform
'(name events type xcb:TIMECOORD size
(xcb:-fieldref 'events-len))
:type xcb:-list)
(events :initarg :events :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(keys~ :initform
'(name keys type xcb:CARD8 size 32)
:type xcb:-list)
(keys :initarg :keys :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name properties type xcb:FONTPROP size
(xcb:-fieldref 'properties-len))
:type xcb:-list)
(properties :initarg :properties :type xcb:-ignore)
(char-infos~ :initform
'(name char-infos type xcb:CHARINFO size
(xcb:-fieldref 'char-infos-len))
:type xcb:-list)
(char-infos :initarg :char-infos :type xcb:-ignore)))
(defclass xcb:QueryTextExtents
(xcb:-request)
((~opcode :initform 48 :type xcb:-u1)
(odd-length :type xcb:BOOL)
(font :initarg :font :type xcb:FONTABLE)
(string~ :initform
'(name string type xcb:CHAR2B size nil)
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(cl-defmethod xcb:marshal
((obj xcb:QueryTextExtents))
nil
(setf
(slot-value obj 'odd-length)
(logand
(length
(xcb:-fieldref 'string))
1))
(cl-call-next-method obj))
(defclass xcb:QueryTextExtents~reply
(xcb:-reply)
((draw-direction :initarg :draw-direction :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name pattern type xcb:char size
(xcb:-fieldref 'pattern-len))
:type xcb:-list)
(pattern :initarg :pattern :type xcb:-ignore)))
(defclass xcb:ListFonts~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(names-len :initarg :names-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(names~ :initform
'(name names type xcb:STR size
(xcb:-fieldref 'names-len))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)))
(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~ :initform
'(name pattern type xcb:char size
(xcb:-fieldref 'pattern-len))
:type xcb:-list)
(pattern :initarg :pattern :type xcb:-ignore)))
(defclass xcb:ListFontsWithInfo~reply
(xcb:-reply)
((name-len :initarg :name-len :type xcb:CARD8)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name properties type xcb:FONTPROP size
(xcb:-fieldref 'properties-len))
:type xcb:-list)
(properties :initarg :properties :type xcb:-ignore)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name font type xcb:STR size
(xcb:-fieldref 'font-qty))
:type xcb:-list)
(font :initarg :font :type xcb:-ignore)))
(defclass xcb:GetFontPath
(xcb:-request)
((~opcode :initform 52 :type xcb:-u1)))
(defclass xcb:GetFontPath~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(path-len :initarg :path-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(path~ :initform
'(name path type xcb:STR size
(xcb:-fieldref 'path-len))
:type xcb:-list)
(path :initarg :path :type xcb:-ignore)))
(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
((1 function)
(2 plane-mask)
(4 foreground)
(8 background)
(16 line-width)
(32 line-style)
(64 cap-style)
(128 join-style)
(256 fill-style)
(512 fill-rule)
(1024 tile)
(2048 stipple)
(4096 tile-stipple-x-origin)
(8192 tile-stipple-y-origin)
(16384 font)
(32768 subwindow-mode)
(65536 graphics-exposures)
(131072 clip-x-origin)
(262144 clip-y-origin)
(524288 clip-mask)
(1048576 dash-offset)
(2097152 dashes)
(4194304 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
((1 function)
(2 plane-mask)
(4 foreground)
(8 background)
(16 line-width)
(32 line-style)
(64 cap-style)
(128 join-style)
(256 fill-style)
(512 fill-rule)
(1024 tile)
(2048 stipple)
(4096 tile-stipple-x-origin)
(8192 tile-stipple-y-origin)
(16384 font)
(32768 subwindow-mode)
(65536 graphics-exposures)
(131072 clip-x-origin)
(262144 clip-y-origin)
(524288 clip-mask)
(1048576 dash-offset)
(2097152 dashes)
(4194304 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~ :initform
'(name dashes type xcb:CARD8 size
(xcb:-fieldref 'dashes-len))
:type xcb:-list)
(dashes :initarg :dashes :type xcb:-ignore)))
(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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:POINT size nil)
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:POINT size nil)
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name segments type xcb:SEGMENT size nil)
:type xcb:-list)
(segments :initarg :segments :type xcb:-ignore)))
(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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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~ :initform
'(name arcs type xcb:ARC size nil)
:type xcb:-list)
(arcs :initarg :arcs :type xcb:-ignore)))
(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~ :initform
'(name points type xcb:POINT size nil)
:type xcb:-list)
(points :initarg :points :type xcb:-ignore)))
(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~ :initform
'(name rectangles type xcb:RECTANGLE size nil)
:type xcb:-list)
(rectangles :initarg :rectangles :type xcb:-ignore)))
(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~ :initform
'(name arcs type xcb:ARC size nil)
:type xcb:-list)
(arcs :initarg :arcs :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:BYTE size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(visual :initarg :visual :type xcb:VISUALID)
(pad~0 :initform 20 :type xcb:-pad)
(data~ :initform
'(name data type xcb:BYTE size
(*
(xcb:-fieldref 'length)
4))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name items type xcb:BYTE size nil)
:type xcb:-list)
(items :initarg :items :type xcb:-ignore)))
(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~ :initform
'(name items type xcb:BYTE size nil)
:type xcb:-list)
(items :initarg :items :type xcb:-ignore)))
(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~ :initform
'(name string type xcb:char size
(xcb:-fieldref 'string-len))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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~ :initform
'(name string type xcb:CHAR2B size
(xcb:-fieldref 'string-len))
:type xcb:-list)
(string :initarg :string :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(cmaps-len :initarg :cmaps-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(cmaps~ :initform
'(name cmaps type xcb:COLORMAP size
(xcb:-fieldref 'cmaps-len))
:type xcb:-list)
(cmaps :initarg :cmaps :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:AllocNamedColor~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pixels-len :initarg :pixels-len :type xcb:CARD16)
(masks-len :initarg :masks-len :type xcb:CARD16)
(pad~1 :initform 20 :type xcb:-pad)
(pixels~ :initform
'(name pixels type xcb:CARD32 size
(xcb:-fieldref 'pixels-len))
:type xcb:-list)
(pixels :initarg :pixels :type xcb:-ignore)
(masks~ :initform
'(name masks type xcb:CARD32 size
(xcb:-fieldref 'masks-len))
:type xcb:-list)
(masks :initarg :masks :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name pixels type xcb:CARD32 size
(xcb:-fieldref 'pixels-len))
:type xcb:-list)
(pixels :initarg :pixels :type xcb:-ignore)))
(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~ :initform
'(name pixels type xcb:CARD32 size nil)
:type xcb:-list)
(pixels :initarg :pixels :type xcb:-ignore)))
(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~ :initform
'(name items type xcb:COLORITEM size nil)
:type xcb:-list)
(items :initarg :items :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(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~ :initform
'(name pixels type xcb:CARD32 size nil)
:type xcb:-list)
(pixels :initarg :pixels :type xcb:-ignore)))
(defclass xcb:QueryColors~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(colors-len :initarg :colors-len :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(colors~ :initform
'(name colors type xcb:RGB size
(xcb:-fieldref 'colors-len))
:type xcb:-list)
(colors :initarg :colors :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:LookupColor~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :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)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)))
(defclass xcb:QueryExtension~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~0 :initform 24 :type xcb:-pad)
(names~ :initform
'(name names type xcb:STR size
(xcb:-fieldref 'names-len))
:type xcb:-list)
(names :initarg :names :type xcb:-ignore)))
(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~ :initform
'(name keysyms type xcb:KEYSYM size
(*
(xcb:-fieldref 'keycode-count)
(xcb:-fieldref 'keysyms-per-keycode)))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~0 :initform 24 :type xcb:-pad)
(keysyms~ :initform
'(name keysyms type xcb:KEYSYM size
(xcb:-fieldref 'length))
:type xcb:-list)
(keysyms :initarg :keysyms :type xcb:-ignore)))
(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
((1 key-click-percent)
(2 bell-percent)
(4 bell-pitch)
(8 bell-duration)
(16 led)
(32 led-mode)
(64 key)
(128 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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name auto-repeats type xcb:CARD8 size 32)
:type xcb:-list)
(auto-repeats :initarg :auto-repeats :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name address type xcb:BYTE size
(xcb:-fieldref 'address-len))
:type xcb:-list)
(address :initarg :address :type xcb:-ignore)))
(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~ :initform
'(name address type xcb:BYTE size
(xcb:-fieldref 'address-len))
:type xcb:-list)
(address :initarg :address :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)))
(defclass xcb:ListHosts
(xcb:-request)
((~opcode :initform 110 :type xcb:-u1)))
(defclass xcb:ListHosts~reply
(xcb:-reply)
((mode :initarg :mode :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(hosts-len :initarg :hosts-len :type xcb:CARD16)
(pad~0 :initform 22 :type xcb:-pad)
(hosts~ :initform
'(name hosts type xcb:HOST size
(xcb:-fieldref 'hosts-len))
:type xcb:-list)
(hosts :initarg :hosts :type xcb:-ignore)))
(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~ :initform
'(name atoms type xcb:ATOM size
(xcb:-fieldref 'atoms-len))
:type xcb:-list)
(atoms :initarg :atoms :type xcb:-ignore)))
(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~ :initform
'(name map type xcb:CARD8 size
(xcb:-fieldref 'map-len))
:type xcb:-list)
(map :initarg :map :type xcb:-ignore)))
(defclass xcb:SetPointerMapping~reply
(xcb:-reply)
((status :initarg :status :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~0 :initform 24 :type xcb:-pad)
(map~ :initform
'(name map type xcb:CARD8 size
(xcb:-fieldref 'map-len))
:type xcb:-list)
(map :initarg :map :type xcb:-ignore)))
(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~ :initform
'(name keycodes type xcb:KEYCODE size
(*
(xcb:-fieldref 'keycodes-per-modifier)
8))
:type xcb:-list)
(keycodes :initarg :keycodes :type xcb:-ignore)))
(defclass xcb:SetModifierMapping~reply
(xcb:-reply)
((status :initarg :status :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~0 :initform 24 :type xcb:-pad)
(keycodes~ :initform
'(name keycodes type xcb:KEYCODE size
(*
(xcb:-fieldref 'keycodes-per-modifier)
8))
:type xcb:-list)
(keycodes :initarg :keycodes :type xcb:-ignore)))
(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)
;;; xcb-xproto.el ends here
xelb-master/xcb-xselinux.el 0000664 0000000 0000000 00000032102 14562520677 0016270 0 ustar 00root root 0000000 0000000 ;;; xcb-xselinux.el --- X11 SELinux extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xselinux.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(defclass xcb:xselinux:SetWindowCreateContext
(xcb:-request)
((~opcode :initform 5 :type xcb:-u1)
(context-len :initarg :context-len :type xcb:CARD32)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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~ :initform
'(name object-context type xcb:char size
(xcb:-fieldref 'object-context-len))
:type xcb:-list)
(object-context :initarg :object-context :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)
(data-context~ :initform
'(name data-context type xcb:char size
(xcb:-fieldref 'data-context-len))
:type xcb:-list)
(data-context :initarg :data-context :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)))
(defclass xcb:xselinux:SetPropertyCreateContext
(xcb:-request)
((~opcode :initform 8 :type xcb:-u1)
(context-len :initarg :context-len :type xcb:CARD32)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(defclass xcb:xselinux:SetPropertyUseContext
(xcb:-request)
((~opcode :initform 10 :type xcb:-u1)
(context-len :initarg :context-len :type xcb:CARD32)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(properties-len :initarg :properties-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(properties~ :initform
'(name properties type xcb:xselinux:ListItem size
(xcb:-fieldref 'properties-len))
:type xcb:-list)
(properties :initarg :properties :type xcb:-ignore)))
(defclass xcb:xselinux:SetSelectionCreateContext
(xcb:-request)
((~opcode :initform 15 :type xcb:-u1)
(context-len :initarg :context-len :type xcb:CARD32)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(defclass xcb:xselinux:SetSelectionUseContext
(xcb:-request)
((~opcode :initform 17 :type xcb:-u1)
(context-len :initarg :context-len :type xcb:CARD32)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(selections-len :initarg :selections-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(selections~ :initform
'(name selections type xcb:xselinux:ListItem size
(xcb:-fieldref 'selections-len))
:type xcb:-list)
(selections :initarg :selections :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(context-len :initarg :context-len :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(context~ :initform
'(name context type xcb:char size
(xcb:-fieldref 'context-len))
:type xcb:-list)
(context :initarg :context :type xcb:-ignore)))
(provide 'xcb-xselinux)
;;; xcb-xselinux.el ends here
xelb-master/xcb-xsettings.el 0000664 0000000 0000000 00000005673 14562520677 0016456 0 ustar 00root root 0000000 0000000 ;;; xcb-xsettings.el --- XSETTINGS protocol -*- lexical-binding: t -*-
;; Copyright (C) 2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file is written by hand. If possible we should auto-generate it
;; from an XML protocol specification. The XSETTINGS protocol is
;; specified at: https://specifications.freedesktop.org/xsettings-spec/
;;; Code:
(require 'xcb-types)
(require 'xcb-icccm)
(defconst xcb:xsettings:-Type:Integer 0)
(defconst xcb:xsettings:-Type:String 1)
(defconst xcb:xsettings:-Type:Color 2)
(defclass xcb:xsettings:-Settings
(xcb:-struct)
((byte-order :initarg :byte-order :type xcb:CARD8)
(pad~0 :initform 3 :type xcb:-pad)
(serial :initarg :serial :type xcb:CARD32)
(settings-len :initarg :settings-len :type xcb:CARD32)
(settings~ :initform
'(name settings type xcb:xsettings:-SETTING size
(xcb:-fieldref 'settings-len))
:type xcb:-list)
(settings :initarg :settings :type xcb:-ignore)))
(defclass xcb:xsettings:-SETTING
(xcb:-struct)
((type :initarg :type :type xcb:CARD8)
(pad~0 :initform 1 :type xcb:-pad)
(name-len :initarg :name-len :type xcb:CARD16)
(name~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-len))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(last-change-serial :initarg :last-change-serial :type xcb:CARD32)))
(defclass xcb:xsettings:-SETTING_INTEGER
(xcb:xsettings:-SETTING)
((type :initform 'xcb:xsettings:-Type:Integer)
(value :initarg :value :type xcb:INT32)))
(defclass xcb:xsettings:-SETTING_STRING
(xcb:xsettings:-SETTING)
((type :initform 'xcb:xsettings:-Type:String)
(value-len :initarg :value-len :type xcb:CARD32)
(value~ :initform
'(name value type xcb:char size
(xcb:-fieldref 'value-len))
:type xcb:-list)
(value :initarg :value :type xcb:-ignore)
(pad~2 :initform 4 :type xcb:-pad-align)))
(defclass xcb:xsettings:-SETTING_COLOR
(xcb:xsettings:-SETTING)
((type :initform 'xcb:xsettings:-Type:Color)
(red :initarg :red :type xcb:CARD16)
(green :initarg :green :type xcb:CARD16)
(blue :initarg :blue :type xcb:CARD16)
(alpha :initarg :alpha :initform #xffff :type xcb:CARD16)))
(provide 'xcb-xsettings)
;;; xcb-xsettings.el ends here
xelb-master/xcb-xtest.el 0000664 0000000 0000000 00000005371 14562520677 0015570 0 ustar 00root root 0000000 0000000 ;;; xcb-xtest.el --- X11 Test extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xtest.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
;;; xcb-xtest.el ends here
xelb-master/xcb-xv.el 0000664 0000000 0000000 00000042645 14562520677 0015063 0 ustar 00root root 0000000 0000000 ;;; xcb-xv.el --- X11 Xv extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xv.xml',
;; which you can retrieve from .
;;; Code:
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-size))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)
(formats~ :initform
'(name formats type xcb:xv:Format size
(xcb:-fieldref 'num-formats))
:type xcb:-list)
(formats :initarg :formats :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'name-size))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~1 :initform 4 :type xcb:-pad-align)))
(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~ :initform
'(name pitches type xcb:CARD32 size
(xcb:-fieldref 'num-planes))
:type xcb:-list)
(pitches :initarg :pitches :type xcb:-ignore)
(offsets~ :initform
'(name offsets type xcb:CARD32 size
(xcb:-fieldref 'num-planes))
:type xcb:-list)
(offsets :initarg :offsets :type xcb:-ignore)
(data~ :initform
'(name data type xcb:CARD8 size
(xcb:-fieldref 'data-size))
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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~ :initform
'(name name type xcb:char size
(xcb:-fieldref 'size))
:type xcb:-list)
(name :initarg :name :type xcb:-ignore)
(pad~0 :initform 4 :type xcb:-pad-align)))
(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~ :initform
'(name guid type xcb:CARD8 size 16)
:type xcb:-list)
(guid :initarg :guid :type xcb:-ignore)
(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~ :initform
'(name vcomp-order type xcb:CARD8 size 32)
:type xcb:-list)
(vcomp-order :initarg :vcomp-order :type xcb:-ignore)
(vscanline-order :initarg :vscanline-order :type xcb:CARD8)
(pad~4 :initform 11 :type xcb:-pad)))
(defclass xcb:xv:BadPort
(xcb:-error)
((~code :initform 0)))
(defclass xcb:xv:BadEncoding
(xcb:-error)
((~code :initform 1)))
(defclass xcb:xv:BadControl
(xcb:-error)
((~code :initform 2)))
(defclass xcb:xv:VideoNotify
(xcb:-event)
((~code :initform 0)
(reason :initarg :reason :type xcb:BYTE)
(~sequence :type xcb:CARD16)
(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)
((~code :initform 1)
(pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-adaptors :initarg :num-adaptors :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(info~ :initform
'(name info type xcb:xv:AdaptorInfo size
(xcb:-fieldref 'num-adaptors))
:type xcb:-list)
(info :initarg :info :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-encodings :initarg :num-encodings :type xcb:CARD16)
(pad~1 :initform 22 :type xcb:-pad)
(info~ :initform
'(name info type xcb:xv:EncodingInfo size
(xcb:-fieldref 'num-encodings))
:type xcb:-list)
(info :initarg :info :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-attributes :initarg :num-attributes :type xcb:CARD32)
(text-size :initarg :text-size :type xcb:CARD32)
(pad~1 :initform 16 :type xcb:-pad)
(attributes~ :initform
'(name attributes type xcb:xv:AttributeInfo size
(xcb:-fieldref 'num-attributes))
:type xcb:-list)
(attributes :initarg :attributes :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num-formats :initarg :num-formats :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(format~ :initform
'(name format type xcb:xv:ImageFormatInfo size
(xcb:-fieldref 'num-formats))
:type xcb:-list)
(format :initarg :format :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name pitches type xcb:CARD32 size
(xcb:-fieldref 'num-planes))
:type xcb:-list)
(pitches :initarg :pitches :type xcb:-ignore)
(offsets~ :initform
'(name offsets type xcb:CARD32 size
(xcb:-fieldref 'num-planes))
:type xcb:-list)
(offsets :initarg :offsets :type xcb:-ignore)))
(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~ :initform
'(name data type xcb:CARD8 size nil)
:type xcb:-list)
(data :initarg :data :type xcb:-ignore)))
(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:shm: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)
;;; xcb-xv.el ends here
xelb-master/xcb-xvmc.el 0000664 0000000 0000000 00000014700 14562520677 0015372 0 ustar 00root root 0000000 0000000 ;;; xcb-xvmc.el --- X11 XvMC extension -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from 'xvmc.xml',
;; which you can retrieve from .
;;; Code:
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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:xv:PORT)))
(defclass xcb:xvmc:ListSurfaceTypes~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num :initarg :num :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(surfaces~ :initform
'(name surfaces type xcb:xvmc:SurfaceInfo size
(xcb:-fieldref 'num))
:type xcb:-list)
(surfaces :initarg :surfaces :type xcb:-ignore)))
(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:xv: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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name priv-data type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(priv-data :initarg :priv-data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(pad~1 :initform 24 :type xcb:-pad)
(priv-data~ :initform
'(name priv-data type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(priv-data :initarg :priv-data :type xcb:-ignore)))
(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)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(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~ :initform
'(name component-order type xcb:CARD8 size 4)
:type xcb:-list)
(component-order :initarg :component-order :type xcb:-ignore)
(pad~1 :initform 12 :type xcb:-pad)
(priv-data~ :initform
'(name priv-data type xcb:CARD32 size
(xcb:-fieldref 'length))
:type xcb:-list)
(priv-data :initarg :priv-data :type xcb:-ignore)))
(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:xv:PORT)
(surface-id :initarg :surface-id :type xcb:xvmc:SURFACE)))
(defclass xcb:xvmc:ListSubpictureTypes~reply
(xcb:-reply)
((pad~0 :initform 1 :type xcb:-pad)
(~sequence :type xcb:CARD16)
(length :type xcb:CARD32)
(num :initarg :num :type xcb:CARD32)
(pad~1 :initform 20 :type xcb:-pad)
(types~ :initform
'(name types type xcb:xv:ImageFormatInfo size
(xcb:-fieldref 'num))
:type xcb:-list)
(types :initarg :types :type xcb:-ignore)))
(provide 'xcb-xvmc)
;;; xcb-xvmc.el ends here
xelb-master/xcb.el 0000664 0000000 0000000 00000114536 14562520677 0014427 0 ustar 00root root 0000000 0000000 ;;; xcb.el --- X protocol Emacs Lisp Binding (XELB) -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; 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: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:
;; + 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 'cl-lib)
(require 'xcb-xproto)
(defvar xcb:connection-timeout 3 "Connection timeout.")
;;;; X connection related
(defclass xcb:connection (xcb:--struct)
((process :initarg :process :initform nil)
(connected :initform nil) ;non-nil indicates connected to X server
(display :initarg :display :initform nil)
(auth-info :initarg :auth-info :initform nil)
(socket :initarg :socket :initform nil)
(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
(event-lock :initform 0)
(event-queue :initform nil)
(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)
(last-seen-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 (xcb:--struct)
((name :initarg :name :initform "" :type string)
(data :initarg :data :initform "" :type string))
:documentation "X connection authentication info.")
(cl-defmethod xcb:-get-extra-plist ((conn xcb:connection) module prop)
"Get the value of PROP from the extra plist for module MODULE."
(plist-get (plist-get (slot-value conn 'extra-plist) module) prop))
(cl-defmethod xcb:-set-extra-plist ((conn xcb:connection) module prop val)
"Set the value of PROP in the extra plist for module MODULE to VAL."
(with-slots (extra-plist) conn
(setf extra-plist
(plist-put extra-plist module
(plist-put (plist-get extra-plist module) prop val)))))
(defun xcb:connect (&optional display _screen)
"Connect to X server with display DISPLAY."
(declare (advertised-calling-convention (&optional display) "25.1"))
(unless display (setq display (frame-parameter nil 'display)))
(unless display (error "[XELB] No X display available"))
(let ((socket (xcb:display->socket display)))
(if (file-exists-p socket)
(xcb:connect-to-socket socket)
(xcb:connect-to-display-with-auth-info display))))
(defun xcb:display->socket (display)
"Convert X11 display DISPLAY to its corresponding socket."
(concat "/tmp/.X11-unix/X"
(replace-regexp-in-string ".*:\\([^\\.]+\\).*" "\\1" display)))
(defun xcb:connect-to-display-with-auth-info (&optional display auth _screen)
"Connect to X server with display DISPLAY, auth info AUTH."
(declare (advertised-calling-convention (&optional display auth) "25.1"))
(unless display (setq display (frame-parameter nil 'display)))
(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)))
(process (make-network-process :name "XELB"
:host host
:service (+ 6000 dpy)))
(auth-info (if auth auth (xcb:create-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-number display))
(setq screen (if (string= "" screen) 0 (string-to-number screen)))
`((host . ,host) (display . ,display) (screen . ,screen))))
(defun xcb:create-auth-info ()
"Create the default `auth-info'."
(let ((xauth-output (shell-command-to-string
(concat
"xauth list "
(replace-regexp-in-string "^localhost" ""
(getenv "DISPLAY"))
" 2>/dev/null")))
(name "MIT-MAGIC-COOKIE-1") ;only support MIT-MAGIC-COOKIE-1 protocol.
(data ""))
(if (string= "" xauth-output)
;; No xauth entry available.
(setq name "")
(setq xauth-output (split-string xauth-output))
(if (string= name (car (last xauth-output 2)))
;; The auth data is a 128-bit hex string.
(setq data (car (last xauth-output))
data
(concat
(cl-loop for i in (number-sequence 0 30 2)
collect (string-to-number
(substring data
i (+ i 2))
16))))
;; No xauth entry available.
(setq name "")))
(make-instance 'xcb:auth-info :name name :data data)))
(defun xcb:connect-to-socket (&optional socket auth-info)
"Connect to X server with socket SOCKET and authentication info AUTH-INFO."
(unless (or socket (frame-parameter nil 'display))
(error "[XELB] No X display available"))
(let (display)
(if socket
;; As there is no general way to deduce the display name from an X11
;; socket, we assume a standard SOCKET name and hope for the best.
(setq display
(concat ":" ;local
(replace-regexp-in-string "^.*?\\([0-9.]+\\)$" "\\1"
socket)))
(setq display (frame-parameter nil 'display)
socket (xcb:display->socket display)))
(let* ((process (make-network-process :name "XELB" :family 'local
:service socket))
(auth (if auth-info auth-info (xcb:create-auth-info)))
(connection (make-instance 'xcb:connection
:process process :display display
: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-setup-filter)
(set-process-sentinel process #'xcb:-connection-sentinel)
(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 nil 1)))))
(defconst xcb:-SEQUENCE-SEGMENT-MASK (lognot #xFFFF))
(defun xcb:-connection-setup-filter (process message)
"Process filter used during connection setup."
(let* ((connection (plist-get (process-plist process) 'connection))
(cache (vconcat (slot-value connection 'message-cache) message)))
(setf (slot-value connection 'message-cache) cache)
(unless (or (slot-value connection 'lock)
;; Shorter than the setup header.
(> 8 (length cache)))
(setf (slot-value connection 'lock) t)
(let ((data-len (+ 8 (* 4 (if xcb:lsb
(xcb:-unpack-u2-lsb cache 6)
(xcb:-unpack-u2 cache 6)))))
obj)
(when (>= (length cache) data-len)
(xcb:-log "Setup response: %s" cache)
(pcase (aref cache 0)
(0
;; Connection failed.
(setq obj (make-instance 'xcb:SetupFailed))
(xcb:unmarshal obj cache)
(setq cache (substring cache data-len))
(error "[XELB] Connection failed: %s" (slot-value obj 'reason)))
(1
;; Connection established.
(setf (slot-value connection 'message-cache) [])
(set-process-filter process #'xcb:-connection-filter)
(setq obj (make-instance 'xcb:Setup))
(xcb:unmarshal obj cache)
(setq cache (substring cache data-len))
(setf (slot-value connection 'setup-data) obj)
(setf (slot-value connection 'connected) t))
(2
;; Authentication required.
(setq obj (make-instance 'xcb:SetupAuthenticate))
(xcb:unmarshal obj cache)
(setq cache (substring cache data-len))
(error "[XELB] Authentication not supported: %s"
(slot-value obj 'reason)))
(x (error "Unrecognized setup status: %d" x)))))
(setf (slot-value connection 'lock) nil))))
(defun xcb:-connection-sentinel (process _event)
"Process sentinel used to teardown the connection on disconnect."
(unless (process-live-p process)
(xcb:disconnect (plist-get (process-plist process) 'connection))))
(cl-defmethod xcb:-convert-sequence ((obj xcb:connection) sequence16)
"Convert 16-bit sequence number SEQUENCE16 (read from a packet).
The result would be 29 or 61 bits, depending on the machine."
(with-slots (request-sequence) obj
;; Assume there are no more than #xFFFF requests sent since the
;; request corresponding to this packet was made. Because errors
;; and replies are always read out in the process filter, this
;; assumption is quite safe.
(let ((sequence (logior (logand request-sequence
xcb:-SEQUENCE-SEGMENT-MASK)
sequence16)))
;; `xcb:-cache-request' ensures sequence number never wraps.
(when (> sequence request-sequence)
(cl-decf sequence #x10000))
sequence)))
(defun xcb:-connection-filter (process message)
"Filter function for an X connection.
Concurrency is disabled as it breaks the orders of errors, replies and events."
(let* ((connection (plist-get (process-plist process) 'connection))
;; Temporarily disable GC here as typically it's about to do
;; lots of marshaling/unmarshaling.
(gc-cons-threshold most-positive-fixnum)
(cache (vconcat (slot-value connection 'message-cache) message))
(cache-length (length cache)))
(setf (slot-value connection 'message-cache) cache)
(unless (slot-value connection 'lock)
;; Start parsing message
(setf (slot-value connection 'lock) t)
;; Process error/reply/event
(catch 'break
(while (<= 32 (length cache))
(pcase (aref cache 0)
(0 ;error
(xcb:-log "Error received: %s" (substring cache 0 32))
(let ((sequence (funcall (if xcb:lsb #'xcb:-unpack-u2-lsb
#'xcb:-unpack-u2)
cache 2))
(plist (slot-value connection 'error-plist))
struct)
(setq sequence (xcb:-convert-sequence connection sequence))
(when (plist-member plist sequence)
(setq struct (plist-get plist sequence))
(setf (slot-value connection 'error-plist)
(plist-put plist sequence
(push `(,(aref cache 1) .
,(substring cache 0 32))
struct))))
(setq cache (substring cache 32))
(setf (slot-value connection 'last-seen-sequence) sequence)))
(1 ;reply
(let* ((reply-words (funcall (if xcb:lsb #'xcb:-unpack-u4-lsb
#'xcb:-unpack-u4)
cache 4))
(reply-length (+ 32 (* 4 reply-words)))
struct sequence plist)
(when (< (length cache) reply-length) ;too short, do next time
(throw 'break nil))
(xcb:-log "Reply received: %s" (substring cache 0 reply-length))
(setq sequence (funcall (if xcb:lsb #'xcb:-unpack-u2-lsb
#'xcb:-unpack-u2)
cache 2)
sequence (xcb:-convert-sequence connection sequence))
(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 'last-seen-sequence) sequence)))
(x ;event
(let (synthetic listener event-length)
(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))
(pcase listener
(`xge
(setq event-length (funcall (if xcb:lsb
#'xcb:-unpack-u4-lsb
#'xcb:-unpack-u4)
cache 4)
;; event-length indicates additional words to the
;; first 32 bytes.
event-length (+ 32 (* 4 event-length)))
(when (< (length cache) event-length)
;; Too short.
(throw 'break nil))
(setq listener
(lax-plist-get (slot-value connection 'event-plist)
(vector (aref cache 1)
(funcall
(if xcb:lsb
#'xcb:-unpack-u2-lsb
#'xcb:-unpack-u2)
cache 8)))))
(`xkb
(setq listener
(lax-plist-get (slot-value connection 'event-plist)
(vector (aref cache 1))))))
;; Conventional events are 32 bytes in size.
(unless event-length
(setq event-length 32))
(when listener
(with-slots (event-queue) connection
(setf event-queue (nconc event-queue
`([,listener
,(substring cache 0
event-length)
,synthetic])))))
(xcb:-log "Event received: %s" (substring cache 0 event-length))
(setq cache (substring cache event-length)))))))
(setf (slot-value connection 'lock) nil))
(unless (slot-value connection 'lock)
(with-slots (message-cache) connection
(let ((current-cache-length (length message-cache)))
(setf message-cache
(substring message-cache (- cache-length (length cache))))
(when (/= current-cache-length cache-length)
(xcb:-connection-filter process []))))
(xcb:-process-events connection))))
(cl-defmethod xcb:-process-events ((conn xcb:connection))
"Process cached events."
(with-slots (event-lock event-queue) conn
(unless (< 0 event-lock)
(cl-incf event-lock)
(unwind-protect
(let (event data synthetic)
(while (setq event (pop event-queue))
(setq data (aref event 1)
synthetic (aref event 2))
(dolist (listener (aref event 0))
(xcb-debug:backtrace-on-error
(funcall listener data synthetic)))))
(cl-decf event-lock)))))
(cl-defmethod xcb:disconnect ((obj xcb:connection))
"Disconnect from X server."
(when (slot-value obj 'connected)
(ignore-errors (xcb:flush obj))
(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 (eieio-slot-descriptor-name slot))
(eieio-oref-default obj (eieio-slot-descriptor-name 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 function LISTENER to event EVENT.
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))
key listeners)
(when (consp event-number)
(setq key (car event-number)
event-number (cdr event-number)
listeners (plist-get plist key))
;; Add a placeholder.
(setf (slot-value obj 'event-plist)
(plist-put plist key
(if (child-of-class-p event 'xcb:-generic-event)
'xge 'xkb))))
(setq listeners (lax-plist-get plist event-number))
(setf (slot-value obj 'event-plist)
(lax-plist-put plist event-number (append listeners
(list listener))))))
(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
(cl-incf (slot-value obj 'event-lock))
(unwind-protect
(process-send-string (slot-value obj 'process)
(apply #'unibyte-string (append cache nil)))
(cl-decf (slot-value obj 'event-lock)))
(xcb:-process-events obj))))
(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 (eieio-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))
(cl-incf len))
(when (> 2 (length msg)) ;for short message (e.g. GetInputFocus)
(setq msg (vconcat msg [0]))
(cl-incf 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 []))
(with-slots (request-cache request-sequence last-seen-sequence) obj
(when (>= request-sequence most-positive-fixnum)
;; Force wrapping the sequence number.
(xcb:aux:sync obj)
(setf request-sequence 0
last-seen-sequence 0))
(setf request-cache (vconcat cache msg)
request-sequence (1+ request-sequence))
(xcb:-log "Cache request #%d: %s" request-sequence msg)
request-sequence)))
(cl-defmethod xcb:-+request ((obj xcb:connection) request)
(let ((sequence (xcb:-cache-request obj request))
(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 class))
(setf (slot-value obj 'error-plist) ;require error
(plist-put (slot-value obj 'error-plist) sequence 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)))
(setf (slot-value obj 'error-plist)
(plist-put (slot-value obj 'error-plist) sequence 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)))
(setf (slot-value obj 'reply-plist)
(plist-put (slot-value obj 'reply-plist)
sequence (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
(xcb:aux:sync obj)
;; Single reply
(let ((process (slot-value obj 'process)))
;; Wait until the request processed
(cl-incf (slot-value obj 'event-lock))
(unwind-protect
(with-timeout (xcb:connection-timeout
(warn "[XELB] Retrieve reply timeout"))
(while (and (> sequence (slot-value obj 'last-seen-sequence))
(<= sequence (slot-value obj 'request-sequence)))
(accept-process-output process 1 nil 1)))
(cl-decf (slot-value obj 'event-lock)))
(xcb:-process-events obj)))
(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))
(xcb:unmarshal reply i)
(setq replies (nconc replies (list reply))))
;; Single reply
(setq reply-data (cadr reply-data)
replies (make-instance class-name))
(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))
error)
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 'last-seen-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
(cl-incf (slot-value obj 'event-lock))
(unwind-protect
(with-timeout (xcb:connection-timeout (warn "[XELB] Sync timeout"))
(while (and (> sequence (slot-value obj 'last-seen-sequence))
;; In case the sequence number has been wrapped.
(<= sequence (slot-value obj 'request-sequence)))
(accept-process-output process 1 nil 1)))
(cl-decf (slot-value obj 'event-lock)))
(xcb:-process-events obj)
;; Discard any reply or error.
(cl-remf (slot-value obj 'reply-plist) sequence)
(cl-remf (slot-value obj 'error-plist) sequence)))
(cl-defmethod xcb:-error-or-event-class->number ((obj xcb:connection) class)
"Return the error/event number of a error/event class CLASS.
If CLASS is a generic event, return (XGE-CODE . [EXTENSION EVTYPE]);
Or if it's an XKB event, return (XKB-EVENT-CODE [XKB-CODE])."
(unless (symbolp class) (setq class (eieio-class-name class)))
(let ((prefix (replace-regexp-in-string ":[^:]+$" ":" (symbol-name class)))
first-code alist result parents)
(cond
((child-of-class-p class 'xcb:-error)
;; Error.
(if (string= prefix "xcb:")
(setq first-code 0
alist xcb:error-number-class-alist)
(setq first-code
(cdr (assq (intern (substring prefix 0 -1))
(slot-value obj
'extension-first-error-alist)))
alist (symbol-value
(intern-soft (concat prefix
"error-number-class-alist")))))
(setq result (car (rassq class alist)))
(when result
(setq result (+ first-code result))))
((child-of-class-p class 'xcb:-generic-event)
;; Generic event.
(setq alist (symbol-value
(intern-soft (concat prefix "xge-number-class-alist")))
result (plist-get (slot-value obj 'extension-opcode-plist)
(intern-soft (substring prefix 0 -1))))
;; Ensure the extension has been initialized.
(when result
(setq result `(35 . [,result ,(car (rassq class alist))]))))
((string= prefix "xcb:xkb:")
;; XKB event.
(eval-and-compile (require 'xcb-xkb))
;; XKB uses a single event code for all events.
(setq result (cdr (assq 'xcb:xkb
(slot-value obj 'extension-first-event-alist))))
;; Ensure the XKB extension has been initialized.
(when result
(setq alist xcb:xkb:event-number-class-alist
result `(,result . [,(car (rassq class alist))]))))
(t
;; Other event.
(if (string= prefix "xcb:")
(setq first-code 0
alist xcb:event-number-class-alist)
(setq first-code
(cdr (assq (intern (substring prefix 0 -1))
(slot-value obj 'extension-first-event-alist)))
alist (symbol-value
(intern-soft (concat prefix
"event-number-class-alist")))))
(setq result (car (rassq class alist)))
(when result
(setq result (+ first-code result)))))
(unless 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 alist)
(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 alist)
(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
xelb-master/xelb-gen 0000775 0000000 0000000 00000070043 14562520677 0014752 0 ustar 00root root 0000000 0000000 #!/usr/bin/env -S emacs -Q --script
;;; xelb-gen --- XELB Code Generator -*- lexical-binding: t; no-byte-compile: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; 'xelb-gen' 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 should be dropped, for
;; - they would generate incompatible codes, and
;; - they are probably already dropped upstream.
;; + All documentations (within 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)
(require 'eieio)
(require 'pp)
;; Only used to eliminate compile warnings when distributed.
(require 'xcb-types nil t)
;;;; Variables
(defvar xelb-prefix "xcb:" "Namespace of this module.")
(defvar xelb-error-alist nil "Record X errors in this module.")
(defvar xelb-event-alist nil "Record X events in this module.")
(defvar xelb-xge-alist nil "Record X generic events in this module.")
(defvar xelb-imports nil "Record imported libraries.")
(defvar xelb-pad-count -1 " node counter.")
(defvar xelb-request-fields nil "Fields in the current request.")
(defconst xelb-xproto-namespace "xproto:" "The namespace of the core protocol.")
;;;; Helper functions
(defsubst xelb-node-name (node)
"Return the tag name of node NODE."
(car node))
(defsubst xelb-node-attr (node attr)
"Return the attribute ATTR of node NODE."
(cdr (assoc attr (cadr node))))
(defsubst xelb-resolve-type (name)
"Resolve NAME relative to the current module."
(if (string-prefix-p xelb-xproto-namespace name)
;; Defined explicitly.
(or (intern-soft (concat "xcb:" (substring name (length xelb-xproto-namespace))))
(error "Undefined type: %s" name))
(or
;; defined by this extension
(intern-soft (concat xelb-prefix name))
;; defined by the core protocol
(intern-soft (concat "xcb:" name))
;; Defined by an imported extension.
(cl-dolist (i xelb-imports)
(when-let ((type (intern-soft (concat i name))))
(cl-return type)))
;; Not defined.
(error "Undefined type: %s" name))))
(defsubst xelb-node-type (node)
"Return the type of node NODE."
(xelb-resolve-type (xelb-node-attr node 'type)))
(defsubst xelb-escape-name (name)
"Replace underscores in NAME with dashes."
(replace-regexp-in-string "_" "-" name))
(defsubst xelb-node-name-escape (node)
"Return the tag name of node NODE and escape it."
(xelb-escape-name (xelb-node-name node)))
(defsubst xelb-node-attr-escape (node attr)
"Return the attribute ATTR of node NODE and escape it."
(xelb-escape-name (xelb-node-attr node attr)))
(defsubst xelb-node-subnodes (node &optional mark-auto-padding)
"Return all the subnodes of node NODE as a list.
If MARK-AUTO-PADDING is non-nil, all 's fitting for padding will include
an `xelb-auto-padding' attribute."
(let ((subnodes (cddr node)))
(when mark-auto-padding
;; Remove all 's and 's
(setq subnodes
(cl-delete-if (lambda (i) (or (eq 'comment (car i)) (eq 'doc (car i))))
subnodes))
(dotimes (i (1- (length subnodes)))
(when (and (eq 'list (xelb-node-name (elt subnodes i)))
(pcase (xelb-node-name (elt subnodes (1+ i)))
((or `reply `pad))
(_ t)))
(setf (cadr (elt subnodes i))
(nconc (cadr (elt subnodes i)) `((xelb-auto-padding . t)))))))
subnodes))
(defsubst xelb-node-subnode (node)
"Return the (only) subnode of node NODE with useless contents skipped."
(let ((result (xelb-node-subnodes node)))
(catch 'break
(dolist (i result)
(unless (and (listp i)
(or (eq (xelb-node-name i) 'comment)
(eq (xelb-node-name i) 'doc)))
(throw 'break i))))))
(defun xelb-node-size (node)
"Return the size of NODE in bytes."
(pcase (xelb-node-name node)
(`pad (xelb-node-attr node 'bytes))
(`field (xelb-type-size (xelb-node-type node)))
(`list (* (xelb-type-size (xelb-node-type node))
(xelb-parse-expression (xelb-node-subnode node))))
((or `comment `doc) 0)
(x (error "Unexpected element: <%s>" x))))
(defun xelb-type-size (type &optional slot)
"Return size of TYPE in bytes."
(pcase (or (get type 'xcb--typealias) type)
(`xcb:-ignore 0)
((or `xcb:-u1 `xcb:-i1 `xcb:void) 1)
((or `xcb:-u2 `xcb:-i2) 2)
((or `xcb:-u4 `xcb:-i4) 4)
(`xcb:-u8 8)
(`xcb:-pad (cl--slot-descriptor-initform slot))
(`xcb:-list
(let ((initform (cadr (cl--slot-descriptor-initform slot))))
(* (plist-get initform 'size)
(xelb-type-size (plist-get initform 'type)))))
((and x (guard (child-of-class-p x 'xcb:-struct)))
(apply #'+
(mapcar (lambda (slot)
(xelb-type-size (cl--slot-descriptor-type slot) slot))
(eieio-class-slots x))))
(x (error "Unknown size of type: %s" x))))
(defsubst xelb-generate-pad-name ()
"Generate a new slot name for ."
(make-symbol (format "pad~%d" (cl-incf xelb-pad-count))))
;;;; Entry & root element
(defun xelb-parse (file)
"Parse an XCB protocol description file FILE (XML)."
(let ((pp-escape-newlines nil) ;do not escape newlines
(pp-default-function 'pp-28) ;avoid unecessary churn
result header)
(with-temp-buffer
(insert-file-contents file)
(setq result (libxml-parse-xml-region (point-min) (point-max)))
(unless (eq 'xcb (xelb-node-name result))
;; There's an extra comment.
(setq result (xelb-node-subnode result)))
(cl-assert (eq 'xcb (xelb-node-name result)))
(setq header (xelb-node-attr result 'header))
(unless (string= header "xproto")
(setq xelb-prefix (concat xelb-prefix header ":")))
;; Print header
(princ (format "\
;;; xcb-%s.el --- X11 %s -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This file was generated by 'xelb-gen' from '%s',
;; which you can retrieve from .
;;; Code:
\(require 'xcb-types)
"
header
(let ((extension-name (xelb-node-attr result
'extension-name)))
(if extension-name
(concat extension-name " extension")
"core protocol"))
(file-name-nondirectory file)))
;; Print extension info (if any)
(let ((extension-xname (xelb-node-attr result 'extension-xname))
(extension-name (xelb-node-attr result 'extension-name))
(major-version (xelb-node-attr result 'major-version))
(minor-version (xelb-node-attr result 'minor-version)))
(when extension-xname
(pp `(defconst ,(intern (concat xelb-prefix "-extension-xname"))
,extension-xname)))
(when extension-name
(pp `(defconst ,(intern (concat xelb-prefix "-extension-name"))
,extension-name)))
(when major-version
(pp `(defconst ,(intern (concat xelb-prefix "-major-version"))
,(string-to-number major-version))))
(when minor-version
(pp `(defconst ,(intern (concat xelb-prefix "-minor-version"))
,(string-to-number minor-version))))
(when (or extension-xname extension-name major-version minor-version)
(princ "\n")))
;; Print contents
(dolist (i (xelb-node-subnodes result))
(let ((result (xelb-parse-top-level-element i)))
(when result ;skip , comments, etc
(dolist (j result)
(eval j) ;Make it immediately available.
(pp j))
(princ "\n"))))
;; Print error/event alists
(when xelb-error-alist
(pp
`(defconst ,(intern (concat xelb-prefix "error-number-class-alist"))
',xelb-error-alist "(error-number . error-class) alist."))
(princ "\n"))
(when xelb-event-alist
(pp
`(defconst ,(intern (concat xelb-prefix "event-number-class-alist"))
',xelb-event-alist "(event-number . event-class) alist."))
(princ "\n"))
(when xelb-xge-alist
(pp
`(defconst ,(intern (concat xelb-prefix "xge-number-class-alist"))
',xelb-xge-alist "(xge-number . event-class) alist."))
(princ "\n"))
;; Print footer
(princ (format "\
(provide 'xcb-%s)
;;; xcb-%s.el ends here
" header header)))))
;;;; XCB: top-level elements
(defun xelb-parse-top-level-element (node)
"Parse a top-level node NODE."
(setq xelb-pad-count -1)
(pcase (xelb-node-name node)
(`import (xelb-parse-import node))
(`struct (xelb-parse-struct node))
(`union (xelb-parse-union node))
((or `xidtype `xidunion)
(xelb-parse-xidtype node)) ;they are basically the same
(`enum (xelb-parse-enum node))
(`typedef (xelb-parse-typedef node))
(`request (xelb-parse-request node))
(`event (xelb-parse-event node))
(`error (xelb-parse-error node))
(`eventcopy (xelb-parse-eventcopy node))
(`errorcopy (xelb-parse-errorcopy node))
(`eventstruct (xelb-parse-eventstruct node))
((or `comment `doc)) ;ignored
(x (error "Unsupported top-level element: <%s>" x))))
(defun xelb-parse-import (node)
"Parse ."
(let* ((name (xelb-node-subnode node))
(header (intern (concat "xcb-" name))))
(require header)
(push (concat "xcb:" name ":") xelb-imports)
`((require ',header))))
(defun xelb-parse-struct (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(contents (xelb-node-subnodes node t)))
`((defclass ,name (xcb:-struct)
,(apply #'nconc (mapcar #'xelb-parse-structure-content contents))))))
(defun xelb-parse-union (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(contents (xelb-node-subnodes node)))
`((defclass ,name (xcb:-union)
,(apply #'nconc
`((~size :initform
,(apply #'max (mapcar #'xelb-node-size contents))))
(mapcar #'xelb-parse-structure-content contents))))))
(defun xelb-parse-xidtype (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name)))))
`((xcb:deftypealias ',name 'xcb:-u4))))
(defun xelb-parse-enum (node)
"Parse ."
(let ((name-prefix (concat xelb-prefix (xelb-node-attr node 'name) ":"))
(items (xelb-node-subnodes node))
(value 0))
(delq nil ;remove nil's produced by tags like
(mapcar (lambda (i)
(when (eq (xelb-node-name i) 'item)
;; Only handle - tags
(let* ((name (xelb-node-attr i 'name))
(name (intern (concat name-prefix name)))
(expression (xelb-node-subnode i)))
(if expression
(setq value (xelb-parse-expression expression))
(cl-incf value))
;; Omit the rare enums that do not fit in a fixnum in
;; 32-bit Emacs, so that the resulting .el and .elc
;; files are portable to 32-bit Emacs. Admittedly
;; this is a kludge.
(unless (and (integerp value)
(not (<= -536870912 value 536870911)))
`(defconst ,name ,value)))))
items))))
(defun xelb-parse-typedef (node)
"Parse ."
(let* ((oldname (xelb-node-attr node 'oldname))
(oldname (xelb-resolve-type oldname))
(newname (intern (concat xelb-prefix
(xelb-node-attr node 'newname)))))
`((xcb:deftypealias ',newname ',oldname))))
(defun xelb-parse-request (node)
"Parse .
The `combine-adjacent' attribute is simply ignored."
(let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(opcode (string-to-number (xelb-node-attr node 'opcode)))
(contents `((~opcode :initform ,opcode :type xcb:-u1)))
(subnodes (xelb-node-subnodes node t))
expressions
result reply-name reply-contents)
;; Fill `xelb-request-fields'.
(setq xelb-request-fields nil)
(dolist (i subnodes)
(unless (eq (xelb-node-name i) 'reply)
(let ((name (xelb-node-attr i 'name)))
(when name
(push (intern (xelb-escape-name name)) xelb-request-fields)))))
(dolist (i subnodes)
(if (not (eq (xelb-node-name i) 'reply))
(progn
(setq result (xelb-parse-structure-content i))
(if (eq 'exprfield (xelb-node-name i))
;; Split into field and expression
(setq contents (nconc contents (list (car result)))
expressions (nconc expressions (list (cadr result))))
(setq contents (nconc contents result))))
;; Parse
(setq xelb-pad-count -1) ;reset padding counter
(setq xelb-request-fields nil) ;Clear `xelb-request-fields'.
(setq reply-name
(intern (concat xelb-prefix (xelb-node-attr node 'name)
"~reply")))
(setq reply-contents (xelb-node-subnodes i t))
(setq reply-contents
(apply #'nconc
(mapcar #'xelb-parse-structure-content reply-contents)))))
(setq xelb-request-fields nil) ;Clear `xelb-request-fields'.
(delq nil contents)
(delq nil
`((defclass ,name (xcb:-request) ,contents)
;; The optional expressions
,(when expressions
`(cl-defmethod xcb:marshal ((obj ,name)) nil
,@expressions
(cl-call-next-method obj)))
;; The optional reply body
,(when reply-name
(delq nil reply-contents)
;; Insert slots for sequence number and reply length.
(setcdr reply-contents (append '((~sequence :type xcb:CARD16)
(length :type xcb:CARD32))
(cdr reply-contents)))
`(defclass ,reply-name (xcb:-reply) ,reply-contents))))))
(defun xelb-parse-event (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(event-number (string-to-number (xelb-node-attr node 'number)))
(no-sequence-number (xelb-node-attr node 'no-sequence-number))
(xge (xelb-node-attr node 'xge))
(contents (xelb-node-subnodes node t))
xge-extension)
(setq xge-extension (and xge (not (eq name 'xcb:GeGeneric))))
(setq contents
(apply #'nconc (mapcar #'xelb-parse-structure-content contents)))
(unless (or no-sequence-number xge)
(setcdr contents (append '((~sequence :type xcb:CARD16))
(cdr contents))))
;; Add the event code.
(unless (and xge (not xge-extension))
(push `(,(if xge '~evtype '~code) :initform ,event-number) contents))
(if xge-extension
(setq xelb-xge-alist
(nconc xelb-xge-alist `((,event-number . ,name))))
(setq xelb-event-alist
(nconc xelb-event-alist `((,event-number . ,name)))))
`((defclass ,name (,(if xge 'xcb:-generic-event 'xcb:-event)) ,contents))))
(defun xelb-parse-error (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(error-number (string-to-number (xelb-node-attr node 'number)))
(contents (xelb-node-subnodes node t)))
(setq xelb-error-alist (nconc xelb-error-alist `((,error-number . ,name))))
`((defclass ,name (xcb:-error)
,(append
;; The error code.
`((~code :initform ,error-number))
;; The contents.
(apply #'nconc (mapcar #'xelb-parse-structure-content contents)))))))
(defun xelb-parse-eventcopy (node)
"Parse ."
(let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(refname (xelb-node-attr node 'ref))
(refname (xelb-resolve-type refname))
(xge (child-of-class-p refname 'xcb:-generic-event))
(event-number (string-to-number (xelb-node-attr node 'number))))
(if xge
(setq xelb-xge-alist
(nconc xelb-xge-alist `((,event-number . ,name))))
(setq xelb-event-alist
(nconc xelb-event-alist `((,event-number . ,name)))))
`((defclass ,name (,refname) ;Shadow the method of ref.
((,(if xge '~evtype '~code) :initform ,event-number))))))
(defun xelb-parse-errorcopy (node)
"Parse ."
(let* ((name (intern (concat xelb-prefix (xelb-node-attr node 'name))))
(refname (xelb-node-attr node 'ref))
(refname (xelb-resolve-type refname))
(error-number (string-to-number (xelb-node-attr node 'number))))
(setq xelb-error-alist (nconc xelb-error-alist `((,error-number . ,name))))
`((defclass ,name (xcb:-error ,refname) ;Shadow the method of ref
((~code :initform ,error-number))))))
(defun xelb-parse-eventstruct (node)
"Parse ."
(let ((name (intern (concat xelb-prefix (xelb-node-attr node 'name)))))
;; Only conventional events are supported (and we don't check opcode).
`((defclass ,name (xcb:-event) nil))))
;;;; XCB: structure contents
(defun xelb-parse-structure-content (node)
"Parse a structure content node NODE."
(pcase (xelb-node-name node)
(`pad (xelb-parse-pad node))
(`required_start_align (xelb-parse-required_start_align node))
(`field (xelb-parse-field node))
(`length (xelb-parse-length node))
(`fd (xelb-parse-fd node))
(`list (xelb-parse-list node))
(`exprfield (xelb-parse-exprfield node))
(`switch (xelb-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 xelb-parse-pad (node)
"Parse ."
(let ((bytes (xelb-node-attr node 'bytes))
(align (xelb-node-attr node 'align)))
(if bytes
`((,(xelb-generate-pad-name)
:initform ,(string-to-number bytes) :type xcb:-pad))
(if align
`((,(xelb-generate-pad-name)
:initform ,(string-to-number align) :type xcb:-pad-align))
(error "Invalid field")))))
(defun xelb-parse-required_start_align (node)
"Parse ."
(let ((align (xelb-node-attr node 'align))
(offset (xelb-node-attr node 'offset)))
`((,(xelb-generate-pad-name)
:initform ,(if offset
(vector (string-to-number align)
(string-to-number offset))
(string-to-number align))
:type xcb:-pad-align))))
(defun xelb-parse-field (node)
"Parse ."
(let* ((name (intern (xelb-node-attr-escape node 'name)))
(type (xelb-node-type node)))
`((,name :initarg ,(intern (concat ":" (symbol-name name))) :type ,type))))
(defun xelb-parse-length (node)
"Parse ."
(let ((length (xelb-parse-expression (xelb-node-subnode node))))
`((~size :initform ',length))))
(defun xelb-parse-fd (node)
"Parse ."
(let ((name (intern (xelb-node-attr-escape node 'name))))
`((,name :type xcb:fd))))
(defun xelb-parse-list (node)
"Parse
."
(let* ((name (intern (xelb-node-attr-escape node 'name)))
(name-alt (intern (concat (xelb-node-attr-escape node 'name) "~")))
(type (xelb-node-type node))
(size (xelb-parse-expression (xelb-node-subnode node))))
`((,name-alt :initform '(name ,name type ,type size ,size)
:type xcb:-list)
(,name :initarg ,(intern (concat ":" (symbol-name name)))
:type xcb:-ignore))))
;; The car of result is the field declaration, and the cadr is the expression
;; to be evaluated.
(defun xelb-parse-exprfield (node)
"Parse ."
(let* ((name (intern (xelb-node-attr-escape node 'name)))
(type (xelb-node-type node))
(value (xelb-parse-expression (xelb-node-subnode node))))
`((,name :type ,type)
(setf (slot-value obj ',name) ,value))))
;; The only difference between and is whether the `condition'
;; is a list
;; The name attribute of and seems not useful here.
(defun xelb-parse-switch (node)
"Parse ."
(let ((name (intern (xelb-node-attr-escape node 'name)))
(expression (xelb-parse-expression (car (xelb-node-subnodes node))))
;; and only
(cases (cl-remove-if-not (lambda (i)
(memq (xelb-node-name i) '(case bitcase)))
(xelb-node-subnodes node)))
fields)
;; Avoid duplicated slot names by appending "*" if necessary
(let (names name)
(dolist (case cases)
(pcase (xelb-node-name case)
((or `bitcase `case)
(dolist (field (xelb-node-subnodes case))
(pcase (xelb-node-name field)
((or `enumref `pad `doc `comment `required_start_align))
(_
(setq name (xelb-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 (xelb-node-name i))
condition name-list tmp)
(when (or (eq case-name 'bitcase) (eq case-name 'case))
(dolist (j (xelb-node-subnodes i t))
(pcase (xelb-node-name j)
(`enumref
(setq condition
(nconc condition
(list (xelb-parse-enumref j)))))
(_
(setq tmp (xelb-parse-structure-content j))
(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))
;; Flatten 1-element list.
(car condition)
(if (cl-every #'integerp condition)
(apply #'logior condition)
`(logior ,@condition))))))
`(,condition ,@name-list)))
cases))
`((,name :initform '(expression ,expression cases ,cases)
:type xcb:-switch)
,@fields)))
;;;; XCB: expressions
(defun xelb-parse-expression (node)
"Parse an expression node NODE."
(when node
(pcase (xelb-node-name node)
(`op (xelb-parse-op node))
(`fieldref (xelb-parse-fieldref node))
(`paramref (xelb-parse-paramref node))
(`value (xelb-parse-value node))
(`bit (xelb-parse-bit node))
(`enumref (xelb-parse-enumref node))
(`unop (xelb-parse-unop node))
(`sumof (xelb-parse-sumof node))
(`popcount (xelb-parse-popcount node))
(`listelement-ref (xelb-parse-listelement-ref node))
((or `comment `doc)) ;simply ignored
(x (error "Unsupported expression: <%s>" x)))))
(defun xelb-parse-op (node)
"Parse ."
(let* ((subnodes (xelb-node-subnodes node))
(x (xelb-parse-expression (car subnodes)))
(y (xelb-parse-expression (cadr subnodes))))
(pcase (xelb-node-attr node 'op)
("+" `(+ ,x ,y))
("-" `(- ,x ,y))
("*" `(* ,x ,y))
("/" `(/ ,x ,y))
("&" `(logand ,x ,y))
("<<" `(ash ,x ,y))
(x (error "Unsupported operator: `%s'" x)))))
(defun xelb-parse-fieldref (node)
"Parse ."
(let ((name (intern (xelb-escape-name (xelb-node-subnode node)))))
(if (or (not xelb-request-fields) ;Probably not a request.
(memq name xelb-request-fields)
(not (string-suffix-p "-len" (symbol-name name))))
`(xcb:-fieldref ',name)
`(length
(xcb:-fieldref ',(intern (substring (symbol-name name) 0 -4)))))))
(defun xelb-parse-paramref (node)
"Parse ."
`(xcb:-paramref ',(intern (xelb-escape-name (xelb-node-subnode node)))))
(defun xelb-parse-value (node)
"Parse ."
(string-to-number
(replace-regexp-in-string "^0x" "#x" (xelb-node-subnode node))))
(defun xelb-parse-bit (node)
"Parse ."
(let ((bit (string-to-number (xelb-node-subnode node))))
(cl-assert (<= 0 bit 31))
(ash 1 bit)))
(defun xelb-parse-enumref (node)
"Parse ."
(let ((name (concat (xelb-node-attr node 'ref) ":"
(xelb-node-subnode node))))
(symbol-value (xelb-resolve-type name))))
(defun xelb-parse-unop (node)
"Parse ."
(cl-assert (string= "~" (xelb-node-attr node 'op)))
`(lognot ,(xelb-parse-expression (xelb-node-subnode node))))
(defun xelb-parse-sumof (node)
"Parse ."
(let* ((ref (intern (xelb-node-attr-escape node 'ref)))
(expression (xelb-node-subnode node))
(list-data `(slot-value obj ',ref)))
(if (not expression)
`(apply #'+ ,list-data)
(setq expression (xelb-parse-expression expression))
`(apply #'+ (mapcar (lambda (i)
(eval ',expression (list (nconc '(obj) i))))
,list-data)))))
(defun xelb-parse-popcount (node)
"Parse ."
(let ((expression (xelb-parse-expression (xelb-node-subnode node))))
`(logcount ,expression)))
(defun xelb-parse-listelement-ref (_node)
"Parse ."
'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: xelb-gen [additional_load_paths]")
(add-to-list 'load-path default-directory)
(dolist (i (cdr argv))
(add-to-list 'load-path i))
(require 'xcb-types)
(xelb-parse (car argv)))
;;; xelb-gen ends here
xelb-master/xelb-test.el 0000664 0000000 0000000 00000006361 14562520677 0015556 0 ustar 00root root 0000000 0000000 ;;; xelb-test.el --- Unit tests for XELB -*- lexical-binding: t -*-
;; Copyright (C) 2024 Free Software Foundation, Inc.
;; Author: Steven Allen
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; This module contains unit tests for testing XELB.
;;; Code:
(require 'ert)
(require 'xcb-types)
;; https://en.wikipedia.org/wiki/Single-precision_floating-point_format#Notable_single-precision_cases
(defconst xelb-test-binary32-cases
'((#x00000001 . 1.401298464324817e-45)
(#x007fffff . 1.1754942106924411e-38)
(#x00800000 . 1.1754943508222875e-38)
(#x7f7fffff . 3.4028234663852886e38)
(#x3f7fffff . 0.999999940395355225)
(#x3f800000 . 1.0)
(#x3f800001 . 1.00000011920928955)
(#xc0000000 . -2.0)
(#x00000000 . 0.0)
(#x80000000 . -0.0)
(#x7f800000 . 1e+INF)
(#xff800000 . -1e+INF)
(#x40490fdb . 3.14159274101257324)
(#x3eaaaaab . 0.333333343267440796)))
;; https://en.wikipedia.org/wiki/Double-precision_floating-point_format#Double-precision_examples
(defconst xelb-test-binary64-cases
`((#x3ff0000000000000 . 1.0)
(#x3ff0000000000001 . 1.0000000000000002)
(#x3ff0000000000002 . 1.0000000000000004)
(#x4000000000000000 . 2.0)
(#xc000000000000000 . -2.0)
(#x4008000000000000 . 3.0)
(#x4010000000000000 . 4.0)
(#x4014000000000000 . 5.0)
(#x4018000000000000 . 6.0)
(#x4037000000000000 . 23.0)
(#x3f88000000000000 . 0.01171875)
(#x0000000000000001 . 4.9406564584124654e-324)
(#x000fffffffffffff . 2.2250738585072009e-308)
(#x0010000000000000 . 2.2250738585072014e-308)
(#x7fefffffffffffff . 1.7976931348623157e308)
(#x0000000000000000 . +0.0)
(#x8000000000000000 . -0.0)
(#x7ff0000000000000 . +1e+INF)
(#xfff0000000000000 . -1e+INF)
(#x3fd5555555555555 . ,(/ 1.0 3.0))
(#x400921fb54442d18 . ,float-pi)))
(defun xelb-test--test-conversion (a-to-b b-to-a cases)
"Test the bidirectional conversion functions A-TO-B and B-TO-A against CASES.
CASES is an alist of (A . B) pairs."
(pcase-dolist (`(,a . ,b) cases)
(let* ((act-a (funcall b-to-a b))
(act-b (funcall a-to-b a))
(round-trip-a (funcall b-to-a act-b))
(round-trip-b (funcall a-to-b act-a)))
(should (= b act-b round-trip-b))
(should (= a act-a round-trip-a)))))
(ert-deftest xelb-test-binary32 ()
(xelb-test--test-conversion
#'xcb:-binary32-to-f32
#'xcb:-f32-to-binary32
xelb-test-binary32-cases))
(ert-deftest xelb-test-binary64 ()
(xelb-test--test-conversion
#'xcb:-binary64-to-f64
#'xcb:-f64-to-binary64
xelb-test-binary64-cases))
(provide 'xelb-test)
;;; xelb-test.el ends here
xelb-master/xelb.el 0000664 0000000 0000000 00000005436 14562520677 0014603 0 ustar 00root root 0000000 0000000 ;;; xelb.el --- X protocol Emacs Lisp Binding -*- lexical-binding: t -*-
;; Copyright (C) 2015-2024 Free Software Foundation, Inc.
;; Author: Chris Feng
;; Maintainer: Adrián Medraño Calvo , Steven Allen , Daniel Mendler
;; Version: 0.18
;; Package-Requires: ((emacs "27.1"))
;; Keywords: unix
;; URL: https://github.com/emacs-exwm/xelb
;; This file is part of GNU Emacs.
;; GNU Emacs 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.
;; GNU Emacs 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 GNU Emacs. If not, see .
;;; Commentary:
;; Overview
;; --------
;; XELB (X protocol Emacs Lisp Binding) is a pure Elisp implementation of X11
;; protocol based on the XML description files from XCB project. It features
;; an object-oriented API and permits a certain degree of concurrency. It
;; should enable you to implement some low-level X11 applications.
;; How it works
;; ------------
;; As is well known, X11 is a network-transparent protocol. All its messages,
;; including requests, replies, events, errors, etc are transported over
;; network. Considering that Emacs is powerful enough to do network
;; communication, it is also possible to use Emacs to send / receive those X11
;; messages. Here we fully exploit the asynchronous feature of network
;; connections in Emacs, making XELB concurrent in a sense.
;; X11 protocol is somewhat complicated, especially when extension protocols
;; are also concerned. Fortunately, XCB project has managed to describe these
;; protocols as XML files, which are language-neutral and can be used to
;; generate language-specific bindings. In XELB, X messages are represented as
;; 'classes', and their 'methodes' are provided to translate them to / from raw
;; byte arrays conveniently.
;; Usage
;; -----
;; Interfaces are mainly defined in 'xcb.el'. Please refer to that file on how
;; to use them. Most of other files are either X11 core / extension protocol
;; libraries (e.g. xcb-randr.el) or utility libraries (e.g. xcb-keysyms.el).
;; Please check the corresponding files for more details.
;;; Code:
(require 'xcb)
;; DO NOT load this library; load 'xcb.el' instead.
;; This dummy file is created as a placeholder as it is required by GNU ELPA.
(provide 'xelb)
;;; xelb.el ends here