From dabaff03992c102c395314629f63ce93a2c1bd3a Mon Sep 17 00:00:00 2001 From: thing1 Date: Tue, 1 Apr 2025 18:10:15 +0000 Subject: init commit --- elpa/xelb-0.20/.elpaignore | 2 + elpa/xelb-0.20/Makefile | 30 + elpa/xelb-0.20/xcb-bigreq.el | 48 + elpa/xelb-0.20/xcb-bigreq.elc | Bin 0 -> 2572 bytes elpa/xelb-0.20/xcb-composite.el | 116 ++ elpa/xelb-0.20/xcb-composite.elc | Bin 0 -> 14810 bytes elpa/xelb-0.20/xcb-cursor.el | 432 ++++++ elpa/xelb-0.20/xcb-cursor.elc | Bin 0 -> 16520 bytes elpa/xelb-0.20/xcb-damage.el | 112 ++ elpa/xelb-0.20/xcb-damage.elc | Bin 0 -> 10523 bytes elpa/xelb-0.20/xcb-dbe.el | 162 ++ elpa/xelb-0.20/xcb-dbe.elc | Bin 0 -> 20199 bytes elpa/xelb-0.20/xcb-debug.el | 135 ++ elpa/xelb-0.20/xcb-debug.elc | Bin 0 -> 4049 bytes elpa/xelb-0.20/xcb-dpms.el | 134 ++ elpa/xelb-0.20/xcb-dpms.elc | Bin 0 -> 16720 bytes elpa/xelb-0.20/xcb-dri2.el | 322 ++++ elpa/xelb-0.20/xcb-dri2.elc | Bin 0 -> 38624 bytes elpa/xelb-0.20/xcb-dri3.el | 228 +++ elpa/xelb-0.20/xcb-dri3.elc | Bin 0 -> 25029 bytes elpa/xelb-0.20/xcb-ewmh.el | 752 +++++++++ elpa/xelb-0.20/xcb-ewmh.elc | Bin 0 -> 172168 bytes elpa/xelb-0.20/xcb-ge.el | 52 + elpa/xelb-0.20/xcb-ge.elc | Bin 0 -> 2827 bytes elpa/xelb-0.20/xcb-glx.el | 1861 ++++++++++++++++++++++ elpa/xelb-0.20/xcb-glx.elc | Bin 0 -> 244469 bytes elpa/xelb-0.20/xcb-icccm.el | 563 +++++++ elpa/xelb-0.20/xcb-icccm.elc | Bin 0 -> 83243 bytes elpa/xelb-0.20/xcb-keysyms.el | 813 ++++++++++ elpa/xelb-0.20/xcb-keysyms.elc | Bin 0 -> 23234 bytes elpa/xelb-0.20/xcb-present.el | 269 ++++ elpa/xelb-0.20/xcb-present.elc | Bin 0 -> 22975 bytes elpa/xelb-0.20/xcb-randr.el | 1121 ++++++++++++++ elpa/xelb-0.20/xcb-randr.elc | Bin 0 -> 129377 bytes elpa/xelb-0.20/xcb-record.el | 213 +++ elpa/xelb-0.20/xcb-record.elc | Bin 0 -> 23776 bytes elpa/xelb-0.20/xcb-render.el | 763 +++++++++ elpa/xelb-0.20/xcb-render.elc | Bin 0 -> 80990 bytes elpa/xelb-0.20/xcb-renderutil.el | 296 ++++ elpa/xelb-0.20/xcb-renderutil.elc | Bin 0 -> 6116 bytes elpa/xelb-0.20/xcb-res.el | 195 +++ elpa/xelb-0.20/xcb-res.elc | Bin 0 -> 24403 bytes elpa/xelb-0.20/xcb-screensaver.el | 164 ++ elpa/xelb-0.20/xcb-screensaver.elc | Bin 0 -> 14144 bytes elpa/xelb-0.20/xcb-shape.el | 187 +++ elpa/xelb-0.20/xcb-shape.elc | Bin 0 -> 19933 bytes elpa/xelb-0.20/xcb-shm.el | 170 ++ elpa/xelb-0.20/xcb-shm.elc | Bin 0 -> 17179 bytes elpa/xelb-0.20/xcb-sync.el | 340 ++++ elpa/xelb-0.20/xcb-sync.elc | Bin 0 -> 43152 bytes elpa/xelb-0.20/xcb-systemtray.el | 142 ++ elpa/xelb-0.20/xcb-systemtray.elc | Bin 0 -> 17200 bytes elpa/xelb-0.20/xcb-types.el | 912 +++++++++++ elpa/xelb-0.20/xcb-types.elc | Bin 0 -> 43304 bytes elpa/xelb-0.20/xcb-xc_misc.el | 79 + elpa/xelb-0.20/xcb-xc_misc.elc | Bin 0 -> 7797 bytes elpa/xelb-0.20/xcb-xembed.el | 184 +++ elpa/xelb-0.20/xcb-xembed.elc | Bin 0 -> 23705 bytes elpa/xelb-0.20/xcb-xevie.el | 105 ++ elpa/xelb-0.20/xcb-xevie.elc | Bin 0 -> 12951 bytes elpa/xelb-0.20/xcb-xf86dri.el | 213 +++ elpa/xelb-0.20/xcb-xf86dri.elc | Bin 0 -> 30241 bytes elpa/xelb-0.20/xcb-xf86vidmode.el | 550 +++++++ elpa/xelb-0.20/xcb-xf86vidmode.elc | Bin 0 -> 59762 bytes elpa/xelb-0.20/xcb-xfixes.el | 454 ++++++ elpa/xelb-0.20/xcb-xfixes.elc | Bin 0 -> 59786 bytes elpa/xelb-0.20/xcb-xim.el | 1022 ++++++++++++ elpa/xelb-0.20/xcb-xim.elc | Bin 0 -> 109424 bytes elpa/xelb-0.20/xcb-xinerama.el | 123 ++ elpa/xelb-0.20/xcb-xinerama.elc | Bin 0 -> 16426 bytes elpa/xelb-0.20/xcb-xinput.el | 2976 +++++++++++++++++++++++++++++++++++ elpa/xelb-0.20/xcb-xinput.elc | Bin 0 -> 313511 bytes elpa/xelb-0.20/xcb-xkb.el | 2315 +++++++++++++++++++++++++++ elpa/xelb-0.20/xcb-xkb.elc | Bin 0 -> 180900 bytes elpa/xelb-0.20/xcb-xlib.el | 112 ++ elpa/xelb-0.20/xcb-xlib.elc | Bin 0 -> 3497 bytes elpa/xelb-0.20/xcb-xprint.el | 414 +++++ elpa/xelb-0.20/xcb-xprint.elc | Bin 0 -> 57439 bytes elpa/xelb-0.20/xcb-xproto.el | 3012 ++++++++++++++++++++++++++++++++++++ elpa/xelb-0.20/xcb-xproto.elc | Bin 0 -> 312700 bytes elpa/xelb-0.20/xcb-xselinux.el | 392 +++++ elpa/xelb-0.20/xcb-xselinux.elc | Bin 0 -> 56236 bytes elpa/xelb-0.20/xcb-xsettings.el | 88 ++ elpa/xelb-0.20/xcb-xsettings.elc | Bin 0 -> 7091 bytes elpa/xelb-0.20/xcb-xtest.el | 87 ++ elpa/xelb-0.20/xcb-xtest.elc | Bin 0 -> 7844 bytes elpa/xelb-0.20/xcb-xv.el | 523 +++++++ elpa/xelb-0.20/xcb-xv.elc | Bin 0 -> 56159 bytes elpa/xelb-0.20/xcb-xvmc.el | 188 +++ elpa/xelb-0.20/xcb-xvmc.elc | Bin 0 -> 22009 bytes elpa/xelb-0.20/xcb.el | 883 +++++++++++ elpa/xelb-0.20/xcb.elc | Bin 0 -> 29081 bytes elpa/xelb-0.20/xelb-autoloads.el | 253 +++ elpa/xelb-0.20/xelb-gen | 726 +++++++++ elpa/xelb-0.20/xelb-pkg.el | 2 + elpa/xelb-0.20/xelb-test.el | 96 ++ elpa/xelb-0.20/xelb-test.elc | Bin 0 -> 3209 bytes elpa/xelb-0.20/xelb.el | 70 + elpa/xelb-0.20/xelb.elc | Bin 0 -> 149 bytes 99 files changed, 25401 insertions(+) create mode 100644 elpa/xelb-0.20/.elpaignore create mode 100644 elpa/xelb-0.20/Makefile create mode 100644 elpa/xelb-0.20/xcb-bigreq.el create mode 100644 elpa/xelb-0.20/xcb-bigreq.elc create mode 100644 elpa/xelb-0.20/xcb-composite.el create mode 100644 elpa/xelb-0.20/xcb-composite.elc create mode 100644 elpa/xelb-0.20/xcb-cursor.el create mode 100644 elpa/xelb-0.20/xcb-cursor.elc create mode 100644 elpa/xelb-0.20/xcb-damage.el create mode 100644 elpa/xelb-0.20/xcb-damage.elc create mode 100644 elpa/xelb-0.20/xcb-dbe.el create mode 100644 elpa/xelb-0.20/xcb-dbe.elc create mode 100644 elpa/xelb-0.20/xcb-debug.el create mode 100644 elpa/xelb-0.20/xcb-debug.elc create mode 100644 elpa/xelb-0.20/xcb-dpms.el create mode 100644 elpa/xelb-0.20/xcb-dpms.elc create mode 100644 elpa/xelb-0.20/xcb-dri2.el create mode 100644 elpa/xelb-0.20/xcb-dri2.elc create mode 100644 elpa/xelb-0.20/xcb-dri3.el create mode 100644 elpa/xelb-0.20/xcb-dri3.elc create mode 100644 elpa/xelb-0.20/xcb-ewmh.el create mode 100644 elpa/xelb-0.20/xcb-ewmh.elc create mode 100644 elpa/xelb-0.20/xcb-ge.el create mode 100644 elpa/xelb-0.20/xcb-ge.elc create mode 100644 elpa/xelb-0.20/xcb-glx.el create mode 100644 elpa/xelb-0.20/xcb-glx.elc create mode 100644 elpa/xelb-0.20/xcb-icccm.el create mode 100644 elpa/xelb-0.20/xcb-icccm.elc create mode 100644 elpa/xelb-0.20/xcb-keysyms.el create mode 100644 elpa/xelb-0.20/xcb-keysyms.elc create mode 100644 elpa/xelb-0.20/xcb-present.el create mode 100644 elpa/xelb-0.20/xcb-present.elc create mode 100644 elpa/xelb-0.20/xcb-randr.el create mode 100644 elpa/xelb-0.20/xcb-randr.elc create mode 100644 elpa/xelb-0.20/xcb-record.el create mode 100644 elpa/xelb-0.20/xcb-record.elc create mode 100644 elpa/xelb-0.20/xcb-render.el create mode 100644 elpa/xelb-0.20/xcb-render.elc create mode 100644 elpa/xelb-0.20/xcb-renderutil.el create mode 100644 elpa/xelb-0.20/xcb-renderutil.elc create mode 100644 elpa/xelb-0.20/xcb-res.el create mode 100644 elpa/xelb-0.20/xcb-res.elc create mode 100644 elpa/xelb-0.20/xcb-screensaver.el create mode 100644 elpa/xelb-0.20/xcb-screensaver.elc create mode 100644 elpa/xelb-0.20/xcb-shape.el create mode 100644 elpa/xelb-0.20/xcb-shape.elc create mode 100644 elpa/xelb-0.20/xcb-shm.el create mode 100644 elpa/xelb-0.20/xcb-shm.elc create mode 100644 elpa/xelb-0.20/xcb-sync.el create mode 100644 elpa/xelb-0.20/xcb-sync.elc create mode 100644 elpa/xelb-0.20/xcb-systemtray.el create mode 100644 elpa/xelb-0.20/xcb-systemtray.elc create mode 100644 elpa/xelb-0.20/xcb-types.el create mode 100644 elpa/xelb-0.20/xcb-types.elc create mode 100644 elpa/xelb-0.20/xcb-xc_misc.el create mode 100644 elpa/xelb-0.20/xcb-xc_misc.elc create mode 100644 elpa/xelb-0.20/xcb-xembed.el create mode 100644 elpa/xelb-0.20/xcb-xembed.elc create mode 100644 elpa/xelb-0.20/xcb-xevie.el create mode 100644 elpa/xelb-0.20/xcb-xevie.elc create mode 100644 elpa/xelb-0.20/xcb-xf86dri.el create mode 100644 elpa/xelb-0.20/xcb-xf86dri.elc create mode 100644 elpa/xelb-0.20/xcb-xf86vidmode.el create mode 100644 elpa/xelb-0.20/xcb-xf86vidmode.elc create mode 100644 elpa/xelb-0.20/xcb-xfixes.el create mode 100644 elpa/xelb-0.20/xcb-xfixes.elc create mode 100644 elpa/xelb-0.20/xcb-xim.el create mode 100644 elpa/xelb-0.20/xcb-xim.elc create mode 100644 elpa/xelb-0.20/xcb-xinerama.el create mode 100644 elpa/xelb-0.20/xcb-xinerama.elc create mode 100644 elpa/xelb-0.20/xcb-xinput.el create mode 100644 elpa/xelb-0.20/xcb-xinput.elc create mode 100644 elpa/xelb-0.20/xcb-xkb.el create mode 100644 elpa/xelb-0.20/xcb-xkb.elc create mode 100644 elpa/xelb-0.20/xcb-xlib.el create mode 100644 elpa/xelb-0.20/xcb-xlib.elc create mode 100644 elpa/xelb-0.20/xcb-xprint.el create mode 100644 elpa/xelb-0.20/xcb-xprint.elc create mode 100644 elpa/xelb-0.20/xcb-xproto.el create mode 100644 elpa/xelb-0.20/xcb-xproto.elc create mode 100644 elpa/xelb-0.20/xcb-xselinux.el create mode 100644 elpa/xelb-0.20/xcb-xselinux.elc create mode 100644 elpa/xelb-0.20/xcb-xsettings.el create mode 100644 elpa/xelb-0.20/xcb-xsettings.elc create mode 100644 elpa/xelb-0.20/xcb-xtest.el create mode 100644 elpa/xelb-0.20/xcb-xtest.elc create mode 100644 elpa/xelb-0.20/xcb-xv.el create mode 100644 elpa/xelb-0.20/xcb-xv.elc create mode 100644 elpa/xelb-0.20/xcb-xvmc.el create mode 100644 elpa/xelb-0.20/xcb-xvmc.elc create mode 100644 elpa/xelb-0.20/xcb.el create mode 100644 elpa/xelb-0.20/xcb.elc create mode 100644 elpa/xelb-0.20/xelb-autoloads.el create mode 100755 elpa/xelb-0.20/xelb-gen create mode 100644 elpa/xelb-0.20/xelb-pkg.el create mode 100644 elpa/xelb-0.20/xelb-test.el create mode 100644 elpa/xelb-0.20/xelb-test.elc create mode 100644 elpa/xelb-0.20/xelb.el create mode 100644 elpa/xelb-0.20/xelb.elc (limited to 'elpa/xelb-0.20') diff --git a/elpa/xelb-0.20/.elpaignore b/elpa/xelb-0.20/.elpaignore new file mode 100644 index 0000000..f0f644e --- /dev/null +++ b/elpa/xelb-0.20/.elpaignore @@ -0,0 +1,2 @@ +LICENSE +README.md diff --git a/elpa/xelb-0.20/Makefile b/elpa/xelb-0.20/Makefile new file mode 100644 index 0000000..2d56356 --- /dev/null +++ b/elpa/xelb-0.20/Makefile @@ -0,0 +1,30 @@ +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) diff --git a/elpa/xelb-0.20/xcb-bigreq.el b/elpa/xelb-0.20/xcb-bigreq.el new file mode 100644 index 0000000..e263413 --- /dev/null +++ b/elpa/xelb-0.20/xcb-bigreq.el @@ -0,0 +1,48 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-bigreq.elc b/elpa/xelb-0.20/xcb-bigreq.elc new file mode 100644 index 0000000..4963805 Binary files /dev/null and b/elpa/xelb-0.20/xcb-bigreq.elc differ diff --git a/elpa/xelb-0.20/xcb-composite.el b/elpa/xelb-0.20/xcb-composite.el new file mode 100644 index 0000000..66d30f1 --- /dev/null +++ b/elpa/xelb-0.20/xcb-composite.el @@ -0,0 +1,116 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-composite.elc b/elpa/xelb-0.20/xcb-composite.elc new file mode 100644 index 0000000..09eab9b Binary files /dev/null and b/elpa/xelb-0.20/xcb-composite.elc differ diff --git a/elpa/xelb-0.20/xcb-cursor.el b/elpa/xelb-0.20/xcb-cursor.el new file mode 100644 index 0000000..f0a3243 --- /dev/null +++ b/elpa/xelb-0.20/xcb-cursor.el @@ -0,0 +1,432 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-cursor.elc b/elpa/xelb-0.20/xcb-cursor.elc new file mode 100644 index 0000000..1e4235d Binary files /dev/null and b/elpa/xelb-0.20/xcb-cursor.elc differ diff --git a/elpa/xelb-0.20/xcb-damage.el b/elpa/xelb-0.20/xcb-damage.el new file mode 100644 index 0000000..2ae0d87 --- /dev/null +++ b/elpa/xelb-0.20/xcb-damage.el @@ -0,0 +1,112 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-damage.elc b/elpa/xelb-0.20/xcb-damage.elc new file mode 100644 index 0000000..380ee35 Binary files /dev/null and b/elpa/xelb-0.20/xcb-damage.elc differ diff --git a/elpa/xelb-0.20/xcb-dbe.el b/elpa/xelb-0.20/xcb-dbe.el new file mode 100644 index 0000000..5e9168a --- /dev/null +++ b/elpa/xelb-0.20/xcb-dbe.el @@ -0,0 +1,162 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-dbe.elc b/elpa/xelb-0.20/xcb-dbe.elc new file mode 100644 index 0000000..56306c9 Binary files /dev/null and b/elpa/xelb-0.20/xcb-dbe.elc differ diff --git a/elpa/xelb-0.20/xcb-debug.el b/elpa/xelb-0.20/xcb-debug.el new file mode 100644 index 0000000..e99661d --- /dev/null +++ b/elpa/xelb-0.20/xcb-debug.el @@ -0,0 +1,135 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-debug.elc b/elpa/xelb-0.20/xcb-debug.elc new file mode 100644 index 0000000..1132c70 Binary files /dev/null and b/elpa/xelb-0.20/xcb-debug.elc differ diff --git a/elpa/xelb-0.20/xcb-dpms.el b/elpa/xelb-0.20/xcb-dpms.el new file mode 100644 index 0000000..63b31f1 --- /dev/null +++ b/elpa/xelb-0.20/xcb-dpms.el @@ -0,0 +1,134 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-dpms.elc b/elpa/xelb-0.20/xcb-dpms.elc new file mode 100644 index 0000000..4bdfeaa Binary files /dev/null and b/elpa/xelb-0.20/xcb-dpms.elc differ diff --git a/elpa/xelb-0.20/xcb-dri2.el b/elpa/xelb-0.20/xcb-dri2.el new file mode 100644 index 0000000..040bb52 --- /dev/null +++ b/elpa/xelb-0.20/xcb-dri2.el @@ -0,0 +1,322 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-dri2.elc b/elpa/xelb-0.20/xcb-dri2.elc new file mode 100644 index 0000000..9557ccb Binary files /dev/null and b/elpa/xelb-0.20/xcb-dri2.elc differ diff --git a/elpa/xelb-0.20/xcb-dri3.el b/elpa/xelb-0.20/xcb-dri3.el new file mode 100644 index 0000000..218820f --- /dev/null +++ b/elpa/xelb-0.20/xcb-dri3.el @@ -0,0 +1,228 @@ +;;; 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 4) + +(require 'xcb-xproto) + +(xcb:deftypealias 'xcb:dri3:SYNCOBJ 'xcb:-u4) + +(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))) + +(defclass xcb:dri3:ImportSyncobj + (xcb:-request) + ((~opcode :initform 10 :type xcb:-u1) + (syncobj :initarg :syncobj :type xcb:dri3:SYNCOBJ) + (drawable :initarg :drawable :type xcb:DRAWABLE) + (syncobj-fd :type xcb:fd))) + +(defclass xcb:dri3:FreeSyncobj + (xcb:-request) + ((~opcode :initform 11 :type xcb:-u1) + (syncobj :initarg :syncobj :type xcb:dri3:SYNCOBJ))) + + + +(provide 'xcb-dri3) + +;;; xcb-dri3.el ends here diff --git a/elpa/xelb-0.20/xcb-dri3.elc b/elpa/xelb-0.20/xcb-dri3.elc new file mode 100644 index 0000000..d145e13 Binary files /dev/null and b/elpa/xelb-0.20/xcb-dri3.elc differ diff --git a/elpa/xelb-0.20/xcb-ewmh.el b/elpa/xelb-0.20/xcb-ewmh.el new file mode 100644 index 0000000..98bdd97 --- /dev/null +++ b/elpa/xelb-0.20/xcb-ewmh.el @@ -0,0 +1,752 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-ewmh.elc b/elpa/xelb-0.20/xcb-ewmh.elc new file mode 100644 index 0000000..5e5c5d4 Binary files /dev/null and b/elpa/xelb-0.20/xcb-ewmh.elc differ diff --git a/elpa/xelb-0.20/xcb-ge.el b/elpa/xelb-0.20/xcb-ge.el new file mode 100644 index 0000000..f18c8eb --- /dev/null +++ b/elpa/xelb-0.20/xcb-ge.el @@ -0,0 +1,52 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-ge.elc b/elpa/xelb-0.20/xcb-ge.elc new file mode 100644 index 0000000..f25012e Binary files /dev/null and b/elpa/xelb-0.20/xcb-ge.elc differ diff --git a/elpa/xelb-0.20/xcb-glx.el b/elpa/xelb-0.20/xcb-glx.el new file mode 100644 index 0000000..fd1386a --- /dev/null +++ b/elpa/xelb-0.20/xcb-glx.el @@ -0,0 +1,1861 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-glx.elc b/elpa/xelb-0.20/xcb-glx.elc new file mode 100644 index 0000000..df17428 Binary files /dev/null and b/elpa/xelb-0.20/xcb-glx.elc differ diff --git a/elpa/xelb-0.20/xcb-icccm.el b/elpa/xelb-0.20/xcb-icccm.el new file mode 100644 index 0000000..44ea8a1 --- /dev/null +++ b/elpa/xelb-0.20/xcb-icccm.el @@ -0,0 +1,563 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-icccm.elc b/elpa/xelb-0.20/xcb-icccm.elc new file mode 100644 index 0000000..60b68b5 Binary files /dev/null and b/elpa/xelb-0.20/xcb-icccm.elc differ diff --git a/elpa/xelb-0.20/xcb-keysyms.el b/elpa/xelb-0.20/xcb-keysyms.el new file mode 100644 index 0000000..8999d71 --- /dev/null +++ b/elpa/xelb-0.20/xcb-keysyms.el @@ -0,0 +1,813 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-keysyms.elc b/elpa/xelb-0.20/xcb-keysyms.elc new file mode 100644 index 0000000..2ef95ac Binary files /dev/null and b/elpa/xelb-0.20/xcb-keysyms.elc differ diff --git a/elpa/xelb-0.20/xcb-present.el b/elpa/xelb-0.20/xcb-present.el new file mode 100644 index 0000000..ba44c84 --- /dev/null +++ b/elpa/xelb-0.20/xcb-present.el @@ -0,0 +1,269 @@ +;;; 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 4) + +(require 'xcb-xproto) + +(require 'xcb-randr) + +(require 'xcb-xfixes) + +(require 'xcb-sync) + +(require 'xcb-dri3) + +(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:Capability:Syncobj 16) + +(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:PixmapSynced + (xcb:-request) + ((~opcode :initform 5 :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) + (acquire-syncobj :initarg :acquire-syncobj :type xcb:dri3:SYNCOBJ) + (release-syncobj :initarg :release-syncobj :type xcb:dri3:SYNCOBJ) + (acquire-point :initarg :acquire-point :type xcb:CARD64) + (release-point :initarg :release-point :type xcb:CARD64) + (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: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 diff --git a/elpa/xelb-0.20/xcb-present.elc b/elpa/xelb-0.20/xcb-present.elc new file mode 100644 index 0000000..034766a Binary files /dev/null and b/elpa/xelb-0.20/xcb-present.elc differ diff --git a/elpa/xelb-0.20/xcb-randr.el b/elpa/xelb-0.20/xcb-randr.el new file mode 100644 index 0000000..cb0dc9b --- /dev/null +++ b/elpa/xelb-0.20/xcb-randr.el @@ -0,0 +1,1121 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-randr.elc b/elpa/xelb-0.20/xcb-randr.elc new file mode 100644 index 0000000..23e2ca1 Binary files /dev/null and b/elpa/xelb-0.20/xcb-randr.elc differ diff --git a/elpa/xelb-0.20/xcb-record.el b/elpa/xelb-0.20/xcb-record.el new file mode 100644 index 0000000..8afc5d4 --- /dev/null +++ b/elpa/xelb-0.20/xcb-record.el @@ -0,0 +1,213 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-record.elc b/elpa/xelb-0.20/xcb-record.elc new file mode 100644 index 0000000..8befa56 Binary files /dev/null and b/elpa/xelb-0.20/xcb-record.elc differ diff --git a/elpa/xelb-0.20/xcb-render.el b/elpa/xelb-0.20/xcb-render.el new file mode 100644 index 0000000..690611c --- /dev/null +++ b/elpa/xelb-0.20/xcb-render.el @@ -0,0 +1,763 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-render.elc b/elpa/xelb-0.20/xcb-render.elc new file mode 100644 index 0000000..c4d3f8d Binary files /dev/null and b/elpa/xelb-0.20/xcb-render.elc differ diff --git a/elpa/xelb-0.20/xcb-renderutil.el b/elpa/xelb-0.20/xcb-renderutil.el new file mode 100644 index 0000000..6e7f9f3 --- /dev/null +++ b/elpa/xelb-0.20/xcb-renderutil.el @@ -0,0 +1,296 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-renderutil.elc b/elpa/xelb-0.20/xcb-renderutil.elc new file mode 100644 index 0000000..b54a7be Binary files /dev/null and b/elpa/xelb-0.20/xcb-renderutil.elc differ diff --git a/elpa/xelb-0.20/xcb-res.el b/elpa/xelb-0.20/xcb-res.el new file mode 100644 index 0000000..509f62c --- /dev/null +++ b/elpa/xelb-0.20/xcb-res.el @@ -0,0 +1,195 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-res.elc b/elpa/xelb-0.20/xcb-res.elc new file mode 100644 index 0000000..2845d63 Binary files /dev/null and b/elpa/xelb-0.20/xcb-res.elc differ diff --git a/elpa/xelb-0.20/xcb-screensaver.el b/elpa/xelb-0.20/xcb-screensaver.el new file mode 100644 index 0000000..478f747 --- /dev/null +++ b/elpa/xelb-0.20/xcb-screensaver.el @@ -0,0 +1,164 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-screensaver.elc b/elpa/xelb-0.20/xcb-screensaver.elc new file mode 100644 index 0000000..62ee476 Binary files /dev/null and b/elpa/xelb-0.20/xcb-screensaver.elc differ diff --git a/elpa/xelb-0.20/xcb-shape.el b/elpa/xelb-0.20/xcb-shape.el new file mode 100644 index 0000000..17b4a19 --- /dev/null +++ b/elpa/xelb-0.20/xcb-shape.el @@ -0,0 +1,187 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-shape.elc b/elpa/xelb-0.20/xcb-shape.elc new file mode 100644 index 0000000..9beb44f Binary files /dev/null and b/elpa/xelb-0.20/xcb-shape.elc differ diff --git a/elpa/xelb-0.20/xcb-shm.el b/elpa/xelb-0.20/xcb-shm.el new file mode 100644 index 0000000..5b04e4e --- /dev/null +++ b/elpa/xelb-0.20/xcb-shm.el @@ -0,0 +1,170 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-shm.elc b/elpa/xelb-0.20/xcb-shm.elc new file mode 100644 index 0000000..40f570d Binary files /dev/null and b/elpa/xelb-0.20/xcb-shm.elc differ diff --git a/elpa/xelb-0.20/xcb-sync.el b/elpa/xelb-0.20/xcb-sync.el new file mode 100644 index 0000000..698ee59 --- /dev/null +++ b/elpa/xelb-0.20/xcb-sync.el @@ -0,0 +1,340 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-sync.elc b/elpa/xelb-0.20/xcb-sync.elc new file mode 100644 index 0000000..0859729 Binary files /dev/null and b/elpa/xelb-0.20/xcb-sync.elc differ diff --git a/elpa/xelb-0.20/xcb-systemtray.el b/elpa/xelb-0.20/xcb-systemtray.el new file mode 100644 index 0000000..03d47df --- /dev/null +++ b/elpa/xelb-0.20/xcb-systemtray.el @@ -0,0 +1,142 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-systemtray.elc b/elpa/xelb-0.20/xcb-systemtray.elc new file mode 100644 index 0000000..a2d7cdf Binary files /dev/null and b/elpa/xelb-0.20/xcb-systemtray.elc differ diff --git a/elpa/xelb-0.20/xcb-types.el b/elpa/xelb-0.20/xcb-types.el new file mode 100644 index 0000000..5a078aa --- /dev/null +++ b/elpa/xelb-0.20/xcb-types.el @@ -0,0 +1,912 @@ +;;; 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 'compat) +(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 diff --git a/elpa/xelb-0.20/xcb-types.elc b/elpa/xelb-0.20/xcb-types.elc new file mode 100644 index 0000000..2d5cba8 Binary files /dev/null and b/elpa/xelb-0.20/xcb-types.elc differ diff --git a/elpa/xelb-0.20/xcb-xc_misc.el b/elpa/xelb-0.20/xcb-xc_misc.el new file mode 100644 index 0000000..af15d34 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xc_misc.el @@ -0,0 +1,79 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xc_misc.elc b/elpa/xelb-0.20/xcb-xc_misc.elc new file mode 100644 index 0000000..2847e98 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xc_misc.elc differ diff --git a/elpa/xelb-0.20/xcb-xembed.el b/elpa/xelb-0.20/xcb-xembed.el new file mode 100644 index 0000000..c5273e8 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xembed.el @@ -0,0 +1,184 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xembed.elc b/elpa/xelb-0.20/xcb-xembed.elc new file mode 100644 index 0000000..e7ad71a Binary files /dev/null and b/elpa/xelb-0.20/xcb-xembed.elc differ diff --git a/elpa/xelb-0.20/xcb-xevie.el b/elpa/xelb-0.20/xcb-xevie.el new file mode 100644 index 0000000..33dff7e --- /dev/null +++ b/elpa/xelb-0.20/xcb-xevie.el @@ -0,0 +1,105 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xevie.elc b/elpa/xelb-0.20/xcb-xevie.elc new file mode 100644 index 0000000..6ebfc43 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xevie.elc differ diff --git a/elpa/xelb-0.20/xcb-xf86dri.el b/elpa/xelb-0.20/xcb-xf86dri.el new file mode 100644 index 0000000..c1e40c6 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xf86dri.el @@ -0,0 +1,213 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xf86dri.elc b/elpa/xelb-0.20/xcb-xf86dri.elc new file mode 100644 index 0000000..096c081 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xf86dri.elc differ diff --git a/elpa/xelb-0.20/xcb-xf86vidmode.el b/elpa/xelb-0.20/xcb-xf86vidmode.el new file mode 100644 index 0000000..30faa8a --- /dev/null +++ b/elpa/xelb-0.20/xcb-xf86vidmode.el @@ -0,0 +1,550 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xf86vidmode.elc b/elpa/xelb-0.20/xcb-xf86vidmode.elc new file mode 100644 index 0000000..0bf403a Binary files /dev/null and b/elpa/xelb-0.20/xcb-xf86vidmode.elc differ diff --git a/elpa/xelb-0.20/xcb-xfixes.el b/elpa/xelb-0.20/xcb-xfixes.el new file mode 100644 index 0000000..da9c0c4 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xfixes.el @@ -0,0 +1,454 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xfixes.elc b/elpa/xelb-0.20/xcb-xfixes.elc new file mode 100644 index 0000000..93b03b8 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xfixes.elc differ diff --git a/elpa/xelb-0.20/xcb-xim.el b/elpa/xelb-0.20/xcb-xim.el new file mode 100644 index 0000000..be71f5b --- /dev/null +++ b/elpa/xelb-0.20/xcb-xim.el @@ -0,0 +1,1022 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xim.elc b/elpa/xelb-0.20/xcb-xim.elc new file mode 100644 index 0000000..a83dd64 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xim.elc differ diff --git a/elpa/xelb-0.20/xcb-xinerama.el b/elpa/xelb-0.20/xcb-xinerama.el new file mode 100644 index 0000000..f8ebc23 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xinerama.el @@ -0,0 +1,123 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xinerama.elc b/elpa/xelb-0.20/xcb-xinerama.elc new file mode 100644 index 0000000..42f6b31 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xinerama.elc differ diff --git a/elpa/xelb-0.20/xcb-xinput.el b/elpa/xelb-0.20/xcb-xinput.el new file mode 100644 index 0000000..a0904a9 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xinput.el @@ -0,0 +1,2976 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xinput.elc b/elpa/xelb-0.20/xcb-xinput.elc new file mode 100644 index 0000000..fc95d81 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xinput.elc differ diff --git a/elpa/xelb-0.20/xcb-xkb.el b/elpa/xelb-0.20/xcb-xkb.el new file mode 100644 index 0000000..5f20c43 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xkb.el @@ -0,0 +1,2315 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xkb.elc b/elpa/xelb-0.20/xcb-xkb.elc new file mode 100644 index 0000000..83a97c2 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xkb.elc differ diff --git a/elpa/xelb-0.20/xcb-xlib.el b/elpa/xelb-0.20/xcb-xlib.el new file mode 100644 index 0000000..0f4f5ea --- /dev/null +++ b/elpa/xelb-0.20/xcb-xlib.el @@ -0,0 +1,112 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xlib.elc b/elpa/xelb-0.20/xcb-xlib.elc new file mode 100644 index 0000000..24a3430 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xlib.elc differ diff --git a/elpa/xelb-0.20/xcb-xprint.el b/elpa/xelb-0.20/xcb-xprint.el new file mode 100644 index 0000000..36abd27 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xprint.el @@ -0,0 +1,414 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xprint.elc b/elpa/xelb-0.20/xcb-xprint.elc new file mode 100644 index 0000000..c4d7731 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xprint.elc differ diff --git a/elpa/xelb-0.20/xcb-xproto.el b/elpa/xelb-0.20/xcb-xproto.el new file mode 100644 index 0000000..19b1f09 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xproto.el @@ -0,0 +1,3012 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xproto.elc b/elpa/xelb-0.20/xcb-xproto.elc new file mode 100644 index 0000000..d4279d2 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xproto.elc differ diff --git a/elpa/xelb-0.20/xcb-xselinux.el b/elpa/xelb-0.20/xcb-xselinux.el new file mode 100644 index 0000000..cc7c47c --- /dev/null +++ b/elpa/xelb-0.20/xcb-xselinux.el @@ -0,0 +1,392 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xselinux.elc b/elpa/xelb-0.20/xcb-xselinux.elc new file mode 100644 index 0000000..fa735ab Binary files /dev/null and b/elpa/xelb-0.20/xcb-xselinux.elc differ diff --git a/elpa/xelb-0.20/xcb-xsettings.el b/elpa/xelb-0.20/xcb-xsettings.el new file mode 100644 index 0000000..1d7c0e3 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xsettings.el @@ -0,0 +1,88 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xsettings.elc b/elpa/xelb-0.20/xcb-xsettings.elc new file mode 100644 index 0000000..edff8a6 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xsettings.elc differ diff --git a/elpa/xelb-0.20/xcb-xtest.el b/elpa/xelb-0.20/xcb-xtest.el new file mode 100644 index 0000000..431cd25 --- /dev/null +++ b/elpa/xelb-0.20/xcb-xtest.el @@ -0,0 +1,87 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xtest.elc b/elpa/xelb-0.20/xcb-xtest.elc new file mode 100644 index 0000000..9fd764a Binary files /dev/null and b/elpa/xelb-0.20/xcb-xtest.elc differ diff --git a/elpa/xelb-0.20/xcb-xv.el b/elpa/xelb-0.20/xcb-xv.el new file mode 100644 index 0000000..627461e --- /dev/null +++ b/elpa/xelb-0.20/xcb-xv.el @@ -0,0 +1,523 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xv.elc b/elpa/xelb-0.20/xcb-xv.elc new file mode 100644 index 0000000..37847a7 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xv.elc differ diff --git a/elpa/xelb-0.20/xcb-xvmc.el b/elpa/xelb-0.20/xcb-xvmc.el new file mode 100644 index 0000000..1e9fa2d --- /dev/null +++ b/elpa/xelb-0.20/xcb-xvmc.el @@ -0,0 +1,188 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xcb-xvmc.elc b/elpa/xelb-0.20/xcb-xvmc.elc new file mode 100644 index 0000000..49b79a7 Binary files /dev/null and b/elpa/xelb-0.20/xcb-xvmc.elc differ diff --git a/elpa/xelb-0.20/xcb.el b/elpa/xelb-0.20/xcb.el new file mode 100644 index 0000000..afe36ee --- /dev/null +++ b/elpa/xelb-0.20/xcb.el @@ -0,0 +1,883 @@ +;;; 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 + (compat-call plist-get + (slot-value connection 'event-plist) + (vector (aref cache 1) + (funcall + (if xcb:lsb + #'xcb:-unpack-u2-lsb + #'xcb:-unpack-u2) + cache 8)) + #'equal))) + (`xkb + (setq listener + (compat-call plist-get + (slot-value connection 'event-plist) + (vector (aref cache 1)) + #'equal)))) + ;; 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 (compat-call plist-get plist event-number #'equal)) + (setf (slot-value obj 'event-plist) + (compat-call plist-put plist event-number + (append listeners (list listener)) #'equal)))) + +(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 diff --git a/elpa/xelb-0.20/xcb.elc b/elpa/xelb-0.20/xcb.elc new file mode 100644 index 0000000..de0134a Binary files /dev/null and b/elpa/xelb-0.20/xcb.elc differ diff --git a/elpa/xelb-0.20/xelb-autoloads.el b/elpa/xelb-0.20/xelb-autoloads.el new file mode 100644 index 0000000..2492fd9 --- /dev/null +++ b/elpa/xelb-0.20/xelb-autoloads.el @@ -0,0 +1,253 @@ +;;; xelb-autoloads.el --- automatically extracted autoloads (do not edit) -*- lexical-binding: t -*- +;; Generated by the `loaddefs-generate' function. + +;; This file is part of GNU Emacs. + +;;; Code: + +(add-to-list 'load-path (or (and load-file-name (directory-file-name (file-name-directory load-file-name))) (car load-path))) + + + +;;; Generated autoloads from xcb.el + +(register-definition-prefixes "xcb" '("xcb:")) + + +;;; Generated autoloads from xcb-bigreq.el + +(register-definition-prefixes "xcb-bigreq" '("xcb:bigreq:")) + + +;;; Generated autoloads from xcb-composite.el + +(register-definition-prefixes "xcb-composite" '("xcb:composite:")) + + +;;; Generated autoloads from xcb-cursor.el + +(register-definition-prefixes "xcb-cursor" '("xcb:cursor:-")) + + +;;; Generated autoloads from xcb-damage.el + +(register-definition-prefixes "xcb-damage" '("xcb:damage:")) + + +;;; Generated autoloads from xcb-dbe.el + +(register-definition-prefixes "xcb-dbe" '("xcb:dbe:")) + + +;;; Generated autoloads from xcb-debug.el + +(register-definition-prefixes "xcb-debug" '("xcb-debug:")) + + +;;; Generated autoloads from xcb-dpms.el + +(register-definition-prefixes "xcb-dpms" '("xcb:dpms:")) + + +;;; Generated autoloads from xcb-dri2.el + +(register-definition-prefixes "xcb-dri2" '("xcb:dri2:")) + + +;;; Generated autoloads from xcb-dri3.el + +(register-definition-prefixes "xcb-dri3" '("xcb:dri3:")) + + +;;; Generated autoloads from xcb-ewmh.el + +(register-definition-prefixes "xcb-ewmh" '("xcb:ewmh:")) + + +;;; Generated autoloads from xcb-ge.el + +(register-definition-prefixes "xcb-ge" '("xcb:ge:")) + + +;;; Generated autoloads from xcb-glx.el + +(register-definition-prefixes "xcb-glx" '("xcb:glx:")) + + +;;; Generated autoloads from xcb-icccm.el + +(register-definition-prefixes "xcb-icccm" '("xcb:icccm:")) + + +;;; Generated autoloads from xcb-keysyms.el + +(register-definition-prefixes "xcb-keysyms" '("xcb:keysyms:")) + + +;;; Generated autoloads from xcb-present.el + +(register-definition-prefixes "xcb-present" '("xcb:present:")) + + +;;; Generated autoloads from xcb-randr.el + +(register-definition-prefixes "xcb-randr" '("xcb:randr:")) + + +;;; Generated autoloads from xcb-record.el + +(register-definition-prefixes "xcb-record" '("xcb:record:")) + + +;;; Generated autoloads from xcb-render.el + +(register-definition-prefixes "xcb-render" '("xcb:render:")) + + +;;; Generated autoloads from xcb-renderutil.el + +(register-definition-prefixes "xcb-renderutil" '("xcb:renderutil:")) + + +;;; Generated autoloads from xcb-res.el + +(register-definition-prefixes "xcb-res" '("xcb:res:")) + + +;;; Generated autoloads from xcb-screensaver.el + +(register-definition-prefixes "xcb-screensaver" '("xcb:screensaver:")) + + +;;; Generated autoloads from xcb-shape.el + +(register-definition-prefixes "xcb-shape" '("xcb:shape:")) + + +;;; Generated autoloads from xcb-shm.el + +(register-definition-prefixes "xcb-shm" '("xcb:shm:")) + + +;;; Generated autoloads from xcb-sync.el + +(register-definition-prefixes "xcb-sync" '("xcb:sync:")) + + +;;; Generated autoloads from xcb-systemtray.el + +(register-definition-prefixes "xcb-systemtray" '("xcb:")) + + +;;; Generated autoloads from xcb-types.el + +(register-definition-prefixes "xcb-types" '("xcb:")) + + +;;; Generated autoloads from xcb-xc_misc.el + +(register-definition-prefixes "xcb-xc_misc" '("xcb:xc_misc:")) + + +;;; Generated autoloads from xcb-xembed.el + +(register-definition-prefixes "xcb-xembed" '("xcb:xembed:")) + + +;;; Generated autoloads from xcb-xevie.el + +(register-definition-prefixes "xcb-xevie" '("xcb:xevie:")) + + +;;; Generated autoloads from xcb-xf86dri.el + +(register-definition-prefixes "xcb-xf86dri" '("xcb:xf86dri:")) + + +;;; Generated autoloads from xcb-xf86vidmode.el + +(register-definition-prefixes "xcb-xf86vidmode" '("xcb:xf86vidmode:")) + + +;;; Generated autoloads from xcb-xfixes.el + +(register-definition-prefixes "xcb-xfixes" '("xcb:xfixes:")) + + +;;; Generated autoloads from xcb-xim.el + +(register-definition-prefixes "xcb-xim" '("xim:")) + + +;;; Generated autoloads from xcb-xinerama.el + +(register-definition-prefixes "xcb-xinerama" '("xcb:xinerama:")) + + +;;; Generated autoloads from xcb-xinput.el + +(register-definition-prefixes "xcb-xinput" '("xcb:xinput:")) + + +;;; Generated autoloads from xcb-xkb.el + +(register-definition-prefixes "xcb-xkb" '("xcb:xkb:")) + + +;;; Generated autoloads from xcb-xlib.el + +(register-definition-prefixes "xcb-xlib" '("xlib:X")) + + +;;; Generated autoloads from xcb-xprint.el + +(register-definition-prefixes "xcb-xprint" '("xcb:xprint:")) + + +;;; Generated autoloads from xcb-xproto.el + +(register-definition-prefixes "xcb-xproto" '("xcb:")) + + +;;; Generated autoloads from xcb-xselinux.el + +(register-definition-prefixes "xcb-xselinux" '("xcb:xselinux:")) + + +;;; Generated autoloads from xcb-xsettings.el + +(register-definition-prefixes "xcb-xsettings" '("xcb:xsettings:-")) + + +;;; Generated autoloads from xcb-xtest.el + +(register-definition-prefixes "xcb-xtest" '("xcb:xtest:")) + + +;;; Generated autoloads from xcb-xv.el + +(register-definition-prefixes "xcb-xv" '("xcb:xv:")) + + +;;; Generated autoloads from xcb-xvmc.el + +(register-definition-prefixes "xcb-xvmc" '("xcb:xvmc:")) + + +;;; Generated autoloads from xelb-test.el + +(register-definition-prefixes "xelb-test" '("xelb-test-")) + +;;; End of scraped data + +(provide 'xelb-autoloads) + +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; no-native-compile: t +;; coding: utf-8-emacs-unix +;; End: + +;;; xelb-autoloads.el ends here diff --git a/elpa/xelb-0.20/xelb-gen b/elpa/xelb-0.20/xelb-gen new file mode 100755 index 0000000..daff68c --- /dev/null +++ b/elpa/xelb-0.20/xelb-gen @@ -0,0 +1,726 @@ +#!/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 diff --git a/elpa/xelb-0.20/xelb-pkg.el b/elpa/xelb-0.20/xelb-pkg.el new file mode 100644 index 0000000..b66d835 --- /dev/null +++ b/elpa/xelb-0.20/xelb-pkg.el @@ -0,0 +1,2 @@ +;; Generated package description from xelb.el -*- no-byte-compile: t -*- +(define-package "xelb" "0.20" "X protocol Emacs Lisp Binding" '((emacs "27.1") (compat "29.1")) :commit "bdf3a69214c70611fbce71942598c85c4fe3d6b7" :authors '(("Chris Feng" . "chris.w.feng@gmail.com")) :maintainer '(("Adrián Medraño Calvo" . "adrian@medranocalvo.com") ("Steven Allen" . "steven@stebalien.com") ("Daniel Mendler" . "mail@daniel-mendler.de")) :keywords '("unix") :url "https://github.com/emacs-exwm/xelb") diff --git a/elpa/xelb-0.20/xelb-test.el b/elpa/xelb-0.20/xelb-test.el new file mode 100644 index 0000000..ed7e6f8 --- /dev/null +++ b/elpa/xelb-0.20/xelb-test.el @@ -0,0 +1,96 @@ +;;; 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 diff --git a/elpa/xelb-0.20/xelb-test.elc b/elpa/xelb-0.20/xelb-test.elc new file mode 100644 index 0000000..aa4e8cc Binary files /dev/null and b/elpa/xelb-0.20/xelb-test.elc differ diff --git a/elpa/xelb-0.20/xelb.el b/elpa/xelb-0.20/xelb.el new file mode 100644 index 0000000..c3ab170 --- /dev/null +++ b/elpa/xelb-0.20/xelb.el @@ -0,0 +1,70 @@ +;;; 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.20 +;; Package-Requires: ((emacs "27.1") (compat "29.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 diff --git a/elpa/xelb-0.20/xelb.elc b/elpa/xelb-0.20/xelb.elc new file mode 100644 index 0000000..ba62603 Binary files /dev/null and b/elpa/xelb-0.20/xelb.elc differ -- cgit v1.2.3