pax_global_header00006660000000000000000000000064135370266000014514gustar00rootroot0000000000000052 comment=0f10c956349515b17bf1b5ac1fb7c65a736d401d xelb-0.18/000077500000000000000000000000001353702660000123765ustar00rootroot00000000000000xelb-0.18/.elpaignore000066400000000000000000000000121353702660000145150ustar00rootroot00000000000000README.md xelb-0.18/.gitignore000066400000000000000000000000361353702660000143650ustar00rootroot00000000000000*.elc *-pkg.el *-autoloads.el xelb-0.18/Makefile000066400000000000000000000014651353702660000140440ustar00rootroot00000000000000PROTO_PATH := ../xcb-proto/src EMACS_BIN := emacs -Q EXTENSIONS := bigreq composite damage 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 $@... @$(EMACS_BIN) --script ./el_client.el $< > $@ $(EXT_LIBS): xcb-xproto.el xcb-composite.el: xcb-xfixes.el xcb-damage.el: xcb-xfixes.el xcb-present.el: xcb-randr.el xcb-xfixes.el xcb-sync.el xcb-randr.el: xcb-render.el xcb-xfixes.el: xcb-render.el xcb-shape.el xcb-xinput.el: xcb-xfixes.el xcb-xvmc.el: xcb-xv.el xcb-xv.el: xcb-shm.el .PHONY: clean clean: @rm -vf $(LIBS) xelb-0.18/README.md000066400000000000000000000010571353702660000136600ustar00rootroot00000000000000# X protocol Emacs Lisp Binding XELB (X protocol Emacs Lisp Binding) is a pure Elisp implementation of X11 protocol based on the XML description files from XCB project. It features an object-oriented API and permits a certain degree of concurrency. It should enable you to implement some low-level X11 applications. Please refer to [xelb.el](https://github.com/ch11ng/xelb/blob/master/xelb.el) for more details. **Note to Emacs 24 users**: If you install XELB from source (rather than GNU ELPA), be sure to install `cl-generic` package from GNU ELPA first. xelb-0.18/el_client.el000066400000000000000000000722731353702660000146710ustar00rootroot00000000000000;;; el_client.el --- XELB Code Generator -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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: ;; 'el_client' is responsible for converting XCB XML description files into ;; Elisp libraries. Here are a few design guidelines: ;; + The generated codes should be human-readable and conform to the Elisp ;; coding conventions. Names mentioned in X specifications are preferred. ;; + Deprecated features such as 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: (eval-when-compile (require 'cl-lib)) (require 'eieio) (require 'pp) ;; Only used to eliminate compile warnings when distributed. (require 'xcb-types nil t) ;;;; Variables (defconst xelb-excluded-replies<25 '(xcb:xkb:GetKbdByName~reply) "Excluded replies for Emacs < 25 (they're too long to load/compile).") (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.") ;;;; 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-node-type (node) "Return the type of node NODE." (let ((type-name (xelb-node-attr node 'type)) type) (if (string-match ":" type-name) ;; Defined explicitly. (if (setq type (intern-soft (concat "xcb:" (replace-regexp-in-string "^xproto:" "" type-name)))) type (error "Undefined type: %s" type-name)) (if (setq type (or (intern-soft (concat xelb-prefix type-name)) (intern-soft (concat "xcb:" type-name)))) ;; Defined by the core protocol or this extension. type (catch 'break (dolist (i xelb-imports) (setq type (intern-soft (concat i type-name))) (when type (throw 'break type)))) (if type ;; Defined by an imported extension. type ;; Not defined. (error "Undefined type: %s" type-name)))))) (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 (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 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-2019 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 'el_client.el' 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)) (setq value (1+ 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 (or (intern-soft (concat xelb-prefix oldname)) (intern-soft (concat "xcb:" oldname)) (intern (concat xelb-prefix 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))) ,(when (memq reply-name xelb-excluded-replies<25) ;; Redefine `defclass' as no-op. '(eval-and-compile (when (< emacs-major-version 25) (fset 'xcb:-defclass (symbol-function 'defclass)) (defmacro defclass (&rest _args))))) ;; 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)) ,(when (memq reply-name xelb-excluded-replies<25) ;; Bring back the original defination of `defclass'. '(eval-and-compile (when (< emacs-major-version 25) (fset 'defclass (symbol-function 'xcb:-defclass))))))))) (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 (or (intern-soft (concat xelb-prefix refname)) (intern-soft (concat "xcb:" refname)) (intern (concat xelb-prefix 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 (xcb:-event ,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 (or (intern-soft (concat xelb-prefix refname)) (intern-soft (concat "xcb:" refname)) (intern (concat xelb-prefix 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)) (`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-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)) ("<<" `(lsh ,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)) (lsh 1 bit))) (defun xelb-parse-enumref (node) "Parse ." (let ((name (concat (xelb-node-attr node 'ref) ":" (xelb-node-subnode node)))) (symbol-value (or (intern-soft (concat xelb-prefix name)) (intern-soft (concat "xcb:" name)) (intern (concat xelb-prefix 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)))) `(xcb:-popcount ,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: el_client.el [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))) ;;; el_client.el ends here xelb-0.18/xcb-bigreq.el000066400000000000000000000030151353702660000147420ustar00rootroot00000000000000;;; xcb-bigreq.el --- X11 BigRequests extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'bigreq.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:bigreq:-extension-xname "BIG-REQUESTS") (defconst xcb:bigreq:-extension-name "BigRequests") (defconst xcb:bigreq:-major-version 0) (defconst xcb:bigreq:-minor-version 0) (defclass xcb:bigreq:Enable (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:bigreq:Enable~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (maximum-request-length :initarg :maximum-request-length :type xcb:CARD32))) (provide 'xcb-bigreq) ;;; xcb-bigreq.el ends here xelb-0.18/xcb-composite.el000066400000000000000000000073601353702660000155020ustar00rootroot00000000000000;;; xcb-composite.el --- X11 Composite extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'composite.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:composite:-extension-xname "Composite") (defconst xcb:composite:-extension-name "Composite") (defconst xcb:composite:-major-version 0) (defconst xcb:composite:-minor-version 4) (require 'xcb-xproto) (require 'xcb-xfixes) (defconst xcb:composite:Redirect:Automatic 0) (defconst xcb:composite:Redirect:Manual 1) (defclass xcb:composite:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD32) (client-minor-version :initarg :client-minor-version :type xcb:CARD32))) (defclass xcb:composite:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad))) (defclass xcb:composite:RedirectWindow (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (update :initarg :update :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:composite:RedirectSubwindows (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (update :initarg :update :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:composite:UnredirectWindow (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (update :initarg :update :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:composite:UnredirectSubwindows (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (update :initarg :update :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:composite:CreateRegionFromBorderClip (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (region :initarg :region :type xcb:xfixes:REGION) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:composite:NameWindowPixmap (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (pixmap :initarg :pixmap :type xcb:PIXMAP))) (defclass xcb:composite:GetOverlayWindow (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:composite:GetOverlayWindow~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (overlay-win :initarg :overlay-win :type xcb:WINDOW) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:composite:ReleaseOverlayWindow (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (provide 'xcb-composite) ;;; xcb-composite.el ends here xelb-0.18/xcb-cursor.el000066400000000000000000000461251353702660000150170ustar00rootroot00000000000000;;; xcb-cursor.el --- Port of Xcursor -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library is a port of Xcursor in Xlib, and roughly corresponds to the ;; xcb/util-cursor project. ;; Usage tips: ;; + Do not forget to call `xcb:cursor:init' for _every_ connection using this ;; library. ;; + The only useful method in this library is `xcb:cursor:load-cursor', which ;; loads a cursor by its name (e.g. "left_ptr"), in the following order: ;; 1. themed cursor ;; 2. inherited themed cursor ;; 3. standard X cursor ;; Todo: ;; + Add legacy support for RENDER. ;; + Cursor should be set per screen (only the first is used right now). ;; + Move codes corresponding to xcb/util-renderutil or xcb/util-image ;; elsewhere. ;; References: ;; + Xcursor(3). ;; + xcb/util-cursor (git://anongit.freedesktop.org/xcb/util-cursor) ;; + xcb/util-renderutil (git://anongit.freedesktop.org/xcb/util-renderutil) ;; + xcb/util-image (git://anongit.freedesktop.org/xcb/util-image) ;;; Code: (eval-when-compile (require 'cl-lib)) (require 'xcb) (require 'xcb-render) ;; FIXME: check if resource manager really works (cl-defmethod xcb:cursor:init ((obj xcb:connection)) "Initialize Xcursor for connection OBJ." ;; Initialize resource manager (let* ((root (slot-value (car (slot-value (xcb:get-setup obj) 'roots)) 'root)) (rm (xcb:+request-unchecked+reply obj (make-instance 'xcb:GetProperty :delete 0 :window root :property xcb:Atom:RESOURCE_MANAGER :type xcb:Atom:STRING :long-offset 0 :long-length 16384))) ;FIXME: xcb/util-cursor (rm (split-string (decode-coding-string (apply #'unibyte-string (append (slot-value rm 'value) nil)) 'iso-latin-1) "\n")) theme size dpi) (dolist (i rm) (pcase (replace-regexp-in-string "^\\(\\S-+\\)" "\\1" i) ("Xcursor.theme" (setq theme (replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i))) ("Xcursor.size" (setq size (string-to-number (replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i)))) ("Xft.dpi" (setq dpi (string-to-number (replace-regexp-in-string "^[^:]+:\\s-*\\(.+$\\)" "\\1" i)))))) ;; Get cursor size from XCURSOR_SIZE environment variable (let ((default-size (getenv "XCURSOR_SIZE"))) (when default-size (setq default-size (string-to-number default-size))) (setq size (or default-size size))) ;; Alternatives (when (and (not size) dpi) (setq size (/ (* dpi 16) 72))) ;FIXME: xcb/util-cursor (unless size (setq size ;; FIXME: xcb/util-cursor (/ (min (x-display-pixel-width) (x-display-pixel-height)) 48))) ;; Save default values (let ((plist (plist-get (slot-value obj 'extra-plist) 'cursor))) (setq plist (plist-put plist 'theme theme) plist (plist-put plist 'size size)) (setf (slot-value obj 'extra-plist) (plist-put (slot-value obj 'extra-plist) 'cursor plist)))) ;; Initialize render extension (if (= 0 (slot-value (xcb:get-extension-data obj 'xcb:render) 'present)) (error "[XELB:CURSOR] Render extension is not supported by this server") (with-slots (minor-version) (xcb:+request-unchecked+reply obj (make-instance 'xcb:render:QueryVersion :client-major-version 0 :client-minor-version 8)) (if (> 8 minor-version) (error "[XELB:CURSOR] Render version 0.8 is not supported") (let* ((formats (slot-value (xcb:+request-unchecked+reply obj (make-instance 'xcb:render:QueryPictFormats)) 'formats)) (format (catch 'break (dolist (i formats) (with-slots (type depth direct) i (with-slots (red-shift red-mask green-shift green-mask blue-shift blue-mask alpha-shift alpha-mask) direct ;; FIXME: xcb/util-renderutil (when (and (= type xcb:render:PictType:Direct) (= depth 32) (= red-shift 16) (= red-mask #xFF) (= green-shift 8) (= green-mask #xFF) (= blue-shift 0) (= blue-mask #xFF) (= alpha-shift 24) (= alpha-mask #xFF)) (throw 'break i))))))) (plist (plist-get (slot-value obj 'extra-plist) 'cursor))) (setf (slot-value obj 'extra-plist) (plist-put (slot-value obj 'extra-plist) 'cursor (plist-put plist 'pict-format format)))))))) (defsubst xcb:cursor:-get-path () "Return a list of cursor paths." (let ((path (getenv "XCURSOR_PATH"))) (if path (split-string path ":" t) '("~/.icons" "/usr/share/icons" "/usr/share/pixmaps" "/usr/X11R6/lib/X11/icons")))) (defun xcb:cursor:-get-theme-inherits (file) "Return the inherited themes in a index.theme file FILE." (let ((lines (with-temp-buffer (insert-file-contents file) (split-string (buffer-string) "\n" t)))) (catch 'break (dolist (line lines) (when (string-match "^Inherits\\s-*=\\s-*" line) (throw 'break (split-string (replace-regexp-in-string "^[^=]+=\\(.*\\)$" "\\1" line) "[;, \t\n]+" t))))))) (defsubst xcb:cursor:-shape->id (name) "Return the standard Xcursor font for cursor named NAME." ;; Standard X cursor fonts are defined in Emacs (intern-soft (concat "x-pointer-" (replace-regexp-in-string "_" "-" name)))) (defun xcb:cursor:-find-file (theme name &optional skip) "Return the file for cursor named NAME in theme THEME, or nil if not found." (catch 'return ;; Skip searched themes (when (memq theme skip) (throw 'return nil)) ;; Give up when supplied "core" theme and a valid cursor name (when (and (string= "core" theme) (xcb:cursor:-shape->id name)) (throw 'return nil)) (let ((path (xcb:cursor:-get-path)) file) ;; 1. try THEME/cursors/NAME in each cursor path (dolist (i path) (setq file (concat i "/" theme "/cursors/" name)) (when (file-readable-p file) (throw 'return file))) ;; 2. try "Inherits=" key in "index.theme" (dolist (i path) (setq file (concat i "/" theme "/index.theme")) (when (file-readable-p file) (cl-pushnew theme skip) ;; try all inherited themes (dolist (j (xcb:cursor:-get-theme-inherits file)) (setq file (xcb:cursor:-find-file j name skip)) (when file (throw 'return file)) (cl-pushnew j skip))))) nil)) (defconst xcb:cursor:-file-magic-lsb "Xcur" "The magic number for little-endian Xcursor file.") (defconst xcb:cursor:-file-magic-msb "rucX" "The magic number for big-endian Xcursor file.") (defclass xcb:cursor:-file-header (xcb:-struct) ((magic :type xcb:CARD32) (header :type xcb:CARD32) (version :type xcb:CARD32) (ntoc :type xcb:CARD32)) ;redundant, required for calculating TOC bytes :documentation "Xcursor file header.") (defclass xcb:cursor:-file-header-toc (xcb:-struct) ((ntoc :type xcb:CARD32) ;redundant slot (toc :type xcb:-ignore) (toc~ :initform '(name toc type xcb:cursor:-file-toc size (xcb:-fieldref 'ntoc)) :type xcb:-list)) :documentation "The TOC field in Xcursor file header.") (defclass xcb:cursor:-file-toc (xcb:-struct) ((type :type xcb:CARD32) (subtype :type xcb:CARD32) (position :type xcb:CARD32)) :documentation "Xcursor file TOC entry.") (defclass xcb:cursor:-file-chunk-header (xcb:-struct) ((header :type xcb:CARD32) (type :type xcb:CARD32) (subtype :type xcb:CARD32) (version :type xcb:CARD32) (width :type xcb:CARD32) ;redundant, required for calculating image bytes (height :type xcb:CARD32)) ;redundant, required for calculating image bytes :documentation "Xcursor file chunk header.") (defconst xcb:cursor:-file-chunk-image-header 36 "Header value of image-type chunk in Xcursor file.") (defconst xcb:cursor:-file-chunk-image-type 4294770690. "Type of image-type chunk in Xcursor file.") (defconst xcb:cursor:-file-chunk-image-version 1 "Version of image-type chunk in Xcursor file.") (defclass xcb:cursor:-file-chunk-image (xcb:-struct) ((width :type xcb:CARD32) ;<= #x7FFF, redundant (height :type xcb:CARD32) ;<= #x7FFF, redundant (xhot :type xcb:CARD32) ;<= width (yhot :type xcb:CARD32) ;<= height (delay :type xcb:CARD32) ;in ms (pixels :type xcb:-ignore) (pixels~ :initform '(name pixels type xcb:CARD32 size (* (xcb:-fieldref 'width) (xcb:-fieldref 'height))) :type xcb:-list)) :documentation "Image-type chunk in Xcursor file.") (cl-defmethod xcb:cursor:-parse-file ((obj xcb:connection) path) "Parse an Xcursor file named PATH." (catch 'return (let ((data (let ((coding-system-for-read 'binary)) (with-temp-buffer (set-buffer-multibyte nil) (insert-file-contents path) (buffer-string)))) xcb:lsb ;override global byte order best-size chunks magic file-header file-header-toc chunk-header chunk) ;; Determine byte order (setq magic (substring data 0 4)) (if (string= xcb:cursor:-file-magic-lsb magic) (setq xcb:lsb t) ;LSB first (if (string= xcb:cursor:-file-magic-msb magic) (setq xcb:lsb nil) ;MSB first (throw 'return nil))) (setq file-header (make-instance 'xcb:cursor:-file-header)) ;; (xcb:unmarshal file-header (substring data 0 16)) ;; FIXME: checks (setq file-header-toc (make-instance 'xcb:cursor:-file-header-toc)) (xcb:unmarshal file-header-toc (substring data 12 (+ 16 (* 12 (slot-value file-header 'ntoc))))) (with-slots (toc) file-header-toc (let ((target (plist-get (plist-get (slot-value obj 'extra-plist) 'cursor) 'size))) (catch 'break (dolist (i toc) (with-slots (type subtype) i (when (= type xcb:cursor:-file-chunk-image-type) (when (= target subtype) (setq best-size target) (throw 'break nil)) (when (or (not best-size) (> (abs (- target best-size)) (abs (- target subtype)))) (setq best-size subtype))))))) ;; Collect chunks fitting this size (setq chunk-header (make-instance 'xcb:cursor:-file-chunk-header)) (dolist (i toc) (with-slots (type subtype position) i (when (and (= type xcb:cursor:-file-chunk-image-type) (= subtype best-size)) (xcb:unmarshal chunk-header (substring data position (+ position 24))) ;; Validate the header of this chunk (with-slots (header type subtype version) chunk-header (when (or (/= header xcb:cursor:-file-chunk-image-header) (/= type xcb:cursor:-file-chunk-image-type) (/= subtype best-size) (/= version xcb:cursor:-file-chunk-image-version)) (throw 'return nil))) ;; Parse this chunk (setq chunk (make-instance 'xcb:cursor:-file-chunk-image)) (xcb:unmarshal chunk (substring data (+ position 16) (+ position 36 (* 4 (slot-value chunk-header 'width) (slot-value chunk-header 'height))))) (setq chunks (nconc chunks (list chunk)))))) (list xcb:lsb chunks))))) (cl-defmethod xcb:cursor:-load-cursor ((obj xcb:connection) file) "Load a cursor file FILE." (let* ((images (xcb:cursor:-parse-file obj file)) (lsb (car images)) (images (cadr images)) (root (slot-value (car (slot-value (xcb:get-setup obj) 'roots)) 'root)) (picture (xcb:generate-id obj)) (pict-format (slot-value (plist-get (plist-get (slot-value obj 'extra-plist) 'cursor) 'pict-format) 'id)) pixmap gc cursors cursor last-width last-height) (dolist (image images) (with-slots (width height xhot yhot delay pixels) image (when (or (not pixmap) (/= last-width width) (/= last-height height)) (if pixmap (progn (xcb:+request obj (make-instance 'xcb:FreePixmap :pixmap pixmap)) (xcb:+request obj (make-instance 'xcb:FreeGC :gc gc))) (setq pixmap (xcb:generate-id obj) gc (xcb:generate-id obj))) (xcb:+request obj (make-instance 'xcb:CreatePixmap :depth 32 :pid pixmap :drawable root :width width :height height)) (xcb:+request obj (make-instance 'xcb:CreateGC :cid gc :drawable pixmap :value-mask 0)) (setq last-width width last-height height)) (xcb:+request obj (make-instance 'xcb:PutImage :format xcb:ImageFormat:ZPixmap :drawable pixmap :gc gc :width width :height height :dst-x 0 :dst-y 0 :left-pad 0 :depth 32 :data (with-temp-buffer (set-buffer-multibyte nil) (mapconcat (if lsb #'xcb:-pack-u4-lsb #'xcb:-pack-u4) pixels [])))) (xcb:+request obj (make-instance 'xcb:render:CreatePicture :pid picture :drawable pixmap :format pict-format :value-mask 0)) (setq cursor (xcb:generate-id obj) cursors (nconc cursors (list (make-instance 'xcb:render:ANIMCURSORELT :cursor cursor :delay delay)))) (xcb:+request obj (make-instance 'xcb:render:CreateCursor :cid cursor :source picture :x xhot :y yhot)) (xcb:+request obj (make-instance 'xcb:render:FreePicture :picture picture)))) (xcb:+request obj (make-instance 'xcb:FreePixmap :pixmap pixmap)) (xcb:+request obj (make-instance 'xcb:FreeGC :gc gc)) (xcb:flush obj) (if (= 1 (length cursors)) ;; Non-animated cursor (slot-value (car cursors) 'cursor) ;; Animated cursor (setq cursor (xcb:generate-id obj)) (xcb:+request obj (make-instance 'xcb:render:CreateAnimCursor :cid cursor :cursors (vconcat cursors))) (dolist (i cursors) (xcb:+request obj (make-instance 'xcb:FreeCursor :cursor (slot-value i 'cursor)))) (xcb:flush obj) cursor))) (cl-defmethod xcb:cursor:load-cursor ((obj xcb:connection) name) "Return a cursor whose name is NAME." (let* ((theme (or (plist-get (plist-get (slot-value obj 'extra-plist) 'cursor) 'theme) "default")) (file (xcb:cursor:-find-file theme name))) (if file (xcb:cursor:-load-cursor obj file) ;; Fallback to standard X cursors (let ((pointer (xcb:cursor:-shape->id name)) (cursor xcb:Cursor:None) font) (when (boundp pointer) (setq pointer (symbol-value pointer) font (xcb:generate-id obj) cursor (xcb:generate-id obj)) (xcb:+request obj (make-instance 'xcb:OpenFont :fid font :name-len (length "cursor") :name "cursor")) (xcb:+request obj (make-instance 'xcb:CreateGlyphCursor :cid cursor :source-font font :mask-font font :source-char pointer :mask-char (1+ pointer) :fore-red 0 :fore-green 0 :fore-blue 0 :back-red #xFFFF :back-green #xFFFF :back-blue #xFFFF)) (xcb:flush obj)) cursor)))) (provide 'xcb-cursor) ;;; xcb-cursor.el ends here xelb-0.18/xcb-damage.el000066400000000000000000000070501353702660000147120ustar00rootroot00000000000000;;; xcb-damage.el --- X11 Damage extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'damage.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:damage:-extension-xname "DAMAGE") (defconst xcb:damage:-extension-name "Damage") (defconst xcb:damage:-major-version 1) (defconst xcb:damage:-minor-version 1) (require 'xcb-xproto) (require 'xcb-xfixes) (xcb:deftypealias 'xcb:damage:DAMAGE 'xcb:-u4) (defconst xcb:damage:ReportLevel:RawRectangles 0) (defconst xcb:damage:ReportLevel:DeltaRectangles 1) (defconst xcb:damage:ReportLevel:BoundingBox 2) (defconst xcb:damage:ReportLevel:NonEmpty 3) (defclass xcb:damage:BadDamage (xcb:-error) ((~code :initform 0))) (defclass xcb:damage:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD32) (client-minor-version :initarg :client-minor-version :type xcb:CARD32))) (defclass xcb:damage:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad))) (defclass xcb:damage:Create (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (damage :initarg :damage :type xcb:damage:DAMAGE) (drawable :initarg :drawable :type xcb:DRAWABLE) (level :initarg :level :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:damage:Destroy (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (damage :initarg :damage :type xcb:damage:DAMAGE))) (defclass xcb:damage:Subtract (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (damage :initarg :damage :type xcb:damage:DAMAGE) (repair :initarg :repair :type xcb:xfixes:REGION) (parts :initarg :parts :type xcb:xfixes:REGION))) (defclass xcb:damage:Add (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (region :initarg :region :type xcb:xfixes:REGION))) (defclass xcb:damage:Notify (xcb:-event) ((~code :initform 0) (level :initarg :level :type xcb:CARD8) (~sequence :type xcb:CARD16) (drawable :initarg :drawable :type xcb:DRAWABLE) (damage :initarg :damage :type xcb:damage:DAMAGE) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (area :initarg :area :type xcb:RECTANGLE) (geometry :initarg :geometry :type xcb:RECTANGLE))) (defconst xcb:damage:error-number-class-alist '((0 . xcb:damage:BadDamage)) "(error-number . error-class) alist.") (defconst xcb:damage:event-number-class-alist '((0 . xcb:damage:Notify)) "(event-number . event-class) alist.") (provide 'xcb-damage) ;;; xcb-damage.el ends here xelb-0.18/xcb-debug.el000066400000000000000000000100641353702660000145610ustar00rootroot00000000000000;;; xcb-debug.el --- Debugging helpers for XELB -*- lexical-binding: t -*- ;; Copyright (C) 2018-2019 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 (get-buffer-create xcb-debug:buffer) (let (windows-eob) ;; Note windows whose point is at EOB. (dolist (w (get-buffer-window-list xcb-debug:buffer t 'nomini)) (when (= (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 (get-buffer-create xcb-debug: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:clear () "Clear the debug buffer." (interactive) (xcb-debug:-with-debug-buffer (erase-buffer))) (defun xcb-debug:mark () "Insert a mark in the debug buffer." (interactive) (xcb-debug:-with-debug-buffer (insert " \n"))) (provide 'xcb-debug) ;;; xcb-debug.el ends here xelb-0.18/xcb-dpms.el000066400000000000000000000070471353702660000144450ustar00rootroot00000000000000;;; xcb-dpms.el --- X11 DPMS extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 0) (defconst xcb:dpms:-minor-version 0) (defclass xcb:dpms:GetVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD16) (client-minor-version :initarg :client-minor-version :type xcb:CARD16))) (defclass xcb:dpms:GetVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~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))) (provide 'xcb-dpms) ;;; xcb-dpms.el ends here xelb-0.18/xcb-dri2.el000066400000000000000000000260641353702660000143420ustar00rootroot00000000000000;;; xcb-dri2.el --- X11 DRI2 extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'dri2.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:dri2:-extension-xname "DRI2") (defconst xcb:dri2:-extension-name "DRI2") (defconst xcb:dri2:-major-version 1) (defconst xcb:dri2:-minor-version 4) (require 'xcb-xproto) (defconst xcb:dri2:Attachment:BufferFrontLeft 0) (defconst xcb:dri2:Attachment:BufferBackLeft 1) (defconst xcb:dri2:Attachment:BufferFrontRight 2) (defconst xcb:dri2:Attachment:BufferBackRight 3) (defconst xcb:dri2:Attachment:BufferDepth 4) (defconst xcb:dri2:Attachment:BufferStencil 5) (defconst xcb:dri2:Attachment:BufferAccum 6) (defconst xcb:dri2:Attachment:BufferFakeFrontLeft 7) (defconst xcb:dri2:Attachment:BufferFakeFrontRight 8) (defconst xcb:dri2:Attachment:BufferDepthStencil 9) (defconst xcb:dri2:Attachment:BufferHiz 10) (defconst xcb:dri2:DriverType:DRI 0) (defconst xcb:dri2:DriverType:VDPAU 1) (defconst xcb:dri2:EventType:ExchangeComplete 1) (defconst xcb:dri2:EventType:BlitComplete 2) (defconst xcb:dri2:EventType:FlipComplete 3) (defclass xcb:dri2:DRI2Buffer (xcb:-struct) ((attachment :initarg :attachment :type xcb:CARD32) (name :initarg :name :type xcb:CARD32) (pitch :initarg :pitch :type xcb:CARD32) (cpp :initarg :cpp :type xcb:CARD32) (flags :initarg :flags :type xcb:CARD32))) (defclass xcb:dri2:AttachFormat (xcb:-struct) ((attachment :initarg :attachment :type xcb:CARD32) (format :initarg :format :type xcb:CARD32))) (defclass xcb:dri2:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:dri2:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:dri2:Connect (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (driver-type :initarg :driver-type :type xcb:CARD32))) (defclass xcb:dri2:Connect~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (driver-name-length :initarg :driver-name-length :type xcb:CARD32) (device-name-length :initarg :device-name-length :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad) (driver-name~ :initform '(name driver-name type xcb:char size (xcb:-fieldref 'driver-name-length)) :type xcb:-list) (driver-name :initarg :driver-name :type xcb:-ignore) (alignment-pad~ :initform '(name alignment-pad type xcb:void size (- (logand (+ (xcb:-fieldref 'driver-name-length) 3) (lognot 3)) (xcb:-fieldref 'driver-name-length))) :type xcb:-list) (alignment-pad :initarg :alignment-pad :type xcb:-ignore) (device-name~ :initform '(name device-name type xcb:char size (xcb:-fieldref 'device-name-length)) :type xcb:-list) (device-name :initarg :device-name :type xcb:-ignore))) (defclass xcb:dri2:Authenticate (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (magic :initarg :magic :type xcb:CARD32))) (defclass xcb:dri2:Authenticate~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (authenticated :initarg :authenticated :type xcb:CARD32))) (defclass xcb:dri2:CreateDrawable (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:dri2:DestroyDrawable (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:dri2:GetBuffers (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (count :initarg :count :type xcb:CARD32) (attachments~ :initform '(name attachments type xcb:CARD32 size nil) :type xcb:-list) (attachments :initarg :attachments :type xcb:-ignore))) (defclass xcb:dri2:GetBuffers~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width :initarg :width :type xcb:CARD32) (height :initarg :height :type xcb:CARD32) (count :initarg :count :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (buffers~ :initform '(name buffers type xcb:dri2:DRI2Buffer size (xcb:-fieldref 'count)) :type xcb:-list) (buffers :initarg :buffers :type xcb:-ignore))) (defclass xcb:dri2:CopyRegion (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (region :initarg :region :type xcb:CARD32) (dest :initarg :dest :type xcb:CARD32) (src :initarg :src :type xcb:CARD32))) (defclass xcb:dri2:CopyRegion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:dri2:GetBuffersWithFormat (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (count :initarg :count :type xcb:CARD32) (attachments~ :initform '(name attachments type xcb:dri2:AttachFormat size nil) :type xcb:-list) (attachments :initarg :attachments :type xcb:-ignore))) (defclass xcb:dri2:GetBuffersWithFormat~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width :initarg :width :type xcb:CARD32) (height :initarg :height :type xcb:CARD32) (count :initarg :count :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (buffers~ :initform '(name buffers type xcb:dri2:DRI2Buffer size (xcb:-fieldref 'count)) :type xcb:-list) (buffers :initarg :buffers :type xcb:-ignore))) (defclass xcb:dri2:SwapBuffers (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (target-msc-hi :initarg :target-msc-hi :type xcb:CARD32) (target-msc-lo :initarg :target-msc-lo :type xcb:CARD32) (divisor-hi :initarg :divisor-hi :type xcb:CARD32) (divisor-lo :initarg :divisor-lo :type xcb:CARD32) (remainder-hi :initarg :remainder-hi :type xcb:CARD32) (remainder-lo :initarg :remainder-lo :type xcb:CARD32))) (defclass xcb:dri2:SwapBuffers~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (swap-hi :initarg :swap-hi :type xcb:CARD32) (swap-lo :initarg :swap-lo :type xcb:CARD32))) (defclass xcb:dri2:GetMSC (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:dri2:GetMSC~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ust-hi :initarg :ust-hi :type xcb:CARD32) (ust-lo :initarg :ust-lo :type xcb:CARD32) (msc-hi :initarg :msc-hi :type xcb:CARD32) (msc-lo :initarg :msc-lo :type xcb:CARD32) (sbc-hi :initarg :sbc-hi :type xcb:CARD32) (sbc-lo :initarg :sbc-lo :type xcb:CARD32))) (defclass xcb:dri2:WaitMSC (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (target-msc-hi :initarg :target-msc-hi :type xcb:CARD32) (target-msc-lo :initarg :target-msc-lo :type xcb:CARD32) (divisor-hi :initarg :divisor-hi :type xcb:CARD32) (divisor-lo :initarg :divisor-lo :type xcb:CARD32) (remainder-hi :initarg :remainder-hi :type xcb:CARD32) (remainder-lo :initarg :remainder-lo :type xcb:CARD32))) (defclass xcb:dri2:WaitMSC~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ust-hi :initarg :ust-hi :type xcb:CARD32) (ust-lo :initarg :ust-lo :type xcb:CARD32) (msc-hi :initarg :msc-hi :type xcb:CARD32) (msc-lo :initarg :msc-lo :type xcb:CARD32) (sbc-hi :initarg :sbc-hi :type xcb:CARD32) (sbc-lo :initarg :sbc-lo :type xcb:CARD32))) (defclass xcb:dri2:WaitSBC (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (target-sbc-hi :initarg :target-sbc-hi :type xcb:CARD32) (target-sbc-lo :initarg :target-sbc-lo :type xcb:CARD32))) (defclass xcb:dri2:WaitSBC~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ust-hi :initarg :ust-hi :type xcb:CARD32) (ust-lo :initarg :ust-lo :type xcb:CARD32) (msc-hi :initarg :msc-hi :type xcb:CARD32) (msc-lo :initarg :msc-lo :type xcb:CARD32) (sbc-hi :initarg :sbc-hi :type xcb:CARD32) (sbc-lo :initarg :sbc-lo :type xcb:CARD32))) (defclass xcb:dri2:SwapInterval (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (interval :initarg :interval :type xcb:CARD32))) (defclass xcb:dri2:GetParam (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (param :initarg :param :type xcb:CARD32))) (defclass xcb:dri2:GetParam~reply (xcb:-reply) ((is-param-recognized :initarg :is-param-recognized :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (value-hi :initarg :value-hi :type xcb:CARD32) (value-lo :initarg :value-lo :type xcb:CARD32))) (defclass xcb:dri2:BufferSwapComplete (xcb:-event) ((~code :initform 0) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (event-type :initarg :event-type :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (ust-hi :initarg :ust-hi :type xcb:CARD32) (ust-lo :initarg :ust-lo :type xcb:CARD32) (msc-hi :initarg :msc-hi :type xcb:CARD32) (msc-lo :initarg :msc-lo :type xcb:CARD32) (sbc :initarg :sbc :type xcb:CARD32))) (defclass xcb:dri2:InvalidateBuffers (xcb:-event) ((~code :initform 1) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defconst xcb:dri2:event-number-class-alist '((0 . xcb:dri2:BufferSwapComplete) (1 . xcb:dri2:InvalidateBuffers)) "(event-number . event-class) alist.") (provide 'xcb-dri2) ;;; xcb-dri2.el ends here xelb-0.18/xcb-dri3.el000066400000000000000000000162271353702660000143430ustar00rootroot00000000000000;;; xcb-dri3.el --- X11 DRI3 extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 2) (require 'xcb-xproto) (defclass xcb:dri3:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:dri3:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:dri3:Open (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (provider :initarg :provider :type xcb:CARD32))) (defclass xcb:dri3:Open~reply (xcb:-reply) ((nfd :initarg :nfd :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (device-fd :type xcb:fd) (pad~0 :initform 24 :type xcb:-pad))) (defclass xcb:dri3:PixmapFromBuffer (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (pixmap :initarg :pixmap :type xcb:PIXMAP) (drawable :initarg :drawable :type xcb:DRAWABLE) (size :initarg :size :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (stride :initarg :stride :type xcb:CARD16) (depth :initarg :depth :type xcb:CARD8) (bpp :initarg :bpp :type xcb:CARD8) (pixmap-fd :type xcb:fd))) (defclass xcb:dri3:BufferFromPixmap (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (pixmap :initarg :pixmap :type xcb:PIXMAP))) (defclass xcb:dri3:BufferFromPixmap~reply (xcb:-reply) ((nfd :initarg :nfd :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (size :initarg :size :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (stride :initarg :stride :type xcb:CARD16) (depth :initarg :depth :type xcb:CARD8) (bpp :initarg :bpp :type xcb:CARD8) (pixmap-fd :type xcb:fd) (pad~0 :initform 12 :type xcb:-pad))) (defclass xcb:dri3:FenceFromFD (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (fence :initarg :fence :type xcb:CARD32) (initially-triggered :initarg :initially-triggered :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad) (fence-fd :type xcb:fd))) (defclass xcb:dri3:FDFromFence (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (fence :initarg :fence :type xcb:CARD32))) (defclass xcb:dri3:FDFromFence~reply (xcb:-reply) ((nfd :initarg :nfd :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (fence-fd :type xcb:fd) (pad~0 :initform 24 :type xcb:-pad))) (defclass xcb:dri3:GetSupportedModifiers (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (window :initarg :window :type xcb:CARD32) (depth :initarg :depth :type xcb:CARD8) (bpp :initarg :bpp :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:dri3:GetSupportedModifiers~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 1 :type xcb:-pad) (num-window-modifiers :initarg :num-window-modifiers :type xcb:CARD32) (num-screen-modifiers :initarg :num-screen-modifiers :type xcb:CARD32) (pad~2 :initform 16 :type xcb:-pad) (window-modifiers~ :initform '(name window-modifiers type xcb:CARD64 size (xcb:-fieldref 'num-window-modifiers)) :type xcb:-list) (window-modifiers :initarg :window-modifiers :type xcb:-ignore) (screen-modifiers~ :initform '(name screen-modifiers type xcb:CARD64 size (xcb:-fieldref 'num-screen-modifiers)) :type xcb:-list) (screen-modifiers :initarg :screen-modifiers :type xcb:-ignore))) (defclass xcb:dri3:PixmapFromBuffers (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (pad~0 :initform 8 :type xcb:-pad-align) (pixmap :initarg :pixmap :type xcb:PIXMAP) (window :initarg :window :type xcb:WINDOW) (num-buffers :initarg :num-buffers :type xcb:CARD8) (pad~1 :initform 3 :type xcb:-pad) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (stride0 :initarg :stride0 :type xcb:CARD32) (offset0 :initarg :offset0 :type xcb:CARD32) (stride1 :initarg :stride1 :type xcb:CARD32) (offset1 :initarg :offset1 :type xcb:CARD32) (stride2 :initarg :stride2 :type xcb:CARD32) (offset2 :initarg :offset2 :type xcb:CARD32) (stride3 :initarg :stride3 :type xcb:CARD32) (offset3 :initarg :offset3 :type xcb:CARD32) (depth :initarg :depth :type xcb:CARD8) (bpp :initarg :bpp :type xcb:CARD8) (pad~2 :initform 2 :type xcb:-pad) (modifier :initarg :modifier :type xcb:CARD64) (buffers~ :initform '(name buffers type xcb:fd size (xcb:-fieldref 'num-buffers)) :type xcb:-list) (buffers :initarg :buffers :type xcb:-ignore))) (defclass xcb:dri3:BuffersFromPixmap (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (pixmap :initarg :pixmap :type xcb:PIXMAP))) (defclass xcb:dri3:BuffersFromPixmap~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (nfd :initarg :nfd :type xcb:CARD8) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (pad~1 :initform 4 :type xcb:-pad) (modifier :initarg :modifier :type xcb:CARD64) (depth :initarg :depth :type xcb:CARD8) (bpp :initarg :bpp :type xcb:CARD8) (pad~2 :initform 6 :type xcb:-pad) (strides~ :initform '(name strides type xcb:CARD32 size (xcb:-fieldref 'nfd)) :type xcb:-list) (strides :initarg :strides :type xcb:-ignore) (offsets~ :initform '(name offsets type xcb:CARD32 size (xcb:-fieldref 'nfd)) :type xcb:-list) (offsets :initarg :offsets :type xcb:-ignore) (buffers~ :initform '(name buffers type xcb:fd size (xcb:-fieldref 'nfd)) :type xcb:-list) (buffers :initarg :buffers :type xcb:-ignore))) (provide 'xcb-dri3) ;;; xcb-dri3.el ends here xelb-0.18/xcb-ewmh.el000066400000000000000000000720121353702660000144340ustar00rootroot00000000000000;;; xcb-ewmh.el --- Extended Window Manager Hints -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library implements EWMH the same way as xcb/util-wm. ;; Usage tips: ;; + Do not forget to call `xcb:ewmh:init' for _every_ connection using ;; this library. ;; + Use `xcb:ewmh:SendEvent' instead of `xcb:SendEvent' to send client ;; messages defined in this library. ;; + Initializing this library auto loads and initializes 'xcb-icccm'. ;; References: ;; + EWMH (http://standards.freedesktop.org/wm-spec/wm-spec-latest.html) ;; + xcb/util-wm (git://anongit.freedesktop.org/xcb/util-wm) ;;; Code: (require 'xcb) (require 'xcb-icccm) ;;;; EWMH Atoms (eval-and-compile (defconst xcb:ewmh:-atoms '( ;; Root Window Properties (and Related Messages) _NET_SUPPORTED _NET_CLIENT_LIST _NET_CLIENT_LIST_STACKING _NET_NUMBER_OF_DESKTOPS _NET_DESKTOP_GEOMETRY _NET_DESKTOP_VIEWPORT _NET_CURRENT_DESKTOP _NET_DESKTOP_NAMES _NET_ACTIVE_WINDOW _NET_WORKAREA _NET_SUPPORTING_WM_CHECK _NET_VIRTUAL_ROOTS _NET_DESKTOP_LAYOUT _NET_SHOWING_DESKTOP ;; Other Root Window Messages _NET_CLOSE_WINDOW _NET_MOVERESIZE_WINDOW _NET_WM_MOVERESIZE _NET_RESTACK_WINDOW _NET_REQUEST_FRAME_EXTENTS ;; Application Window Properties _NET_WM_NAME _NET_WM_VISIBLE_NAME _NET_WM_ICON_NAME _NET_WM_VISIBLE_ICON_NAME _NET_WM_DESKTOP _NET_WM_WINDOW_TYPE _NET_WM_STATE _NET_WM_ALLOWED_ACTIONS _NET_WM_STRUT _NET_WM_STRUT_PARTIAL _NET_WM_ICON_GEOMETRY _NET_WM_ICON _NET_WM_PID _NET_WM_HANDLED_ICONS _NET_WM_USER_TIME _NET_WM_USER_TIME_WINDOW _NET_FRAME_EXTENTS _NET_WM_OPAQUE_REGION _NET_WM_BYPASS_COMPOSITOR ;; Window Manager Protocols _NET_WM_PING _NET_WM_SYNC_REQUEST _NET_WM_SYNC_REQUEST_COUNTER _NET_WM_FULLSCREEN_MONITORS ;; Other Properties _NET_WM_FULL_PLACEMENT _NET_WM_CM_S0 ;_NET_WM_CM_Sn (n = 1, 2, ...) are left out here. ;; _NET_WM_WINDOW_TYPE hint _NET_WM_WINDOW_TYPE_DESKTOP _NET_WM_WINDOW_TYPE_DOCK _NET_WM_WINDOW_TYPE_TOOLBAR _NET_WM_WINDOW_TYPE_MENU _NET_WM_WINDOW_TYPE_UTILITY _NET_WM_WINDOW_TYPE_SPLASH _NET_WM_WINDOW_TYPE_DIALOG _NET_WM_WINDOW_TYPE_DROPDOWN_MENU _NET_WM_WINDOW_TYPE_POPUP_MENU _NET_WM_WINDOW_TYPE_TOOLTIP _NET_WM_WINDOW_TYPE_NOTIFICATION _NET_WM_WINDOW_TYPE_COMBO _NET_WM_WINDOW_TYPE_DND _NET_WM_WINDOW_TYPE_NORMAL ;; _NET_WM_STATE hint _NET_WM_STATE_MODAL _NET_WM_STATE_STICKY _NET_WM_STATE_MAXIMIZED_VERT _NET_WM_STATE_MAXIMIZED_HORZ _NET_WM_STATE_SHADED _NET_WM_STATE_SKIP_TASKBAR _NET_WM_STATE_SKIP_PAGER _NET_WM_STATE_HIDDEN _NET_WM_STATE_FULLSCREEN _NET_WM_STATE_ABOVE _NET_WM_STATE_BELOW _NET_WM_STATE_DEMANDS_ATTENTION _NET_WM_STATE_FOCUSED ;; _NET_WM_ACTION hint _NET_WM_ACTION_MOVE _NET_WM_ACTION_RESIZE _NET_WM_ACTION_MINIMIZE _NET_WM_ACTION_SHADE _NET_WM_ACTION_STICK _NET_WM_ACTION_MAXIMIZE_HORZ _NET_WM_ACTION_MAXIMIZE_VERT _NET_WM_ACTION_FULLSCREEN _NET_WM_ACTION_CHANGE_DESKTOP _NET_WM_ACTION_CLOSE _NET_WM_ACTION_ABOVE _NET_WM_ACTION_BELOW) "EWMH atoms.") (dolist (atom xcb:ewmh:-atoms) (eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil)))) (cl-defmethod xcb:ewmh:init ((obj xcb:connection) &optional force) "Initialize EWMH module. This method must be called before using any other method in this module. This method also initializes ICCCM module automatically." (when (or force (not xcb:Atom:_NET_SUPPORTED)) (xcb:icccm:init obj) ;required (let ((atoms xcb:ewmh:-atoms)) (dotimes (i (1- (x-display-screens))) (push (intern (format "_NET_WM_CM_S%d" (1+ i))) atoms)) (xcb:icccm:intern-atoms obj atoms force)))) ;;;; Client message (defclass xcb:ewmh:SendEvent (xcb:SendEvent) ((propagate :initform 0) (event-mask :initform (logior xcb:EventMask:SubstructureNotify xcb:EventMask:SubstructureRedirect))) :documentation "A fork of `xcb:SendEvent' to send EWMH client message. Note that this only applies to \"sending a message to the root window\" in EWMH") (defclass xcb:ewmh:-ClientMessage (xcb:icccm:--ClientMessage xcb:ClientMessage) ((format :initform 32))) ;;;; Abstract classes for getting/changing (UTF-8) string properties (defclass xcb:ewmh:-GetProperty-utf8 (xcb:icccm:-GetProperty-text) ((type :initform xcb:Atom:UTF8_STRING)) :documentation "Get an EWMH UTF-8 text property (request part).") (defclass xcb:ewmh:-GetProperty-utf8~reply (xcb:icccm:-GetProperty-text~reply) nil :documentation "Get an EWMH UTF-8 text property (reply part).") (defclass xcb:ewmh:-ChangeProperty-utf8 (xcb:icccm:-ChangeProperty-text) ((type :initform xcb:Atom:UTF8_STRING)) :documentation "Change an EWMH UTF-8 text property.") ;;;; Root Window Properties (and Related Messages) ;; _NET_SUPPORTED (defclass xcb:ewmh:get-_NET_SUPPORTED (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_SUPPORTED) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:get-_NET_SUPPORTED~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_SUPPORTED (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_SUPPORTED) (type :initform xcb:Atom:ATOM))) ;; _NET_CLIENT_LIST (defclass xcb:ewmh:get-_NET_CLIENT_LIST (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_CLIENT_LIST) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:get-_NET_CLIENT_LIST~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_CLIENT_LIST (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_CLIENT_LIST) (type :initform xcb:Atom:WINDOW))) ;; _NET_CLIENT_LIST_STACKING (defclass xcb:ewmh:get-_NET_CLIENT_LIST_STACKING (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_CLIENT_LIST_STACKING) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:get-_NET_CLIENT_LIST_STACKING~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_CLIENT_LIST_STACKING (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_CLIENT_LIST_STACKING) (type :initform xcb:Atom:WINDOW))) ;; _NET_NUMBER_OF_DESKTOPS (defclass xcb:ewmh:get-_NET_NUMBER_OF_DESKTOPS (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_NUMBER_OF_DESKTOPS) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_NUMBER_OF_DESKTOPS~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_NUMBER_OF_DESKTOPS (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_NUMBER_OF_DESKTOPS) (type :initform xcb:Atom:CARDINAL))) ;; _NET_DESKTOP_GEOMETRY (defclass xcb:ewmh:-_NET_DESKTOP_GEOMETRY (xcb:--struct) ((width :initarg :width :type xcb:-ignore) (height :initarg :height :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_DESKTOP_GEOMETRY (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_DESKTOP_GEOMETRY) (type :initform xcb:Atom:CARDINAL) (long-length :initform 2))) (defclass xcb:ewmh:get-_NET_DESKTOP_GEOMETRY~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_DESKTOP_GEOMETRY) nil) (defclass xcb:ewmh:set-_NET_DESKTOP_GEOMETRY (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_DESKTOP_GEOMETRY) ((property :initform xcb:Atom:_NET_DESKTOP_GEOMETRY) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_DESKTOP_GEOMETRY (xcb:ewmh:-ClientMessage xcb:ewmh:-_NET_DESKTOP_GEOMETRY) ((type :initform xcb:Atom:_NET_DESKTOP_GEOMETRY))) ;; _NET_DESKTOP_VIEWPORT (defclass xcb:ewmh:get-_NET_DESKTOP_VIEWPORT (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_DESKTOP_VIEWPORT) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_DESKTOP_VIEWPORT~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_DESKTOP_VIEWPORT (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_DESKTOP_VIEWPORT) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_DESKTOP_VIEWPORT (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_DESKTOP_VIEWPORT) (new-vx :initarg :new-vx :type xcb:CARD32) (new-vy :initarg :new-vy :type xcb:CARD32))) ;; _NET_CURRENT_DESKTOP (defclass xcb:ewmh:get-_NET_CURRENT_DESKTOP (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_CURRENT_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_CURRENT_DESKTOP~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_CURRENT_DESKTOP (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_CURRENT_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_CURRENT_DESKTOP (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_CURRENT_DESKTOP) (new-index :initarg :new-index :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:CARD32))) ;; _NET_DESKTOP_NAMES (defclass xcb:ewmh:get-_NET_DESKTOP_NAMES (xcb:ewmh:-GetProperty-utf8) ((property :initform xcb:Atom:_NET_DESKTOP_NAMES))) (defclass xcb:ewmh:get-_NET_DESKTOP_NAMES~reply (xcb:ewmh:-GetProperty-utf8~reply) nil) (defclass xcb:ewmh:set-_NET_DESKTOP_NAMES (xcb:ewmh:-ChangeProperty-utf8) ((property :initform xcb:Atom:_NET_DESKTOP_NAMES))) ;; _NET_ACTIVE_WINDOW (defclass xcb:ewmh:get-_NET_ACTIVE_WINDOW (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_ACTIVE_WINDOW) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:get-_NET_ACTIVE_WINDOW~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_ACTIVE_WINDOW (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_ACTIVE_WINDOW) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:_NET_ACTIVE_WINDOW (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_ACTIVE_WINDOW) (source-indication :initarg :source-indication :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:CARD32) (current-active-window :initarg :current-active-window :type xcb:WINDOW))) ;; _NET_WORKAREA (defclass xcb:ewmh:get-_NET_WORKAREA (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WORKAREA) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WORKAREA~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_WORKAREA (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WORKAREA) (type :initform xcb:Atom:CARDINAL))) ;; _NET_SUPPORTING_WM_CHECK (defclass xcb:ewmh:get-_NET_SUPPORTING_WM_CHECK (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_SUPPORTING_WM_CHECK) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:get-_NET_SUPPORTING_WM_CHECK~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_SUPPORTING_WM_CHECK (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_SUPPORTING_WM_CHECK) (type :initform xcb:Atom:WINDOW))) ;; _NET_VIRTUAL_ROOTS (defclass xcb:ewmh:get-_NET_VIRTUAL_ROOTS (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_VIRTUAL_ROOTS) (type :initform xcb:Atom:WINDOW))) (defclass xcb:ewmh:get-_NET_VIRTUAL_ROOTS~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_VIRTUAL_ROOTS (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_VIRTUAL_ROOTS) (type :initform xcb:Atom:WINDOW))) ;; _NET_DESKTOP_LAYOUT ;; Orientations (defconst xcb:ewmh:_NET_WM_ORIENTATION_HORZ 0) (defconst xcb:ewmh:_NET_WM_ORIENTATION_VERT 1) ;; Starting corners (defconst xcb:ewmh:_NET_WM_TOPLEFT 0) (defconst xcb:ewmh:_NET_WM_TOPRIGHT 1) (defconst xcb:ewmh:_NET_WM_BOTTOMRIGHT 2) (defconst xcb:ewmh:_NET_WM_BOTTOMLEFT 3) ;; (defclass xcb:ewmh:-_NET_DESKTOP_LAYOUT (xcb:--struct) ((orientation :initarg :orientation :type xcb:-ignore) (columns :initarg :columns :type xcb:-ignore) (rows :initarg :rows :type xcb:-ignore) (starting-corner :initarg :starting-corner :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_DESKTOP_LAYOUT (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_DESKTOP_LAYOUT) (type :initform xcb:Atom:CARDINAL) (long-length :initform 4))) (defclass xcb:ewmh:get-_NET_DESKTOP_LAYOUT~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_DESKTOP_LAYOUT) nil) (defclass xcb:ewmh:set-_NET_DESKTOP_LAYOUT (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_DESKTOP_LAYOUT) ((property :initform xcb:Atom:_NET_DESKTOP_LAYOUT) (type :initform xcb:Atom:CARDINAL))) ;; _NET_SHOWING_DESKTOP (defclass xcb:ewmh:get-_NET_SHOWING_DESKTOP (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_SHOWING_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_SHOWING_DESKTOP~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_SHOWING_DESKTOP (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_SHOWING_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_SHOWING_DESKTOP (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_SHOWING_DESKTOP) (show :initarg :show :type xcb:CARD32))) ;;;; Other Root Window Messages ;; _NET_CLOSE_WINDOW (defclass xcb:ewmh:_NET_CLOSE_WINDOW (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_CLOSE_WINDOW) (timestamp :initarg :timestamp :type xcb:CARD32) (source-indication :initarg :source-indication :type xcb:CARD32))) ;; _NET_MOVERESIZE_WINDOW (defclass xcb:ewmh:_NET_MOVERESIZE_WINDOW (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_MOVERESIZE_WINDOW) (gravity-and-flags :initarg :gravity-and-flags :type xcb:CARD32) (x :initarg :x :type xcb:CARD32) (y :initarg :y :type xcb:CARD32) (width :initarg :width :type xcb:CARD32) (height :initarg :height :type xcb:CARD32))) ;; _NET_WM_MOVERESIZE (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOPLEFT 0) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOP 1) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_TOPRIGHT 2) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_RIGHT 3) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOM 5) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT 6) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_LEFT 7) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_MOVE 8) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_SIZE_KEYBOARD 9) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_MOVE_KEYBOARD 10) (defconst xcb:ewmh:_NET_WM_MOVERESIZE_CANCEL 11) ;; (defclass xcb:ewmh:_NET_WM_MOVERESIZE (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_WM_MOVERESIZE) (x-root :initarg :x-root :type xcb:CARD32) (y-root :initarg :y-root :type xcb:CARD32) (direction :initarg :direction :type xcb:CARD32) (button :initarg :button :type xcb:CARD32) (source-indication :initarg :source-indication :type xcb:CARD32))) ;; _NET_RESTACK_WINDOW (defclass xcb:ewmh:_NET_RESTACK_WINDOW (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_RESTACK_WINDOW) (source-indication :initarg :source-indication :type xcb:CARD32) (sibling :initarg :sibling :type xcb:WINDOW) (detail :initarg :detail :type xcb:CARD32))) ;; _NET_REQUEST_FRAME_EXTENTS (defclass xcb:ewmh:_NET_REQUEST_FRAME_EXTENTS (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_REQUEST_FRAME_EXTENTS))) ;;;; Application Window Properties ;; _NET_WM_NAME (defclass xcb:ewmh:get-_NET_WM_NAME (xcb:ewmh:-GetProperty-utf8) ((property :initform xcb:Atom:_NET_WM_NAME))) (defclass xcb:ewmh:get-_NET_WM_NAME~reply (xcb:ewmh:-GetProperty-utf8~reply) nil) (defclass xcb:ewmh:set-_NET_WM_NAME (xcb:ewmh:-ChangeProperty-utf8) ((property :initform xcb:Atom:_NET_WM_NAME))) ;; _NET_WM_VISIBLE_NAME (defclass xcb:ewmh:get-_NET_WM_VISIBLE_NAME (xcb:ewmh:-GetProperty-utf8) ((property :initform xcb:Atom:_NET_WM_VISIBLE_NAME))) (defclass xcb:ewmh:get-_NET_WM_VISIBLE_NAME~reply (xcb:ewmh:-GetProperty-utf8~reply) nil) (defclass xcb:ewmh:set-_NET_WM_VISIBLE_NAME (xcb:ewmh:-ChangeProperty-utf8) ((property :initform xcb:Atom:_NET_WM_VISIBLE_NAME))) ;; _NET_WM_ICON_NAME (defclass xcb:ewmh:get-_NET_WM_ICON_NAME (xcb:ewmh:-GetProperty-utf8) ((property :initform xcb:Atom:_NET_WM_ICON_NAME))) (defclass xcb:ewmh:get-_NET_WM_ICON_NAME~reply (xcb:ewmh:-GetProperty-utf8~reply) nil) (defclass xcb:ewmh:set-_NET_WM_ICON_NAME (xcb:ewmh:-ChangeProperty-utf8) ((property :initform xcb:Atom:_NET_WM_ICON_NAME))) ;; _NET_WM_VISIBLE_ICON_NAME (defclass xcb:ewmh:get-_NET_WM_VISIBLE_ICON_NAME (xcb:ewmh:-GetProperty-utf8) ((property :initform xcb:Atom:_NET_WM_VISIBLE_ICON_NAME))) (defclass xcb:ewmh:get-_NET_WM_VISIBLE_ICON_NAME~reply (xcb:ewmh:-GetProperty-utf8~reply) nil) (defclass xcb:ewmh:set-_NET_WM_VISIBLE_ICON_NAME (xcb:ewmh:-ChangeProperty-utf8) ((property :initform xcb:Atom:_NET_WM_VISIBLE_ICON_NAME))) ;; _NET_WM_DESKTOP (defclass xcb:ewmh:get-_NET_WM_DESKTOP (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_DESKTOP~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_DESKTOP (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_DESKTOP) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_WM_DESKTOP (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_WM_DESKTOP) (new-desktop :initarg :new-desktop :type xcb:CARD32) (source-indication :initarg :source-indication :type xcb:CARD32))) ;; _NET_WM_WINDOW_TYPE (defclass xcb:ewmh:get-_NET_WM_WINDOW_TYPE (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WM_WINDOW_TYPE) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:get-_NET_WM_WINDOW_TYPE~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_WM_WINDOW_TYPE (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WM_WINDOW_TYPE) (type :initform xcb:Atom:ATOM))) ;; _NET_WM_STATE (defconst xcb:ewmh:_NET_WM_STATE_REMOVE 0) (defconst xcb:ewmh:_NET_WM_STATE_ADD 1) (defconst xcb:ewmh:_NET_WM_STATE_TOGGLE 2) ;; (defclass xcb:ewmh:get-_NET_WM_STATE (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WM_STATE) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:get-_NET_WM_STATE~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_WM_STATE (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WM_STATE) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:_NET_WM_STATE (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:_NET_WM_STATE) (action :initarg :action :type xcb:CARD32) (first-property :initarg :first-property :type xcb:CARD32) (second-property :initarg :second-property :type xcb:CARD32) (source-indication :initarg :source-indication :type xcb:CARD32))) ;; _NET_WM_ALLOWED_ACTIONS (defclass xcb:ewmh:get-_NET_WM_ALLOWED_ACTIONS (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WM_ALLOWED_ACTIONS) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:get-_NET_WM_ALLOWED_ACTIONS~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_WM_ALLOWED_ACTIONS (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WM_ALLOWED_ACTIONS) (type :initform xcb:Atom:ATOM))) ;; _NET_WM_STRUT (defclass xcb:ewmh:-_NET_WM_STRUT (xcb:--struct) ((left :initarg :left :type xcb:-ignore) (right :initarg :right :type xcb:-ignore) (top :initarg :top :type xcb:-ignore) (bottom :initarg :bottom :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_WM_STRUT (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_WM_STRUT) (type :initform xcb:Atom:CARDINAL) (long-length :initform 4))) (defclass xcb:ewmh:get-_NET_WM_STRUT~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_STRUT) nil) (defclass xcb:ewmh:set-_NET_WM_STRUT (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_STRUT) ((property :initform xcb:Atom:_NET_WM_STRUT) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_STRUT_PARTIAL (defclass xcb:ewmh:-_NET_WM_STRUT_PARTIAL (xcb:--struct) ((left :initarg :left :type xcb:-ignore) (right :initarg :right :type xcb:-ignore) (top :initarg :top :type xcb:-ignore) (bottom :initarg :bottom :type xcb:-ignore) (left-start-y :initarg :left-start-y :type xcb:-ignore) (left-end-y :initarg :left-end-y :type xcb:-ignore) (right-start-y :initarg :right-start-y :type xcb:-ignore) (right-end-y :initarg :right-end-y :type xcb:-ignore) (top-start-x :initarg :top-start-x :type xcb:-ignore) (top-end-x :initarg :top-end-x :type xcb:-ignore) (bottom-start-x :initarg :bottom-start-x :type xcb:-ignore) (bottom-end-x :initarg :bottom-end-x :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_WM_STRUT_PARTIAL (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_WM_STRUT_PARTIAL) (type :initform xcb:Atom:CARDINAL) (long-length :initform 12))) (defclass xcb:ewmh:get-_NET_WM_STRUT_PARTIAL~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_STRUT_PARTIAL) nil) (defclass xcb:ewmh:set-_NET_WM_STRUT_PARTIAL (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_STRUT_PARTIAL) ((property :initform xcb:Atom:_NET_WM_STRUT_PARTIAL) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_ICON_GEOMETRY (defclass xcb:ewmh:-_NET_WM_ICON_GEOMETRY (xcb:--struct) ((x :initarg :x :type xcb:-ignore) (y :initarg :y :type xcb:-ignore) (width :initarg :width :type xcb:-ignore) (height :initarg :height :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_WM_ICON_GEOMETRY (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_WM_ICON_GEOMETRY) (type :initform xcb:Atom:CARDINAL) (long-length :initform 4))) (defclass xcb:ewmh:get-_NET_WM_ICON_GEOMETRY~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_ICON_GEOMETRY) nil) (defclass xcb:ewmh:set-_NET_WM_ICON_GEOMETRY (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_ICON_GEOMETRY) ((property :initform xcb:Atom:_NET_WM_ICON_GEOMETRY) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_ICON (defclass xcb:ewmh:-get-_NET_WM_ICON (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WM_ICON) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:-get-_NET_WM_ICON~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:-set-_NET_WM_ICON (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WM_ICON) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_PID (defclass xcb:ewmh:get-_NET_WM_PID (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_PID) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_PID~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_PID (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_PID) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_HANDLED_ICONS (defclass xcb:ewmh:get-_NET_WM_HANDLED_ICONS (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_HANDLED_ICONS) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_HANDLED_ICONS~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_HANDLED_ICONS (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_HANDLED_ICONS) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_USER_TIME (defclass xcb:ewmh:get-_NET_WM_USER_TIME (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_USER_TIME) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_USER_TIME~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_USER_TIME (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_USER_TIME) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_USER_TIME_WINDOW (defclass xcb:ewmh:get-_NET_WM_USER_TIME_WINDOW (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_USER_TIME_WINDOW) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_USER_TIME_WINDOW~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_USER_TIME_WINDOW (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_USER_TIME_WINDOW) (type :initform xcb:Atom:CARDINAL))) ;; _NET_FRAME_EXTENTS (defclass xcb:ewmh:-_NET_FRAME_EXTENTS (xcb:--struct) ((left :initarg :left :type xcb:-ignore) (right :initarg :right :type xcb:-ignore) (top :initarg :top :type xcb:-ignore) (bottom :initarg :bottom :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_FRAME_EXTENTS (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_FRAME_EXTENTS) (type :initform xcb:Atom:CARDINAL) (long-length :initform 4))) (defclass xcb:ewmh:get-_NET_FRAME_EXTENTS~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_FRAME_EXTENTS) nil) (defclass xcb:ewmh:set-_NET_FRAME_EXTENTS (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_FRAME_EXTENTS) ((property :initform xcb:Atom:_NET_FRAME_EXTENTS) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_OPAQUE_REGION (defclass xcb:ewmh:get-_NET_WM_OPAQUE_REGION (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:_NET_WM_OPAQUE_REGION) (type :initform xcb:Atom:ATOM))) (defclass xcb:ewmh:get-_NET_WM_OPAQUE_REGION~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:ewmh:set-_NET_WM_OPAQUE_REGION (xcb:icccm:-ChangeProperty) ((property :initform xcb:Atom:_NET_WM_OPAQUE_REGION) (type :initform xcb:Atom:ATOM))) ;; _NET_WM_BYPASS_COMPOSITOR (defclass xcb:ewmh:get-_NET_WM_BYPASS_COMPOSITOR (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_WM_BYPASS_COMPOSITOR) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:get-_NET_WM_BYPASS_COMPOSITOR~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:ewmh:set-_NET_WM_BYPASS_COMPOSITOR (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_WM_BYPASS_COMPOSITOR) (type :initform xcb:Atom:CARDINAL))) ;;;; Window Manager Protocols ;; _NET_WM_PING (defclass xcb:ewmh:_NET_WM_PING (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:WM_PROTOCOLS) (protocol :initform xcb:Atom:_NET_WM_PING :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:CARD32) (client-window :initarg :client-window :type xcb:WINDOW))) ;; _NET_WM_SYNC_REQUEST (defclass xcb:ewmh:_NET_WM_SYNC_REQUEST (xcb:ewmh:-ClientMessage) ((type :initform xcb:Atom:WM_PROTOCOLS) (protocol :initform xcb:Atom:_NET_WM_SYNC_REQUEST :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:CARD32) (low :initarg :low :type xcb:CARD32) (high :initarg :high :type xcb:CARD32))) ;; _NET_WM_SYNC_REQUEST_COUNTER (defclass xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER (xcb:--struct) ((low :initarg :low :type xcb:-ignore) (high :initarg :hight :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_WM_SYNC_REQUEST_COUNTER (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_WM_SYNC_REQUEST_COUNTER) (type :initform xcb:Atom:CARDINAL) (long-length :initform 2))) (defclass xcb:ewmh:get-_NET_WM_SYNC_REQUEST_COUNTER~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER) nil) (defclass xcb:ewmh:set-_NET_WM_SYNC_REQUEST_COUNTER (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER) ((property :initform xcb:Atom:_NET_WM_SYNC_REQUEST_COUNTER) (type :initform xcb:Atom:CARDINAL))) ;; _NET_WM_FULLSCREEN_MONITORS (defclass xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS (xcb:--struct) ((top :initarg :top :type xcb:-ignore) (bottom :initarg :bottom :type xcb:-ignore) (left :initarg :left :type xcb:-ignore) (right :initarg :right :type xcb:-ignore))) ;; (defclass xcb:ewmh:get-_NET_WM_FULLSCREEN_MONITORS (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_NET_WM_FULLSCREEN_MONITORS) (type :initform xcb:Atom:CARDINAL) (long-length :initform 4))) (defclass xcb:ewmh:get-_NET_WM_FULLSCREEN_MONITORS~reply (xcb:icccm:-GetProperty-explicit~reply xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS) nil) (defclass xcb:ewmh:set-_NET_WM_FULLSCREEN_MONITORS (xcb:icccm:-ChangeProperty-explicit xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS) ((property :initform xcb:Atom:_NET_WM_FULLSCREEN_MONITORS) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:ewmh:_NET_WM_FULLSCREEN_MONITORS (xcb:ewmh:-ClientMessage xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS) ((type :initform xcb:Atom:_NET_WM_FULLSCREEN_MONITORS))) ;;;; Other Properties ;;;; Misc. (defconst xcb:ewmh:source-indication:none 0) (defconst xcb:ewmh:source-indication:normal 1) (defconst xcb:ewmh:source-indication:other 2) (provide 'xcb-ewmh) ;;; xcb-ewmh.el ends here xelb-0.18/xcb-ge.el000066400000000000000000000033431353702660000140700ustar00rootroot00000000000000;;; xcb-ge.el --- X11 GenericEvent extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'ge.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:ge:-extension-xname "Generic Event Extension") (defconst xcb:ge:-extension-name "GenericEvent") (defconst xcb:ge:-major-version 1) (defconst xcb:ge:-minor-version 0) (defclass xcb:ge:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD16) (client-minor-version :initarg :client-minor-version :type xcb:CARD16))) (defclass xcb:ge:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16) (pad~1 :initform 20 :type xcb:-pad))) (provide 'xcb-ge) ;;; xcb-ge.el ends here xelb-0.18/xcb-glx.el000066400000000000000000001703271353702660000142760ustar00rootroot00000000000000;;; xcb-glx.el --- X11 Glx extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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:glx:float) (xcb:deftypealias 'xcb:glx:FLOAT64 'xcb:glx:double) (xcb:deftypealias 'xcb:glx:BOOL32 'xcb:CARD32) (xcb:deftypealias 'xcb:glx:CONTEXT_TAG 'xcb:CARD32) (defclass xcb:glx:Generic (xcb:-error) ((~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) (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) (glx-extension-string~ :initform '(name glx-extension-string type xcb:char size (xcb:-fieldref 'glx-str-len)) :type xcb:-list) (glx-extension-string :initarg :glx-extension-string :type xcb:-ignore))) (defclass xcb:glx:NewList (xcb:-request) ((~opcode :initform 101 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (list :initarg :list :type xcb:CARD32) (mode :initarg :mode :type xcb:CARD32))) (defclass xcb:glx:EndList (xcb:-request) ((~opcode :initform 102 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG))) (defclass xcb:glx:DeleteLists (xcb:-request) ((~opcode :initform 103 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (list :initarg :list :type xcb:CARD32) (range :initarg :range :type xcb:INT32))) (defclass xcb:glx:GenLists (xcb:-request) ((~opcode :initform 104 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (range :initarg :range :type xcb:INT32))) (defclass xcb:glx:GenLists~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:CARD32))) (defclass xcb:glx:FeedbackBuffer (xcb:-request) ((~opcode :initform 105 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (size :initarg :size :type xcb:INT32) (type :initarg :type :type xcb:INT32))) (defclass xcb:glx:SelectBuffer (xcb:-request) ((~opcode :initform 106 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (size :initarg :size :type xcb:INT32))) (defclass xcb:glx:RenderMode (xcb:-request) ((~opcode :initform 107 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (mode :initarg :mode :type xcb:CARD32))) (defclass xcb:glx:RenderMode~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:CARD32) (n :initarg :n :type xcb:CARD32) (new-mode :initarg :new-mode :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defconst xcb:glx:RM:GL_RENDER 7168) (defconst xcb:glx:RM:GL_FEEDBACK 7169) (defconst xcb:glx:RM:GL_SELECT 7170) (defclass xcb:glx:Finish (xcb:-request) ((~opcode :initform 108 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG))) (defclass xcb:glx:Finish~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:glx:PixelStoref (xcb:-request) ((~opcode :initform 109 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32))) (defclass xcb:glx:PixelStorei (xcb:-request) ((~opcode :initform 110 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32))) (defclass xcb:glx:ReadPixels (xcb:-request) ((~opcode :initform 111 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (x :initarg :x :type xcb:INT32) (y :initarg :y :type xcb:INT32) (width :initarg :width :type xcb:INT32) (height :initarg :height :type xcb:INT32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL) (lsb-first :initarg :lsb-first :type xcb:BOOL))) (defclass xcb:glx:ReadPixels~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetBooleanv (xcb:-request) ((~opcode :initform 112 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:INT32))) (defclass xcb:glx:GetBooleanv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:BOOL) (pad~2 :initform 15 :type xcb:-pad) (data~ :initform '(name data type xcb:BOOL size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetClipPlane (xcb:-request) ((~opcode :initform 113 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (plane :initarg :plane :type xcb:INT32))) (defclass xcb:glx:GetClipPlane~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 1 :type xcb:-pad) (pad~2 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT64 size (/ (xcb:-fieldref 'length) 2)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetDoublev (xcb:-request) ((~opcode :initform 114 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetDoublev~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 1 :type xcb:-pad) (pad~2 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT64) (pad~3 :initform 8 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT64 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetError (xcb:-request) ((~opcode :initform 115 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG))) (defclass xcb:glx:GetError~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (error :initarg :error :type xcb:INT32))) (defclass xcb:glx:GetFloatv (xcb:-request) ((~opcode :initform 116 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetFloatv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetIntegerv (xcb:-request) ((~opcode :initform 117 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetIntegerv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetLightfv (xcb:-request) ((~opcode :initform 118 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (light :initarg :light :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetLightfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetLightiv (xcb:-request) ((~opcode :initform 119 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (light :initarg :light :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetLightiv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMapdv (xcb:-request) ((~opcode :initform 120 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (query :initarg :query :type xcb:CARD32))) (defclass xcb:glx:GetMapdv~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 1 :type xcb:-pad) (pad~2 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT64) (pad~3 :initform 8 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT64 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMapfv (xcb:-request) ((~opcode :initform 121 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (query :initarg :query :type xcb:CARD32))) (defclass xcb:glx:GetMapfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMapiv (xcb:-request) ((~opcode :initform 122 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (query :initarg :query :type xcb:CARD32))) (defclass xcb:glx:GetMapiv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMaterialfv (xcb:-request) ((~opcode :initform 123 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (face :initarg :face :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetMaterialfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMaterialiv (xcb:-request) ((~opcode :initform 124 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (face :initarg :face :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetMaterialiv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetPixelMapfv (xcb:-request) ((~opcode :initform 125 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (map :initarg :map :type xcb:CARD32))) (defclass xcb:glx:GetPixelMapfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetPixelMapuiv (xcb:-request) ((~opcode :initform 126 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (map :initarg :map :type xcb:CARD32))) (defclass xcb:glx:GetPixelMapuiv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:CARD32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetPixelMapusv (xcb:-request) ((~opcode :initform 127 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (map :initarg :map :type xcb:CARD32))) (defclass xcb:glx:GetPixelMapusv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:CARD16) (pad~2 :initform 16 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD16 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetPolygonStipple (xcb:-request) ((~opcode :initform 128 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (lsb-first :initarg :lsb-first :type xcb:BOOL))) (defclass xcb:glx:GetPolygonStipple~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetString (xcb:-request) ((~opcode :initform 129 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (name :initarg :name :type xcb:CARD32))) (defclass xcb:glx:GetString~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (pad~2 :initform 16 :type xcb:-pad) (string~ :initform '(name string type xcb:char size (xcb:-fieldref 'n)) :type xcb:-list) (string :initarg :string :type xcb:-ignore))) (defclass xcb:glx:GetTexEnvfv (xcb:-request) ((~opcode :initform 130 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexEnvfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexEnviv (xcb:-request) ((~opcode :initform 131 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexEnviv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexGendv (xcb:-request) ((~opcode :initform 132 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (coord :initarg :coord :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexGendv~reply (xcb:-reply) ((pad~0 :initform 8 :type xcb:-pad-align) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 1 :type xcb:-pad) (pad~2 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT64) (pad~3 :initform 8 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT64 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexGenfv (xcb:-request) ((~opcode :initform 133 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (coord :initarg :coord :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexGenfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexGeniv (xcb:-request) ((~opcode :initform 134 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (coord :initarg :coord :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexGeniv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexImage (xcb:-request) ((~opcode :initform 135 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (level :initarg :level :type xcb:INT32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL))) (defclass xcb:glx:GetTexImage~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (width :initarg :width :type xcb:INT32) (height :initarg :height :type xcb:INT32) (depth :initarg :depth :type xcb:INT32) (pad~2 :initform 4 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexParameterfv (xcb:-request) ((~opcode :initform 136 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexParameteriv (xcb:-request) ((~opcode :initform 137 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexLevelParameterfv (xcb:-request) ((~opcode :initform 138 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (level :initarg :level :type xcb:INT32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexLevelParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetTexLevelParameteriv (xcb:-request) ((~opcode :initform 139 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (level :initarg :level :type xcb:INT32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetTexLevelParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:IsEnabled (xcb:-request) ((~opcode :initform 140 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (capability :initarg :capability :type xcb:CARD32))) (defclass xcb:glx:IsEnabled~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:glx:BOOL32))) (defclass xcb:glx:IsList (xcb:-request) ((~opcode :initform 141 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (list :initarg :list :type xcb:CARD32))) (defclass xcb:glx:IsList~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:glx:BOOL32))) (defclass xcb:glx:Flush (xcb:-request) ((~opcode :initform 142 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG))) (defclass xcb:glx:AreTexturesResident (xcb:-request) ((~opcode :initform 143 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (n :initarg :n :type xcb:INT32) (textures~ :initform '(name textures type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (textures :initarg :textures :type xcb:-ignore))) (defclass xcb:glx:AreTexturesResident~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:glx:BOOL32) (pad~1 :initform 20 :type xcb:-pad) (data~ :initform '(name data type xcb:BOOL size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:DeleteTextures (xcb:-request) ((~opcode :initform 144 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (n :initarg :n :type xcb:INT32) (textures~ :initform '(name textures type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (textures :initarg :textures :type xcb:-ignore))) (defclass xcb:glx:GenTextures (xcb:-request) ((~opcode :initform 145 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (n :initarg :n :type xcb:INT32))) (defclass xcb:glx:GenTextures~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD32 size (xcb:-fieldref 'length)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:IsTexture (xcb:-request) ((~opcode :initform 146 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (texture :initarg :texture :type xcb:CARD32))) (defclass xcb:glx:IsTexture~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:glx:BOOL32))) (defclass xcb:glx:GetColorTable (xcb:-request) ((~opcode :initform 147 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL))) (defclass xcb:glx:GetColorTable~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (width :initarg :width :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetColorTableParameterfv (xcb:-request) ((~opcode :initform 148 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetColorTableParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetColorTableParameteriv (xcb:-request) ((~opcode :initform 149 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetColorTableParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetConvolutionFilter (xcb:-request) ((~opcode :initform 150 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL))) (defclass xcb:glx:GetConvolutionFilter~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (width :initarg :width :type xcb:INT32) (height :initarg :height :type xcb:INT32) (pad~2 :initform 8 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetConvolutionParameterfv (xcb:-request) ((~opcode :initform 151 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetConvolutionParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetConvolutionParameteriv (xcb:-request) ((~opcode :initform 152 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetConvolutionParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetSeparableFilter (xcb:-request) ((~opcode :initform 153 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL))) (defclass xcb:glx:GetSeparableFilter~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (row-w :initarg :row-w :type xcb:INT32) (col-h :initarg :col-h :type xcb:INT32) (pad~2 :initform 8 :type xcb:-pad) (rows-and-cols~ :initform '(name rows-and-cols type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (rows-and-cols :initarg :rows-and-cols :type xcb:-ignore))) (defclass xcb:glx:GetHistogram (xcb:-request) ((~opcode :initform 154 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL) (reset :initarg :reset :type xcb:BOOL))) (defclass xcb:glx:GetHistogram~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (width :initarg :width :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetHistogramParameterfv (xcb:-request) ((~opcode :initform 155 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetHistogramParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetHistogramParameteriv (xcb:-request) ((~opcode :initform 156 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetHistogramParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMinmax (xcb:-request) ((~opcode :initform 157 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (format :initarg :format :type xcb:CARD32) (type :initarg :type :type xcb:CARD32) (swap-bytes :initarg :swap-bytes :type xcb:BOOL) (reset :initarg :reset :type xcb:BOOL))) (defclass xcb:glx:GetMinmax~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMinmaxParameterfv (xcb:-request) ((~opcode :initform 158 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetMinmaxParameterfv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:glx:FLOAT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:glx:FLOAT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetMinmaxParameteriv (xcb:-request) ((~opcode :initform 159 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetMinmaxParameteriv~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetCompressedTexImageARB (xcb:-request) ((~opcode :initform 160 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (level :initarg :level :type xcb:INT32))) (defclass xcb:glx:GetCompressedTexImageARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (size :initarg :size :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:DeleteQueriesARB (xcb:-request) ((~opcode :initform 161 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (n :initarg :n :type xcb:INT32) (ids~ :initform '(name ids type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (ids :initarg :ids :type xcb:-ignore))) (defclass xcb:glx:GenQueriesARB (xcb:-request) ((~opcode :initform 162 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (n :initarg :n :type xcb:INT32))) (defclass xcb:glx:GenQueriesARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD32 size (xcb:-fieldref 'length)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:IsQueryARB (xcb:-request) ((~opcode :initform 163 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (id :initarg :id :type xcb:CARD32))) (defclass xcb:glx:IsQueryARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ret-val :initarg :ret-val :type xcb:glx:BOOL32))) (defclass xcb:glx:GetQueryivARB (xcb:-request) ((~opcode :initform 164 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (target :initarg :target :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetQueryivARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetQueryObjectivARB (xcb:-request) ((~opcode :initform 165 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (id :initarg :id :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetQueryObjectivARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:INT32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:INT32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:glx:GetQueryObjectuivARB (xcb:-request) ((~opcode :initform 166 :type xcb:-u1) (context-tag :initarg :context-tag :type xcb:glx:CONTEXT_TAG) (id :initarg :id :type xcb:CARD32) (pname :initarg :pname :type xcb:CARD32))) (defclass xcb:glx:GetQueryObjectuivARB~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (n :initarg :n :type xcb:CARD32) (datum :initarg :datum :type xcb:CARD32) (pad~2 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:CARD32 size (xcb:-fieldref 'n)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defconst xcb:glx:error-number-class-alist '((-1 . xcb:glx:Generic) (0 . xcb:glx:BadContext) (1 . xcb:glx:BadContextState) (2 . xcb:glx:BadDrawable) (3 . xcb:glx:BadPixmap) (4 . xcb:glx:BadContextTag) (5 . xcb:glx:BadCurrentWindow) (6 . xcb:glx:BadRenderRequest) (7 . xcb:glx:BadLargeRequest) (8 . xcb:glx:UnsupportedPrivateRequest) (9 . xcb:glx:BadFBConfig) (10 . xcb:glx:BadPbuffer) (11 . xcb:glx:BadCurrentDrawable) (12 . xcb:glx:BadWindow) (13 . xcb:glx:GLXBadProfileARB)) "(error-number . error-class) alist.") (defconst xcb:glx:event-number-class-alist '((0 . xcb:glx:PbufferClobber) (1 . xcb:glx:BufferSwapComplete)) "(event-number . event-class) alist.") (provide 'xcb-glx) ;;; xcb-glx.el ends here xelb-0.18/xcb-icccm.el000066400000000000000000000535511353702660000145610ustar00rootroot00000000000000;;; xcb-icccm.el --- Inter-Client Communication -*- lexical-binding: t -*- ;;; Conventions Manual ;; Copyright (C) 2015-2019 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:WM_DELETE_WINDOW (xcb:icccm:-ClientMessage) ((protocol :initform xcb:Atom:WM_DELETE_WINDOW) (time :initform xcb:Time:CurrentTime)) :documentation "Delete a window using the WM_DELETE_WINDOW client message.") (defclass xcb:icccm:WM_TAKE_FOCUS (xcb:icccm:-ClientMessage) ((protocol :initform xcb:Atom:WM_TAKE_FOCUS)) :documentation "Set a focus using the WM_TAKE_FOCUS client message. A valid timestamp (rather than `xcb:Time:CurrentTime') must be supplied.") ;;;; Abstract classes for getting/changing (plain) list properties (defclass xcb:icccm:-GetProperty (xcb:GetProperty) ((delete :initform 0) (long-offset :initform 0) (long-length :initform 1000000000.)) ;as long as possible :documentation "Get an ICCCM property (request part).") (defclass xcb:icccm:-GetProperty~reply (xcb:GetProperty~reply) nil :documentation "Get an ICCCM property (reply part).") ;; (cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty~reply) byte-array) "Fill in the fields in the reply of ICCCM GetProperty request OBJ according to BYTE-ARRAY. This method automatically format the value as 8, 16 or 32 bits array." (let ((retval (cl-call-next-method obj byte-array)) tmp) (with-slots (~lsb length format value-len value) obj (if (or (= 0 value-len) (= 0 length)) (setf value nil) ;no available value (setq tmp value ;long-offset is always 0 value nil) (pcase format (8 (cl-assert (= value-len (length tmp))) (setf value tmp)) (16 (cl-assert (= (* 2 value-len) (length tmp))) (if ~lsb (dotimes (_ value-len) (setf value (vconcat value (vector (xcb:-unpack-u2-lsb tmp 0)))) (setq tmp (substring tmp 2))) (dotimes (_ value-len) (setf value (vconcat value (vector (xcb:-unpack-u2 tmp 0)))) (setq tmp (substring tmp 2))))) (32 (cl-assert (= (* 4 value-len) (length tmp))) (if ~lsb (dotimes (_ value-len) (setf value (vconcat value (vector (xcb:-unpack-u4-lsb tmp 0)))) (setq tmp (substring tmp 4))) (dotimes (_ value-len) (setf value (vconcat value (vector (xcb:-unpack-u4 tmp 0)))) (setq tmp (substring tmp 4))))) (_ (cl-assert nil))))) retval)) (defclass xcb:icccm:-ChangeProperty (xcb:ChangeProperty) ((mode :initform xcb:PropMode:Replace) (format :initform 32) (data :initform nil)) :documentation "Change an ICCCM property.") ;; (cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty)) "Return the byte-array representation of an ICCCM ChangeProperty request. This method automatically sets the data length." (with-slots (~lsb format data-len data) obj (setf data-len (length data)) (setf data (pcase format (8 data) (16 (mapconcat (lambda (i) (if ~lsb (xcb:-pack-u2-lsb i) (xcb:-pack-u2 i))) data [])) (32 (mapconcat (lambda (i) (if ~lsb (xcb:-pack-u4-lsb i) (xcb:-pack-u4 i))) data [])) (_ (cl-assert nil))))) (cl-call-next-method obj)) ;;;; Abstract classes for getting/changing text properties (defclass xcb:icccm:-GetProperty-text (xcb:icccm:-GetProperty) ((type :initform xcb:GetPropertyType:Any)) :documentation "Get an ICCCM text property (request part).") (defclass xcb:icccm:-GetProperty-text~reply (xcb:icccm:-GetProperty~reply) nil :documentation "Get an ICCCM text property (reply part).") ;; (cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-text~reply) byte-array) "Fill in the fields in the reply of ICCCM GetProperty (text) request OBJ according to BYTE-ARRAY. This method automatically decodes the value (as string)." (let* ((retval (cl-call-next-method obj byte-array))) (with-slots (format type value) obj (when (symbolp type) (setq type (symbol-value type))) (when (and value (= format 8)) (setf value (decode-coding-string (apply #'unibyte-string (append value nil)) (cond ((= type xcb:Atom:UTF8_STRING) 'utf-8) ((= type xcb:Atom:STRING) 'iso-latin-1) ((= type xcb:Atom:COMPOUND_TEXT) 'compound-text-with-extensions) ((or (eq type xcb:Atom:TEXT) (eq type xcb:Atom:C_STRING)) 'no-conversion) (t (error "[XELB:ICCCM] Unsupported encoding: %d" type))))))) retval)) (defclass xcb:icccm:-ChangeProperty-text (xcb:icccm:-ChangeProperty) ((type :initform xcb:Atom:STRING) ;may be changed (format :initform 8)) :documentation "Change an ICCCM text property.") ;; (cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-text)) "Return the byte-array representation of an ICCCM ChangeProperty (text) request OBJ. This method automatically encodes the data (which is a string)." (with-slots (type data) obj (when (symbolp type) (setq type (symbol-value type))) (setf data (vconcat (encode-coding-string data (cond ((= type xcb:Atom:UTF8_STRING) 'utf-8) ((= type xcb:Atom:STRING) 'iso-latin-1) ((= type xcb:Atom:COMPOUND_TEXT) 'compound-text-with-extensions) ((or (eq type xcb:Atom:TEXT) (eq type xcb:Atom:C_STRING)) 'no-conversion) (t (error "[XELB:ICCCM] Unsupported encoding: %d" type))))))) (cl-call-next-method obj)) ;;;; Abstract classes for getting/changing single field properties (defclass xcb:icccm:-GetProperty-single (xcb:icccm:-GetProperty) nil :documentation "Get an ICCCM single-valued property (request part).") (defclass xcb:icccm:-GetProperty-single~reply (xcb:icccm:-GetProperty~reply) nil :documentation "Get a single-valued ICCCM property (reply part).") ;; (cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-single~reply) byte-array) "Fill in the fields in the reply of an ICCCM GetProperty (single-valued) request OBJ according to BYTE-ARRAY." (let ((retval (cl-call-next-method obj byte-array))) (with-slots (value) obj (when value (cl-assert (= 1 (length value))) (setf value (elt value 0)))) retval)) (defclass xcb:icccm:-ChangeProperty-single (xcb:icccm:-ChangeProperty) nil :documentation "Change a single-valued ICCCM property.") ;; (cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-single)) "Return the byte-array representation of a single-valued ICCCM ChangeProperty request OBJ." (with-slots (data) obj (setf data `[,data])) (cl-call-next-method obj)) ;;;; Abstract classes for getting/changing property with explicit fields (defclass xcb:icccm:-GetProperty-explicit (xcb:icccm:-GetProperty) nil :documentation "Get an ICCCM property whose fields are explicitly listed out (request part).") (defclass xcb:icccm:-GetProperty-explicit~reply (xcb:icccm:-GetProperty~reply) nil :documentation "Get an ICCCM property whose fields are explicitly listed out (reply part).") ;; (cl-defmethod xcb:unmarshal ((obj xcb:icccm:-GetProperty-explicit~reply) byte-array) "Fill in the reply of an ICCCM GetProperty request whose fields are explicitly listed out." (let* ((retval (cl-call-next-method obj byte-array)) (slots-orig (eieio-class-slots 'xcb:icccm:-GetProperty~reply)) (slots (eieio-class-slots (eieio-object-class obj))) (slots (nthcdr (length slots-orig) slots)) (value (slot-value obj 'value))) (unless value (setq value (make-vector (length slots) nil))) ;fallback ;; Set explicit fields from value field (dotimes (i (length value)) (setf (slot-value obj (eieio-slot-descriptor-name (elt slots i))) (elt value i))) retval)) (defclass xcb:icccm:-ChangeProperty-explicit (xcb:icccm:-ChangeProperty) ((format :initform 32)) :documentation "Change an ICCCM property whose fields are explicitly listed out.") ;; (cl-defmethod xcb:marshal ((obj xcb:icccm:-ChangeProperty-explicit)) "Return the byte-array representation of an ICCCM ChangeProperty request whose fields are explicitly listed out." (let* ((slots-orig (eieio-class-slots 'xcb:icccm:-ChangeProperty)) (slots (eieio-class-slots (eieio-object-class obj))) (slots (nthcdr (length slots-orig) slots))) ;; Set data field from explicit fields (setf (slot-value obj 'data) (mapconcat (lambda (slot) (list (slot-value obj (eieio-slot-descriptor-name slot)))) slots [])) (cl-call-next-method obj))) ;;;; Client Properties ;; WM_NAME (defclass xcb:icccm:get-WM_NAME (xcb:icccm:-GetProperty-text) ((property :initform xcb:Atom:WM_NAME))) (defclass xcb:icccm:get-WM_NAME~reply (xcb:icccm:-GetProperty-text~reply) nil) (defclass xcb:icccm:set-WM_NAME (xcb:icccm:-ChangeProperty-text) ((property :initform xcb:Atom:WM_NAME))) ;; WM_ICON_NAME (defclass xcb:icccm:get-WM_ICON_NAME (xcb:icccm:-GetProperty-text) ((property :initform xcb:Atom:WM_ICON_NAME))) (defclass xcb:icccm:get-WM_ICON_NAME~reply (xcb:icccm:-GetProperty-text~reply) nil) (defclass xcb:icccm:set-WM_ICON_NAME (xcb:icccm:-ChangeProperty-text) ((property :initform xcb:Atom:WM_ICON_NAME))) ;; WM_SIZE_HINTS (defconst xcb:icccm:WM_SIZE_HINTS:USPosition 1) (defconst xcb:icccm:WM_SIZE_HINTS:USSize 2) (defconst xcb:icccm:WM_SIZE_HINTS:PPosition 4) (defconst xcb:icccm:WM_SIZE_HINTS:PSize 8) (defconst xcb:icccm:WM_SIZE_HINTS:PMinSize 16) (defconst xcb:icccm:WM_SIZE_HINTS:PMaxSize 32) (defconst xcb:icccm:WM_SIZE_HINTS:PResizeInc 64) (defconst xcb:icccm:WM_SIZE_HINTS:PAspect 128) (defconst xcb:icccm:WM_SIZE_HINTS:PBaseSize 256) (defconst xcb:icccm:WM_SIZE_HINTS:PWinGravity 512) ;; (defclass xcb:icccm:-WM_SIZE_HINTS (xcb:--struct) ((flags :initarg :flags :initform 0 :type xcb:-ignore) (x :initarg :x :initform 0 :type xcb:-ignore) (y :initarg :y :initform 0 :type xcb:-ignore) (width :initarg :width :initform 0 :type xcb:-ignore) (height :initarg :height :initform 0 :type xcb:-ignore) (min-width :initarg :min-width :initform 0 :type xcb:-ignore) (min-height :initarg :min-height :initform 0 :type xcb:-ignore) (max-width :initarg :max-width :initform 0 :type xcb:-ignore) (max-height :initarg :max-height :initform 0 :type xcb:-ignore) (width-inc :initarg :width-inc :initform 0 :type xcb:-ignore) (height-inc :initarg :height-inc :initform 0 :type xcb:-ignore) (min-aspect-num :initarg :min-aspect-num :initform 0 :type xcb:-ignore) (min-aspect-den :initarg :min-aspect-den :initform 0 :type xcb:-ignore) (max-aspect-num :initarg :max-aspect-num :initform 0 :type xcb:-ignore) (max-aspect-den :initarg :max-aspect-den :initform 0 :type xcb:-ignore) (base-width :initarg :base-width :initform 0 :type xcb:-ignore) (base-height :initarg :base-height :initform 0 :type xcb:-ignore) (win-gravity :initarg :win-gravity :initform 0 :type xcb:-ignore))) ;; (defclass xcb:icccm:get-WM_SIZE_HINTS (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:WM_SIZE_HINTS) (type :initform xcb:Atom:WM_SIZE_HINTS) (long-length :initform 18))) ;fixed (defclass xcb:icccm:get-WM_SIZE_HINTS~reply (xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_SIZE_HINTS) nil) (defclass xcb:icccm:set-WM_SIZE_HINTS (xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_SIZE_HINTS) ((property :initform xcb:Atom:WM_SIZE_HINTS) (type :initform xcb:Atom:WM_SIZE_HINTS))) ;; WM_NORMAL_HINTS (defclass xcb:icccm:get-WM_NORMAL_HINTS (xcb:icccm:get-WM_SIZE_HINTS) ((property :initform xcb:Atom:WM_NORMAL_HINTS))) (defclass xcb:icccm:get-WM_NORMAL_HINTS~reply (xcb:icccm:get-WM_SIZE_HINTS~reply) nil) (defclass xcb:icccm:set-WM_NORMAL_HINTS (xcb:icccm:set-WM_SIZE_HINTS) ((property :initform xcb:Atom:WM_NORMAL_HINTS))) ;; WM_HINTS (defconst xcb:icccm:WM_HINTS:InputHint 1) (defconst xcb:icccm:WM_HINTS:StateHint 2) (defconst xcb:icccm:WM_HINTS:IconPixmapHint 4) (defconst xcb:icccm:WM_HINTS:IconWindowHint 8) (defconst xcb:icccm:WM_HINTS:IconPositionHint 16) (defconst xcb:icccm:WM_HINTS:IconMaskHint 32) (defconst xcb:icccm:WM_HINTS:WindowGroupHint 64) (defconst xcb:icccm:WM_HINTS:MessageHint 128) (defconst xcb:icccm:WM_HINTS:UrgencyHint 256) ;; (defclass xcb:icccm:-WM_HINTS (xcb:--struct) ((flags :initarg :flags :initform 0 :type xcb:-ignore) (input :initarg :input :initform 0 :type xcb:-ignore) (initial-state :initarg :initial-state :initform 0 :type xcb:-ignore) (icon-pixmap :initarg :icon-pixmap :initform 0 :type xcb:-ignore) (icon-window :initarg :icon-window :initform 0 :type xcb:-ignore) (icon-x :initarg :icon-x :initform 0 :type xcb:-ignore) (icon-y :initarg :icon-y :initform 0 :type xcb:-ignore) (icon-mask :initarg :icon-mask :initform 0 :type xcb:-ignore) (window-group :initarg :window-group :initform 0 :type xcb:-ignore))) ;; (defclass xcb:icccm:get-WM_HINTS (xcb:icccm:-GetProperty-explicit) ;; (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:WM_HINTS) (type :initform xcb:Atom:WM_HINTS) (long-length :initform 9))) ;fixed (defclass xcb:icccm:get-WM_HINTS~reply (xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_HINTS) nil) (defclass xcb:icccm:set-WM_HINTS (xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_HINTS) ((property :initform xcb:Atom:WM_HINTS) (type :initform xcb:Atom:WM_HINTS))) ;; WM_CLASS (defclass xcb:icccm:get-WM_CLASS (xcb:icccm:-GetProperty-text) ((property :initform xcb:Atom:WM_CLASS) (type :initform xcb:Atom:STRING))) (defclass xcb:icccm:get-WM_CLASS~reply (xcb:icccm:-GetProperty-text~reply) ((instance-name :type xcb:-ignore) (class-name :type xcb:-ignore))) ;; (cl-defmethod xcb:unmarshal ((obj xcb:icccm:get-WM_CLASS~reply) byte-array) ;; Split value into instance & class names (let* ((retval (cl-call-next-method obj byte-array)) (tmp (slot-value obj 'value)) (tmp (if tmp (split-string tmp "\0" t) '(nil nil)))) (with-slots (instance-name class-name) obj (setf instance-name (car tmp) class-name (cadr tmp))) retval)) ;; (defclass xcb:icccm:set-WM_CLASS (xcb:icccm:-ChangeProperty-text) ((property :initform xcb:Atom:WM_CLASS) (type :initform xcb:Atom:STRING) (instance-name :initarg :instance-name :type xcb:-ignore) (class-name :initarg :class-name :type xcb:-ignore))) ;; (cl-defmethod xcb:marshal ((obj xcb:icccm:set-WM_CLASS)) (with-slots (data instance-name class-name) obj (setf data (concat instance-name "\0" class-name "\0"))) (cl-call-next-method obj)) ;; WM_TRANSIENT_FOR (defclass xcb:icccm:get-WM_TRANSIENT_FOR (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:WM_TRANSIENT_FOR) (type :initform xcb:Atom:WINDOW) (long-length :initform 1))) (defclass xcb:icccm:get-WM_TRANSIENT_FOR~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:icccm:set-WM_TRANSIENT_FOR (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:WM_TRANSIENT_FOR) (type :initform xcb:Atom:WINDOW))) ;; WM_PROTOCOLS (defclass xcb:icccm:get-WM_PROTOCOLS (xcb:icccm:-GetProperty) ((property :initform xcb:Atom:WM_PROTOCOLS) (type :initform xcb:Atom:ATOM))) (defclass xcb:icccm:get-WM_PROTOCOLS~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:icccm:set-WM_PROTOCOLS (xcb:icccm:-ChangeProperty) ((type :initform xcb:Atom:ATOM) (format :initform 32))) ;; WM_COLORMAP_WINDOWS (defclass xcb:icccm:get-WM_COLORMAP_WINDOWS (xcb:icccm:-GetProperty) ((type :initform xcb:Atom:WINDOW))) (defclass xcb:icccm:get-WM_COLORMAP_WINDOWS~reply (xcb:icccm:-GetProperty~reply) nil) (defclass xcb:icccm:set-WM_COLORMAP_WINDOWS (xcb:icccm:-ChangeProperty) ((type :initform xcb:Atom:WINDOW) (format :initform 32))) ;; WM_CLIENT_MACHINE (defclass xcb:icccm:get-WM_CLIENT_MACHINE (xcb:icccm:-GetProperty-text) ((property :initform xcb:Atom:WM_CLIENT_MACHINE))) (defclass xcb:icccm:get-WM_CLIENT_MACHINE~reply (xcb:icccm:-GetProperty-text~reply) nil) (defclass xcb:icccm:set-WM_CLIENT_MACHINE (xcb:icccm:-ChangeProperty-text) ((property :initform xcb:Atom:WM_CLIENT_MACHINE))) ;;;; Window Manager Properties ;; WM_STATE (defconst xcb:icccm:WM_STATE:WithdrawnState 0) (defconst xcb:icccm:WM_STATE:NormalState 1) (defconst xcb:icccm:WM_STATE:IconicState 3) ;; (defclass xcb:icccm:-WM_STATE (xcb:--struct) ((state :initarg :state :type xcb:-ignore) (icon :initarg :icon :type xcb:-ignore))) ;; (defclass xcb:icccm:get-WM_STATE (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:WM_STATE) (type :initform xcb:Atom:WM_STATE) (long-length :initform 2))) (defclass xcb:icccm:get-WM_STATE~reply (xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_STATE) nil) (defclass xcb:icccm:set-WM_STATE (xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_STATE) ((property :initform xcb:Atom:WM_STATE) (type :initform xcb:Atom:WM_STATE))) ;; WM_ICON_SIZE (defclass xcb:icccm:-WM_ICON_SIZE (xcb:--struct) ((min-width :initarg :min-width :type xcb:-ignore) (min-height :initarg :min-height :type xcb:-ignore) (max-width :initarg :max-width :type xcb:-ignore) (max-height :initarg :max-height :type xcb:-ignore) (width-inc :initarg :width-inc :type xcb:-ignore) (height-inc :initarg :height-inc :type xcb:-ignore))) ;; (defclass xcb:icccm:get-WM_ICON_SIZE (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:WM_ICON_SIZE) (type :initform xcb:Atom:WM_ICON_SIZE) (long-length :initform 6))) (defclass xcb:icccm:get-WM_ICON_SIZE~reply (xcb:icccm:-GetProperty-explicit~reply xcb:icccm:-WM_ICON_SIZE) nil) (defclass xcb:icccm:set-WM_ICON_SIZE (xcb:icccm:-ChangeProperty-explicit xcb:icccm:-WM_ICON_SIZE) ((property :initform xcb:Atom:WM_ICON_SIZE) (type :initform xcb:Atom:WM_ICON_SIZE))) (provide 'xcb-icccm) ;;; xcb-icccm.el ends here xelb-0.18/xcb-keysyms.el000066400000000000000000001125321353702660000152020ustar00rootroot00000000000000;;; xcb-keysyms.el --- Conversion between -*- lexical-binding: t -*- ;;; X keysyms, X keycodes and Emacs key event. ;; Copyright (C) 2015-2019 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: (eval-when-compile (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 '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 (lsh 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 (lsh 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 (lsh 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->keysym ((obj xcb:connection) event) (declare (obsolete nil "27")) (car (xcb:keysyms:event->keysyms obj event))) (cl-defmethod xcb:keysyms:event->keysyms ((obj xcb:connection) event) "Translate Emacs key event EVENT to list of (keysym . mod-mask). Return ((0 . 0)) when conversion fails." (let ((modifiers (event-modifiers event)) (event (event-basic-type event)) keysym) (if (not (integerp event)) (setq keysym (pcase event (`mouse-1 xcb:ButtonIndex:1) (`mouse-2 xcb:ButtonIndex:2) (`mouse-3 xcb:ButtonIndex:3) (`mouse-4 xcb:ButtonIndex:4) (`mouse-5 xcb:ButtonIndex:5) (_ (cond ((setq keysym (cl-position event xcb:keysyms:-function-keys)) ;; Function keys. (logior keysym #xff00)) ((setq keysym (cl-position event xcb:keysyms:-xf86-keys)) ;; XF86 keys. (logior keysym #x1008ff00)) ((setq keysym (cl-position event xcb:keysyms:-iso-function-keys)) ;; ISO function keys. (logior keysym #xfe00)) ((and (symbolp event) (= 1 (length (symbol-name event)))) ;; Symbol representations of ASCII characters. (aref (symbol-name event) 0)) (t ;; Finally try system-specific keysyms. (car (rassq event system-key-alist))))))) (setq keysym (cond ((<= #x20 event #xff) ;; Latin-1. event) ((<= #x100 event #x10ffff) ;; Unicode. (+ #x1000000 event)) (t (or ;; Try system-specific keysyms. (car (rassq event system-key-alist)) ;; Try legacy keysyms. (catch 'break (maphash (lambda (key val) (when (= event val) (throw 'break key))) x-keysym-table))))))) (if (not keysym) '((0 . 0)) (when modifiers ;; Do transforms: * -> x-*-keysym -> xcb:keysyms:*-mask. (setq modifiers (mapcar (lambda (i) (or (pcase i (`alt x-alt-keysym) (`meta x-meta-keysym) (`hyper x-hyper-keysym) (`super x-super-keysym)) i)) modifiers) modifiers (mapcar (lambda (i) (pcase i ((and x (pred integerp)) x) (`meta (when (= 0 xcb:keysyms:meta-mask) (setq keysym 0)) xcb:keysyms:meta-mask) (`control (when (= 0 xcb:keysyms:control-mask) (setq keysym 0)) xcb:keysyms:control-mask) (`shift (when (= 0 xcb:keysyms:shift-mask) (setq keysym 0)) xcb:keysyms:shift-mask) (`hyper (when (= 0 xcb:keysyms:hyper-mask) (setq keysym 0)) xcb:keysyms:hyper-mask) (`super (when (= 0 xcb:keysyms:super-mask) (setq keysym 0)) xcb:keysyms:super-mask) (`alt (when (= 0 xcb:keysyms:alt-mask) (setq keysym 0)) xcb:keysyms:alt-mask) (_ ;; Include but not limit to: down. 0))) modifiers) modifiers (apply #'logior modifiers))) (let ((keycode (xcb:keysyms:keysym->keycode obj keysym)) extra-modifiers) (when (/= 0 keycode) (setq extra-modifiers (xcb:keysyms:keycode->keysym obj keycode nil) ;; Always try without other modifier. extra-modifiers (append '(0) extra-modifiers) ;; Keep all modifiers helping convert keycode to this keysym. extra-modifiers (delq nil (mapcar (lambda (modifier) (when (= (car (xcb:keysyms:keycode->keysym obj keycode modifier)) keysym) modifier)) extra-modifiers)))) (mapcar (lambda (extra-modifier) (cons keysym (logior (or modifiers 0) extra-modifier))) extra-modifiers))))) (cl-defmethod xcb:keysyms:keysym->event ((_obj xcb:connection) keysym &optional mask allow-modifiers) "Translate X Keysym KEYSYM into Emacs key event. One may use MASK to provide modifier keys. If ALLOW-MODIFIERS is non-nil, this function will also return symbols for pure modifiers keys." ;; Convert nil to 0. (unless mask (setq mask 0)) (let ((event (cond ((<= #x20 keysym #xff) keysym) ((<= #xff00 keysym #xffff) (aref xcb:keysyms:-function-keys (logand keysym #xff))) ((<= #x1000100 keysym #x110ffff) (- keysym #x1000000)) ((<= 1 keysym 5) ;ButtonPress assuemd (intern-soft (format "down-mouse-%d" keysym))) ((<= #x1008ff00 keysym #x1008ffff) (aref xcb:keysyms:-xf86-keys (logand keysym #xff))) ((<= #xfe00 keysym #xfeff) (aref xcb:keysyms:-iso-function-keys (logand keysym #xff))) (t (or ;; Search system-specific keysyms. (car (assq keysym system-key-alist)) ;; Search `x-keysym-table' for legacy keysyms. (gethash keysym x-keysym-table))))) mod-alt mod-meta mod-hyper mod-super) (when event (if allow-modifiers (when (/= 0 mask) ;; Clear modifier bits for modifier keys. (pcase event ((or `lmeta* `rmeta*) (setq mask (logand mask (lognot xcb:keysyms:meta-mask)))) ((or `lcontrol* `rcontrol*) (setq mask (logand mask (lognot xcb:keysyms:control-mask)))) ((or `lshift* `rshift*) (setq mask (logand mask (lognot xcb:keysyms:shift-mask)))) ((or `lhyper* `rhyper*) (setq mask (logand mask (lognot xcb:keysyms:hyper-mask)))) ((or `lsuper* `rsuper*) (setq mask (logand mask (lognot xcb:keysyms:super-mask)))) ((or `lalt* `ralt*) (setq mask (logand mask (lognot xcb:keysyms:alt-mask)))))) (when (memq event '(lshift* rshift* lcontrol* rcontrol* caps-lock* shift-lock* lmeta* rmeta* lalt* ralt* lsuper* rsuper* lhyper* rhyper* mode-switch* kp-numlock)) (setq event nil)))) (when event (if (= 0 mask) event ;; Set mod-* if possible. (when x-alt-keysym (pcase x-alt-keysym (`meta (setq mod-meta 'alt)) (`hyper (setq mod-hyper 'alt)) (`super (setq mod-super 'alt)))) (when x-meta-keysym (pcase x-meta-keysym (`alt (setq mod-alt 'meta)) (`hyper (setq mod-hyper 'meta)) (`super (setq mod-super 'meta)))) (when x-hyper-keysym (pcase x-hyper-keysym (`alt (setq mod-alt 'hyper)) (`meta (setq mod-meta 'hyper)) (`super (setq mod-super 'hyper)))) (when x-super-keysym (pcase x-super-keysym (`alt (setq mod-alt 'super)) (`meta (setq mod-meta 'super)) (`hyper (setq mod-hyper 'super)))) ;; Convert modifiers. (setq event (list event)) (when (/= 0 (logand mask xcb:keysyms:meta-mask)) (push (or mod-meta 'meta) event)) (when (/= 0 (logand mask xcb:keysyms:control-mask)) (push 'control event)) (when (and (/= 0 (logand mask (logior xcb:keysyms:shift-mask xcb:keysyms:shift-lock-mask))) (or (not (<= #x20 keysym #xff)) ;Not a Latin-1 character (<= ?A keysym ?Z))) ;An uppercase letter (push 'shift event)) (when (/= 0 (logand mask xcb:keysyms:hyper-mask)) (push (or mod-hyper 'hyper) event)) (when (/= 0 (logand mask xcb:keysyms:super-mask)) (push (or mod-super 'super) event)) (when (/= 0 (logand mask xcb:keysyms:alt-mask)) (push (or mod-alt 'alt) event)) (event-convert-list event))))) (provide 'xcb-keysyms) ;;; xcb-keysyms.el ends here xelb-0.18/xcb-present.el000066400000000000000000000206661353702660000151640ustar00rootroot00000000000000;;; xcb-present.el --- X11 Present extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 2) (require 'xcb-xproto) (require 'xcb-randr) (require 'xcb-xfixes) (require 'xcb-sync) (defconst xcb:present:Event:ConfigureNotify 0) (defconst xcb:present:Event:CompleteNotify 1) (defconst xcb:present:Event:IdleNotify 2) (defconst xcb:present:Event:RedirectNotify 3) (defconst xcb:present:EventMask:NoEvent 0) (defconst xcb:present:EventMask:ConfigureNotify 1) (defconst xcb:present:EventMask:CompleteNotify 2) (defconst xcb:present:EventMask:IdleNotify 4) (defconst xcb:present:EventMask:RedirectNotify 8) (defconst xcb:present:Option:None 0) (defconst xcb:present:Option:Async 1) (defconst xcb:present:Option:Copy 2) (defconst xcb:present:Option:UST 4) (defconst xcb:present:Option:Suboptimal 8) (defconst xcb:present:Capability:None 0) (defconst xcb:present:Capability:Async 1) (defconst xcb:present:Capability:Fence 2) (defconst xcb:present:Capability:UST 4) (defconst xcb:present:CompleteKind:Pixmap 0) (defconst xcb:present:CompleteKind:NotifyMSC 1) (defconst xcb:present:CompleteMode:Copy 0) (defconst xcb:present:CompleteMode:Flip 1) (defconst xcb:present:CompleteMode:Skip 2) (defconst xcb:present:CompleteMode:SuboptimalCopy 3) (defclass xcb:present:Notify (xcb:-struct) ((window :initarg :window :type xcb:WINDOW) (serial :initarg :serial :type xcb:CARD32))) (defclass xcb:present:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:present:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:present:Pixmap (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (pad~0 :initform 8 :type xcb:-pad-align) (window :initarg :window :type xcb:WINDOW) (pixmap :initarg :pixmap :type xcb:PIXMAP) (serial :initarg :serial :type xcb:CARD32) (valid :initarg :valid :type xcb:xfixes:REGION) (update :initarg :update :type xcb:xfixes:REGION) (x-off :initarg :x-off :type xcb:INT16) (y-off :initarg :y-off :type xcb:INT16) (target-crtc :initarg :target-crtc :type xcb:randr:CRTC) (wait-fence :initarg :wait-fence :type xcb:sync:FENCE) (idle-fence :initarg :idle-fence :type xcb:sync:FENCE) (options :initarg :options :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (target-msc :initarg :target-msc :type xcb:CARD64) (divisor :initarg :divisor :type xcb:CARD64) (remainder :initarg :remainder :type xcb:CARD64) (notifies~ :initform '(name notifies type xcb:present:Notify size nil) :type xcb:-list) (notifies :initarg :notifies :type xcb:-ignore))) (defclass xcb:present:NotifyMSC (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (pad~0 :initform 8 :type xcb:-pad-align) (window :initarg :window :type xcb:WINDOW) (serial :initarg :serial :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (target-msc :initarg :target-msc :type xcb:CARD64) (divisor :initarg :divisor :type xcb:CARD64) (remainder :initarg :remainder :type xcb:CARD64))) (xcb:deftypealias 'xcb:present:EVENT 'xcb:-u4) (defclass xcb:present:SelectInput (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (eid :initarg :eid :type xcb:present:EVENT) (window :initarg :window :type xcb:WINDOW) (event-mask :initarg :event-mask :type xcb:CARD32))) (defclass xcb:present:QueryCapabilities (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (target :initarg :target :type xcb:CARD32))) (defclass xcb:present:QueryCapabilities~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (capabilities :initarg :capabilities :type xcb:CARD32))) (defclass xcb:present:Generic (xcb:-event) ((~code :initform 0) (extension :initarg :extension :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :initarg :length :type xcb:CARD32) (evtype :initarg :evtype :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (event :initarg :event :type xcb:present:EVENT))) (defclass xcb:present:ConfigureNotify (xcb:-generic-event) ((~evtype :initform 0) (pad~0 :initform 2 :type xcb:-pad) (event :initarg :event :type xcb:present:EVENT) (window :initarg :window :type xcb:WINDOW) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (off-x :initarg :off-x :type xcb:INT16) (off-y :initarg :off-y :type xcb:INT16) (pixmap-width :initarg :pixmap-width :type xcb:CARD16) (pixmap-height :initarg :pixmap-height :type xcb:CARD16) (pixmap-flags :initarg :pixmap-flags :type xcb:CARD32))) (defclass xcb:present:CompleteNotify (xcb:-generic-event) ((~evtype :initform 1) (pad~0 :initform 8 :type xcb:-pad-align) (kind :initarg :kind :type xcb:CARD8) (mode :initarg :mode :type xcb:CARD8) (event :initarg :event :type xcb:present:EVENT) (window :initarg :window :type xcb:WINDOW) (serial :initarg :serial :type xcb:CARD32) (ust :initarg :ust :type xcb:CARD64) (msc :initarg :msc :type xcb:CARD64))) (defclass xcb:present:IdleNotify (xcb:-generic-event) ((~evtype :initform 2) (pad~0 :initform 2 :type xcb:-pad) (event :initarg :event :type xcb:present:EVENT) (window :initarg :window :type xcb:WINDOW) (serial :initarg :serial :type xcb:CARD32) (pixmap :initarg :pixmap :type xcb:PIXMAP) (idle-fence :initarg :idle-fence :type xcb:sync:FENCE))) (defclass xcb:present:RedirectNotify (xcb:-generic-event) ((~evtype :initform 3) (pad~0 :initform 8 :type xcb:-pad-align) (update-window :initarg :update-window :type xcb:BOOL) (pad~1 :initform 1 :type xcb:-pad) (event :initarg :event :type xcb:present:EVENT) (event-window :initarg :event-window :type xcb:WINDOW) (window :initarg :window :type xcb:WINDOW) (pixmap :initarg :pixmap :type xcb:PIXMAP) (serial :initarg :serial :type xcb:CARD32) (valid-region :initarg :valid-region :type xcb:xfixes:REGION) (update-region :initarg :update-region :type xcb:xfixes:REGION) (valid-rect :initarg :valid-rect :type xcb:RECTANGLE) (update-rect :initarg :update-rect :type xcb:RECTANGLE) (x-off :initarg :x-off :type xcb:INT16) (y-off :initarg :y-off :type xcb:INT16) (target-crtc :initarg :target-crtc :type xcb:randr:CRTC) (wait-fence :initarg :wait-fence :type xcb:sync:FENCE) (idle-fence :initarg :idle-fence :type xcb:sync:FENCE) (options :initarg :options :type xcb:CARD32) (pad~2 :initform 4 :type xcb:-pad) (target-msc :initarg :target-msc :type xcb:CARD64) (divisor :initarg :divisor :type xcb:CARD64) (remainder :initarg :remainder :type xcb:CARD64) (notifies~ :initform '(name notifies type xcb:present:Notify size nil) :type xcb:-list) (notifies :initarg :notifies :type xcb:-ignore))) (defconst xcb:present:event-number-class-alist '((0 . xcb:present:Generic)) "(event-number . event-class) alist.") (defconst xcb:present:xge-number-class-alist '((0 . xcb:present:ConfigureNotify) (1 . xcb:present:CompleteNotify) (2 . xcb:present:IdleNotify) (3 . xcb:present:RedirectNotify)) "(xge-number . event-class) alist.") (provide 'xcb-present) ;;; xcb-present.el ends here xelb-0.18/xcb-randr.el000066400000000000000000001166521353702660000146130ustar00rootroot00000000000000;;; xcb-randr.el --- X11 RandR extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'randr.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:randr:-extension-xname "RANDR") (defconst xcb:randr:-extension-name "RandR") (defconst xcb:randr:-major-version 1) (defconst xcb:randr:-minor-version 6) (require 'xcb-xproto) (require 'xcb-render) (xcb:deftypealias 'xcb:randr:MODE 'xcb:-u4) (xcb:deftypealias 'xcb:randr:CRTC 'xcb:-u4) (xcb:deftypealias 'xcb:randr:OUTPUT 'xcb:-u4) (xcb:deftypealias 'xcb:randr:PROVIDER 'xcb:-u4) (xcb:deftypealias 'xcb:randr:LEASE 'xcb:-u4) (defclass xcb:randr:BadOutput (xcb:-error) ((~code :initform 0))) (defclass xcb:randr:BadCrtc (xcb:-error) ((~code :initform 1))) (defclass xcb:randr:BadMode (xcb:-error) ((~code :initform 2))) (defclass xcb:randr:BadProvider (xcb:-error) ((~code :initform 3))) (defconst xcb:randr:Rotation:Rotate_0 1) (defconst xcb:randr:Rotation:Rotate_90 2) (defconst xcb:randr:Rotation:Rotate_180 4) (defconst xcb:randr:Rotation:Rotate_270 8) (defconst xcb:randr:Rotation:Reflect_X 16) (defconst xcb:randr:Rotation:Reflect_Y 32) (defclass xcb:randr:ScreenSize (xcb:-struct) ((width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (mwidth :initarg :mwidth :type xcb:CARD16) (mheight :initarg :mheight :type xcb:CARD16))) (defclass xcb:randr:RefreshRates (xcb:-struct) ((nRates :initarg :nRates :type xcb:CARD16) (rates~ :initform '(name rates type xcb:CARD16 size (xcb:-fieldref 'nRates)) :type xcb:-list) (rates :initarg :rates :type xcb:-ignore))) (defclass xcb:randr:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32))) (defclass xcb:randr:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad))) (defconst xcb:randr:SetConfig:Success 0) (defconst xcb:randr:SetConfig:InvalidConfigTime 1) (defconst xcb:randr:SetConfig:InvalidTime 2) (defconst xcb:randr:SetConfig:Failed 3) (defclass xcb:randr:SetScreenConfig (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (sizeID :initarg :sizeID :type xcb:CARD16) (rotation :initarg :rotation :type xcb:CARD16) (rate :initarg :rate :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:randr:SetScreenConfig~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (new-timestamp :initarg :new-timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (root :initarg :root :type xcb:WINDOW) (subpixel-order :initarg :subpixel-order :type xcb:CARD16) (pad~0 :initform 10 :type xcb:-pad))) (defconst xcb:randr:NotifyMask:ScreenChange 1) (defconst xcb:randr:NotifyMask:CrtcChange 2) (defconst xcb:randr:NotifyMask:OutputChange 4) (defconst xcb:randr:NotifyMask:OutputProperty 8) (defconst xcb:randr:NotifyMask:ProviderChange 16) (defconst xcb:randr:NotifyMask:ProviderProperty 32) (defconst xcb:randr:NotifyMask:ResourceChange 64) (defconst xcb:randr:NotifyMask:Lease 128) (defclass xcb:randr:SelectInput (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (enable :initarg :enable :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:randr:GetScreenInfo (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetScreenInfo~reply (xcb:-reply) ((rotations :initarg :rotations :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (root :initarg :root :type xcb:WINDOW) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (nSizes :initarg :nSizes :type xcb:CARD16) (sizeID :initarg :sizeID :type xcb:CARD16) (rotation :initarg :rotation :type xcb:CARD16) (rate :initarg :rate :type xcb:CARD16) (nInfo :initarg :nInfo :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (sizes~ :initform '(name sizes type xcb:randr:ScreenSize size (xcb:-fieldref 'nSizes)) :type xcb:-list) (sizes :initarg :sizes :type xcb:-ignore) (rates~ :initform '(name rates type xcb:randr:RefreshRates size (- (xcb:-fieldref 'nInfo) (xcb:-fieldref 'nSizes))) :type xcb:-list) (rates :initarg :rates :type xcb:-ignore))) (defclass xcb:randr:GetScreenSizeRange (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetScreenSizeRange~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (min-width :initarg :min-width :type xcb:CARD16) (min-height :initarg :min-height :type xcb:CARD16) (max-width :initarg :max-width :type xcb:CARD16) (max-height :initarg :max-height :type xcb:CARD16) (pad~1 :initform 16 :type xcb:-pad))) (defclass xcb:randr:SetScreenSize (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (mm-width :initarg :mm-width :type xcb:CARD32) (mm-height :initarg :mm-height :type xcb:CARD32))) (defconst xcb:randr:ModeFlag:HsyncPositive 1) (defconst xcb:randr:ModeFlag:HsyncNegative 2) (defconst xcb:randr:ModeFlag:VsyncPositive 4) (defconst xcb:randr:ModeFlag:VsyncNegative 8) (defconst xcb:randr:ModeFlag:Interlace 16) (defconst xcb:randr:ModeFlag:DoubleScan 32) (defconst xcb:randr:ModeFlag:Csync 64) (defconst xcb:randr:ModeFlag:CsyncPositive 128) (defconst xcb:randr:ModeFlag:CsyncNegative 256) (defconst xcb:randr:ModeFlag:HskewPresent 512) (defconst xcb:randr:ModeFlag:Bcast 1024) (defconst xcb:randr:ModeFlag:PixelMultiplex 2048) (defconst xcb:randr:ModeFlag:DoubleClock 4096) (defconst xcb:randr:ModeFlag:HalveClock 8192) (defclass xcb:randr:ModeInfo (xcb:-struct) ((id :initarg :id :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (dot-clock :initarg :dot-clock :type xcb:CARD32) (hsync-start :initarg :hsync-start :type xcb:CARD16) (hsync-end :initarg :hsync-end :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vsync-start :initarg :vsync-start :type xcb:CARD16) (vsync-end :initarg :vsync-end :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (name-len :initarg :name-len :type xcb:CARD16) (mode-flags :initarg :mode-flags :type xcb:CARD32))) (defclass xcb:randr:GetScreenResources (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetScreenResources~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (num-crtcs :initarg :num-crtcs :type xcb:CARD16) (num-outputs :initarg :num-outputs :type xcb:CARD16) (num-modes :initarg :num-modes :type xcb:CARD16) (names-len :initarg :names-len :type xcb:CARD16) (pad~1 :initform 8 :type xcb:-pad) (crtcs~ :initform '(name crtcs type xcb:randr:CRTC size (xcb:-fieldref 'num-crtcs)) :type xcb:-list) (crtcs :initarg :crtcs :type xcb:-ignore) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'num-outputs)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore) (modes~ :initform '(name modes type xcb:randr:ModeInfo size (xcb:-fieldref 'num-modes)) :type xcb:-list) (modes :initarg :modes :type xcb:-ignore) (names~ :initform '(name names type xcb:BYTE size (xcb:-fieldref 'names-len)) :type xcb:-list) (names :initarg :names :type xcb:-ignore))) (defconst xcb:randr:Connection:Connected 0) (defconst xcb:randr:Connection:Disconnected 1) (defconst xcb:randr:Connection:Unknown 2) (defclass xcb:randr:GetOutputInfo (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:GetOutputInfo~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (crtc :initarg :crtc :type xcb:randr:CRTC) (mm-width :initarg :mm-width :type xcb:CARD32) (mm-height :initarg :mm-height :type xcb:CARD32) (connection :initarg :connection :type xcb:CARD8) (subpixel-order :initarg :subpixel-order :type xcb:CARD8) (num-crtcs :initarg :num-crtcs :type xcb:CARD16) (num-modes :initarg :num-modes :type xcb:CARD16) (num-preferred :initarg :num-preferred :type xcb:CARD16) (num-clones :initarg :num-clones :type xcb:CARD16) (name-len :initarg :name-len :type xcb:CARD16) (crtcs~ :initform '(name crtcs type xcb:randr:CRTC size (xcb:-fieldref 'num-crtcs)) :type xcb:-list) (crtcs :initarg :crtcs :type xcb:-ignore) (modes~ :initform '(name modes type xcb:randr:MODE size (xcb:-fieldref 'num-modes)) :type xcb:-list) (modes :initarg :modes :type xcb:-ignore) (clones~ :initform '(name clones type xcb:randr:OUTPUT size (xcb:-fieldref 'num-clones)) :type xcb:-list) (clones :initarg :clones :type xcb:-ignore) (name~ :initform '(name name type xcb:BYTE size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:randr:ListOutputProperties (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT))) (defclass xcb:randr:ListOutputProperties~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-atoms :initarg :num-atoms :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (atoms~ :initform '(name atoms type xcb:ATOM size (xcb:-fieldref 'num-atoms)) :type xcb:-list) (atoms :initarg :atoms :type xcb:-ignore))) (defclass xcb:randr:QueryOutputProperty (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (property :initarg :property :type xcb:ATOM))) (defclass xcb:randr:QueryOutputProperty~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pending :initarg :pending :type xcb:BOOL) (range :initarg :range :type xcb:BOOL) (immutable :initarg :immutable :type xcb:BOOL) (pad~1 :initform 21 :type xcb:-pad) (validValues~ :initform '(name validValues type xcb:INT32 size (xcb:-fieldref 'length)) :type xcb:-list) (validValues :initarg :validValues :type xcb:-ignore))) (defclass xcb:randr:ConfigureOutputProperty (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (property :initarg :property :type xcb:ATOM) (pending :initarg :pending :type xcb:BOOL) (range :initarg :range :type xcb:BOOL) (pad~0 :initform 2 :type xcb:-pad) (values~ :initform '(name values type xcb:INT32 size nil) :type xcb:-list) (values :initarg :values :type xcb:-ignore))) (defclass xcb:randr:ChangeOutputProperty (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (format :initarg :format :type xcb:CARD8) (mode :initarg :mode :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (num-units :initarg :num-units :type xcb:CARD32) (data~ :initform '(name data type xcb:void size (/ (* (xcb:-fieldref 'num-units) (xcb:-fieldref 'format)) 8)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:randr:DeleteOutputProperty (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (property :initarg :property :type xcb:ATOM))) (defclass xcb:randr:GetOutputProperty (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (long-offset :initarg :long-offset :type xcb:CARD32) (long-length :initarg :long-length :type xcb:CARD32) (delete :initarg :delete :type xcb:BOOL) (pending :initarg :pending :type xcb:BOOL) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:randr:GetOutputProperty~reply (xcb:-reply) ((format :initarg :format :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (type :initarg :type :type xcb:ATOM) (bytes-after :initarg :bytes-after :type xcb:CARD32) (num-items :initarg :num-items :type xcb:CARD32) (pad~0 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'num-items) (/ (xcb:-fieldref 'format) 8))) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:randr:CreateMode (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (mode-info :initarg :mode-info :type xcb:randr:ModeInfo) (name~ :initform '(name name type xcb:char size nil) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:randr:CreateMode~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (mode :initarg :mode :type xcb:randr:MODE) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:randr:DestroyMode (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (mode :initarg :mode :type xcb:randr:MODE))) (defclass xcb:randr:AddOutputMode (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (mode :initarg :mode :type xcb:randr:MODE))) (defclass xcb:randr:DeleteOutputMode (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (output :initarg :output :type xcb:randr:OUTPUT) (mode :initarg :mode :type xcb:randr:MODE))) (defclass xcb:randr:GetCrtcInfo (xcb:-request) ((~opcode :initform 20 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:GetCrtcInfo~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (mode :initarg :mode :type xcb:randr:MODE) (rotation :initarg :rotation :type xcb:CARD16) (rotations :initarg :rotations :type xcb:CARD16) (num-outputs :initarg :num-outputs :type xcb:CARD16) (num-possible-outputs :initarg :num-possible-outputs :type xcb:CARD16) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'num-outputs)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore) (possible~ :initform '(name possible type xcb:randr:OUTPUT size (xcb:-fieldref 'num-possible-outputs)) :type xcb:-list) (possible :initarg :possible :type xcb:-ignore))) (defclass xcb:randr:SetCrtcConfig (xcb:-request) ((~opcode :initform 21 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (mode :initarg :mode :type xcb:randr:MODE) (rotation :initarg :rotation :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size nil) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore))) (defclass xcb:randr:SetCrtcConfig~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (pad~0 :initform 20 :type xcb:-pad))) (defclass xcb:randr:GetCrtcGammaSize (xcb:-request) ((~opcode :initform 22 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC))) (defclass xcb:randr:GetCrtcGammaSize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (size :initarg :size :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad))) (defclass xcb:randr:GetCrtcGamma (xcb:-request) ((~opcode :initform 23 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC))) (defclass xcb:randr:GetCrtcGamma~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (size :initarg :size :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (red~ :initform '(name red type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (red :initarg :red :type xcb:-ignore) (green~ :initform '(name green type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (green :initarg :green :type xcb:-ignore) (blue~ :initform '(name blue type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (blue :initarg :blue :type xcb:-ignore))) (defclass xcb:randr:SetCrtcGamma (xcb:-request) ((~opcode :initform 24 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC) (size :initarg :size :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (red~ :initform '(name red type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (red :initarg :red :type xcb:-ignore) (green~ :initform '(name green type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (green :initarg :green :type xcb:-ignore) (blue~ :initform '(name blue type xcb:CARD16 size (xcb:-fieldref 'size)) :type xcb:-list) (blue :initarg :blue :type xcb:-ignore))) (defclass xcb:randr:GetScreenResourcesCurrent (xcb:-request) ((~opcode :initform 25 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetScreenResourcesCurrent~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (num-crtcs :initarg :num-crtcs :type xcb:CARD16) (num-outputs :initarg :num-outputs :type xcb:CARD16) (num-modes :initarg :num-modes :type xcb:CARD16) (names-len :initarg :names-len :type xcb:CARD16) (pad~1 :initform 8 :type xcb:-pad) (crtcs~ :initform '(name crtcs type xcb:randr:CRTC size (xcb:-fieldref 'num-crtcs)) :type xcb:-list) (crtcs :initarg :crtcs :type xcb:-ignore) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'num-outputs)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore) (modes~ :initform '(name modes type xcb:randr:ModeInfo size (xcb:-fieldref 'num-modes)) :type xcb:-list) (modes :initarg :modes :type xcb:-ignore) (names~ :initform '(name names type xcb:BYTE size (xcb:-fieldref 'names-len)) :type xcb:-list) (names :initarg :names :type xcb:-ignore))) (defconst xcb:randr:Transform:Unit 1) (defconst xcb:randr:Transform:ScaleUp 2) (defconst xcb:randr:Transform:ScaleDown 4) (defconst xcb:randr:Transform:Projective 8) (defclass xcb:randr:SetCrtcTransform (xcb:-request) ((~opcode :initform 26 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC) (transform :initarg :transform :type xcb:render:TRANSFORM) (filter-len :initarg :filter-len :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (filter-name~ :initform '(name filter-name type xcb:char size (xcb:-fieldref 'filter-len)) :type xcb:-list) (filter-name :initarg :filter-name :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align) (filter-params~ :initform '(name filter-params type xcb:render:FIXED size nil) :type xcb:-list) (filter-params :initarg :filter-params :type xcb:-ignore))) (defclass xcb:randr:GetCrtcTransform (xcb:-request) ((~opcode :initform 27 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC))) (defclass xcb:randr:GetCrtcTransform~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pending-transform :initarg :pending-transform :type xcb:render:TRANSFORM) (has-transforms :initarg :has-transforms :type xcb:BOOL) (pad~1 :initform 3 :type xcb:-pad) (current-transform :initarg :current-transform :type xcb:render:TRANSFORM) (pad~2 :initform 4 :type xcb:-pad) (pending-len :initarg :pending-len :type xcb:CARD16) (pending-nparams :initarg :pending-nparams :type xcb:CARD16) (current-len :initarg :current-len :type xcb:CARD16) (current-nparams :initarg :current-nparams :type xcb:CARD16) (pending-filter-name~ :initform '(name pending-filter-name type xcb:char size (xcb:-fieldref 'pending-len)) :type xcb:-list) (pending-filter-name :initarg :pending-filter-name :type xcb:-ignore) (pad~3 :initform 4 :type xcb:-pad-align) (pending-params~ :initform '(name pending-params type xcb:render:FIXED size (xcb:-fieldref 'pending-nparams)) :type xcb:-list) (pending-params :initarg :pending-params :type xcb:-ignore) (current-filter-name~ :initform '(name current-filter-name type xcb:char size (xcb:-fieldref 'current-len)) :type xcb:-list) (current-filter-name :initarg :current-filter-name :type xcb:-ignore) (pad~4 :initform 4 :type xcb:-pad-align) (current-params~ :initform '(name current-params type xcb:render:FIXED size (xcb:-fieldref 'current-nparams)) :type xcb:-list) (current-params :initarg :current-params :type xcb:-ignore))) (defclass xcb:randr:GetPanning (xcb:-request) ((~opcode :initform 28 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC))) (defclass xcb:randr:GetPanning~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (left :initarg :left :type xcb:CARD16) (top :initarg :top :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (track-left :initarg :track-left :type xcb:CARD16) (track-top :initarg :track-top :type xcb:CARD16) (track-width :initarg :track-width :type xcb:CARD16) (track-height :initarg :track-height :type xcb:CARD16) (border-left :initarg :border-left :type xcb:INT16) (border-top :initarg :border-top :type xcb:INT16) (border-right :initarg :border-right :type xcb:INT16) (border-bottom :initarg :border-bottom :type xcb:INT16))) (defclass xcb:randr:SetPanning (xcb:-request) ((~opcode :initform 29 :type xcb:-u1) (crtc :initarg :crtc :type xcb:randr:CRTC) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (left :initarg :left :type xcb:CARD16) (top :initarg :top :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (track-left :initarg :track-left :type xcb:CARD16) (track-top :initarg :track-top :type xcb:CARD16) (track-width :initarg :track-width :type xcb:CARD16) (track-height :initarg :track-height :type xcb:CARD16) (border-left :initarg :border-left :type xcb:INT16) (border-top :initarg :border-top :type xcb:INT16) (border-right :initarg :border-right :type xcb:INT16) (border-bottom :initarg :border-bottom :type xcb:INT16))) (defclass xcb:randr:SetPanning~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:SetOutputPrimary (xcb:-request) ((~opcode :initform 30 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (output :initarg :output :type xcb:randr:OUTPUT))) (defclass xcb:randr:GetOutputPrimary (xcb:-request) ((~opcode :initform 31 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetOutputPrimary~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (output :initarg :output :type xcb:randr:OUTPUT))) (defclass xcb:randr:GetProviders (xcb:-request) ((~opcode :initform 32 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:randr:GetProviders~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (num-providers :initarg :num-providers :type xcb:CARD16) (pad~1 :initform 18 :type xcb:-pad) (providers~ :initform '(name providers type xcb:randr:PROVIDER size (xcb:-fieldref 'num-providers)) :type xcb:-list) (providers :initarg :providers :type xcb:-ignore))) (defconst xcb:randr:ProviderCapability:SourceOutput 1) (defconst xcb:randr:ProviderCapability:SinkOutput 2) (defconst xcb:randr:ProviderCapability:SourceOffload 4) (defconst xcb:randr:ProviderCapability:SinkOffload 8) (defclass xcb:randr:GetProviderInfo (xcb:-request) ((~opcode :initform 33 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:GetProviderInfo~reply (xcb:-reply) ((status :initarg :status :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (capabilities :initarg :capabilities :type xcb:CARD32) (num-crtcs :initarg :num-crtcs :type xcb:CARD16) (num-outputs :initarg :num-outputs :type xcb:CARD16) (num-associated-providers :initarg :num-associated-providers :type xcb:CARD16) (name-len :initarg :name-len :type xcb:CARD16) (pad~0 :initform 8 :type xcb:-pad) (crtcs~ :initform '(name crtcs type xcb:randr:CRTC size (xcb:-fieldref 'num-crtcs)) :type xcb:-list) (crtcs :initarg :crtcs :type xcb:-ignore) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'num-outputs)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore) (associated-providers~ :initform '(name associated-providers type xcb:randr:PROVIDER size (xcb:-fieldref 'num-associated-providers)) :type xcb:-list) (associated-providers :initarg :associated-providers :type xcb:-ignore) (associated-capability~ :initform '(name associated-capability type xcb:CARD32 size (xcb:-fieldref 'num-associated-providers)) :type xcb:-list) (associated-capability :initarg :associated-capability :type xcb:-ignore) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:randr:SetProviderOffloadSink (xcb:-request) ((~opcode :initform 34 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (sink-provider :initarg :sink-provider :type xcb:randr:PROVIDER) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:SetProviderOutputSource (xcb:-request) ((~opcode :initform 35 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (source-provider :initarg :source-provider :type xcb:randr:PROVIDER) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP))) (defclass xcb:randr:ListProviderProperties (xcb:-request) ((~opcode :initform 36 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER))) (defclass xcb:randr:ListProviderProperties~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-atoms :initarg :num-atoms :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (atoms~ :initform '(name atoms type xcb:ATOM size (xcb:-fieldref 'num-atoms)) :type xcb:-list) (atoms :initarg :atoms :type xcb:-ignore))) (defclass xcb:randr:QueryProviderProperty (xcb:-request) ((~opcode :initform 37 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (property :initarg :property :type xcb:ATOM))) (defclass xcb:randr:QueryProviderProperty~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pending :initarg :pending :type xcb:BOOL) (range :initarg :range :type xcb:BOOL) (immutable :initarg :immutable :type xcb:BOOL) (pad~1 :initform 21 :type xcb:-pad) (valid-values~ :initform '(name valid-values type xcb:INT32 size (xcb:-fieldref 'length)) :type xcb:-list) (valid-values :initarg :valid-values :type xcb:-ignore))) (defclass xcb:randr:ConfigureProviderProperty (xcb:-request) ((~opcode :initform 38 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (property :initarg :property :type xcb:ATOM) (pending :initarg :pending :type xcb:BOOL) (range :initarg :range :type xcb:BOOL) (pad~0 :initform 2 :type xcb:-pad) (values~ :initform '(name values type xcb:INT32 size nil) :type xcb:-list) (values :initarg :values :type xcb:-ignore))) (defclass xcb:randr:ChangeProviderProperty (xcb:-request) ((~opcode :initform 39 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (format :initarg :format :type xcb:CARD8) (mode :initarg :mode :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (num-items :initarg :num-items :type xcb:CARD32) (data~ :initform '(name data type xcb:void size (* (xcb:-fieldref 'num-items) (/ (xcb:-fieldref 'format) 8))) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:randr:DeleteProviderProperty (xcb:-request) ((~opcode :initform 40 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (property :initarg :property :type xcb:ATOM))) (defclass xcb:randr:GetProviderProperty (xcb:-request) ((~opcode :initform 41 :type xcb:-u1) (provider :initarg :provider :type xcb:randr:PROVIDER) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (long-offset :initarg :long-offset :type xcb:CARD32) (long-length :initarg :long-length :type xcb:CARD32) (delete :initarg :delete :type xcb:BOOL) (pending :initarg :pending :type xcb:BOOL) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:randr:GetProviderProperty~reply (xcb:-reply) ((format :initarg :format :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (type :initarg :type :type xcb:ATOM) (bytes-after :initarg :bytes-after :type xcb:CARD32) (num-items :initarg :num-items :type xcb:CARD32) (pad~0 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:void size (* (xcb:-fieldref 'num-items) (/ (xcb:-fieldref 'format) 8))) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:randr:ScreenChangeNotify (xcb:-event) ((~code :initform 0) (rotation :initarg :rotation :type xcb:CARD8) (~sequence :type xcb:CARD16) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (root :initarg :root :type xcb:WINDOW) (request-window :initarg :request-window :type xcb:WINDOW) (sizeID :initarg :sizeID :type xcb:CARD16) (subpixel-order :initarg :subpixel-order :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (mwidth :initarg :mwidth :type xcb:CARD16) (mheight :initarg :mheight :type xcb:CARD16))) (defconst xcb:randr:Notify:CrtcChange 0) (defconst xcb:randr:Notify:OutputChange 1) (defconst xcb:randr:Notify:OutputProperty 2) (defconst xcb:randr:Notify:ProviderChange 3) (defconst xcb:randr:Notify:ProviderProperty 4) (defconst xcb:randr:Notify:ResourceChange 5) (defconst xcb:randr:Notify:Lease 6) (defclass xcb:randr:CrtcChange (xcb:-struct) ((timestamp :initarg :timestamp :type xcb:TIMESTAMP) (window :initarg :window :type xcb:WINDOW) (crtc :initarg :crtc :type xcb:randr:CRTC) (mode :initarg :mode :type xcb:randr:MODE) (rotation :initarg :rotation :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:randr:OutputChange (xcb:-struct) ((timestamp :initarg :timestamp :type xcb:TIMESTAMP) (config-timestamp :initarg :config-timestamp :type xcb:TIMESTAMP) (window :initarg :window :type xcb:WINDOW) (output :initarg :output :type xcb:randr:OUTPUT) (crtc :initarg :crtc :type xcb:randr:CRTC) (mode :initarg :mode :type xcb:randr:MODE) (rotation :initarg :rotation :type xcb:CARD16) (connection :initarg :connection :type xcb:CARD8) (subpixel-order :initarg :subpixel-order :type xcb:CARD8))) (defclass xcb:randr:OutputProperty (xcb:-struct) ((window :initarg :window :type xcb:WINDOW) (output :initarg :output :type xcb:randr:OUTPUT) (atom :initarg :atom :type xcb:ATOM) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (status :initarg :status :type xcb:CARD8) (pad~0 :initform 11 :type xcb:-pad))) (defclass xcb:randr:ProviderChange (xcb:-struct) ((timestamp :initarg :timestamp :type xcb:TIMESTAMP) (window :initarg :window :type xcb:WINDOW) (provider :initarg :provider :type xcb:randr:PROVIDER) (pad~0 :initform 16 :type xcb:-pad))) (defclass xcb:randr:ProviderProperty (xcb:-struct) ((window :initarg :window :type xcb:WINDOW) (provider :initarg :provider :type xcb:randr:PROVIDER) (atom :initarg :atom :type xcb:ATOM) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (state :initarg :state :type xcb:CARD8) (pad~0 :initform 11 :type xcb:-pad))) (defclass xcb:randr:ResourceChange (xcb:-struct) ((timestamp :initarg :timestamp :type xcb:TIMESTAMP) (window :initarg :window :type xcb:WINDOW) (pad~0 :initform 20 :type xcb:-pad))) (defclass xcb:randr:MonitorInfo (xcb:-struct) ((name :initarg :name :type xcb:ATOM) (primary :initarg :primary :type xcb:BOOL) (automatic :initarg :automatic :type xcb:BOOL) (nOutput :initarg :nOutput :type xcb:CARD16) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (width-in-millimeters :initarg :width-in-millimeters :type xcb:CARD32) (height-in-millimeters :initarg :height-in-millimeters :type xcb:CARD32) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'nOutput)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore))) (defclass xcb:randr:GetMonitors (xcb:-request) ((~opcode :initform 42 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (get-active :initarg :get-active :type xcb:BOOL))) (defclass xcb:randr:GetMonitors~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (nMonitors :initarg :nMonitors :type xcb:CARD32) (nOutputs :initarg :nOutputs :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (monitors~ :initform '(name monitors type xcb:randr:MonitorInfo size (xcb:-fieldref 'nMonitors)) :type xcb:-list) (monitors :initarg :monitors :type xcb:-ignore))) (defclass xcb:randr:SetMonitor (xcb:-request) ((~opcode :initform 43 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (monitorinfo :initarg :monitorinfo :type xcb:randr:MonitorInfo))) (defclass xcb:randr:DeleteMonitor (xcb:-request) ((~opcode :initform 44 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (name :initarg :name :type xcb:ATOM))) (defclass xcb:randr:CreateLease (xcb:-request) ((~opcode :initform 45 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (lid :initarg :lid :type xcb:randr:LEASE) (num-crtcs :initarg :num-crtcs :type xcb:CARD16) (num-outputs :initarg :num-outputs :type xcb:CARD16) (crtcs~ :initform '(name crtcs type xcb:randr:CRTC size (xcb:-fieldref 'num-crtcs)) :type xcb:-list) (crtcs :initarg :crtcs :type xcb:-ignore) (outputs~ :initform '(name outputs type xcb:randr:OUTPUT size (xcb:-fieldref 'num-outputs)) :type xcb:-list) (outputs :initarg :outputs :type xcb:-ignore))) (defclass xcb:randr:CreateLease~reply (xcb:-reply) ((nfd :initarg :nfd :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (master-fd :type xcb:fd) (pad~0 :initform 24 :type xcb:-pad))) (defclass xcb:randr:FreeLease (xcb:-request) ((~opcode :initform 46 :type xcb:-u1) (lid :initarg :lid :type xcb:randr:LEASE) (terminate :initarg :terminate :type xcb:BYTE))) (defclass xcb:randr:LeaseNotify (xcb:-struct) ((timestamp :initarg :timestamp :type xcb:TIMESTAMP) (window :initarg :window :type xcb:WINDOW) (lease :initarg :lease :type xcb:randr:LEASE) (created :initarg :created :type xcb:CARD8) (pad~0 :initform 15 :type xcb:-pad))) (defclass xcb:randr:NotifyData (xcb:-union) ((~size :initform 28) (cc :initarg :cc :type xcb:randr:CrtcChange) (oc :initarg :oc :type xcb:randr:OutputChange) (op :initarg :op :type xcb:randr:OutputProperty) (pc :initarg :pc :type xcb:randr:ProviderChange) (pp :initarg :pp :type xcb:randr:ProviderProperty) (rc :initarg :rc :type xcb:randr:ResourceChange) (lc :initarg :lc :type xcb:randr:LeaseNotify))) (defclass xcb:randr:Notify (xcb:-event) ((~code :initform 1) (subCode :initarg :subCode :type xcb:CARD8) (~sequence :type xcb:CARD16) (u :initarg :u :type xcb:randr:NotifyData))) (defconst xcb:randr:error-number-class-alist '((0 . xcb:randr:BadOutput) (1 . xcb:randr:BadCrtc) (2 . xcb:randr:BadMode) (3 . xcb:randr:BadProvider)) "(error-number . error-class) alist.") (defconst xcb:randr:event-number-class-alist '((0 . xcb:randr:ScreenChangeNotify) (1 . xcb:randr:Notify)) "(event-number . event-class) alist.") (provide 'xcb-randr) ;;; xcb-randr.el ends here xelb-0.18/xcb-record.el000066400000000000000000000167451353702660000147650ustar00rootroot00000000000000;;; xcb-record.el --- X11 Record extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'record.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:record:-extension-xname "RECORD") (defconst xcb:record:-extension-name "Record") (defconst xcb:record:-major-version 1) (defconst xcb:record:-minor-version 13) (xcb:deftypealias 'xcb:record:CONTEXT 'xcb:-u4) (defclass xcb:record:Range8 (xcb:-struct) ((first :initarg :first :type xcb:CARD8) (last :initarg :last :type xcb:CARD8))) (defclass xcb:record:Range16 (xcb:-struct) ((first :initarg :first :type xcb:CARD16) (last :initarg :last :type xcb:CARD16))) (defclass xcb:record:ExtRange (xcb:-struct) ((major :initarg :major :type xcb:record:Range8) (minor :initarg :minor :type xcb:record:Range16))) (defclass xcb:record:Range (xcb:-struct) ((core-requests :initarg :core-requests :type xcb:record:Range8) (core-replies :initarg :core-replies :type xcb:record:Range8) (ext-requests :initarg :ext-requests :type xcb:record:ExtRange) (ext-replies :initarg :ext-replies :type xcb:record:ExtRange) (delivered-events :initarg :delivered-events :type xcb:record:Range8) (device-events :initarg :device-events :type xcb:record:Range8) (errors :initarg :errors :type xcb:record:Range8) (client-started :initarg :client-started :type xcb:BOOL) (client-died :initarg :client-died :type xcb:BOOL))) (xcb:deftypealias 'xcb:record:ElementHeader 'xcb:CARD8) (defconst xcb:record:HType:FromServerTime 1) (defconst xcb:record:HType:FromClientTime 2) (defconst xcb:record:HType:FromClientSequence 4) (xcb:deftypealias 'xcb:record:ClientSpec 'xcb:CARD32) (defconst xcb:record:CS:CurrentClients 1) (defconst xcb:record:CS:FutureClients 2) (defconst xcb:record:CS:AllClients 3) (defclass xcb:record:ClientInfo (xcb:-struct) ((client-resource :initarg :client-resource :type xcb:record:ClientSpec) (num-ranges :initarg :num-ranges :type xcb:CARD32) (ranges~ :initform '(name ranges type xcb:record:Range size (xcb:-fieldref 'num-ranges)) :type xcb:-list) (ranges :initarg :ranges :type xcb:-ignore))) (defclass xcb:record:BadContext (xcb:-error) ((~code :initform 0) (invalid-record :initarg :invalid-record :type xcb:CARD32))) (defclass xcb:record:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16))) (defclass xcb:record:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16))) (defclass xcb:record:CreateContext (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT) (element-header :initarg :element-header :type xcb:record:ElementHeader) (pad~0 :initform 3 :type xcb:-pad) (num-client-specs :initarg :num-client-specs :type xcb:CARD32) (num-ranges :initarg :num-ranges :type xcb:CARD32) (client-specs~ :initform '(name client-specs type xcb:record:ClientSpec size (xcb:-fieldref 'num-client-specs)) :type xcb:-list) (client-specs :initarg :client-specs :type xcb:-ignore) (ranges~ :initform '(name ranges type xcb:record:Range size (xcb:-fieldref 'num-ranges)) :type xcb:-list) (ranges :initarg :ranges :type xcb:-ignore))) (defclass xcb:record:RegisterClients (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT) (element-header :initarg :element-header :type xcb:record:ElementHeader) (pad~0 :initform 3 :type xcb:-pad) (num-client-specs :initarg :num-client-specs :type xcb:CARD32) (num-ranges :initarg :num-ranges :type xcb:CARD32) (client-specs~ :initform '(name client-specs type xcb:record:ClientSpec size (xcb:-fieldref 'num-client-specs)) :type xcb:-list) (client-specs :initarg :client-specs :type xcb:-ignore) (ranges~ :initform '(name ranges type xcb:record:Range size (xcb:-fieldref 'num-ranges)) :type xcb:-list) (ranges :initarg :ranges :type xcb:-ignore))) (defclass xcb:record:UnregisterClients (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT) (num-client-specs :initarg :num-client-specs :type xcb:CARD32) (client-specs~ :initform '(name client-specs type xcb:record:ClientSpec size (xcb:-fieldref 'num-client-specs)) :type xcb:-list) (client-specs :initarg :client-specs :type xcb:-ignore))) (defclass xcb:record:GetContext (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT))) (defclass xcb:record:GetContext~reply (xcb:-reply) ((enabled :initarg :enabled :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (element-header :initarg :element-header :type xcb:record:ElementHeader) (pad~0 :initform 3 :type xcb:-pad) (num-intercepted-clients :initarg :num-intercepted-clients :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad) (intercepted-clients~ :initform '(name intercepted-clients type xcb:record:ClientInfo size (xcb:-fieldref 'num-intercepted-clients)) :type xcb:-list) (intercepted-clients :initarg :intercepted-clients :type xcb:-ignore))) (defclass xcb:record:EnableContext (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT))) (defclass xcb:record:EnableContext~reply (xcb:-reply) ((category :initarg :category :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (element-header :initarg :element-header :type xcb:record:ElementHeader) (client-swapped :initarg :client-swapped :type xcb:BOOL) (pad~0 :initform 2 :type xcb:-pad) (xid-base :initarg :xid-base :type xcb:CARD32) (server-time :initarg :server-time :type xcb:CARD32) (rec-sequence-num :initarg :rec-sequence-num :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:record:DisableContext (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT))) (defclass xcb:record:FreeContext (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (context :initarg :context :type xcb:record:CONTEXT))) (defconst xcb:record:error-number-class-alist '((0 . xcb:record:BadContext)) "(error-number . error-class) alist.") (provide 'xcb-record) ;;; xcb-record.el ends here xelb-0.18/xcb-render.el000066400000000000000000000644231353702660000147620ustar00rootroot00000000000000;;; xcb-render.el --- X11 Render extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'render.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:render:-extension-xname "RENDER") (defconst xcb:render:-extension-name "Render") (defconst xcb:render:-major-version 0) (defconst xcb:render:-minor-version 11) (require 'xcb-xproto) (defconst xcb:render:PictType:Indexed 0) (defconst xcb:render:PictType:Direct 1) (defconst xcb:render:Picture:None 0) (defconst xcb:render:PictOp:Clear 0) (defconst xcb:render:PictOp:Src 1) (defconst xcb:render:PictOp:Dst 2) (defconst xcb:render:PictOp:Over 3) (defconst xcb:render:PictOp:OverReverse 4) (defconst xcb:render:PictOp:In 5) (defconst xcb:render:PictOp:InReverse 6) (defconst xcb:render:PictOp:Out 7) (defconst xcb:render:PictOp:OutReverse 8) (defconst xcb:render:PictOp:Atop 9) (defconst xcb:render:PictOp:AtopReverse 10) (defconst xcb:render:PictOp:Xor 11) (defconst xcb:render:PictOp:Add 12) (defconst xcb:render:PictOp:Saturate 13) (defconst xcb:render:PictOp:DisjointClear 16) (defconst xcb:render:PictOp:DisjointSrc 17) (defconst xcb:render:PictOp:DisjointDst 18) (defconst xcb:render:PictOp:DisjointOver 19) (defconst xcb:render:PictOp:DisjointOverReverse 20) (defconst xcb:render:PictOp:DisjointIn 21) (defconst xcb:render:PictOp:DisjointInReverse 22) (defconst xcb:render:PictOp:DisjointOut 23) (defconst xcb:render:PictOp:DisjointOutReverse 24) (defconst xcb:render:PictOp:DisjointAtop 25) (defconst xcb:render:PictOp:DisjointAtopReverse 26) (defconst xcb:render:PictOp:DisjointXor 27) (defconst xcb:render:PictOp:ConjointClear 32) (defconst xcb:render:PictOp:ConjointSrc 33) (defconst xcb:render:PictOp:ConjointDst 34) (defconst xcb:render:PictOp:ConjointOver 35) (defconst xcb:render:PictOp:ConjointOverReverse 36) (defconst xcb:render:PictOp:ConjointIn 37) (defconst xcb:render:PictOp:ConjointInReverse 38) (defconst xcb:render:PictOp:ConjointOut 39) (defconst xcb:render:PictOp:ConjointOutReverse 40) (defconst xcb:render:PictOp:ConjointAtop 41) (defconst xcb:render:PictOp:ConjointAtopReverse 42) (defconst xcb:render:PictOp:ConjointXor 43) (defconst xcb:render:PictOp:Multiply 48) (defconst xcb:render:PictOp:Screen 49) (defconst xcb:render:PictOp:Overlay 50) (defconst xcb:render:PictOp:Darken 51) (defconst xcb:render:PictOp:Lighten 52) (defconst xcb:render:PictOp:ColorDodge 53) (defconst xcb:render:PictOp:ColorBurn 54) (defconst xcb:render:PictOp:HardLight 55) (defconst xcb:render:PictOp:SoftLight 56) (defconst xcb:render:PictOp:Difference 57) (defconst xcb:render:PictOp:Exclusion 58) (defconst xcb:render:PictOp:HSLHue 59) (defconst xcb:render:PictOp:HSLSaturation 60) (defconst xcb:render:PictOp:HSLColor 61) (defconst xcb:render:PictOp:HSLLuminosity 62) (defconst xcb:render:PolyEdge:Sharp 0) (defconst xcb:render:PolyEdge:Smooth 1) (defconst xcb:render:PolyMode:Precise 0) (defconst xcb:render:PolyMode:Imprecise 1) (defconst xcb:render:CP:Repeat 1) (defconst xcb:render:CP:AlphaMap 2) (defconst xcb:render:CP:AlphaXOrigin 4) (defconst xcb:render:CP:AlphaYOrigin 8) (defconst xcb:render:CP:ClipXOrigin 16) (defconst xcb:render:CP:ClipYOrigin 32) (defconst xcb:render:CP:ClipMask 64) (defconst xcb:render:CP:GraphicsExposure 128) (defconst xcb:render:CP:SubwindowMode 256) (defconst xcb:render:CP:PolyEdge 512) (defconst xcb:render:CP:PolyMode 1024) (defconst xcb:render:CP:Dither 2048) (defconst xcb:render:CP:ComponentAlpha 4096) (defconst xcb:render:SubPixel:Unknown 0) (defconst xcb:render:SubPixel:HorizontalRGB 1) (defconst xcb:render:SubPixel:HorizontalBGR 2) (defconst xcb:render:SubPixel:VerticalRGB 3) (defconst xcb:render:SubPixel:VerticalBGR 4) (defconst xcb:render:SubPixel:None 5) (defconst xcb:render:Repeat:None 0) (defconst xcb:render:Repeat:Normal 1) (defconst xcb:render:Repeat:Pad 2) (defconst xcb:render:Repeat:Reflect 3) (xcb:deftypealias 'xcb:render:GLYPH 'xcb:CARD32) (xcb:deftypealias 'xcb:render:GLYPHSET 'xcb:-u4) (xcb:deftypealias 'xcb:render:PICTURE 'xcb:-u4) (xcb:deftypealias 'xcb:render:PICTFORMAT 'xcb:-u4) (xcb:deftypealias 'xcb:render:FIXED 'xcb:INT32) (defclass xcb:render:PictFormat (xcb:-error) ((~code :initform 0))) (defclass xcb:render:Picture (xcb:-error) ((~code :initform 1))) (defclass xcb:render:PictOp (xcb:-error) ((~code :initform 2))) (defclass xcb:render:GlyphSet (xcb:-error) ((~code :initform 3))) (defclass xcb:render:Glyph (xcb:-error) ((~code :initform 4))) (defclass xcb:render:DIRECTFORMAT (xcb:-struct) ((red-shift :initarg :red-shift :type xcb:CARD16) (red-mask :initarg :red-mask :type xcb:CARD16) (green-shift :initarg :green-shift :type xcb:CARD16) (green-mask :initarg :green-mask :type xcb:CARD16) (blue-shift :initarg :blue-shift :type xcb:CARD16) (blue-mask :initarg :blue-mask :type xcb:CARD16) (alpha-shift :initarg :alpha-shift :type xcb:CARD16) (alpha-mask :initarg :alpha-mask :type xcb:CARD16))) (defclass xcb:render:PICTFORMINFO (xcb:-struct) ((id :initarg :id :type xcb:render:PICTFORMAT) (type :initarg :type :type xcb:CARD8) (depth :initarg :depth :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (direct :initarg :direct :type xcb:render:DIRECTFORMAT) (colormap :initarg :colormap :type xcb:COLORMAP))) (defclass xcb:render:PICTVISUAL (xcb:-struct) ((visual :initarg :visual :type xcb:VISUALID) (format :initarg :format :type xcb:render:PICTFORMAT))) (defclass xcb:render:PICTDEPTH (xcb:-struct) ((depth :initarg :depth :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (num-visuals :initarg :num-visuals :type xcb:CARD16) (pad~1 :initform 4 :type xcb:-pad) (visuals~ :initform '(name visuals type xcb:render:PICTVISUAL size (xcb:-fieldref 'num-visuals)) :type xcb:-list) (visuals :initarg :visuals :type xcb:-ignore))) (defclass xcb:render:PICTSCREEN (xcb:-struct) ((num-depths :initarg :num-depths :type xcb:CARD32) (fallback :initarg :fallback :type xcb:render:PICTFORMAT) (depths~ :initform '(name depths type xcb:render:PICTDEPTH size (xcb:-fieldref 'num-depths)) :type xcb:-list) (depths :initarg :depths :type xcb:-ignore))) (defclass xcb:render:INDEXVALUE (xcb:-struct) ((pixel :initarg :pixel :type xcb:CARD32) (red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (alpha :initarg :alpha :type xcb:CARD16))) (defclass xcb:render:COLOR (xcb:-struct) ((red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (alpha :initarg :alpha :type xcb:CARD16))) (defclass xcb:render:POINTFIX (xcb:-struct) ((x :initarg :x :type xcb:render:FIXED) (y :initarg :y :type xcb:render:FIXED))) (defclass xcb:render:LINEFIX (xcb:-struct) ((p1 :initarg :p1 :type xcb:render:POINTFIX) (p2 :initarg :p2 :type xcb:render:POINTFIX))) (defclass xcb:render:TRIANGLE (xcb:-struct) ((p1 :initarg :p1 :type xcb:render:POINTFIX) (p2 :initarg :p2 :type xcb:render:POINTFIX) (p3 :initarg :p3 :type xcb:render:POINTFIX))) (defclass xcb:render:TRAPEZOID (xcb:-struct) ((top :initarg :top :type xcb:render:FIXED) (bottom :initarg :bottom :type xcb:render:FIXED) (left :initarg :left :type xcb:render:LINEFIX) (right :initarg :right :type xcb:render:LINEFIX))) (defclass xcb:render:GLYPHINFO (xcb:-struct) ((width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (x-off :initarg :x-off :type xcb:INT16) (y-off :initarg :y-off :type xcb:INT16))) (defclass xcb:render:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD32) (client-minor-version :initarg :client-minor-version :type xcb:CARD32))) (defclass xcb:render:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad))) (defclass xcb:render:QueryPictFormats (xcb:-request) ((~opcode :initform 1 :type xcb:-u1))) (defclass xcb:render:QueryPictFormats~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-formats :initarg :num-formats :type xcb:CARD32) (num-screens :initarg :num-screens :type xcb:CARD32) (num-depths :initarg :num-depths :type xcb:CARD32) (num-visuals :initarg :num-visuals :type xcb:CARD32) (num-subpixel :initarg :num-subpixel :type xcb:CARD32) (pad~1 :initform 4 :type xcb:-pad) (formats~ :initform '(name formats type xcb:render:PICTFORMINFO size (xcb:-fieldref 'num-formats)) :type xcb:-list) (formats :initarg :formats :type xcb:-ignore) (screens~ :initform '(name screens type xcb:render:PICTSCREEN size (xcb:-fieldref 'num-screens)) :type xcb:-list) (screens :initarg :screens :type xcb:-ignore) (subpixels~ :initform '(name subpixels type xcb:CARD32 size (xcb:-fieldref 'num-subpixel)) :type xcb:-list) (subpixels :initarg :subpixels :type xcb:-ignore))) (defclass xcb:render:QueryPictIndexValues (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (format :initarg :format :type xcb:render:PICTFORMAT))) (defclass xcb:render:QueryPictIndexValues~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-values :initarg :num-values :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (values~ :initform '(name values type xcb:render:INDEXVALUE size (xcb:-fieldref 'num-values)) :type xcb:-list) (values :initarg :values :type xcb:-ignore))) (defclass xcb:render:CreatePicture (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (pid :initarg :pid :type xcb:render:PICTURE) (drawable :initarg :drawable :type xcb:DRAWABLE) (format :initarg :format :type xcb:render:PICTFORMAT) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 repeat) (2 alphamap) (4 alphaxorigin) (8 alphayorigin) (16 clipxorigin) (32 clipyorigin) (64 clipmask) (128 graphicsexposure) (256 subwindowmode) (512 polyedge) (1024 polymode) (2048 dither) (4096 componentalpha))) :type xcb:-switch) (repeat :initarg :repeat :type xcb:CARD32) (alphamap :initarg :alphamap :type xcb:render:PICTURE) (alphaxorigin :initarg :alphaxorigin :type xcb:INT32) (alphayorigin :initarg :alphayorigin :type xcb:INT32) (clipxorigin :initarg :clipxorigin :type xcb:INT32) (clipyorigin :initarg :clipyorigin :type xcb:INT32) (clipmask :initarg :clipmask :type xcb:PIXMAP) (graphicsexposure :initarg :graphicsexposure :type xcb:CARD32) (subwindowmode :initarg :subwindowmode :type xcb:CARD32) (polyedge :initarg :polyedge :type xcb:CARD32) (polymode :initarg :polymode :type xcb:CARD32) (dither :initarg :dither :type xcb:ATOM) (componentalpha :initarg :componentalpha :type xcb:CARD32))) (defclass xcb:render:ChangePicture (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 repeat) (2 alphamap) (4 alphaxorigin) (8 alphayorigin) (16 clipxorigin) (32 clipyorigin) (64 clipmask) (128 graphicsexposure) (256 subwindowmode) (512 polyedge) (1024 polymode) (2048 dither) (4096 componentalpha))) :type xcb:-switch) (repeat :initarg :repeat :type xcb:CARD32) (alphamap :initarg :alphamap :type xcb:render:PICTURE) (alphaxorigin :initarg :alphaxorigin :type xcb:INT32) (alphayorigin :initarg :alphayorigin :type xcb:INT32) (clipxorigin :initarg :clipxorigin :type xcb:INT32) (clipyorigin :initarg :clipyorigin :type xcb:INT32) (clipmask :initarg :clipmask :type xcb:PIXMAP) (graphicsexposure :initarg :graphicsexposure :type xcb:CARD32) (subwindowmode :initarg :subwindowmode :type xcb:CARD32) (polyedge :initarg :polyedge :type xcb:CARD32) (polymode :initarg :polymode :type xcb:CARD32) (dither :initarg :dither :type xcb:ATOM) (componentalpha :initarg :componentalpha :type xcb:CARD32))) (defclass xcb:render:SetPictureClipRectangles (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (clip-x-origin :initarg :clip-x-origin :type xcb:INT16) (clip-y-origin :initarg :clip-y-origin :type xcb:INT16) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size nil) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defclass xcb:render:FreePicture (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE))) (defclass xcb:render:Composite (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (mask :initarg :mask :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (mask-x :initarg :mask-x :type xcb:INT16) (mask-y :initarg :mask-y :type xcb:INT16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:render:Trapezoids (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (traps~ :initform '(name traps type xcb:render:TRAPEZOID size nil) :type xcb:-list) (traps :initarg :traps :type xcb:-ignore))) (defclass xcb:render:Triangles (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (triangles~ :initform '(name triangles type xcb:render:TRIANGLE size nil) :type xcb:-list) (triangles :initarg :triangles :type xcb:-ignore))) (defclass xcb:render:TriStrip (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (points~ :initform '(name points type xcb:render:POINTFIX size nil) :type xcb:-list) (points :initarg :points :type xcb:-ignore))) (defclass xcb:render:TriFan (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (points~ :initform '(name points type xcb:render:POINTFIX size nil) :type xcb:-list) (points :initarg :points :type xcb:-ignore))) (defclass xcb:render:CreateGlyphSet (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (gsid :initarg :gsid :type xcb:render:GLYPHSET) (format :initarg :format :type xcb:render:PICTFORMAT))) (defclass xcb:render:ReferenceGlyphSet (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (gsid :initarg :gsid :type xcb:render:GLYPHSET) (existing :initarg :existing :type xcb:render:GLYPHSET))) (defclass xcb:render:FreeGlyphSet (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET))) (defclass xcb:render:AddGlyphs (xcb:-request) ((~opcode :initform 20 :type xcb:-u1) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET) (glyphs-len :initarg :glyphs-len :type xcb:CARD32) (glyphids~ :initform '(name glyphids type xcb:CARD32 size (xcb:-fieldref 'glyphs-len)) :type xcb:-list) (glyphids :initarg :glyphids :type xcb:-ignore) (glyphs~ :initform '(name glyphs type xcb:render:GLYPHINFO size (xcb:-fieldref 'glyphs-len)) :type xcb:-list) (glyphs :initarg :glyphs :type xcb:-ignore) (data~ :initform '(name data type xcb:BYTE size nil) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:render:FreeGlyphs (xcb:-request) ((~opcode :initform 22 :type xcb:-u1) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET) (glyphs~ :initform '(name glyphs type xcb:render:GLYPH size nil) :type xcb:-list) (glyphs :initarg :glyphs :type xcb:-ignore))) (defclass xcb:render:CompositeGlyphs8 (xcb:-request) ((~opcode :initform 23 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (glyphcmds~ :initform '(name glyphcmds type xcb:BYTE size nil) :type xcb:-list) (glyphcmds :initarg :glyphcmds :type xcb:-ignore))) (defclass xcb:render:CompositeGlyphs16 (xcb:-request) ((~opcode :initform 24 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (glyphcmds~ :initform '(name glyphcmds type xcb:BYTE size nil) :type xcb:-list) (glyphcmds :initarg :glyphcmds :type xcb:-ignore))) (defclass xcb:render:CompositeGlyphs32 (xcb:-request) ((~opcode :initform 25 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (src :initarg :src :type xcb:render:PICTURE) (dst :initarg :dst :type xcb:render:PICTURE) (mask-format :initarg :mask-format :type xcb:render:PICTFORMAT) (glyphset :initarg :glyphset :type xcb:render:GLYPHSET) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (glyphcmds~ :initform '(name glyphcmds type xcb:BYTE size nil) :type xcb:-list) (glyphcmds :initarg :glyphcmds :type xcb:-ignore))) (defclass xcb:render:FillRectangles (xcb:-request) ((~opcode :initform 26 :type xcb:-u1) (op :initarg :op :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (dst :initarg :dst :type xcb:render:PICTURE) (color :initarg :color :type xcb:render:COLOR) (rects~ :initform '(name rects type xcb:RECTANGLE size nil) :type xcb:-list) (rects :initarg :rects :type xcb:-ignore))) (defclass xcb:render:CreateCursor (xcb:-request) ((~opcode :initform 27 :type xcb:-u1) (cid :initarg :cid :type xcb:CURSOR) (source :initarg :source :type xcb:render:PICTURE) (x :initarg :x :type xcb:CARD16) (y :initarg :y :type xcb:CARD16))) (defclass xcb:render:TRANSFORM (xcb:-struct) ((matrix11 :initarg :matrix11 :type xcb:render:FIXED) (matrix12 :initarg :matrix12 :type xcb:render:FIXED) (matrix13 :initarg :matrix13 :type xcb:render:FIXED) (matrix21 :initarg :matrix21 :type xcb:render:FIXED) (matrix22 :initarg :matrix22 :type xcb:render:FIXED) (matrix23 :initarg :matrix23 :type xcb:render:FIXED) (matrix31 :initarg :matrix31 :type xcb:render:FIXED) (matrix32 :initarg :matrix32 :type xcb:render:FIXED) (matrix33 :initarg :matrix33 :type xcb:render:FIXED))) (defclass xcb:render:SetPictureTransform (xcb:-request) ((~opcode :initform 28 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (transform :initarg :transform :type xcb:render:TRANSFORM))) (defclass xcb:render:QueryFilters (xcb:-request) ((~opcode :initform 29 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:render:QueryFilters~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-aliases :initarg :num-aliases :type xcb:CARD32) (num-filters :initarg :num-filters :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad) (aliases~ :initform '(name aliases type xcb:CARD16 size (xcb:-fieldref 'num-aliases)) :type xcb:-list) (aliases :initarg :aliases :type xcb:-ignore) (filters~ :initform '(name filters type xcb:STR size (xcb:-fieldref 'num-filters)) :type xcb:-list) (filters :initarg :filters :type xcb:-ignore))) (defclass xcb:render:SetPictureFilter (xcb:-request) ((~opcode :initform 30 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (filter-len :initarg :filter-len :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (filter~ :initform '(name filter type xcb:char size (xcb:-fieldref 'filter-len)) :type xcb:-list) (filter :initarg :filter :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align) (values~ :initform '(name values type xcb:render:FIXED size nil) :type xcb:-list) (values :initarg :values :type xcb:-ignore))) (defclass xcb:render:ANIMCURSORELT (xcb:-struct) ((cursor :initarg :cursor :type xcb:CURSOR) (delay :initarg :delay :type xcb:CARD32))) (defclass xcb:render:CreateAnimCursor (xcb:-request) ((~opcode :initform 31 :type xcb:-u1) (cid :initarg :cid :type xcb:CURSOR) (cursors~ :initform '(name cursors type xcb:render:ANIMCURSORELT size nil) :type xcb:-list) (cursors :initarg :cursors :type xcb:-ignore))) (defclass xcb:render:SPANFIX (xcb:-struct) ((l :initarg :l :type xcb:render:FIXED) (r :initarg :r :type xcb:render:FIXED) (y :initarg :y :type xcb:render:FIXED))) (defclass xcb:render:TRAP (xcb:-struct) ((top :initarg :top :type xcb:render:SPANFIX) (bot :initarg :bot :type xcb:render:SPANFIX))) (defclass xcb:render:AddTraps (xcb:-request) ((~opcode :initform 32 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (x-off :initarg :x-off :type xcb:INT16) (y-off :initarg :y-off :type xcb:INT16) (traps~ :initform '(name traps type xcb:render:TRAP size nil) :type xcb:-list) (traps :initarg :traps :type xcb:-ignore))) (defclass xcb:render:CreateSolidFill (xcb:-request) ((~opcode :initform 33 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (color :initarg :color :type xcb:render:COLOR))) (defclass xcb:render:CreateLinearGradient (xcb:-request) ((~opcode :initform 34 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (p1 :initarg :p1 :type xcb:render:POINTFIX) (p2 :initarg :p2 :type xcb:render:POINTFIX) (num-stops :initarg :num-stops :type xcb:CARD32) (stops~ :initform '(name stops type xcb:render:FIXED size (xcb:-fieldref 'num-stops)) :type xcb:-list) (stops :initarg :stops :type xcb:-ignore) (colors~ :initform '(name colors type xcb:render:COLOR size (xcb:-fieldref 'num-stops)) :type xcb:-list) (colors :initarg :colors :type xcb:-ignore))) (defclass xcb:render:CreateRadialGradient (xcb:-request) ((~opcode :initform 35 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (inner :initarg :inner :type xcb:render:POINTFIX) (outer :initarg :outer :type xcb:render:POINTFIX) (inner-radius :initarg :inner-radius :type xcb:render:FIXED) (outer-radius :initarg :outer-radius :type xcb:render:FIXED) (num-stops :initarg :num-stops :type xcb:CARD32) (stops~ :initform '(name stops type xcb:render:FIXED size (xcb:-fieldref 'num-stops)) :type xcb:-list) (stops :initarg :stops :type xcb:-ignore) (colors~ :initform '(name colors type xcb:render:COLOR size (xcb:-fieldref 'num-stops)) :type xcb:-list) (colors :initarg :colors :type xcb:-ignore))) (defclass xcb:render:CreateConicalGradient (xcb:-request) ((~opcode :initform 36 :type xcb:-u1) (picture :initarg :picture :type xcb:render:PICTURE) (center :initarg :center :type xcb:render:POINTFIX) (angle :initarg :angle :type xcb:render:FIXED) (num-stops :initarg :num-stops :type xcb:CARD32) (stops~ :initform '(name stops type xcb:render:FIXED size (xcb:-fieldref 'num-stops)) :type xcb:-list) (stops :initarg :stops :type xcb:-ignore) (colors~ :initform '(name colors type xcb:render:COLOR size (xcb:-fieldref 'num-stops)) :type xcb:-list) (colors :initarg :colors :type xcb:-ignore))) (defconst xcb:render:error-number-class-alist '((0 . xcb:render:PictFormat) (1 . xcb:render:Picture) (2 . xcb:render:PictOp) (3 . xcb:render:GlyphSet) (4 . xcb:render:Glyph)) "(error-number . error-class) alist.") (provide 'xcb-render) ;;; xcb-render.el ends here xelb-0.18/xcb-renderutil.el000066400000000000000000000333371353702660000156600ustar00rootroot00000000000000;;; xcb-renderutil.el --- Utility functions for -*- lexical-binding: t -*- ;;; the Render extension ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library provides utility functions for the Render extension. ;; Todo ;; + Glyph-related functions are not implemented. ;; References: ;; + xcb/util-renderutil (git://anongit.freedesktop.org/xcb/util-renderutil) ;;; Code: (require 'xcb) (require 'xcb-render) ;; Protocol version. (defconst xcb:renderutil:-MAJOR_VERSION 0) (defconst xcb:renderutil:-MINOR_VERSION 11) ;; PICTFORMINFO masks. (defconst xcb:renderutil:PICT_FORMAT:ID 1) (defconst xcb:renderutil:PICT_FORMAT:TYPE 2) (defconst xcb:renderutil:PICT_FORMAT:DEPTH 4) (defconst xcb:renderutil:PICT_FORMAT:RED 8) (defconst xcb:renderutil:PICT_FORMAT:RED_MASK 16) (defconst xcb:renderutil:PICT_FORMAT:GREEN 32) (defconst xcb:renderutil:PICT_FORMAT:GREEN_MASK 64) (defconst xcb:renderutil:PICT_FORMAT:BLUE 128) (defconst xcb:renderutil:PICT_FORMAT:BLUE_MASK 256) (defconst xcb:renderutil:PICT_FORMAT:ALPHA 512) (defconst xcb:renderutil:PICT_FORMAT:ALPHA_MASK 1024) (defconst xcb:renderutil:PICT_FORMAT:COLORMAP 2048) ;; Indices of standard PictFormats. (defconst xcb:renderutil:PICT_STANDARD:ARGB_32 0) (defconst xcb:renderutil:PICT_STANDARD:RGB_24 1) (defconst xcb:renderutil:PICT_STANDARD:A_8 2) (defconst xcb:renderutil:PICT_STANDARD:A_4 3) (defconst xcb:renderutil:PICT_STANDARD:A_1 4) (defconst xcb:renderutil:STANDARD-TEMPLATES (list ;; xcb:renderutil:PICT_STANDARD:ARGB_32 (vector (make-instance 'xcb:render:PICTFORMINFO :id 0 :type xcb:render:PictType:Direct :depth 32 :direct (make-instance 'xcb:render:DIRECTFORMAT :red-shift 16 :red-mask #xFF :green-shift 8 :green-mask #xFF :blue-shift 0 :blue-mask #xFF :alpha-shift 24 :alpha-mask #xFF) :colormap 0) (logior xcb:renderutil:PICT_FORMAT:TYPE xcb:renderutil:PICT_FORMAT:DEPTH xcb:renderutil:PICT_FORMAT:RED xcb:renderutil:PICT_FORMAT:RED_MASK xcb:renderutil:PICT_FORMAT:GREEN xcb:renderutil:PICT_FORMAT:GREEN_MASK xcb:renderutil:PICT_FORMAT:BLUE xcb:renderutil:PICT_FORMAT:BLUE_MASK xcb:renderutil:PICT_FORMAT:ALPHA xcb:renderutil:PICT_FORMAT:ALPHA_MASK)) ;; xcb:renderutil:PICT_STANDARD:RGB_24 (vector (make-instance 'xcb:render:PICTFORMINFO :id 0 :type xcb:render:PictType:Direct :depth 24 :direct (make-instance 'xcb:render:DIRECTFORMAT :red-shift 16 :red-mask #xFF :green-shift 8 :green-mask #xFF :blue-shift 0 :blue-mask #xFF :alpha-shift 0 :alpha-mask #x00) :colormap 0) (logior xcb:renderutil:PICT_FORMAT:TYPE xcb:renderutil:PICT_FORMAT:DEPTH xcb:renderutil:PICT_FORMAT:RED xcb:renderutil:PICT_FORMAT:RED_MASK xcb:renderutil:PICT_FORMAT:GREEN xcb:renderutil:PICT_FORMAT:GREEN_MASK xcb:renderutil:PICT_FORMAT:BLUE xcb:renderutil:PICT_FORMAT:BLUE_MASK xcb:renderutil:PICT_FORMAT:ALPHA_MASK)) ;; xcb:renderutil:PICT_STANDARD:A_8 (vector (make-instance 'xcb:render:PICTFORMINFO :id 0 :type xcb:render:PictType:Direct :depth 8 :direct (make-instance 'xcb:render:DIRECTFORMAT :red-shift 0 :red-mask #x00 :green-shift 0 :green-mask #x00 :blue-shift 0 :blue-mask #x00 :alpha-shift 0 :alpha-mask #xFF) :colormap 0) (logior xcb:renderutil:PICT_FORMAT:TYPE xcb:renderutil:PICT_FORMAT:DEPTH xcb:renderutil:PICT_FORMAT:RED_MASK xcb:renderutil:PICT_FORMAT:GREEN_MASK xcb:renderutil:PICT_FORMAT:BLUE_MASK xcb:renderutil:PICT_FORMAT:ALPHA xcb:renderutil:PICT_FORMAT:ALPHA_MASK)) ;; xcb:renderutil:PICT_STANDARD:A_4 (vector (make-instance 'xcb:render:PICTFORMINFO :id 0 :type xcb:render:PictType:Direct :depth 4 :direct (make-instance 'xcb:render:DIRECTFORMAT :red-shift 0 :red-mask #x00 :green-shift 0 :green-mask #x00 :blue-shift 0 :blue-mask #x00 :alpha-shift 0 :alpha-mask #x0F) :colormap 0) (logior xcb:renderutil:PICT_FORMAT:TYPE xcb:renderutil:PICT_FORMAT:DEPTH xcb:renderutil:PICT_FORMAT:RED_MASK xcb:renderutil:PICT_FORMAT:GREEN_MASK xcb:renderutil:PICT_FORMAT:BLUE_MASK xcb:renderutil:PICT_FORMAT:ALPHA xcb:renderutil:PICT_FORMAT:ALPHA_MASK)) ;; xcb:renderutil:PICT_STANDARD:A_1 (vector (make-instance 'xcb:render:PICTFORMINFO :id 0 :type xcb:render:PictType:Direct :depth 1 :direct (make-instance 'xcb:render:DIRECTFORMAT :red-shift 0 :red-mask #x00 :green-shift 0 :green-mask #x00 :blue-shift 0 :blue-mask #x00 :alpha-shift 0 :alpha-mask #x01) :colormap 0) (logior xcb:renderutil:PICT_FORMAT:TYPE xcb:renderutil:PICT_FORMAT:DEPTH xcb:renderutil:PICT_FORMAT:RED_MASK xcb:renderutil:PICT_FORMAT:GREEN_MASK xcb:renderutil:PICT_FORMAT:BLUE_MASK xcb:renderutil:PICT_FORMAT:ALPHA xcb:renderutil:PICT_FORMAT:ALPHA_MASK))) "Standard PictFormats.") (cl-defmethod xcb:renderutil:-get-cache ((obj xcb:connection)) "Return the cache and initialize the extension when first called." (let ((result (plist-get (slot-value obj 'extra-plist) 'renderutil)) required-depths) (unless (or result (= 0 (slot-value (xcb:get-extension-data obj 'xcb:render) 'present))) (setq result (vector (xcb:+request-unchecked+reply obj (make-instance 'xcb:render:QueryVersion :client-major-version xcb:renderutil:-MAJOR_VERSION :client-minor-version xcb:renderutil:-MINOR_VERSION)) (xcb:+request-unchecked+reply obj (make-instance 'xcb:render:QueryPictFormats)))) (setq required-depths '(1 4 8 24 32)) (catch 'break (dolist (s (slot-value (aref result 1) 'screens)) (dolist (d (slot-value s 'depths)) (setq required-depths (delq (slot-value d 'depth) required-depths)) (unless required-depths (throw 'break nil))))) (if required-depths (setq result nil) (setf (slot-value obj 'extra-plist) (plist-put (slot-value obj 'extra-plist) 'renderutil result)))) result)) (defun xcb:renderutil:find-visual-format (formats visual) "Search FORMATS for a format matching visual VISUAL." (catch 'return (dolist (s (slot-value formats 'screens)) (dolist (d (slot-value s 'depths)) (dolist (v (slot-value d 'visuals)) (when (= (slot-value v 'visual) visual) (throw 'return (slot-value v 'format)))))))) (defun xcb:renderutil:find-format (formats mask template count) "Search FORMATS for a format matching mask MASK and template TEMPLATE. Return COUNT-th match." (catch 'return (unless formats (throw 'return nil)) (dolist (f (slot-value formats 'formats)) (when (and (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:ID)) (eq (slot-value template 'id) (slot-value f 'id)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:TYPE)) (eq (slot-value template 'type) (slot-value f 'type)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:DEPTH)) (eq (slot-value template 'depth) (slot-value f 'depth)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:RED)) (eq (slot-value (slot-value template 'direct) 'red-shift) (slot-value (slot-value f 'direct) 'red-shift)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:RED_MASK)) (eq (slot-value (slot-value template 'direct) 'red-mask) (slot-value (slot-value f 'direct) 'red-mask)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:GREEN)) (eq (slot-value (slot-value template 'direct) 'red-shift) (slot-value (slot-value f 'direct) 'red-shift)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:GREEN_MASK)) (eq (slot-value (slot-value template 'direct) 'red-mask) (slot-value (slot-value f 'direct) 'red-mask)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:BLUE)) (eq (slot-value (slot-value template 'direct) 'red-shift) (slot-value (slot-value f 'direct) 'red-shift)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:BLUE_MASK)) (eq (slot-value (slot-value template 'direct) 'red-mask) (slot-value (slot-value f 'direct) 'red-mask)) t) (if (/= 0 (logand mask xcb:renderutil:PICT_FORMAT:COLORMAP)) (eq (slot-value template 'colormap) (slot-value f 'colormap)) t)) (when (= count 0) (throw 'return (slot-value f 'id)) (cl-decf count)))))) (defun xcb:renderutil:find-standard (formats format) "Search FORMATS for a standard format matching format ID FORMAT." (when (and (<= 0 format (1- (length xcb:renderutil:STANDARD-TEMPLATES)))) (let ((standard-format (elt xcb:renderutil:STANDARD-TEMPLATES format))) (xcb:renderutil:find-format formats (aref standard-format 1) (aref standard-format 0) 0)))) (cl-defmethod xcb:renderutil:query-version ((obj xcb:connection)) "Return the version of Render extension." (let ((cache (xcb:renderutil:-get-cache obj))) (when cache (aref cache 0)))) (cl-defmethod xcb:renderutil:query-formats ((obj xcb:connection)) "Return supported formats of this X server." (let ((cache (xcb:renderutil:-get-cache obj))) (when cache (aref cache 1)))) (provide 'xcb-renderutil) ;;; xcb-renderutil.el ends here xelb-0.18/xcb-res.el000066400000000000000000000142751353702660000142740ustar00rootroot00000000000000;;; xcb-res.el --- X11 Res extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'res.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:res:-extension-xname "X-Resource") (defconst xcb:res:-extension-name "Res") (defconst xcb:res:-major-version 1) (defconst xcb:res:-minor-version 2) (require 'xcb-xproto) (defclass xcb:res:Client (xcb:-struct) ((resource-base :initarg :resource-base :type xcb:CARD32) (resource-mask :initarg :resource-mask :type xcb:CARD32))) (defclass xcb:res:Type (xcb:-struct) ((resource-type :initarg :resource-type :type xcb:ATOM) (count :initarg :count :type xcb:CARD32))) (defconst xcb:res:ClientIdMask:ClientXID 1) (defconst xcb:res:ClientIdMask:LocalClientPID 2) (defclass xcb:res:ClientIdSpec (xcb:-struct) ((client :initarg :client :type xcb:CARD32) (mask :initarg :mask :type xcb:CARD32))) (defclass xcb:res:ClientIdValue (xcb:-struct) ((spec :initarg :spec :type xcb:res:ClientIdSpec) (length :initarg :length :type xcb:CARD32) (value~ :initform '(name value type xcb:CARD32 size (/ (xcb:-fieldref 'length) 4)) :type xcb:-list) (value :initarg :value :type xcb:-ignore))) (defclass xcb:res:ResourceIdSpec (xcb:-struct) ((resource :initarg :resource :type xcb:CARD32) (type :initarg :type :type xcb:CARD32))) (defclass xcb:res:ResourceSizeSpec (xcb:-struct) ((spec :initarg :spec :type xcb:res:ResourceIdSpec) (bytes :initarg :bytes :type xcb:CARD32) (ref-count :initarg :ref-count :type xcb:CARD32) (use-count :initarg :use-count :type xcb:CARD32))) (defclass xcb:res:ResourceSizeValue (xcb:-struct) ((size :initarg :size :type xcb:res:ResourceSizeSpec) (num-cross-references :initarg :num-cross-references :type xcb:CARD32) (cross-references~ :initform '(name cross-references type xcb:res:ResourceSizeSpec size (xcb:-fieldref 'num-cross-references)) :type xcb:-list) (cross-references :initarg :cross-references :type xcb:-ignore))) (defclass xcb:res:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major :initarg :client-major :type xcb:CARD8) (client-minor :initarg :client-minor :type xcb:CARD8))) (defclass xcb:res:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (server-major :initarg :server-major :type xcb:CARD16) (server-minor :initarg :server-minor :type xcb:CARD16))) (defclass xcb:res:QueryClients (xcb:-request) ((~opcode :initform 1 :type xcb:-u1))) (defclass xcb:res:QueryClients~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-clients :initarg :num-clients :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (clients~ :initform '(name clients type xcb:res:Client size (xcb:-fieldref 'num-clients)) :type xcb:-list) (clients :initarg :clients :type xcb:-ignore))) (defclass xcb:res:QueryClientResources (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (xid :initarg :xid :type xcb:CARD32))) (defclass xcb:res:QueryClientResources~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-types :initarg :num-types :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (types~ :initform '(name types type xcb:res:Type size (xcb:-fieldref 'num-types)) :type xcb:-list) (types :initarg :types :type xcb:-ignore))) (defclass xcb:res:QueryClientPixmapBytes (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (xid :initarg :xid :type xcb:CARD32))) (defclass xcb:res:QueryClientPixmapBytes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (bytes :initarg :bytes :type xcb:CARD32) (bytes-overflow :initarg :bytes-overflow :type xcb:CARD32))) (defclass xcb:res:QueryClientIds (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (num-specs :initarg :num-specs :type xcb:CARD32) (specs~ :initform '(name specs type xcb:res:ClientIdSpec size (xcb:-fieldref 'num-specs)) :type xcb:-list) (specs :initarg :specs :type xcb:-ignore))) (defclass xcb:res:QueryClientIds~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-ids :initarg :num-ids :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (ids~ :initform '(name ids type xcb:res:ClientIdValue size (xcb:-fieldref 'num-ids)) :type xcb:-list) (ids :initarg :ids :type xcb:-ignore))) (defclass xcb:res:QueryResourceBytes (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (client :initarg :client :type xcb:CARD32) (num-specs :initarg :num-specs :type xcb:CARD32) (specs~ :initform '(name specs type xcb:res:ResourceIdSpec size (xcb:-fieldref 'num-specs)) :type xcb:-list) (specs :initarg :specs :type xcb:-ignore))) (defclass xcb:res:QueryResourceBytes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-sizes :initarg :num-sizes :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (sizes~ :initform '(name sizes type xcb:res:ResourceSizeValue size (xcb:-fieldref 'num-sizes)) :type xcb:-list) (sizes :initarg :sizes :type xcb:-ignore))) (provide 'xcb-res) ;;; xcb-res.el ends here xelb-0.18/xcb-screensaver.el000066400000000000000000000134121353702660000160130ustar00rootroot00000000000000;;; xcb-screensaver.el --- X11 ScreenSaver extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'screensaver.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:screensaver:-extension-xname "MIT-SCREEN-SAVER") (defconst xcb:screensaver:-extension-name "ScreenSaver") (defconst xcb:screensaver:-major-version 1) (defconst xcb:screensaver:-minor-version 1) (require 'xcb-xproto) (defconst xcb:screensaver:Kind:Blanked 0) (defconst xcb:screensaver:Kind:Internal 1) (defconst xcb:screensaver:Kind:External 2) (defconst xcb:screensaver:Event:NotifyMask 1) (defconst xcb:screensaver:Event:CycleMask 2) (defconst xcb:screensaver:State:Off 0) (defconst xcb:screensaver:State:On 1) (defconst xcb:screensaver:State:Cycle 2) (defconst xcb:screensaver:State:Disabled 3) (defclass xcb:screensaver:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD8) (client-minor-version :initarg :client-minor-version :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:screensaver:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (server-major-version :initarg :server-major-version :type xcb:CARD16) (server-minor-version :initarg :server-minor-version :type xcb:CARD16) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:screensaver:QueryInfo (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:screensaver:QueryInfo~reply (xcb:-reply) ((state :initarg :state :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (saver-window :initarg :saver-window :type xcb:WINDOW) (ms-until-server :initarg :ms-until-server :type xcb:CARD32) (ms-since-user-input :initarg :ms-since-user-input :type xcb:CARD32) (event-mask :initarg :event-mask :type xcb:CARD32) (kind :initarg :kind :type xcb:BYTE) (pad~0 :initform 7 :type xcb:-pad))) (defclass xcb:screensaver:SelectInput (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (event-mask :initarg :event-mask :type xcb:CARD32))) (defclass xcb:screensaver:SetAttributes (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (border-width :initarg :border-width :type xcb:CARD16) (class :initarg :class :type xcb:BYTE) (depth :initarg :depth :type xcb:CARD8) (visual :initarg :visual :type xcb:VISUALID) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 background-pixmap) (2 background-pixel) (4 border-pixmap) (8 border-pixel) (16 bit-gravity) (32 win-gravity) (64 backing-store) (128 backing-planes) (256 backing-pixel) (512 override-redirect) (1024 save-under) (2048 event-mask) (4096 do-not-propogate-mask) (8192 colormap) (16384 cursor))) :type xcb:-switch) (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP) (background-pixel :initarg :background-pixel :type xcb:CARD32) (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP) (border-pixel :initarg :border-pixel :type xcb:CARD32) (bit-gravity :initarg :bit-gravity :type xcb:CARD32) (win-gravity :initarg :win-gravity :type xcb:CARD32) (backing-store :initarg :backing-store :type xcb:CARD32) (backing-planes :initarg :backing-planes :type xcb:CARD32) (backing-pixel :initarg :backing-pixel :type xcb:CARD32) (override-redirect :initarg :override-redirect :type xcb:BOOL32) (save-under :initarg :save-under :type xcb:BOOL32) (event-mask :initarg :event-mask :type xcb:CARD32) (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32) (colormap :initarg :colormap :type xcb:COLORMAP) (cursor :initarg :cursor :type xcb:CURSOR))) (defclass xcb:screensaver:UnsetAttributes (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:screensaver:Suspend (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (suspend :initarg :suspend :type xcb:CARD32))) (defclass xcb:screensaver:Notify (xcb:-event) ((~code :initform 0) (state :initarg :state :type xcb:BYTE) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (root :initarg :root :type xcb:WINDOW) (window :initarg :window :type xcb:WINDOW) (kind :initarg :kind :type xcb:BYTE) (forced :initarg :forced :type xcb:BOOL) (pad~0 :initform 14 :type xcb:-pad))) (defconst xcb:screensaver:event-number-class-alist '((0 . xcb:screensaver:Notify)) "(event-number . event-class) alist.") (provide 'xcb-screensaver) ;;; xcb-screensaver.el ends here xelb-0.18/xcb-shape.el000066400000000000000000000155731353702660000146050ustar00rootroot00000000000000;;; xcb-shape.el --- X11 Shape extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'shape.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:shape:-extension-xname "SHAPE") (defconst xcb:shape:-extension-name "Shape") (defconst xcb:shape:-major-version 1) (defconst xcb:shape:-minor-version 1) (require 'xcb-xproto) (xcb:deftypealias 'xcb:shape:OP 'xcb:CARD8) (xcb:deftypealias 'xcb:shape:KIND 'xcb:CARD8) (defconst xcb:shape:SO:Set 0) (defconst xcb:shape:SO:Union 1) (defconst xcb:shape:SO:Intersect 2) (defconst xcb:shape:SO:Subtract 3) (defconst xcb:shape:SO:Invert 4) (defconst xcb:shape:SK:Bounding 0) (defconst xcb:shape:SK:Clip 1) (defconst xcb:shape:SK:Input 2) (defclass xcb:shape:Notify (xcb:-event) ((~code :initform 0) (shape-kind :initarg :shape-kind :type xcb:shape:KIND) (~sequence :type xcb:CARD16) (affected-window :initarg :affected-window :type xcb:WINDOW) (extents-x :initarg :extents-x :type xcb:INT16) (extents-y :initarg :extents-y :type xcb:INT16) (extents-width :initarg :extents-width :type xcb:CARD16) (extents-height :initarg :extents-height :type xcb:CARD16) (server-time :initarg :server-time :type xcb:TIMESTAMP) (shaped :initarg :shaped :type xcb:BOOL) (pad~0 :initform 11 :type xcb:-pad))) (defclass xcb:shape:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:shape:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16))) (defclass xcb:shape:Rectangles (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (operation :initarg :operation :type xcb:shape:OP) (destination-kind :initarg :destination-kind :type xcb:shape:KIND) (ordering :initarg :ordering :type xcb:BYTE) (pad~0 :initform 1 :type xcb:-pad) (destination-window :initarg :destination-window :type xcb:WINDOW) (x-offset :initarg :x-offset :type xcb:INT16) (y-offset :initarg :y-offset :type xcb:INT16) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size nil) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defclass xcb:shape:Mask (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (operation :initarg :operation :type xcb:shape:OP) (destination-kind :initarg :destination-kind :type xcb:shape:KIND) (pad~0 :initform 2 :type xcb:-pad) (destination-window :initarg :destination-window :type xcb:WINDOW) (x-offset :initarg :x-offset :type xcb:INT16) (y-offset :initarg :y-offset :type xcb:INT16) (source-bitmap :initarg :source-bitmap :type xcb:PIXMAP))) (defclass xcb:shape:Combine (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (operation :initarg :operation :type xcb:shape:OP) (destination-kind :initarg :destination-kind :type xcb:shape:KIND) (source-kind :initarg :source-kind :type xcb:shape:KIND) (pad~0 :initform 1 :type xcb:-pad) (destination-window :initarg :destination-window :type xcb:WINDOW) (x-offset :initarg :x-offset :type xcb:INT16) (y-offset :initarg :y-offset :type xcb:INT16) (source-window :initarg :source-window :type xcb:WINDOW))) (defclass xcb:shape:Offset (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (destination-kind :initarg :destination-kind :type xcb:shape:KIND) (pad~0 :initform 3 :type xcb:-pad) (destination-window :initarg :destination-window :type xcb:WINDOW) (x-offset :initarg :x-offset :type xcb:INT16) (y-offset :initarg :y-offset :type xcb:INT16))) (defclass xcb:shape:QueryExtents (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (destination-window :initarg :destination-window :type xcb:WINDOW))) (defclass xcb:shape:QueryExtents~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (bounding-shaped :initarg :bounding-shaped :type xcb:BOOL) (clip-shaped :initarg :clip-shaped :type xcb:BOOL) (pad~1 :initform 2 :type xcb:-pad) (bounding-shape-extents-x :initarg :bounding-shape-extents-x :type xcb:INT16) (bounding-shape-extents-y :initarg :bounding-shape-extents-y :type xcb:INT16) (bounding-shape-extents-width :initarg :bounding-shape-extents-width :type xcb:CARD16) (bounding-shape-extents-height :initarg :bounding-shape-extents-height :type xcb:CARD16) (clip-shape-extents-x :initarg :clip-shape-extents-x :type xcb:INT16) (clip-shape-extents-y :initarg :clip-shape-extents-y :type xcb:INT16) (clip-shape-extents-width :initarg :clip-shape-extents-width :type xcb:CARD16) (clip-shape-extents-height :initarg :clip-shape-extents-height :type xcb:CARD16))) (defclass xcb:shape:SelectInput (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (destination-window :initarg :destination-window :type xcb:WINDOW) (enable :initarg :enable :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:shape:InputSelected (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (destination-window :initarg :destination-window :type xcb:WINDOW))) (defclass xcb:shape:InputSelected~reply (xcb:-reply) ((enabled :initarg :enabled :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:shape:GetRectangles (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (source-kind :initarg :source-kind :type xcb:shape:KIND) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:shape:GetRectangles~reply (xcb:-reply) ((ordering :initarg :ordering :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (rectangles-len :initarg :rectangles-len :type xcb:CARD32) (pad~0 :initform 20 :type xcb:-pad) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size (xcb:-fieldref 'rectangles-len)) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defconst xcb:shape:event-number-class-alist '((0 . xcb:shape:Notify)) "(event-number . event-class) alist.") (provide 'xcb-shape) ;;; xcb-shape.el ends here xelb-0.18/xcb-shm.el000066400000000000000000000131541353702660000142650ustar00rootroot00000000000000;;; xcb-shm.el --- X11 Shm extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'shm.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:shm:-extension-xname "MIT-SHM") (defconst xcb:shm:-extension-name "Shm") (defconst xcb:shm:-major-version 1) (defconst xcb:shm:-minor-version 2) (require 'xcb-xproto) (xcb:deftypealias 'xcb:shm:SEG 'xcb:-u4) (defclass xcb:shm:Completion (xcb:-event) ((~code :initform 0) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (drawable :initarg :drawable :type xcb:DRAWABLE) (minor-event :initarg :minor-event :type xcb:CARD16) (major-event :initarg :major-event :type xcb:BYTE) (pad~1 :initform 1 :type xcb:-pad) (shmseg :initarg :shmseg :type xcb:shm:SEG) (offset :initarg :offset :type xcb:CARD32))) (defclass xcb:shm:BadSeg (xcb:-error xcb:Value) ((~code :initform 0))) (defclass xcb:shm:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:shm:QueryVersion~reply (xcb:-reply) ((shared-pixmaps :initarg :shared-pixmaps :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16) (uid :initarg :uid :type xcb:CARD16) (gid :initarg :gid :type xcb:CARD16) (pixmap-format :initarg :pixmap-format :type xcb:CARD8) (pad~0 :initform 15 :type xcb:-pad))) (defclass xcb:shm:Attach (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (shmseg :initarg :shmseg :type xcb:shm:SEG) (shmid :initarg :shmid :type xcb:CARD32) (read-only :initarg :read-only :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:shm:Detach (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (shmseg :initarg :shmseg :type xcb:shm:SEG))) (defclass xcb:shm:PutImage (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (total-width :initarg :total-width :type xcb:CARD16) (total-height :initarg :total-height :type xcb:CARD16) (src-x :initarg :src-x :type xcb:CARD16) (src-y :initarg :src-y :type xcb:CARD16) (src-width :initarg :src-width :type xcb:CARD16) (src-height :initarg :src-height :type xcb:CARD16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16) (depth :initarg :depth :type xcb:CARD8) (format :initarg :format :type xcb:CARD8) (send-event :initarg :send-event :type xcb:BOOL) (pad~0 :initform 1 :type xcb:-pad) (shmseg :initarg :shmseg :type xcb:shm:SEG) (offset :initarg :offset :type xcb:CARD32))) (defclass xcb:shm:GetImage (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (plane-mask :initarg :plane-mask :type xcb:CARD32) (format :initarg :format :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (shmseg :initarg :shmseg :type xcb:shm:SEG) (offset :initarg :offset :type xcb:CARD32))) (defclass xcb:shm:GetImage~reply (xcb:-reply) ((depth :initarg :depth :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (visual :initarg :visual :type xcb:VISUALID) (size :initarg :size :type xcb:CARD32))) (defclass xcb:shm:CreatePixmap (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (pid :initarg :pid :type xcb:PIXMAP) (drawable :initarg :drawable :type xcb:DRAWABLE) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (depth :initarg :depth :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (shmseg :initarg :shmseg :type xcb:shm:SEG) (offset :initarg :offset :type xcb:CARD32))) (defclass xcb:shm:AttachFd (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (shmseg :initarg :shmseg :type xcb:shm:SEG) (shm-fd :type xcb:fd) (read-only :initarg :read-only :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:shm:CreateSegment (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (shmseg :initarg :shmseg :type xcb:shm:SEG) (size :initarg :size :type xcb:CARD32) (read-only :initarg :read-only :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:shm:CreateSegment~reply (xcb:-reply) ((nfd :initarg :nfd :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (shm-fd :type xcb:fd) (pad~0 :initform 24 :type xcb:-pad))) (defconst xcb:shm:error-number-class-alist '((0 . xcb:shm:BadSeg)) "(error-number . error-class) alist.") (defconst xcb:shm:event-number-class-alist '((0 . xcb:shm:Completion)) "(event-number . event-class) alist.") (provide 'xcb-shm) ;;; xcb-shm.el ends here xelb-0.18/xcb-sync.el000066400000000000000000000253021353702660000144500ustar00rootroot00000000000000;;; xcb-sync.el --- X11 Sync extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'sync.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:sync:-extension-xname "SYNC") (defconst xcb:sync:-extension-name "Sync") (defconst xcb:sync:-major-version 3) (defconst xcb:sync:-minor-version 1) (require 'xcb-xproto) (xcb:deftypealias 'xcb:sync:ALARM 'xcb:-u4) (defconst xcb:sync:ALARMSTATE:Active 0) (defconst xcb:sync:ALARMSTATE:Inactive 1) (defconst xcb:sync:ALARMSTATE:Destroyed 2) (xcb:deftypealias 'xcb:sync:COUNTER 'xcb:-u4) (xcb:deftypealias 'xcb:sync:FENCE 'xcb:-u4) (defconst xcb:sync:TESTTYPE:PositiveTransition 0) (defconst xcb:sync:TESTTYPE:NegativeTransition 1) (defconst xcb:sync:TESTTYPE:PositiveComparison 2) (defconst xcb:sync:TESTTYPE:NegativeComparison 3) (defconst xcb:sync:VALUETYPE:Absolute 0) (defconst xcb:sync:VALUETYPE:Relative 1) (defconst xcb:sync:CA:Counter 1) (defconst xcb:sync:CA:ValueType 2) (defconst xcb:sync:CA:Value 4) (defconst xcb:sync:CA:TestType 8) (defconst xcb:sync:CA:Delta 16) (defconst xcb:sync:CA:Events 32) (defclass xcb:sync:INT64 (xcb:-struct) ((hi :initarg :hi :type xcb:INT32) (lo :initarg :lo :type xcb:CARD32))) (defclass xcb:sync:SYSTEMCOUNTER (xcb:-struct) ((counter :initarg :counter :type xcb:sync:COUNTER) (resolution :initarg :resolution :type xcb:sync:INT64) (name-len :initarg :name-len :type xcb:CARD16) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore) (pad~0 :initform 4 :type xcb:-pad-align))) (defclass xcb:sync:TRIGGER (xcb:-struct) ((counter :initarg :counter :type xcb:sync:COUNTER) (wait-type :initarg :wait-type :type xcb:CARD32) (wait-value :initarg :wait-value :type xcb:sync:INT64) (test-type :initarg :test-type :type xcb:CARD32))) (defclass xcb:sync:WAITCONDITION (xcb:-struct) ((trigger :initarg :trigger :type xcb:sync:TRIGGER) (event-threshold :initarg :event-threshold :type xcb:sync:INT64))) (defclass xcb:sync:Counter (xcb:-error) ((~code :initform 0) (bad-counter :initarg :bad-counter :type xcb:CARD32) (minor-opcode :initarg :minor-opcode :type xcb:CARD16) (major-opcode :initarg :major-opcode :type xcb:CARD8))) (defclass xcb:sync:Alarm (xcb:-error) ((~code :initform 1) (bad-alarm :initarg :bad-alarm :type xcb:CARD32) (minor-opcode :initarg :minor-opcode :type xcb:CARD16) (major-opcode :initarg :major-opcode :type xcb:CARD8))) (defclass xcb:sync:Initialize (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (desired-major-version :initarg :desired-major-version :type xcb:CARD8) (desired-minor-version :initarg :desired-minor-version :type xcb:CARD8))) (defclass xcb:sync:Initialize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD8) (minor-version :initarg :minor-version :type xcb:CARD8) (pad~1 :initform 22 :type xcb:-pad))) (defclass xcb:sync:ListSystemCounters (xcb:-request) ((~opcode :initform 1 :type xcb:-u1))) (defclass xcb:sync:ListSystemCounters~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (counters-len :initarg :counters-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (counters~ :initform '(name counters type xcb:sync:SYSTEMCOUNTER size (xcb:-fieldref 'counters-len)) :type xcb:-list) (counters :initarg :counters :type xcb:-ignore))) (defclass xcb:sync:CreateCounter (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (id :initarg :id :type xcb:sync:COUNTER) (initial-value :initarg :initial-value :type xcb:sync:INT64))) (defclass xcb:sync:DestroyCounter (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (counter :initarg :counter :type xcb:sync:COUNTER))) (defclass xcb:sync:QueryCounter (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (counter :initarg :counter :type xcb:sync:COUNTER))) (defclass xcb:sync:QueryCounter~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (counter-value :initarg :counter-value :type xcb:sync:INT64))) (defclass xcb:sync:Await (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (wait-list~ :initform '(name wait-list type xcb:sync:WAITCONDITION size nil) :type xcb:-list) (wait-list :initarg :wait-list :type xcb:-ignore))) (defclass xcb:sync:ChangeCounter (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (counter :initarg :counter :type xcb:sync:COUNTER) (amount :initarg :amount :type xcb:sync:INT64))) (defclass xcb:sync:SetCounter (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (counter :initarg :counter :type xcb:sync:COUNTER) (value :initarg :value :type xcb:sync:INT64))) (defclass xcb:sync:CreateAlarm (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (id :initarg :id :type xcb:sync:ALARM) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 counter) (2 valueType) (4 value) (8 testType) (16 delta) (32 events))) :type xcb:-switch) (counter :initarg :counter :type xcb:sync:COUNTER) (valueType :initarg :valueType :type xcb:CARD32) (value :initarg :value :type xcb:sync:INT64) (testType :initarg :testType :type xcb:CARD32) (delta :initarg :delta :type xcb:sync:INT64) (events :initarg :events :type xcb:CARD32))) (defclass xcb:sync:ChangeAlarm (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (id :initarg :id :type xcb:sync:ALARM) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 counter) (2 valueType) (4 value) (8 testType) (16 delta) (32 events))) :type xcb:-switch) (counter :initarg :counter :type xcb:sync:COUNTER) (valueType :initarg :valueType :type xcb:CARD32) (value :initarg :value :type xcb:sync:INT64) (testType :initarg :testType :type xcb:CARD32) (delta :initarg :delta :type xcb:sync:INT64) (events :initarg :events :type xcb:CARD32))) (defclass xcb:sync:DestroyAlarm (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (alarm :initarg :alarm :type xcb:sync:ALARM))) (defclass xcb:sync:QueryAlarm (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (alarm :initarg :alarm :type xcb:sync:ALARM))) (defclass xcb:sync:QueryAlarm~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (trigger :initarg :trigger :type xcb:sync:TRIGGER) (delta :initarg :delta :type xcb:sync:INT64) (events :initarg :events :type xcb:BOOL) (state :initarg :state :type xcb:CARD8) (pad~1 :initform 2 :type xcb:-pad))) (defclass xcb:sync:SetPriority (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (id :initarg :id :type xcb:CARD32) (priority :initarg :priority :type xcb:INT32))) (defclass xcb:sync:GetPriority (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (id :initarg :id :type xcb:CARD32))) (defclass xcb:sync:GetPriority~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (priority :initarg :priority :type xcb:INT32))) (defclass xcb:sync:CreateFence (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (fence :initarg :fence :type xcb:sync:FENCE) (initially-triggered :initarg :initially-triggered :type xcb:BOOL))) (defclass xcb:sync:TriggerFence (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (fence :initarg :fence :type xcb:sync:FENCE))) (defclass xcb:sync:ResetFence (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (fence :initarg :fence :type xcb:sync:FENCE))) (defclass xcb:sync:DestroyFence (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (fence :initarg :fence :type xcb:sync:FENCE))) (defclass xcb:sync:QueryFence (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (fence :initarg :fence :type xcb:sync:FENCE))) (defclass xcb:sync:QueryFence~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (triggered :initarg :triggered :type xcb:BOOL) (pad~1 :initform 23 :type xcb:-pad))) (defclass xcb:sync:AwaitFence (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (fence-list~ :initform '(name fence-list type xcb:sync:FENCE size nil) :type xcb:-list) (fence-list :initarg :fence-list :type xcb:-ignore))) (defclass xcb:sync:CounterNotify (xcb:-event) ((~code :initform 0) (kind :initarg :kind :type xcb:CARD8) (~sequence :type xcb:CARD16) (counter :initarg :counter :type xcb:sync:COUNTER) (wait-value :initarg :wait-value :type xcb:sync:INT64) (counter-value :initarg :counter-value :type xcb:sync:INT64) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (count :initarg :count :type xcb:CARD16) (destroyed :initarg :destroyed :type xcb:BOOL) (pad~0 :initform 1 :type xcb:-pad))) (defclass xcb:sync:AlarmNotify (xcb:-event) ((~code :initform 1) (kind :initarg :kind :type xcb:CARD8) (~sequence :type xcb:CARD16) (alarm :initarg :alarm :type xcb:sync:ALARM) (counter-value :initarg :counter-value :type xcb:sync:INT64) (alarm-value :initarg :alarm-value :type xcb:sync:INT64) (timestamp :initarg :timestamp :type xcb:TIMESTAMP) (state :initarg :state :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defconst xcb:sync:error-number-class-alist '((0 . xcb:sync:Counter) (1 . xcb:sync:Alarm)) "(error-number . error-class) alist.") (defconst xcb:sync:event-number-class-alist '((0 . xcb:sync:CounterNotify) (1 . xcb:sync:AlarmNotify)) "(event-number . event-class) alist.") (provide 'xcb-sync) ;;; xcb-sync.el ends here xelb-0.18/xcb-systemtray.el000066400000000000000000000122111353702660000157130ustar00rootroot00000000000000;;; xcb-systemtray.el --- System tray protocol -*- lexical-binding: t -*- ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library implements the system tray protocol. ;; Usage tips: ;; + Do not forget to call `xcb:systemtray:init' for _every_ connection using ;; this library. ;; + Use `xcb:systemtray:SendEvent' instead of `xcb:SendEvent' to send opcode ;; messages defined in this library. ;; + Initializing this library auto loads and initializes 'xcb-ewmh'. ;; References: ;; + System Tray Protocol (https://specifications.freedesktop.org/ ;; systemtray-spec/systemtray-spec-0.3.html) ;;; Code: (require 'xcb-ewmh) ;; System tray atoms. (eval-and-compile (defconst xcb:systemtray:-atoms ;_NET_SYSTEM_TRAY_Sn are left out. '(_NET_SYSTEM_TRAY_OPCODE _NET_SYSTEM_TRAY_ORIENTATION _NET_SYSTEM_TRAY_VISUAL _NET_SYSTEM_TRAY_MESSAGE_DATA) "Atoms involved in the system tray protocol.") (dolist (atom xcb:systemtray:-atoms) (eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil)))) ;; Opcodes. (defconst xcb:systemtray:opcode:REQUEST-DOCK 0) (defconst xcb:systemtray:opcode:BEGIN-MESSAGE 1) (defconst xcb:systemtray:opcode:CANCEL-MESSAGE 2) (cl-defmethod xcb:systemtray:init ((obj xcb:connection) &optional force) "Initialize the system tray module. This method must be called before using any other method in this module." (when (or force (not xcb:Atom:_NET_SYSTEM_TRAY_OPCODE)) (xcb:ewmh:init obj) ;required. (let ((atoms xcb:systemtray:-atoms)) (dotimes (i (x-display-screens)) (push (intern (format "_NET_SYSTEM_TRAY_S%d" i)) atoms)) (xcb:icccm:intern-atoms obj atoms force)))) (defclass xcb:systemtray:SendEvent (xcb:SendEvent) ((propagate :initform 0) (event-mask :initform xcb:EventMask:NoEvent)) :documentation "Send system tray opcode message.") (defclass xcb:systemtray:-ClientMessage (xcb:icccm:--ClientMessage xcb:ClientMessage) ((format :initform 32) (type :initform xcb:Atom:_NET_SYSTEM_TRAY_OPCODE) (time :initarg :time :type xcb:TIMESTAMP) ;new slot (opcode :initarg :opcode :type xcb:CARD32)) ;new slot :documentation "An system tray opcode message.") (defclass xcb:systemtray:REQUEST-DOCK (xcb:systemtray:-ClientMessage) ((opcode :initform xcb:systemtray:opcode:REQUEST-DOCK) (id :initarg :id :type xcb:CARD32) (pad~0 :initform 8 :type xcb:-pad)) :documentation "Dock a tray icon.") (defclass xcb:systemtray:BEGIN-MESSAGE (xcb:systemtray:-ClientMessage) ((opcode :initform xcb:systemtray:opcode:BEGIN-MESSAGE) (timeout :initarg :timeout :type xcb:TIMESTAMP) (length :initarg :length :type xcb:CARD32) (id :initarg :id :type xcb:CARD32)) :documentation "Begin balloon message.") (defclass xcb:systemtray:MESSAGE-DATA (xcb:icccm:--ClientMessage xcb:ClientMessage) ((format :initform 8) (type :initform xcb:Atom:_NET_SYSTEM_TRAY_MESSAGE_DATA) (data~ :initform '(name data type xcb:CARD8 size 20) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:systemtray:CANCEL-MESSAGE (xcb:systemtray:-ClientMessage) ((opcode :initform xcb:systemtray:opcode:CANCEL-MESSAGE) (id :initarg :id :type xcb:CARD32) (pad~0 :initform 8 :type xcb:-pad)) :documentation "Cancel balloon message.") ;; Value of _NET_SYSTEM_TRAY_ORIENTATION. (defconst xcb:systemtray:ORIENTATION:HORZ 0) (defconst xcb:systemtray:ORIENTATION:VERT 1) (defclass xcb:xembed:get-_NET_SYSTEM_TRAY_ORIENTATION (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_SYSTEM_TRAY_ORIENTATION) (type :initform xcb:Atom:CARDINAL))) (defclass xcb:xembed:get-_NET_SYSTEM_TRAY_ORIENTATION~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:xembed:set-_NET_SYSTEM_TRAY_ORIENTATION (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_SYSTEM_TRAY_ORIENTATION) (type :initform xcb:Atom:CARDINAL) (format :initform 32))) (defclass xcb:xembed:get-_NET_SYSTEM_TRAY_VISUAL (xcb:icccm:-GetProperty-single) ((property :initform xcb:Atom:_NET_SYSTEM_TRAY_VISUAL) (type :initform xcb:Atom:VISUALID))) (defclass xcb:xembed:get-_NET_SYSTEM_TRAY_VISUAL~reply (xcb:icccm:-GetProperty-single~reply) nil) (defclass xcb:xembed:set-_NET_SYSTEM_TRAY_VISUAL (xcb:icccm:-ChangeProperty-single) ((property :initform xcb:Atom:_NET_SYSTEM_TRAY_VISUAL) (type :initform xcb:Atom:VISUALID) (format :initform 32))) (provide 'xcb-systemtray) ;;; xcb-systemtray.el ends here xelb-0.18/xcb-types.el000066400000000000000000001075031353702660000146440ustar00rootroot00000000000000;;; xcb-types.el --- Type definitions for XCB -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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: (eval-when-compile (require 'cl-lib)) (require 'cl-generic) (require 'eieio) (require 'xcb-debug) (define-minor-mode xcb:debug "Debug-logging enabled if non-nil" :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)) ;;;; Fix backward compatibility issues with Emacs 24 (eval-and-compile (when (< emacs-major-version 25) ;; Copied from Emacs 25 with documentation and comments stripped. ;; The version of `with-slots' in Emacs 24 is buggy and inefficient. (defmacro with-slots (spec-list object &rest body) (declare (indent 2) (debug (sexp sexp def-body))) (require 'cl-lib) (macroexp-let2 nil object object `(cl-symbol-macrolet ,(mapcar (lambda (entry) (let ((var (if (listp entry) (car entry) entry)) (slot (if (listp entry) (cadr entry) entry))) (list var `(slot-value ,object ',slot)))) spec-list) ,@body))))) ;; Backport some functions to Emacs 24 (eval-and-compile (unless (fboundp 'eieio-class-slots) (defun eieio-class-slots (class) (let* ((tmp (get class 'eieio-class-definition)) (names (aref tmp 5)) (initforms (aref tmp 6)) (types (aref tmp 8)) result) (dotimes (i (length names)) (setq result (nconc result (list (vector (elt names i) (elt initforms i) (elt types i)))))) result)))) (eval-and-compile (unless (fboundp 'eieio-slot-descriptor-name) (defsubst eieio-slot-descriptor-name (slot) (aref slot 0)))) (eval-and-compile (unless (fboundp 'cl--slot-descriptor-initform) (defsubst cl--slot-descriptor-initform (slot) (aref slot 1)))) (eval-when-compile (unless (fboundp 'cl--slot-descriptor-type) (defsubst cl--slot-descriptor-type (slot) (aref slot 2)))) ;;;; Utility functions (defsubst xcb:-pack-u1 (value) "1 byte unsigned integer => byte array." (vector value)) (defsubst xcb:-pack-i1 (value) "1 byte signed integer => byte array." (xcb:-pack-u1 (if (>= value 0) value (1+ (logand #xFF (lognot (- value))))))) (defsubst xcb:-pack-u2 (value) "2 bytes unsigned integer => byte array (MSB first)." (vector (logand (lsh value -8) #xFF) (logand value #xFF))) (defsubst xcb:-pack-u2-lsb (value) "2 bytes unsigned integer => byte array (LSB first)." (vector (logand value #xFF) (logand (lsh value -8) #xFF))) (defsubst xcb:-pack-i2 (value) "2 bytes signed integer => byte array (MSB first)." (xcb:-pack-u2 (if (>= value 0) value (1+ (logand #xFFFF (lognot (- value))))))) (defsubst xcb:-pack-i2-lsb (value) "2 bytes signed integer => byte array (LSB first)." (xcb:-pack-u2-lsb (if (>= value 0) value (1+ (logand #xFFFF (lognot (- value))))))) ;; 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 (lsh 1 32)) ;; 64 bit (progn (defsubst xcb:-pack-u4 (value) "4 bytes unsigned integer => byte array (MSB first, 64-bit)." (vector (logand (lsh value -24) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -8) #xFF) (logand value #xFF))) (defsubst xcb:-pack-u4-lsb (value) "4 byte unsigned integer => byte array (LSB first, 64-bit)." (vector (logand value #xFF) (logand (lsh value -8) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF))) (defsubst xcb:-pack-u8 (value) "8 bytes unsigned integer => byte array (MSB first)." (if (integerp value) (vector (logand (lsh value -56) #xFF) (logand (lsh value -48) #xFF) (logand (lsh value -40) #xFF) (logand (lsh value -32) #xFF) (logand (lsh value -24) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -8) #xFF) (logand value #xFF)) (let* ((msdw (min 4294967295. (truncate value 4294967296.))) (lsdw (min 4294967295. (truncate (- value (* msdw 4294967296.0)))))) (vector (logand (lsh msdw -24) #xFF) (logand (lsh msdw -16) #xFF) (logand (lsh msdw -8) #xFF) (logand msdw #xFF) (logand (lsh lsdw -24) #xFF) (logand (lsh lsdw -16) #xFF) (logand (lsh 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 (lsh value -8) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF) (logand (lsh value -32) #xFF) (logand (lsh value -40) #xFF) (logand (lsh value -48) #xFF) (logand (lsh value -56) #xFF)) (let* ((msdw (min 4294967295. (truncate value 4294967296.))) (lsdw (min 4294967295. (truncate (- value (* msdw 4294967296.0)))))) (vector (logand lsdw #xFF) (logand (lsh lsdw -8) #xFF) (logand (lsh lsdw -16) #xFF) (logand (lsh lsdw -24) #xFF) (logand msdw #xFF) (logand (lsh msdw -8) #xFF) (logand (lsh msdw -16) #xFF) (logand (lsh 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 (lsh value -24) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -8) #xFF) (logand value #xFF)) (let* ((msw (truncate value #x10000)) (lsw (truncate (- value (* msw 65536.0))))) (vector (logand (lsh msw -8) #xFF) (logand msw #xFF) (logand (lsh lsw -8) #xFF) (logand lsw #xFF))))) (defsubst xcb:-pack-u4-lsb (value) "4 bytes unsigned integer => byte array (LSB first, 32-bit)." (if (integerp value) (vector (logand value #xFF) (logand (lsh value -8) #xFF) (logand (lsh value -16) #xFF) (logand (lsh value -24) #xFF)) (let* ((msw (truncate value #x10000)) (lsw (truncate (- value (* msw 65536.0))))) (vector (logand lsw #xFF) (logand (lsh lsw -8) #xFF) (logand msw #xFF) (logand (lsh 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 (lsh value -24) #xFF) (logand (lsh value -16) #xFF) (logand (lsh 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 (lsh msw -8) #xFF) (logand msw #xFF) (logand (lsh w1 -8) #xFF) (logand w1 #xFF) (logand (lsh w2 -8) #xFF) (logand w2 #xFF) (logand (lsh 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 (lsh value -8) #xFF) (logand (lsh value -16) #xFF) (logand (lsh 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 (lsh lsw -8) #xFF) (logand w2 #xFF) (logand (lsh w2 -8) #xFF) (logand w1 #xFF) (logand (lsh w1 -8) #xFF) (logand msw #xFF) (logand (lsh msw -8) #xFF))))))) (defsubst xcb:-pack-i4 (value) "4 bytes signed integer => byte array (MSB first)." (xcb:-pack-u4 (if (>= value 0) value (+ value 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 (lsh (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) (lsh (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 (lsh 1 32)) ;; 64-bit (progn (defsubst xcb:-unpack-u4 (data offset) "Byte array => 4 bytes unsigned integer (MSB first, 64-bit)." (logior (lsh (aref data offset) 24) (lsh (aref data (1+ offset)) 16) (lsh (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) (lsh (aref data (1+ offset)) 8) (lsh (aref data (+ offset 2)) 16) (lsh (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) (lsh msb 56)) (logior (lsh (aref data (1+ offset)) 48) (lsh (aref data (+ offset 2)) 40) (lsh (aref data (+ offset 3)) 32) (lsh (aref data (+ offset 4)) 24) (lsh (aref data (+ offset 5)) 16) (lsh (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) (lsh msb 56)) (logior (lsh (aref data (+ offset 6)) 48) (lsh (aref data (+ offset 5)) 40) (lsh (aref data (+ offset 4)) 32) (lsh (aref data (+ offset 3)) 24) (lsh (aref data (+ offset 2)) 16) (lsh (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) (lsh msb 24)) (logior (lsh (aref data (1+ offset)) 16) (lsh (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) (lsh msb 24)) (logior (aref data offset) (lsh (aref data (1+ offset)) 8) (lsh (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 (lsh (aref data (+ offset 5)) 16) (lsh (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 (lsh (aref data (+ offset 2)) 16) (lsh (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 (defmacro xcb:-fieldref (field) "Evaluate a field." `(slot-value obj ,field)) (defmacro xcb:-paramref (field) "Evaluate a field." `(slot-value ctx ,field)) (defsubst xcb:-popcount (mask) "Return the popcount of integer MASK." (apply #'+ (mapcar (lambda (i) (logand (lsh mask i) 1)) ;; 32-bit number assumed (CARD32) (eval-when-compile (number-sequence -31 0))))) (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) ;; (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) ;;;; 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)) :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))))) 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: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))) (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 0 (eieio-oref-default obj slot-name) ctx total-length)) (setf (slot-value obj slot-name) (car tmp)) (setq byte-array (substring byte-array (cadr tmp))) (setq result (+ result (cadr tmp))) (when (eq type 'xcb:-switch) ;xcb:-switch always finishes a struct (throw 'break 'nil))))) 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: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 (eieio-oref-default obj name) nil total-length)) (setf (slot-value obj name) (car tmp)) (setq count (+ count (cadr tmp))) (setq data (substring data (cadr tmp))))))) (list initform count))) ((and x (guard (child-of-class-p x 'xcb:-struct))) (let* ((struct-obj (make-instance x)) (tmp (xcb:unmarshal struct-obj (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 xcb:connection) 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)))) (when (> size (length result)) (setq result (vconcat result (make-vector (- size (length result)) 0)))) result)) ;; (cl-defmethod xcb:unmarshal ((obj xcb:-union) byte-array &optional ctx total-length) "Fill in every field in union OBJ, according to BYTE-ARRAY. The optional argument CTX is for ." (unless total-length (setq total-length (length byte-array))) (let ((slots (eieio-class-slots (eieio-object-class obj))) slot-name tmp type) (dolist (slot slots) (setq type (cl--slot-descriptor-type slot)) (unless (eq type 'xcb:-ignore) (setq slot-name (eieio-slot-descriptor-name slot) tmp (xcb:-unmarshal-field obj type byte-array 0 (eieio-oref-default obj slot-name) ctx total-length)) (setf (slot-value obj (eieio-slot-descriptor-name slot)) (car tmp)))) (slot-value obj '~size))) (provide 'xcb-types) ;;; xcb-types.el ends here xelb-0.18/xcb-xc_misc.el000066400000000000000000000051101353702660000151140ustar00rootroot00000000000000;;; xcb-xc_misc.el --- X11 XCMisc extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xc_misc.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xc_misc:-extension-xname "XC-MISC") (defconst xcb:xc_misc:-extension-name "XCMisc") (defconst xcb:xc_misc:-major-version 1) (defconst xcb:xc_misc:-minor-version 1) (defclass xcb:xc_misc:GetVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD16) (client-minor-version :initarg :client-minor-version :type xcb:CARD16))) (defclass xcb:xc_misc:GetVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (server-major-version :initarg :server-major-version :type xcb:CARD16) (server-minor-version :initarg :server-minor-version :type xcb:CARD16))) (defclass xcb:xc_misc:GetXIDRange (xcb:-request) ((~opcode :initform 1 :type xcb:-u1))) (defclass xcb:xc_misc:GetXIDRange~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (start-id :initarg :start-id :type xcb:CARD32) (count :initarg :count :type xcb:CARD32))) (defclass xcb:xc_misc:GetXIDList (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (count :initarg :count :type xcb:CARD32))) (defclass xcb:xc_misc:GetXIDList~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (ids-len :initarg :ids-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (ids~ :initform '(name ids type xcb:CARD32 size (xcb:-fieldref 'ids-len)) :type xcb:-list) (ids :initarg :ids :type xcb:-ignore))) (provide 'xcb-xc_misc) ;;; xcb-xc_misc.el ends here xelb-0.18/xcb-xembed.el000066400000000000000000000153661353702660000147510ustar00rootroot00000000000000;;; xcb-xembed.el --- XEmbed protocol -*- lexical-binding: t -*- ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library implements the XEmbed protocol. ;; Usage tips: ;; + Do not forget to call `xcb:xembed:init' for _every_ connection using this ;; library. ;; + Use `xcb:xembed:SendEvent' instead of `xcb:SendEvent' to send XEmbed ;; messages defined in this library. ;; References: ;; + Xembed protocol (https://specifications.freedesktop.org/ ;; xembed-spec/xembed-spec-0.5.html) ;;; Code: (require 'xcb-icccm) ;; XEmbed atoms (eval-and-compile (defconst xcb:xembed:-atoms '(_XEMBED_INFO _XEMBED) "XEmbed atoms.") (dolist (atom xcb:xembed:-atoms) (eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil)))) ;; XEMBED message opcodes. (defconst xcb:xembed:opcode:EMBEDDED-NOTIFY 0) (defconst xcb:xembed:opcode:WINDOW-ACTIVATE 1) (defconst xcb:xembed:opcode:WINDOW-DEACTIVATE 2) (defconst xcb:xembed:opcode:REQUEST-FOCUS 3) (defconst xcb:xembed:opcode:FOCUS-IN 4) (defconst xcb:xembed:opcode:FOCUS-OUT 5) (defconst xcb:xembed:opcode:FOCUS-NEXT 6) (defconst xcb:xembed:opcode:FOCUS-PREV 7) (defconst xcb:xembed:opcode:MODALITY-ON 10) (defconst xcb:xembed:opcode:MODALITY-OFF 11) (defconst xcb:xembed:opcode:REGISTER-ACCELERATOR 12) (defconst xcb:xembed:opcode:UNREGISTER-ACCELERATOR 13) (defconst xcb:xembed:opcode:ACTIVATE-ACCELERATOR 14) (cl-defmethod xcb:xembed:init ((obj xcb:connection) &optional force) "Initialize the XEmbed module. This method must be called before using any other method in this module." (when (or force (not xcb:Atom:_XEMBED_INFO)) (xcb:icccm:intern-atoms obj xcb:xembed:-atoms force))) ;; Flags for _XEMBED_INFO. (defconst xcb:xembed:MAPPED 1) (defclass xcb:xembed:get-_XEMBED_INFO (xcb:icccm:-GetProperty-explicit) ((property :initform xcb:Atom:_XEMBED_INFO) (type :initform xcb:Atom:_XEMBED_INFO))) (defclass xcb:xembed:get-_XEMBED_INFO~reply (xcb:icccm:-GetProperty-explicit~reply) ((version :type xcb:-ignore) (flags :type xcb:-ignore))) (defclass xcb:xembed:set-_XEMBED_INFO (xcb:icccm:-ChangeProperty-explicit) ((property :initform xcb:Atom:_XEMBED_INFO) (type :initform xcb:Atom:_XEMBED_INFO) (format :initform 32) (version :initarg :version :type xcb:-ignore) (flags :initarg :flags :type xcb:-ignore))) (defclass xcb:xembed:SendEvent (xcb:SendEvent) ((propagate :initform 0) (event-mask :initform xcb:EventMask:NoEvent)) :documentation "Send XEmbed message.") (defclass xcb:xembed:-ClientMessage (xcb:icccm:--ClientMessage xcb:ClientMessage) ((format :initform 32) (type :initform xcb:Atom:_XEMBED) (time :initarg :time :type xcb:TIMESTAMP) ;new slot (opcode :initarg :opcode :type xcb:CARD32) ;new slot (detail :initarg :detail :initform 0 :type xcb:CARD32)) ;new slot :documentation "An XEmbed client message.") (defclass xcb:xembed:EMBEDDED-NOTIFY (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:EMBEDDED-NOTIFY) (embedder :initarg :embedder :type xcb:WINDOW) (version :initarg :version :type xcb:CARD32))) (defclass xcb:xembed:WINDOW-ACTIVATE (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:WINDOW-ACTIVATE) (pad~0 :initform 8 :type xcb:-pad))) (defclass xcb:xembed:WINDOW-DEACTIVATE (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:WINDOW-DEACTIVATE) (pad~0 :initform 8 :type xcb:-pad))) (defclass xcb:xembed:REQUEST-FOCUS (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:REQUEST-FOCUS) (pad~0 :initform 8 :type xcb:-pad))) ;; Details for xcb:xembed:FOCUS-IN. (defconst xcb:xembed:FOCUS:CURRENT 0) (defconst xcb:xembed:FOCUS:FIRST 1) (defconst xcb:xembed:FOCUS:LAST 2) ;; Directions for focusing. (defconst xcb:xembed:DIRECTION:DEFAULT 0) (defconst xcb:xembed:DIRECTION:UP-DOWN 1) (defconst xcb:xembed:DIRECTION:LEFT-RIGHT 2) (defclass xcb:xembed:FOCUS-IN (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:FOCUS-IN) (direction :initarg :direction :initform 0 :type xcb:CARD32) (pad~0 :initform 4 :type xcb:-pad))) (defclass xcb:xembed:FOCUS-OUT (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:FOCUS-OUT) (pad~0 :initform 8 :type xcb:-pad))) (defclass xcb:xembed:FOCUS-NEXT (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:FOCUS-NEXT) (direction :initarg :direction :initform 0 :type xcb:CARD32) (pad~0 :initform 4 :type xcb:-pad))) (defclass xcb:xembed:FOCUS-PREV (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:FOCUS-PREV) (direction :initarg :direction :initform 0 :type xcb:CARD32) (pad~0 :initform 4 :type xcb:-pad))) ;; Modifiers field for xcb:xembed:REGISTER-ACCELERATOR. (defconst xcb:xembed:MODIFIER:SHIFT 1) (defconst xcb:xembed:MODIFIER:CONTROL 2) (defconst xcb:xembed:MODIFIER:ALT 4) (defconst xcb:xembed:MODIFIER:SUPER 8) (defconst xcb:xembed:MODIFIER:HYPER 16) (defclass xcb:xembed:REGISTER-ACCELERATOR (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:REGISTER-ACCELERATOR) (keysym :initarg :keysym :type xcb:KEYSYM) (modifier :initarg :modifier :type xcb:CARD32))) (defclass xcb:xembed:UNREGISTER-ACCELERATOR (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:UNREGISTER-ACCELERATOR) (pad~0 :initform 8 :type xcb:-pad))) ;; Flags for XEMBED-ACTIVATE-ACCELERATOR. (defconst xcb:xembed:ACCELERATOR:OVERLOADED 1) (defclass xcb:xembed:ACTIVATE-ACCELERATOR (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:ACTIVATE-ACCELERATOR) (flags :initarg :flags :type xcb:CARD32) (pad~0 :initform 4 :type xcb:-pad))) (defclass xcb:xembed:MODALITY-ON (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:MODALITY-ON) (pad~0 :initform 8 :type xcb:-pad))) (defclass xcb:xembed:MODALITY-OFF (xcb:xembed:-ClientMessage) ((opcode :initform xcb:xembed:opcode:MODALITY-OFF) (pad~0 :initform 8 :type xcb:-pad))) (provide 'xcb-xembed) ;;; xcb-xembed.el ends here xelb-0.18/xcb-xevie.el000066400000000000000000000064061353702660000146200ustar00rootroot00000000000000;;; xcb-xevie.el --- X11 Xevie extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xevie.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xevie:-extension-xname "XEVIE") (defconst xcb:xevie:-extension-name "Xevie") (defconst xcb:xevie:-major-version 1) (defconst xcb:xevie:-minor-version 0) (defclass xcb:xevie:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD16) (client-minor-version :initarg :client-minor-version :type xcb:CARD16))) (defclass xcb:xevie:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (server-major-version :initarg :server-major-version :type xcb:CARD16) (server-minor-version :initarg :server-minor-version :type xcb:CARD16) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:xevie:Start (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xevie:Start~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad))) (defclass xcb:xevie:End (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (cmap :initarg :cmap :type xcb:CARD32))) (defclass xcb:xevie:End~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad))) (defconst xcb:xevie:Datatype:Unmodified 0) (defconst xcb:xevie:Datatype:Modified 1) (defclass xcb:xevie:Event (xcb:-struct) ((pad~0 :initform 32 :type xcb:-pad))) (defclass xcb:xevie:Send (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (event :initarg :event :type xcb:xevie:Event) (data-type :initarg :data-type :type xcb:CARD32) (pad~0 :initform 64 :type xcb:-pad))) (defclass xcb:xevie:Send~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad))) (defclass xcb:xevie:SelectInput (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (event-mask :initarg :event-mask :type xcb:CARD32))) (defclass xcb:xevie:SelectInput~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad))) (provide 'xcb-xevie) ;;; xcb-xevie.el ends here xelb-0.18/xcb-xf86dri.el000066400000000000000000000175471353702660000150020ustar00rootroot00000000000000;;; xcb-xf86dri.el --- X11 XF86Dri extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xf86dri.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xf86dri:-extension-xname "XFree86-DRI") (defconst xcb:xf86dri:-extension-name "XF86Dri") (defconst xcb:xf86dri:-major-version 4) (defconst xcb:xf86dri:-minor-version 1) (defclass xcb:xf86dri:DrmClipRect (xcb:-struct) ((x1 :initarg :x1 :type xcb:INT16) (y1 :initarg :y1 :type xcb:INT16) (x2 :initarg :x2 :type xcb:INT16) (x3 :initarg :x3 :type xcb:INT16))) (defclass xcb:xf86dri:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:xf86dri:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (dri-major-version :initarg :dri-major-version :type xcb:CARD16) (dri-minor-version :initarg :dri-minor-version :type xcb:CARD16) (dri-minor-patch :initarg :dri-minor-patch :type xcb:CARD32))) (defclass xcb:xf86dri:QueryDirectRenderingCapable (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xf86dri:QueryDirectRenderingCapable~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (is-capable :initarg :is-capable :type xcb:BOOL))) (defclass xcb:xf86dri:OpenConnection (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xf86dri:OpenConnection~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (sarea-handle-low :initarg :sarea-handle-low :type xcb:CARD32) (sarea-handle-high :initarg :sarea-handle-high :type xcb:CARD32) (bus-id-len :initarg :bus-id-len :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (bus-id~ :initform '(name bus-id type xcb:char size (xcb:-fieldref 'bus-id-len)) :type xcb:-list) (bus-id :initarg :bus-id :type xcb:-ignore))) (defclass xcb:xf86dri:CloseConnection (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xf86dri:GetClientDriverName (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xf86dri:GetClientDriverName~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (client-driver-major-version :initarg :client-driver-major-version :type xcb:CARD32) (client-driver-minor-version :initarg :client-driver-minor-version :type xcb:CARD32) (client-driver-patch-version :initarg :client-driver-patch-version :type xcb:CARD32) (client-driver-name-len :initarg :client-driver-name-len :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad) (client-driver-name~ :initform '(name client-driver-name type xcb:char size (xcb:-fieldref 'client-driver-name-len)) :type xcb:-list) (client-driver-name :initarg :client-driver-name :type xcb:-ignore))) (defclass xcb:xf86dri:CreateContext (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (visual :initarg :visual :type xcb:CARD32) (context :initarg :context :type xcb:CARD32))) (defclass xcb:xf86dri:CreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (hw-context :initarg :hw-context :type xcb:CARD32))) (defclass xcb:xf86dri:DestroyContext (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (context :initarg :context :type xcb:CARD32))) (defclass xcb:xf86dri:CreateDrawable (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (drawable :initarg :drawable :type xcb:CARD32))) (defclass xcb:xf86dri:CreateDrawable~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (hw-drawable-handle :initarg :hw-drawable-handle :type xcb:CARD32))) (defclass xcb:xf86dri:DestroyDrawable (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (drawable :initarg :drawable :type xcb:CARD32))) (defclass xcb:xf86dri:GetDrawableInfo (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (drawable :initarg :drawable :type xcb:CARD32))) (defclass xcb:xf86dri:GetDrawableInfo~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (drawable-table-index :initarg :drawable-table-index :type xcb:CARD32) (drawable-table-stamp :initarg :drawable-table-stamp :type xcb:CARD32) (drawable-origin-X :initarg :drawable-origin-X :type xcb:INT16) (drawable-origin-Y :initarg :drawable-origin-Y :type xcb:INT16) (drawable-size-W :initarg :drawable-size-W :type xcb:INT16) (drawable-size-H :initarg :drawable-size-H :type xcb:INT16) (num-clip-rects :initarg :num-clip-rects :type xcb:CARD32) (back-x :initarg :back-x :type xcb:INT16) (back-y :initarg :back-y :type xcb:INT16) (num-back-clip-rects :initarg :num-back-clip-rects :type xcb:CARD32) (clip-rects~ :initform '(name clip-rects type xcb:xf86dri:DrmClipRect size (xcb:-fieldref 'num-clip-rects)) :type xcb:-list) (clip-rects :initarg :clip-rects :type xcb:-ignore) (back-clip-rects~ :initform '(name back-clip-rects type xcb:xf86dri:DrmClipRect size (xcb:-fieldref 'num-back-clip-rects)) :type xcb:-list) (back-clip-rects :initarg :back-clip-rects :type xcb:-ignore))) (defclass xcb:xf86dri:GetDeviceInfo (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xf86dri:GetDeviceInfo~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (framebuffer-handle-low :initarg :framebuffer-handle-low :type xcb:CARD32) (framebuffer-handle-high :initarg :framebuffer-handle-high :type xcb:CARD32) (framebuffer-origin-offset :initarg :framebuffer-origin-offset :type xcb:CARD32) (framebuffer-size :initarg :framebuffer-size :type xcb:CARD32) (framebuffer-stride :initarg :framebuffer-stride :type xcb:CARD32) (device-private-size :initarg :device-private-size :type xcb:CARD32) (device-private~ :initform '(name device-private type xcb:CARD32 size (xcb:-fieldref 'device-private-size)) :type xcb:-list) (device-private :initarg :device-private :type xcb:-ignore))) (defclass xcb:xf86dri:AuthConnection (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (magic :initarg :magic :type xcb:CARD32))) (defclass xcb:xf86dri:AuthConnection~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (authenticated :initarg :authenticated :type xcb:CARD32))) (provide 'xcb-xf86dri) ;;; xcb-xf86dri.el ends here xelb-0.18/xcb-xf86vidmode.el000066400000000000000000000451621353702660000156450ustar00rootroot00000000000000;;; xcb-xf86vidmode.el --- X11 XF86VidMode extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xf86vidmode.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xf86vidmode:-extension-xname "XFree86-VidModeExtension") (defconst xcb:xf86vidmode:-extension-name "XF86VidMode") (defconst xcb:xf86vidmode:-major-version 2) (defconst xcb:xf86vidmode:-minor-version 2) (xcb:deftypealias 'xcb:xf86vidmode:SYNCRANGE 'xcb:CARD32) (xcb:deftypealias 'xcb:xf86vidmode:DOTCLOCK 'xcb:CARD32) (defconst xcb:xf86vidmode:ModeFlag:Positive_HSync 1) (defconst xcb:xf86vidmode:ModeFlag:Negative_HSync 2) (defconst xcb:xf86vidmode:ModeFlag:Positive_VSync 4) (defconst xcb:xf86vidmode:ModeFlag:Negative_VSync 8) (defconst xcb:xf86vidmode:ModeFlag:Interlace 16) (defconst xcb:xf86vidmode:ModeFlag:Composite_Sync 32) (defconst xcb:xf86vidmode:ModeFlag:Positive_CSync 64) (defconst xcb:xf86vidmode:ModeFlag:Negative_CSync 128) (defconst xcb:xf86vidmode:ModeFlag:HSkew 256) (defconst xcb:xf86vidmode:ModeFlag:Broadcast 512) (defconst xcb:xf86vidmode:ModeFlag:Pixmux 1024) (defconst xcb:xf86vidmode:ModeFlag:Double_Clock 2048) (defconst xcb:xf86vidmode:ModeFlag:Half_Clock 4096) (defconst xcb:xf86vidmode:ClockFlag:Programable 1) (defconst xcb:xf86vidmode:Permission:Read 1) (defconst xcb:xf86vidmode:Permission:Write 2) (defclass xcb:xf86vidmode:ModeInfo (xcb:-struct) ((dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD32) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 4 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32))) (defclass xcb:xf86vidmode:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:xf86vidmode:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16))) (defclass xcb:xf86vidmode:GetModeLine (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetModeLine~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~2 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:ModModeLine (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:SwitchMode (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (zoom :initarg :zoom :type xcb:CARD16))) (defclass xcb:xf86vidmode:GetMonitor (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetMonitor~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (vendor-length :initarg :vendor-length :type xcb:CARD8) (model-length :initarg :model-length :type xcb:CARD8) (num-hsync :initarg :num-hsync :type xcb:CARD8) (num-vsync :initarg :num-vsync :type xcb:CARD8) (pad~1 :initform 20 :type xcb:-pad) (hsync~ :initform '(name hsync type xcb:xf86vidmode:SYNCRANGE size (xcb:-fieldref 'num-hsync)) :type xcb:-list) (hsync :initarg :hsync :type xcb:-ignore) (vsync~ :initform '(name vsync type xcb:xf86vidmode:SYNCRANGE size (xcb:-fieldref 'num-vsync)) :type xcb:-list) (vsync :initarg :vsync :type xcb:-ignore) (vendor~ :initform '(name vendor type xcb:char size (xcb:-fieldref 'vendor-length)) :type xcb:-list) (vendor :initarg :vendor :type xcb:-ignore) (alignment-pad~ :initform '(name alignment-pad type xcb:void size (- (logand (+ (xcb:-fieldref 'vendor-length) 3) (lognot 3)) (xcb:-fieldref 'vendor-length))) :type xcb:-list) (alignment-pad :initarg :alignment-pad :type xcb:-ignore) (model~ :initform '(name model type xcb:char size (xcb:-fieldref 'model-length)) :type xcb:-list) (model :initarg :model :type xcb:-ignore))) (defclass xcb:xf86vidmode:LockModeSwitch (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (lock :initarg :lock :type xcb:CARD16))) (defclass xcb:xf86vidmode:GetAllModeLines (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetAllModeLines~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (modecount :initarg :modecount :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (modeinfo~ :initform '(name modeinfo type xcb:xf86vidmode:ModeInfo size (xcb:-fieldref 'modecount)) :type xcb:-list) (modeinfo :initarg :modeinfo :type xcb:-ignore))) (defclass xcb:xf86vidmode:AddModeLine (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (after-dotclock :initarg :after-dotclock :type xcb:xf86vidmode:DOTCLOCK) (after-hdisplay :initarg :after-hdisplay :type xcb:CARD16) (after-hsyncstart :initarg :after-hsyncstart :type xcb:CARD16) (after-hsyncend :initarg :after-hsyncend :type xcb:CARD16) (after-htotal :initarg :after-htotal :type xcb:CARD16) (after-hskew :initarg :after-hskew :type xcb:CARD16) (after-vdisplay :initarg :after-vdisplay :type xcb:CARD16) (after-vsyncstart :initarg :after-vsyncstart :type xcb:CARD16) (after-vsyncend :initarg :after-vsyncend :type xcb:CARD16) (after-vtotal :initarg :after-vtotal :type xcb:CARD16) (pad~2 :initform 2 :type xcb:-pad) (after-flags :initarg :after-flags :type xcb:CARD32) (pad~3 :initform 12 :type xcb:-pad) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:DeleteModeLine (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:ValidateModeLine (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:ValidateModeLine~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (status :initarg :status :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:xf86vidmode:SwitchToMode (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD32) (dotclock :initarg :dotclock :type xcb:xf86vidmode:DOTCLOCK) (hdisplay :initarg :hdisplay :type xcb:CARD16) (hsyncstart :initarg :hsyncstart :type xcb:CARD16) (hsyncend :initarg :hsyncend :type xcb:CARD16) (htotal :initarg :htotal :type xcb:CARD16) (hskew :initarg :hskew :type xcb:CARD16) (vdisplay :initarg :vdisplay :type xcb:CARD16) (vsyncstart :initarg :vsyncstart :type xcb:CARD16) (vsyncend :initarg :vsyncend :type xcb:CARD16) (vtotal :initarg :vtotal :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (flags :initarg :flags :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (privsize :initarg :privsize :type xcb:CARD32) (private~ :initform '(name private type xcb:CARD8 size (xcb:-fieldref 'privsize)) :type xcb:-list) (private :initarg :private :type xcb:-ignore))) (defclass xcb:xf86vidmode:GetViewPort (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetViewPort~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (x :initarg :x :type xcb:CARD32) (y :initarg :y :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad))) (defclass xcb:xf86vidmode:SetViewPort (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (x :initarg :x :type xcb:CARD32) (y :initarg :y :type xcb:CARD32))) (defclass xcb:xf86vidmode:GetDotClocks (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetDotClocks~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (flags :initarg :flags :type xcb:CARD32) (clocks :initarg :clocks :type xcb:CARD32) (maxclocks :initarg :maxclocks :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (clock~ :initform '(name clock type xcb:CARD32 size (* (- 1 (logand (xcb:-fieldref 'flags) 1)) (xcb:-fieldref 'clocks))) :type xcb:-list) (clock :initarg :clock :type xcb:-ignore))) (defclass xcb:xf86vidmode:SetClientVersion (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (major :initarg :major :type xcb:CARD16) (minor :initarg :minor :type xcb:CARD16))) (defclass xcb:xf86vidmode:SetGamma (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (red :initarg :red :type xcb:CARD32) (green :initarg :green :type xcb:CARD32) (blue :initarg :blue :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetGamma (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 26 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetGamma~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (red :initarg :red :type xcb:CARD32) (green :initarg :green :type xcb:CARD32) (blue :initarg :blue :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetGammaRamp (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (size :initarg :size :type xcb:CARD16))) (defclass xcb:xf86vidmode:GetGammaRamp~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (size :initarg :size :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (red~ :initform '(name red type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (red :initarg :red :type xcb:-ignore) (green~ :initform '(name green type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (green :initarg :green :type xcb:-ignore) (blue~ :initform '(name blue type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (blue :initarg :blue :type xcb:-ignore))) (defclass xcb:xf86vidmode:SetGammaRamp (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (size :initarg :size :type xcb:CARD16) (red~ :initform '(name red type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (red :initarg :red :type xcb:-ignore) (green~ :initform '(name green type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (green :initarg :green :type xcb:-ignore) (blue~ :initform '(name blue type xcb:CARD16 size (logand (+ (xcb:-fieldref 'size) 1) (lognot 1))) :type xcb:-list) (blue :initarg :blue :type xcb:-ignore))) (defclass xcb:xf86vidmode:GetGammaRampSize (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetGammaRampSize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (size :initarg :size :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetPermissions (xcb:-request) ((~opcode :initform 20 :type xcb:-u1) (screen :initarg :screen :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xf86vidmode:GetPermissions~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (permissions :initarg :permissions :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad))) (defclass xcb:xf86vidmode:BadClock (xcb:-error) ((~code :initform 0))) (defclass xcb:xf86vidmode:BadHTimings (xcb:-error) ((~code :initform 1))) (defclass xcb:xf86vidmode:BadVTimings (xcb:-error) ((~code :initform 2))) (defclass xcb:xf86vidmode:ModeUnsuitable (xcb:-error) ((~code :initform 3))) (defclass xcb:xf86vidmode:ExtensionDisabled (xcb:-error) ((~code :initform 4))) (defclass xcb:xf86vidmode:ClientNotLocal (xcb:-error) ((~code :initform 5))) (defclass xcb:xf86vidmode:ZoomLocked (xcb:-error) ((~code :initform 6))) (defconst xcb:xf86vidmode:error-number-class-alist '((0 . xcb:xf86vidmode:BadClock) (1 . xcb:xf86vidmode:BadHTimings) (2 . xcb:xf86vidmode:BadVTimings) (3 . xcb:xf86vidmode:ModeUnsuitable) (4 . xcb:xf86vidmode:ExtensionDisabled) (5 . xcb:xf86vidmode:ClientNotLocal) (6 . xcb:xf86vidmode:ZoomLocked)) "(error-number . error-class) alist.") (provide 'xcb-xf86vidmode) ;;; xcb-xf86vidmode.el ends here xelb-0.18/xcb-xfixes.el000066400000000000000000000345261353702660000150120ustar00rootroot00000000000000;;; xcb-xfixes.el --- X11 XFixes extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 5) (defconst xcb:xfixes:-minor-version 0) (require 'xcb-xproto) (require 'xcb-render) (require 'xcb-shape) (defclass xcb:xfixes:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major-version :initarg :client-major-version :type xcb:CARD32) (client-minor-version :initarg :client-minor-version :type xcb:CARD32))) (defclass xcb:xfixes:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~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:error-number-class-alist '((0 . xcb:xfixes:BadRegion)) "(error-number . error-class) alist.") (defconst xcb:xfixes:event-number-class-alist '((0 . xcb:xfixes:SelectionNotify) (1 . xcb:xfixes:CursorNotify)) "(event-number . event-class) alist.") (provide 'xcb-xfixes) ;;; xcb-xfixes.el ends here xelb-0.18/xcb-xim.el000066400000000000000000001173141353702660000142760ustar00rootroot00000000000000;;; xcb-xim.el --- XIM Protocol -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This library implements the X Input Method Protocol. ;; Please note that the byte order of an XIM packet can be different from that ;; of X packets. Moreover, if you are writing an XIM server, the byte order is ;; actually specified by the client. Therefore we provide a different global ;; variable `xim:lsb' to indicate the byte order of classes in this library. ;; You should let-bind it whenever creating new objects. ;; Todo: ;; + Add extension support. ;; References: ;; + XIM (http://www.x.org/releases/X11R7.7/doc/libX11/XIM/xim.txt) ;;; Code: (require 'xcb-types) (require 'xcb-xlib) ;;;; Protocol number (defconst xim:opcode:connect 1) (defconst xim:opcode:connect-reply 2) (defconst xim:opcode:disconnect 3) (defconst xim:opcode:disconnect-reply 4) (defconst xim:opcode:auth-required 10) (defconst xim:opcode:auth-reply 11) (defconst xim:opcode:auth-next 12) (defconst xim:opcode:auth-setup 13) (defconst xim:opcode:auth-ng 14) (defconst xim:opcode:error 20) (defconst xim:opcode:open 30) (defconst xim:opcode:open-reply 31) (defconst xim:opcode:close 32) (defconst xim:opcode:close-reply 33) (defconst xim:opcode:register-triggerkeys 34) (defconst xim:opcode:trigger-notify 35) (defconst xim:opcode:trigger-notify-reply 36) (defconst xim:opcode:set-event-mask 37) (defconst xim:opcode:encoding-negotiation 38) (defconst xim:opcode:encoding-negotiation-reply 39) (defconst xim:opcode:query-extension 40) (defconst xim:opcode:query-extension-reply 41) (defconst xim:opcode:set-im-values 42) (defconst xim:opcode:set-im-values-reply 43) (defconst xim:opcode:get-im-values 44) (defconst xim:opcode:get-im-values-reply 45) (defconst xim:opcode:create-ic 50) (defconst xim:opcode:create-ic-reply 51) (defconst xim:opcode:destroy-ic 52) (defconst xim:opcode:destroy-ic-reply 53) (defconst xim:opcode:set-ic-values 54) (defconst xim:opcode:set-ic-values-reply 55) (defconst xim:opcode:get-ic-values 56) (defconst xim:opcode:get-ic-values-reply 57) (defconst xim:opcode:set-ic-focus 58) (defconst xim:opcode:unset-ic-focus 59) (defconst xim:opcode:forward-event 60) (defconst xim:opcode:sync 61) (defconst xim:opcode:sync-reply 62) (defconst xim:opcode:commit 63) (defconst xim:opcode:reset-ic 64) (defconst xim:opcode:reset-ic-reply 65) (defconst xim:opcode:geometry 70) (defconst xim:opcode:str-conversion 71) (defconst xim:opcode:str-conversion-reply 72) (defconst xim:opcode:preedit-start 73) (defconst xim:opcode:preedit-start-reply 74) (defconst xim:opcode:preedit-draw 75) (defconst xim:opcode:preedit-caret 76) (defconst xim:opcode:preedit-caret-reply 77) (defconst xim:opcode:preedit-done 78) (defconst xim:opcode:status-start 79) (defconst xim:opcode:status-draw 80) (defconst xim:opcode:status-done 81) (defconst xim:opcode:preeditstate 82) ;;;; Basic requests packet format (eval-and-compile (defvar xim:lsb xcb:lsb "Non-nil for LSB first, nil otherwise. Consider let-bind it rather than change its global value.")) (defclass xim:-struct (xcb:-struct) ((~lsb :initform (symbol-value 'xim:lsb))) :documentation "Struct type for XIM.") (defclass xim:-request (xim:-struct) ((~major-opcode :type xcb:CARD8) (~minor-opcode :initform 0 :type xcb:CARD8) (~length :initform 0 :type xcb:CARD16)) :documentation "XIM request type.") (cl-defmethod xcb:marshal ((obj xim:-request)) "Return the byte-array representation of XIM request OBJ." (let ((result (cl-call-next-method obj))) (vconcat (substring result 0 2) (funcall (if (slot-value obj '~lsb) #'xcb:-pack-u2-lsb #'xcb:-pack-u2) (1- (/ (length result) 4))) (substring result 4)))) ;;;; Data types (xcb:deftypealias 'xim:BITMASK16 'xcb:CARD16) (xcb:deftypealias 'xim:BITMASK32 'xcb:CARD32) (defsubst xim:PADDING (N) "Pad N to 4 bytes." (% (- 4 (% N 4)) 4)) (xcb:deftypealias 'xim:LPCE 'xcb:char) (defclass xim:STRING (xim:-struct) ((length :initarg :length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xim:LPCE size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) (defclass xim:STR (xim:-struct) ((length :initarg :length :type xcb:-u1) (name :initarg :name :type xcb:-ignore) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'length)) :type xcb:-list))) (defclass xim:XIMATTR (xim:-struct) ((id :initarg :id :type xcb:CARD16) (type :initarg :type :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (attribute :initarg :attribute :type xcb:-ignore) (attribute~ :initform '(name attribute type xcb:char size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) (defclass xim:XICATTR (xim:XIMATTR) nil) (defconst xim:ATTRIBUTE-VALUE-TYPE:separator-of-nestedlist 0) (defconst xim:ATTRIBUTE-VALUE-TYPE:byte-data 1) (defconst xim:ATTRIBUTE-VALUE-TYPE:word-data 2) (defconst xim:ATTRIBUTE-VALUE-TYPE:long-data 3) (defconst xim:ATTRIBUTE-VALUE-TYPE:char-data 4) (defconst xim:ATTRIBUTE-VALUE-TYPE:window 5) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-styles 10) (defconst xim:ATTRIBUTE-VALUE-TYPE:x-rectangle 11) (defconst xim:ATTRIBUTE-VALUE-TYPE:x-point 12) (defconst xim:ATTRIBUTE-VALUE-TYPE:x-font-set 13) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-hot-key-triggers 15) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-string-conversion 17) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-preedit-state 18) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-reset-state 19) (defconst xim:ATTRIBUTE-VALUE-TYPE:xim-nested-list #x7FFF) (defclass xim:XIMStyles (xim:-struct) ((number :initarg :number :type xcb:-u2) (pad~0 :initform 2 :type xcb:-pad) (styles :initarg :styles :type xcb:-ignore) (styles~ :initform '(name styles type xcb:CARD32 size (/ (xcb:-fieldref 'number) 4)) :type xcb:-list))) ;; Auto set the number slot (cl-defmethod xcb:marshal ((obj xim:XIMStyles)) (setf (slot-value obj 'number) (* 4 (length (slot-value obj 'styles)))) (cl-call-next-method obj)) (defclass xim:XFontSet (xim:-struct) ((length :initarg :length :type xcb:-u2) (base-font-name :initarg :base-font-name :type xcb:-ignore) (base-font-name~ :initform '(name base-font-name type xim:LPCE size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) (defclass xim:XIMHotKeyTriggers (xim:-struct) ((number :type xcb:-u4) (triggers :type xcb:-ignore) (triggers~ :initform '(name triggers type xim:XIMTRIGGERKEY size (xcb:-fieldref 'number)) :type xcb:-list) (states :type xcb:-ignore) (states~ :initform '(name states type xim:XIMHOTKEYSTATE size (xcb:-fieldref 'number)) :type xcb:-list))) (defclass xim:XIMTRIGGERKEY (xim:-struct) ((keysym :initarg :keysym :type xcb:CARD32) (modifier :initarg :modifier :type xcb:CARD32) (modifier-mask :initarg :modifier-mask :type xcb:CARD32))) (defclass xim:ENCODINGINFO (xim:-struct) ((length :initarg :length :type xcb:-u2) (encoding-info :initarg :encoding-info :type xcb:-ignore) (encoding-info~ :initform '(name encoding-info type xcb:char size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) (defclass xim:EXT (xim:-struct) ((major-opcode :initarg :major-opcode :type xcb:CARD8) (minor-opcode :initarg :minor-opcode :type xcb:CARD8) (length :initarg :length :type xcb:-u2) (name :initarg :name :type xcb:-ignore) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (defclass xim:XIMATTRIBUTE (xim:-struct) ((id :initarg :id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (value :initarg :value :type xcb:-ignore) (value~ :initform '(name value type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (cl-defmethod xcb:marshal ((obj xim:XIMATTRIBUTE)) (let ((value (slot-value obj 'value))) (when (eieio-object-p value) (setq value (xcb:marshal value)) (setf (slot-value obj 'length) (length value) (slot-value obj 'value) value)) (cl-call-next-method obj))) (defclass xim:XICATTRIBUTE (xim:XIMATTRIBUTE) nil) (defclass xim:XIMSTRCONVTEXT (xim:-struct) ((feedback :initarg :feedback :type xcb:CARD16) (string-length :initarg :string-length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xcb:char size (xcb:-fieldref 'string-length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'string-length)) :type xcb:-pad) (feedbacks-length :initarg :feedbacks-length :type xcb:-u2) (pad~1 :initform 2 :type xcb:-pad) (feedbacks :initarg :feedbacks :type xcb:-ignore) (feedbacks~ :initform '(name feedbacks type xcb:void size (xcb:-fieldref 'feedbacks-length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:XIMSTRCONVTEXT)) (let ((feedbacks (mapconcat 'xcb:marshal (slot-value obj 'feedbacks) []))) (setf (slot-value obj 'feedbacks-length) (length feedbacks) (slot-value obj 'feedbacks) feedbacks) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:XIMSTRCONVTEXT) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (data (slot-value obj 'feedbacks)) feedback feedbacks) (while (< 0 (length data)) (setq feedback (make-instance 'xim:XIMSTRCONVFEEDBACK) data (substring data (xcb:unmarshal feedback data)) feedbacks (nconc feedbacks (list feedback)))) (setf (slot-value obj 'feedbacks) feedbacks) retval)) (defconst xim:string-conversion:left-edge #x0000001) (defconst xim:string-conversion:right-edge #x0000002) (defconst xim:string-conversion:top-edge #x0000004) (defconst xim:string-conversion:bottom-edge #x0000008) (defconst xim:string-conversion:convealed #x0000010) (defconst xim:string-conversion:wrapped #x0000020) (xcb:deftypealias 'xim:XIMFEEDBACK 'xcb:CARD32) ;; FIXME: different from Xlib:XIM* (defconst xim:reverse #x000001) (defconst xim:underline #x000002) (defconst xim:highlight #x000004) (defconst xim:primary #x000008) (defconst xim:secondary #x000010) (defconst xim:tertiary #x000020) (defconst xim:visible-to-forward #x000040) (defconst xim:visible-to-backward #x000080) (defconst xim:visible-center #x000100) (xcb:deftypealias 'xim:XIMHOTKEYSTATE 'xcb:CARD32) (defconst xim:hot-key-state:on #x0000001) (defconst xim:hot-key-state:off #x0000002) (xcb:deftypealias 'xim:XIMPREEDITSTATE 'xcb:CARD32) (defconst xim:preedit:enable #x0000001) (defconst xim:preedit:disable #x0000002) (xcb:deftypealias 'xim:XIMRESETSTATE 'xcb:CARD32) (defconst xim:initial-state #x0000001) (defconst xim:preserve-state #x0000002) ;;;; Error notification (defclass xim:error (xim:-request) ((~major-opcode :initform xim:opcode:error) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (flag :initarg :flag :type xim:BITMASK16) (error-code :initarg :error-code :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (type :initarg :type :type xcb:CARD16) (detail :initarg :detail :type xcb:-ignore) (detail~ :initform '(name detail type xcb:char size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (defconst xim:error-flag:invalid-both 0) (defconst xim:error-flag:invalid-im-id 1) (defconst xim:error-flag:invalid-ic-id 2) (defconst xim:error-code:bad-alloc 1) (defconst xim:error-code:bad-style 2) (defconst xim:error-code:bad-client-window 3) (defconst xim:error-code:bad-focus-window 4) (defconst xim:error-code:bad-area 5) (defconst xim:error-code:bad-spot-location 6) (defconst xim:error-code:bad-colormap 7) (defconst xim:error-code:bad-atom 8) (defconst xim:error-code:bad-pixel 9) (defconst xim:error-code:bad-pixmap 10) (defconst xim:error-code:bad-name 11) (defconst xim:error-code:bad-cursor 12) (defconst xim:error-code:bad-protocol 13) (defconst xim:error-code:bad-foreground 14) (defconst xim:error-code:bad-background 15) (defconst xim:error-code:locale-not-supported 16) (defconst xim:error-code:bad-something 999) ;;;; Connection establishment (defclass xim:connect (xim:-request) ((~major-opcode :initform xim:opcode:connect) (byte-order :initarg :byte-order :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (major-version :initarg :major-version :type xcb:CARD16) (minor-version :initarg :minor-version :type xcb:CARD16) (number :initarg :number :type xcb:CARD16) (auth-names :initarg :auth-names :type xcb:-ignore) (auth-names~ :initform '(name auth-names type xim:STRING size (xcb:-fieldref 'number)) :type xcb:-list))) (defconst xim:connect-byte-order:msb-first #x42) (defconst xim:connect-byte-order:lsb-first #x6c) (defclass xim:auth-required (xim:-request) ((~major-opcode :initform xim:opcode:auth-required) (index :initarg :index :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (length :initarg :length :type xcb:-u2) (pad~1 :initform 2 :type xcb:-pad) (data :initarg :data :type xcb:-ignore) (data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list) (pad~1 :initform '(xim:PADDING (slot-value length)) :type xcb:-pad))) (defclass xim:auth-reply (xim:-request) ((~major-opcode :initform xim:opcode:auth-reply) (length :initarg :length :type xcb:-u2) (pad~0 :initform 2 :type xcb:-pad) (data :initarg :data :type xcb:-ignore) (data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list) (pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (defclass xim:auth-next (xim:-request) ((~major-opcode :initform xim:opcode:auth-next) (length :initarg :length :type xcb:-u2) (pad~0 :initform 2 :type xcb:-pad) (data :initarg :data :type xcb:-ignore) (data~ :initform '(name data type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list) (pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (defclass xim:auth-setup (xim:-request) ((~major-opcode :initform xim:opcode:auth-setup) (number :initarg :number :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (names :initarg :names :type xcb:-ignore) (names~ :initform '(name names type xim:STRING size (xcb:-fieldref 'number)) :type xcb:-list))) (defclass xim:auth-ng (xim:-request) ((~major-opcode :initform xim:opcode:auth-ng))) (defclass xim:connect-reply (xim:-request) ((~major-opcode :initform xim:opcode:connect-reply) ;; Default to version 1.0 (major-version :initarg :major-version :initform 1 :type xcb:CARD16) (minor-version :initarg :minor-version :initform 0 :type xcb:CARD16))) (defclass xim:disconnect (xim:-request) ((~major-opcode :initform xim:opcode:disconnect))) (defclass xim:disconnect-reply (xim:-request) ((~major-opcode :initform xim:opcode:disconnect-reply))) (defclass xim:open (xim:-request) ((~major-opcode :initform xim:opcode:open) (locale-name :initarg :locale-name :type xim:STR) (pad~0 :initform '(xim:PADDING (1+ (slot-value (xcb:-fieldref 'locale-name) 'length))) :type xcb:-pad))) (defclass xim:open-reply (xim:-request) ((~major-opcode :initform xim:opcode:open-reply) (im-id :initarg :im-id :type xcb:CARD16) (im-attrs-length :initarg :im-attrs-length :type xcb:-u2) (im-attrs :initarg :im-attrs :type xcb:-ignore) (im-attrs~ :initform '(name im-attrs type xcb:void size (xcb:-fieldref 'im-attrs-length)) :type xcb:-list) (ic-attrs-length :initarg :ic-attrs-length :type xcb:-u2) (pad~0 :initform 2 :type xcb:-pad) (ic-attrs :initarg :ic-attrs :type xcb:-ignore) (ic-attrs~ :initform '(name ic-attrs type xcb:void size (xcb:-fieldref 'ic-attrs-length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:open-reply)) (let ((im-attrs (mapconcat #'xcb:marshal (slot-value obj 'im-attrs) [])) (ic-attrs (mapconcat #'xcb:marshal (slot-value obj 'ic-attrs) []))) (setf (slot-value obj 'im-attrs-length) (length im-attrs) (slot-value obj 'im-attrs) im-attrs (slot-value obj 'ic-attrs-length) (length ic-attrs) (slot-value obj 'ic-attrs) ic-attrs) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:open-reply) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (im-data (slot-value obj 'im-attrs)) (ic-data (slot-value obj 'ic-attrs)) im-attr im-attrs ic-attr ic-attrs) (while (< 0 (length im-data)) (setq im-attr (make-instance 'xim:XIMATTR) im-data (substring im-data (xcb:unmarshal im-attr im-data)) im-attrs (nconc im-attrs (list im-attr)))) (while (< 0 (length ic-data)) (setq ic-attr (make-instance 'xim:XICATTR) ic-data (substring ic-data (xcb:unmarshal ic-attr ic-data)) ic-attrs (nconc ic-attrs (list ic-attr)))) (setf (slot-value obj 'im-attrs) im-attrs (slot-value obj 'ic-attrs) ic-attrs) retval)) (defclass xim:close (xim:-request) ((~major-opcode :initform xim:opcode:close) (im-id :initarg :im-id :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xim:close-reply (xim:close) ((~major-opcode :initform xim:opcode:close-reply))) ;;;; Event flow control (defclass xim:set-event-mask (xim:-request) ((~major-opcode :initform xim:opcode:set-event-mask) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (forward-event-mask :initarg :forward-event-mask :type xcb:-u4) (synchronous-event-mask :initarg :synchronous-event-mask :type xcb:-u4))) (defclass xim:register-triggerkeys (xim:-request) ((~major-opcode :initform xim:opcode:register-triggerkeys) (im-id :initarg :im-id :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (on-keys-length :initarg :on-keys-length :type xcb:-u4) (on-keys :initarg :on-keys :type xcb:-ignore) (on-keys~ :initform '(name on-keys type xim:XIMTRIGGERKEY size (/ (xcb:-fieldref 'on-keys-length) 12)) :type xcb:-list) (off-keys-length :initarg :off-keys-length :type xcb:-u4) (off-keys :initarg :off-keys :type xcb:-ignore) (off-keys~ :initform '(name off-keys type xim:XIMTRIGGERKEY size (/ (xcb:-fieldref 'off-keys-length) 12)) :type xcb:-list))) (defclass xim:trigger-nofity (xim:-request) ((~major-opcode :initform xim:opcode:trigger-notify) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (flag :initarg :flag :type xcb:CARD32) (index :initarg :index :type xcb:CARD32) (client-select-event-mask :initarg :client-select-event-mask :type xcb:-u4))) (defconst xim:trigger-nofity-flag:on-keys 0) (defconst xim:trigger-nofity-flag:off-keys 1) (defclass xim:trigger-nofity-reply (xim:-request) ((~major-opcode :initform xim:opcode:trigger-notify-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Encoding negotiation (defclass xim:encoding-negotiation (xim:-request) ((~major-opcode :initform xim:opcode:encoding-negotiation) (im-id :initarg :im-id :type xcb:CARD16) (names-length :initarg :names-length :type xcb:-u2) (names :initarg :names :type xcb:-ignore) (names~ :initform '(name names type xcb:void size (xcb:-fieldref 'names-length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'names-length)) :type xcb:-pad) (encodings-length :initarg :encoding-length :type xcb:-u2) (pad~1 :initform 2 :type xcb:-pad) (encodings :initarg :encodings :type xcb:-ignore) (encodings~ :initform '(name encodings type xcb:void size (xcb:-fieldref 'encodings-length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:encoding-negotiation)) (let ((names (mapconcat #'xcb:marshal (slot-value obj 'names) [])) (encodings (mapconcat #'xcb:marshal (slot-value obj 'encodings) []))) (setf (slot-value obj 'names-length) (length names) (slot-value obj 'names) names (slot-value obj 'encodings-length) (length encodings) (slot-value obj 'encodings) encodings) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:encoding-negotiation) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (names-data (slot-value obj 'names)) (encodings-data (slot-value obj 'encodings)) name names encoding encodings) (while (< 0 (length names-data)) (setq name (make-instance 'xim:STR) names-data (substring names-data (xcb:unmarshal name names-data)) names (nconc names (list name)))) (while (< 0 (length encodings-data)) (setq encoding (make-instance 'xim:ENCODINGINFO) encodings-data (substring encodings-data (xcb:unmarshal encoding encodings-data)) encodings (nconc encodings (list encoding)))) (setf (slot-value obj 'names) names (slot-value obj 'encodings) encodings) retval)) (defclass xim:encoding-negotiation-reply (xim:-request) ((~major-opcode :initform xim:opcode:encoding-negotiation-reply) (im-id :initarg :im-id :type xcb:CARD16) (category :initarg :category :type xcb:CARD16) (index :initarg :index :type xcb:INT16) (pad~0 :initform 2 :type xcb:-pad))) (defconst xim:encoding-negotiation-reply-category:name 0) (defconst xim:encoding-negotiation-reply-category:data 1) ;;;; Query the supported extension protocol list (defclass xim:query-extension (xim:-request) ((~major-opcode :initform xim:opcode:query-extension) (im-id :initarg :im-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (extensions :initarg :extensions :type xcb:-ignore) (extensions~ :initform '(name extensions type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (cl-defmethod xcb:marshal ((obj xim:query-extension)) (let ((extensions (mapconcat #'xcb:marshal (slot-value obj 'extensions) []))) (setf (slot-value obj 'length) (length extensions) (slot-value obj 'extensions) extensions) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:query-extension) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (data (slot-value obj 'extensions)) extension extensions) (while (< 0 (length data)) (setq extension (make-instance 'xim:STR) data (substring data (xcb:unmarshal extension data)) extensions (nconc extensions (list extension)))) (setf (slot-value obj 'extensions) extensions) retval)) (defclass xim:query-extension-reply (xim:-request) ((~major-opcode :initform xim:opcode:query-extension-reply) (im-id :initarg :im-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (extensions :initarg :extensions :type xcb:-ignore) (extensions~ :initform '(name extensions type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:query-extension-reply)) (let ((extensions (mapconcat 'xcb:marshal (slot-value obj 'extensions) []))) (setf (slot-value obj 'length) (length extensions) (slot-value obj 'extensions) extensions) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:query-extension-reply) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (data (slot-value obj 'extensions)) extension extensions) (while (< 0 (length data)) (setq extension (make-instance 'xim:EXT) data (substring data (xcb:unmarshal extension data)) extensions (nconc extensions (list extension)))) (setf (slot-value obj 'extensions) extensions) retval)) ;;;; Setting IM values (defclass xim:set-im-values (xim:-request) ((~major-opcode :initform xim:opcode:set-im-values) (im-id :initarg :im-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (im-attributes :initarg :im-attributes :type xcb:-ignore) (im-attributes~ :initform '(name im-attributes type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:set-im-values)) (let ((im-attributes (mapconcat #'xcb:marshal (slot-value obj 'im-attributes) []))) (setf (slot-value obj 'length) (length im-attributes) (slot-value obj 'im-attributes) im-attributes) (cl-call-next-method obj))) (defclass xim:set-im-values-reply (xim:-request) ((~major-opcode :initform xim:opcode:set-im-values-reply) (im-id :initarg :im-id :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) ;;;; Getting IM values (defclass xim:get-im-values (xim:-request) ((~major-opcode :initform xim:opcode:get-im-values) (im-id :initarg :im-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (im-attributes-id :initarg :im-attributes-id :type xcb:-ignore) (im-attributes-id~ :initform '(name im-attributes-id type xcb:CARD16 size (/ (xcb:-fieldref 'length) 2)) :type xcb:-list))) (defclass xim:get-im-values-reply (xim:set-im-values) ((~major-opcode :initform xim:opcode:get-im-values-reply))) ;;;; Creating an IC (defclass xim:create-ic (xim:-request) ((~major-opcode :initform xim:opcode:create-ic) (im-id :initarg :im-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (ic-attributes :initarg :ic-attributes :type xcb:-ignore) (ic-attributes~ :initform '(name ic-attributes type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:create-ic)) (let ((ic-attributes (mapconcat #'xcb:marshal (slot-value obj 'ic-attributes) []))) (setf (slot-value obj 'length) (length ic-attributes) (slot-value obj 'ic-attributes) ic-attributes) (cl-call-next-method obj))) (cl-defmethod xcb:unmarshal ((obj xim:create-ic) byte-array) (let ((retval (cl-call-next-method obj byte-array)) (data (slot-value obj 'ic-attributes)) ic-attribute ic-attributes) (while (< 0 (length data)) (setq ic-attribute (make-instance 'xim:XICATTRIBUTE) data (substring data (xcb:unmarshal ic-attribute data)) ic-attributes (nconc ic-attributes (list ic-attribute)))) (setf (slot-value obj 'ic-attributes) ic-attributes) retval)) (defclass xim:create-ic-reply (xim:-request) ((~major-opcode :initform xim:opcode:create-ic-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Destroy the IC (defclass xim:destroy-ic (xim:-request) ((~major-opcode :initform xim:opcode:destroy-ic) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (defclass xim:destroy-ic-reply (xim:-request) ((~major-opcode :initform xim:opcode:destroy-ic-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Setting IC values (defclass xim:set-ic-values (xim:-request) ((~major-opcode :initform xim:opcode:set-ic-values) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (pad~0 :initform 2 :type xcb:-pad) (ic-attributes :initarg :ic-attributes :type xcb:-ignore) (ic-attributes~ :initform '(name ic-attributes type xcb:void size (xcb:-fieldref 'length)) :type xcb:-list))) (cl-defmethod xcb:marshal ((obj xim:set-ic-values)) (let ((ic-attributes (mapconcat 'xcb:marshal (slot-value obj 'ic-attributes) []))) (setf (slot-value obj 'length) (length ic-attributes) (slot-value obj 'ic-attributes) ic-attributes) (cl-call-next-method obj))) (defclass xim:set-ic-values-reply (xim:-request) ((~major-opcode :initform xim:opcode:set-ic-values-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Getting IC values (defclass xim:get-ic-values (xim:-request) ((~major-opcode :initform xim:opcode:get-ic-values) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (ic-attributes-id :initarg :ic-attributes-id :type xcb:-ignore) (ic-attributes-id~ :initform '(name ic-attributes-id type xcb:CARD16 size (/ (xcb:-fieldref 'length) 2)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) (defclass xim:get-ic-values-reply (xim:set-ic-values) ((~major-opcode :initform xim:opcode:get-ic-values-reply))) ;;;; Setting IC focus (defclass xim:set-ic-focus (xim:-request) ((~major-opcode :initform xim:opcode:set-ic-focus) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Unsetting IC focus (defclass xim:unset-ic-focus (xim:-request) ((~major-opcode :initform xim:opcode:unset-ic-focus) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Filtering events (defclass xim:forward-event (xim:-request) ((~major-opcode :initform xim:opcode:forward-event) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (flag :initarg :flag :type xim:BITMASK16) (serial-number :initarg :serial-number :type xcb:CARD16) (event :initarg :event :type xcb:-ignore) (event~ :initform '(name event type xcb:void size 32) :type xcb:-list))) (defconst xim:forward-event-flag:synchronous 1) (defconst xim:forward-event-flag:request-filtering 2) (defconst xim:forward-event-flag:request-lookupstring 4) ;;;; Synchronizing with the IM server (defclass xim:sync (xim:-request) ((~major-opcode :initform xim:opcode:sync) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (defclass xim:sync-reply (xim:-request) ((~major-opcode :initform xim:opcode:sync-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;;;; Sending a committed string (defclass xim:commit (xim:-request) ((~major-opcode :initform xim:opcode:commit) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (flag :initarg :flag :type xim:BITMASK16))) (defconst xim:commit-flag:synchronous 1) ;; FIXME: different from Xlib:XLookup* (defconst xim:commit-flag:x-lookup-chars 2) (defconst xim:commit-flag:x-lookup-key-sym 4) (defconst xim:commit-flag:x-lookup-both 6) (defclass xim:commit-x-lookup-key-sym (xim:commit) ((flag :initform xim:commit-flag:x-lookup-key-sym) (pad~0 :initform 2 :type xcb:-pad) (key-sym :initarg :key-sym :type xcb:KEYSYM))) (defclass xim:commit-x-lookup-chars (xim:commit) ((flag :initform xim:commit-flag:x-lookup-chars) (length :initarg :length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xcb:BYTE size (xcb:-fieldref 'length)) :type xcb:-list) (pad~1 :initform '(xim:PADDING (xcb:-fieldref 'length)) :type xcb:-pad))) (defclass xim:commit-x-lookup-both (xim:commit-x-lookup-key-sym xim:commit-x-lookup-chars) ((flag :initform xim:commit-flag:x-lookup-both) (pad~1 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) ;;;; Reset IC (defclass xim:reset-ic (xim:-request) ((~major-opcode :initform xim:opcode:reset-ic) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (defclass xim:reset-ic-reply (xim:-request) ((~major-opcode :initform xim:opcode:reset-ic-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (length :initarg :length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xcb:BYTE size (xcb:-fieldref 'length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'length))) :type xcb:-pad))) ;;;; Callbacks ;; Negotiating geometry (defclass xim:geometry (xim:-request) ((~major-opcode :initform xim:opcode:geometry) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;; Converting a string (defclass xim:str-conversion (xim:-request) ((~major-opcode :initform xim:opcode:str-conversion) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (position :initarg :position :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (direction :initarg :direction :type xcb:CARD32) (factor :initarg :factor :type xcb:CARD16) (operation :initarg :operation :type xcb:CARD16) (length :initarg :length :type xcb:INT16))) (defconst xim:caret-direction:forward-char 0) (defconst xim:caret-direction:backward-char 1) (defconst xim:caret-direction:forward-word 2) (defconst xim:caret-direction:backward-word 3) (defconst xim:caret-direction:caret-up 4) (defconst xim:caret-direction:caret-down 5) (defconst xim:caret-direction:next-line 6) (defconst xim:caret-direction:previous-line 7) (defconst xim:caret-direction:line-start 8) (defconst xim:caret-direction:line-end 9) (defconst xim:caret-direction:absolute-position 10) (defconst xim:caret-direction:dont-change 11) (defconst xim:string-conversion-operation:substitution 1) (defconst xim:string-conversion-operation:retrieval 2) (defclass xim:str-conversion-reply (xim:-request) ((~major-opcode :initform xim:opcode:str-conversion-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (feedback :initarg :feedback :type xcb:CARD32) (text :initarg :text :type xim:XIMSTRCONVTEXT))) ;; Preedit callbacks (defclass xim:preedit-start (xim:-request) ((~major-opcode :initform xim:opcode:preedit-start) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (defclass xim:preedit-start-reply (xim:-request) ((~major-opcode :initform xim:opcode:preedit-start-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (return-value :initarg :return-value :type xcb:INT32))) (defclass xim:preedit-draw (xim:-request) ((~major-opcode :initform xim:opcode:preedit-draw) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (caret :initarg :caret :type xcb:INT32) (chg-first :initarg :chg-first :type xcb:INT32) (chg-length :initarg :chg-length :type xcb:INT32) (status :initarg :status :type xim:BITMASK32) (string-length :initarg :string-length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xcb:char size (xcb:-fieldref 'string-length)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'string-length))) :type xcb:-pad) (feedback-length :initarg :feedback-length :type xcb:-u2) (pad~1 :initform 2 :type xcb:-pad) (feedback :initarg :feedback :type xcb:-ignore) (feedback~ :initform '(name feedback type xim:XIMFEEDBACK size (/ (xcb:-fieldref 'feedback-length) 4)) :type xcb:-list))) (defconst xim:preedit-draw-status:no-string 1) (defconst xim:preedit-draw-status:no-feedback 2) (defclass xim:preedit-caret (xim:-request) ((~major-opcode :initform xim:opcode:preedit-caret) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (position :initarg :position :type xcb:INT32) (direction :initarg :direction :type xcb:CARD32) (style :initarg :style :type xcb:CARD32))) (defconst xim:preedit-caret-style:invisible 0) (defconst xim:preedit-caret-style:primary 1) (defconst xim:preedit-caret-style:secondary 2) (defclass xim:preedit-caret-reply (xim:-request) ((~major-opcode :initform xim:opcode:preedit-caret-reply) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (position :initarg :position :type xcb:CARD32))) (defclass xim:preedit-done (xim:-request) ((~major-opcode :initform xim:opcode:preedit-done) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) ;; Preedit state notify (defclass xim:preeditstate (xim:-request) ((~major-opcode :initform xim:opcode:preeditstate) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (state :initarg :state :type xim:BITMASK32))) (defconst xim:preeditstate:unknown 0) (defconst xim:preeditstate:enable 1) (defconst xim:preeditstate:disable 2) ;; Status callbacks (defclass xim:status-start (xim:-request) ((~major-opcode :initform xim:opcode:status-start) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (defclass xim:status-draw (xim:-request) ((~major-opcode :initform xim:opcode:status-draw) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16) (type :initarg :type :type xcb:CARD32))) (defconst xim:status-draw-type:text 0) (defconst xim:status-draw-type:bitmap 1) (defclass xim:status-draw-text (xim:status-draw) ((type :initarg :type :initform xim:status-draw-type:text) (status :initarg :status :type xim:BITMASK32) (string-length :initarg :string-length :type xcb:-u2) (string :initarg :string :type xcb:-ignore) (string~ :initform '(name string type xcb:char size (xcb:-fieldref 'string-lessp)) :type xcb:-list) (pad~0 :initform '(xim:PADDING (+ 2 (xcb:-fieldref 'string-length))) :type xcb:-pad) (feedback-length :initarg :feedback-length :type xcb:-u2) (pad~1 :initform 2 :type xcb:-pad) (feedback :initarg :feedback :type xcb:-ignore) (feedback~ :initform '(name feedback type xim:XIMFEEDBACK size (/ (xcb:-fieldref 'feedback-length) 4)) :type xcb:-list))) (defclass xim:status-draw-bitmap (xim:status-draw) ((type :initarg :type :initform xim:status-draw-type:bitmap) (pixmap-data :initarg :pixmap-data :type xcb:PIXMAP))) (defclass xim:status-done (xim:-request) ((~major-opcode :initform xim:opcode:status-done) (im-id :initarg :im-id :type xcb:CARD16) (ic-id :initarg :ic-id :type xcb:CARD16))) (provide 'xcb-xim) ;;; xcb-xim.el ends here xelb-0.18/xcb-xinerama.el000066400000000000000000000076031353702660000153040ustar00rootroot00000000000000;;; xcb-xinerama.el --- X11 Xinerama extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xinerama.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xinerama:-extension-xname "XINERAMA") (defconst xcb:xinerama:-extension-name "Xinerama") (defconst xcb:xinerama:-major-version 1) (defconst xcb:xinerama:-minor-version 1) (require 'xcb-xproto) (defclass xcb:xinerama:ScreenInfo (xcb:-struct) ((x-org :initarg :x-org :type xcb:INT16) (y-org :initarg :y-org :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:xinerama:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major :initarg :major :type xcb:CARD8) (minor :initarg :minor :type xcb:CARD8))) (defclass xcb:xinerama:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major :initarg :major :type xcb:CARD16) (minor :initarg :minor :type xcb:CARD16))) (defclass xcb:xinerama:GetState (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xinerama:GetState~reply (xcb:-reply) ((state :initarg :state :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xinerama:GetScreenCount (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xinerama:GetScreenCount~reply (xcb:-reply) ((screen-count :initarg :screen-count :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xinerama:GetScreenSize (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xinerama:GetScreenSize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width :initarg :width :type xcb:CARD32) (height :initarg :height :type xcb:CARD32) (window :initarg :window :type xcb:WINDOW) (screen :initarg :screen :type xcb:CARD32))) (defclass xcb:xinerama:IsActive (xcb:-request) ((~opcode :initform 4 :type xcb:-u1))) (defclass xcb:xinerama:IsActive~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (state :initarg :state :type xcb:CARD32))) (defclass xcb:xinerama:QueryScreens (xcb:-request) ((~opcode :initform 5 :type xcb:-u1))) (defclass xcb:xinerama:QueryScreens~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (number :initarg :number :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (screen-info~ :initform '(name screen-info type xcb:xinerama:ScreenInfo size (xcb:-fieldref 'number)) :type xcb:-list) (screen-info :initarg :screen-info :type xcb:-ignore))) (provide 'xcb-xinerama) ;;; xcb-xinerama.el ends here xelb-0.18/xcb-xinput.el000066400000000000000000003075301353702660000150310ustar00rootroot00000000000000;;; xcb-xinput.el --- X11 Input extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 3) (require 'xcb-xfixes) (require 'xcb-xproto) (xcb:deftypealias 'xcb:xinput:EventClass 'xcb:CARD32) (xcb:deftypealias 'xcb:xinput:KeyCode 'xcb:CARD8) (xcb:deftypealias 'xcb:xinput:DeviceId 'xcb:CARD16) (xcb:deftypealias 'xcb:xinput:FP1616 'xcb:INT32) (defclass xcb:xinput:FP3232 (xcb:-struct) ((integral :initarg :integral :type xcb:INT32) (frac :initarg :frac :type xcb:CARD32))) (defclass xcb:xinput:GetExtensionVersion (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (name-len :initarg :name-len :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (name~ :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: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:ValuatorClass (xcb:-struct) ((type :initarg :type :type xcb:CARD16) (len :initarg :len :type xcb:CARD16) (sourceid :initarg :sourceid :type xcb:xinput:DeviceId) (number :initarg :number :type xcb:CARD16) (label :initarg :label :type xcb:ATOM) (min :initarg :min :type xcb:xinput:FP3232) (max :initarg :max :type xcb:xinput:FP3232) (value :initarg :value :type xcb:xinput:FP3232) (resolution :initarg :resolution :type xcb:CARD32) (mode :initarg :mode :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xinput:DeviceClass (xcb:-struct) ((type :initarg :type :type xcb:CARD16) (len :initarg :len :type xcb:CARD16) (sourceid :initarg :sourceid :type xcb:xinput:DeviceId) (data :initform '(expression (xcb:-fieldref 'type) cases (((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))) :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))) (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) (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:-event xcb:xinput:DeviceKeyPress) ((~code :initform 2))) (defclass xcb:xinput:DeviceButtonPress (xcb:-event xcb:xinput:DeviceKeyPress) ((~code :initform 3))) (defclass xcb:xinput:DeviceButtonRelease (xcb:-event xcb:xinput:DeviceKeyPress) ((~code :initform 4))) (defclass xcb:xinput:DeviceMotionNotify (xcb:-event 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:-event xcb:xinput:DeviceFocusIn) ((~code :initform 7))) (defclass xcb:xinput:ProximityIn (xcb:-event xcb:xinput:DeviceKeyPress) ((~code :initform 8))) (defclass xcb:xinput:ProximityOut (xcb:-event 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 '(xcb:-popcount obj) (list (nconc '(obj) i)))) (slot-value obj 'valuator-mask)))) :type xcb:-list) (axisvalues :initarg :axisvalues :type xcb:-ignore))) (defclass xcb:xinput:KeyRelease (xcb:-event 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 '(xcb:-popcount obj) (list (nconc '(obj) i)))) (slot-value obj 'valuator-mask)))) :type xcb:-list) (axisvalues :initarg :axisvalues :type xcb:-ignore))) (defclass xcb:xinput:ButtonRelease (xcb:-event xcb:xinput:ButtonPress) ((~evtype :initform 5))) (defclass xcb:xinput:Motion (xcb:-event 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:-event xcb:xinput:Enter) ((~evtype :initform 8))) (defclass xcb:xinput:FocusIn (xcb:-event xcb:xinput:Enter) ((~evtype :initform 9))) (defclass xcb:xinput:FocusOut (xcb:-event 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 '(xcb:-popcount 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 '(xcb:-popcount 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:-event 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 '(xcb:-popcount 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 '(xcb:-popcount 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:-event xcb:xinput:RawButtonPress) ((~evtype :initform 16))) (defclass xcb:xinput:RawMotion (xcb:-event 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 '(xcb:-popcount obj) (list (nconc '(obj) i)))) (slot-value obj 'valuator-mask)))) :type xcb:-list) (axisvalues :initarg :axisvalues :type xcb:-ignore))) (defclass xcb:xinput:TouchUpdate (xcb:-event xcb:xinput:TouchBegin) ((~evtype :initform 19))) (defclass xcb:xinput:TouchEnd (xcb:-event 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 '(xcb:-popcount 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 '(xcb:-popcount 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:-event xcb:xinput:RawTouchBegin) ((~evtype :initform 23))) (defclass xcb:xinput:RawTouchEnd (xcb:-event 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:-event xcb:xinput:BarrierHit) ((~evtype :initform 26))) (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)) "(xge-number . event-class) alist.") (provide 'xcb-xinput) ;;; xcb-xinput.el ends here xelb-0.18/xcb-xkb.el000066400000000000000000002616011353702660000142640ustar00rootroot00000000000000;;; xcb-xkb.el --- X11 xkb extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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 (xcb:-popcount (xcb:-fieldref 'namesPresent))) :type xcb:-list) (names :initarg :names :type xcb:-ignore) (maps~ :initform '(name maps type xcb:xkb:IndicatorMap size (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (xcb:-fieldref 'indicators))) :type xcb:-list) (indicatorNames :initarg :indicatorNames :type xcb:-ignore) (virtualModNames~ :initform '(name virtualModNames type xcb:ATOM size (xcb:-popcount (xcb:-fieldref 'virtualMods))) :type xcb:-list) (virtualModNames :initarg :virtualModNames :type xcb:-ignore) (groups~ :initform '(name groups type xcb:ATOM size (xcb:-popcount (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 (xcb:-popcount (xcb:-fieldref 'indicators))) :type xcb:-list) (indicatorNames :initarg :indicatorNames :type xcb:-ignore) (virtualModNames~ :initform '(name virtualModNames type xcb:ATOM size (xcb:-popcount (xcb:-fieldref 'virtualMods))) :type xcb:-list) (virtualModNames :initarg :virtualModNames :type xcb:-ignore) (groups~ :initform '(name groups type xcb:ATOM size (xcb:-popcount (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))) (eval-and-compile (when (< emacs-major-version 25) (fset 'xcb:-defclass (symbol-function 'defclass)) (defmacro defclass (&rest _args)))) (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 (xcb:-popcount (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 (xcb:-popcount (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 (xcb:-popcount (xcb:-fieldref 'indicators))) :type xcb:-list) (indicatorNames :initarg :indicatorNames :type xcb:-ignore) (virtualModNames~ :initform '(name virtualModNames type xcb:ATOM size (xcb:-popcount (xcb:-fieldref 'virtualMods))) :type xcb:-list) (virtualModNames :initarg :virtualModNames :type xcb:-ignore) (groups~ :initform '(name groups type xcb:ATOM size (xcb:-popcount (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))) (eval-and-compile (when (< emacs-major-version 25) (fset 'defclass (symbol-function 'xcb:-defclass)))) (defclass xcb:xkb:GetDeviceInfo (xcb:-request) ((~opcode :initform 24 :type xcb:-u1) (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec) (wanted :initarg :wanted :type xcb:CARD16) (allButtons :initarg :allButtons :type xcb:BOOL) (firstButton :initarg :firstButton :type xcb:CARD8) (nButtons :initarg :nButtons :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (ledClass :initarg :ledClass :type xcb:xkb:LedClassSpec) (ledID :initarg :ledID :type xcb:xkb:IDSpec))) (defclass xcb:xkb:GetDeviceInfo~reply (xcb:-reply) ((deviceID :initarg :deviceID :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (present :initarg :present :type xcb:CARD16) (supported :initarg :supported :type xcb:CARD16) (unsupported :initarg :unsupported :type xcb:CARD16) (nDeviceLedFBs :initarg :nDeviceLedFBs :type xcb:CARD16) (firstBtnWanted :initarg :firstBtnWanted :type xcb:CARD8) (nBtnsWanted :initarg :nBtnsWanted :type xcb:CARD8) (firstBtnRtrn :initarg :firstBtnRtrn :type xcb:CARD8) (nBtnsRtrn :initarg :nBtnsRtrn :type xcb:CARD8) (totalBtns :initarg :totalBtns :type xcb:CARD8) (hasOwnState :initarg :hasOwnState :type xcb:BOOL) (dfltKbdFB :initarg :dfltKbdFB :type xcb:CARD16) (dfltLedFB :initarg :dfltLedFB :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (devType :initarg :devType :type xcb:ATOM) (nameLen :initarg :nameLen :type xcb:CARD16) (name~ :initform '(name name type xcb:xkb:STRING8 size (xcb:-fieldref 'nameLen)) :type xcb:-list) (name :initarg :name :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align) (btnActions~ :initform '(name btnActions type xcb:xkb:Action size (xcb:-fieldref 'nBtnsRtrn)) :type xcb:-list) (btnActions :initarg :btnActions :type xcb:-ignore) (leds~ :initform '(name leds type xcb:xkb:DeviceLedInfo size (xcb:-fieldref 'nDeviceLedFBs)) :type xcb:-list) (leds :initarg :leds :type xcb:-ignore))) (defclass xcb:xkb:SetDeviceInfo (xcb:-request) ((~opcode :initform 25 :type xcb:-u1) (deviceSpec :initarg :deviceSpec :type xcb:xkb:DeviceSpec) (firstBtn :initarg :firstBtn :type xcb:CARD8) (nBtns :initarg :nBtns :type xcb:CARD8) (change :initarg :change :type xcb:CARD16) (nDeviceLedFBs :initarg :nDeviceLedFBs :type xcb:CARD16) (btnActions~ :initform '(name btnActions type xcb:xkb:Action size (xcb:-fieldref 'nBtns)) :type xcb:-list) (btnActions :initarg :btnActions :type xcb:-ignore) (leds~ :initform '(name leds type xcb:xkb:DeviceLedInfo size (xcb:-fieldref 'nDeviceLedFBs)) :type xcb:-list) (leds :initarg :leds :type xcb:-ignore))) (defclass xcb:xkb:SetDebuggingFlags (xcb:-request) ((~opcode :initform 101 :type xcb:-u1) (msgLength :initarg :msgLength :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (affectFlags :initarg :affectFlags :type xcb:CARD32) (flags :initarg :flags :type xcb:CARD32) (affectCtrls :initarg :affectCtrls :type xcb:CARD32) (ctrls :initarg :ctrls :type xcb:CARD32) (message~ :initform '(name message type xcb:xkb:STRING8 size (xcb:-fieldref 'msgLength)) :type xcb:-list) (message :initarg :message :type xcb:-ignore))) (defclass xcb:xkb:SetDebuggingFlags~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (currentFlags :initarg :currentFlags :type xcb:CARD32) (currentCtrls :initarg :currentCtrls :type xcb:CARD32) (supportedFlags :initarg :supportedFlags :type xcb:CARD32) (supportedCtrls :initarg :supportedCtrls :type xcb:CARD32) (pad~1 :initform 8 :type xcb:-pad))) (defclass xcb:xkb:NewKeyboardNotify (xcb:-event) ((~code :initform 0) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (oldDeviceID :initarg :oldDeviceID :type xcb:CARD8) (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE) (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE) (oldMinKeyCode :initarg :oldMinKeyCode :type xcb:KEYCODE) (oldMaxKeyCode :initarg :oldMaxKeyCode :type xcb:KEYCODE) (requestMajor :initarg :requestMajor :type xcb:CARD8) (requestMinor :initarg :requestMinor :type xcb:CARD8) (changed :initarg :changed :type xcb:CARD16) (pad~0 :initform 14 :type xcb:-pad))) (defclass xcb:xkb:MapNotify (xcb:-event) ((~code :initform 1) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (ptrBtnActions :initarg :ptrBtnActions :type xcb:CARD8) (changed :initarg :changed :type xcb:CARD16) (minKeyCode :initarg :minKeyCode :type xcb:KEYCODE) (maxKeyCode :initarg :maxKeyCode :type xcb:KEYCODE) (firstType :initarg :firstType :type xcb:CARD8) (nTypes :initarg :nTypes :type xcb:CARD8) (firstKeySym :initarg :firstKeySym :type xcb:KEYCODE) (nKeySyms :initarg :nKeySyms :type xcb:CARD8) (firstKeyAct :initarg :firstKeyAct :type xcb:KEYCODE) (nKeyActs :initarg :nKeyActs :type xcb:CARD8) (firstKeyBehavior :initarg :firstKeyBehavior :type xcb:KEYCODE) (nKeyBehavior :initarg :nKeyBehavior :type xcb:CARD8) (firstKeyExplicit :initarg :firstKeyExplicit :type xcb:KEYCODE) (nKeyExplicit :initarg :nKeyExplicit :type xcb:CARD8) (firstModMapKey :initarg :firstModMapKey :type xcb:KEYCODE) (nModMapKeys :initarg :nModMapKeys :type xcb:CARD8) (firstVModMapKey :initarg :firstVModMapKey :type xcb:KEYCODE) (nVModMapKeys :initarg :nVModMapKeys :type xcb:CARD8) (virtualMods :initarg :virtualMods :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:xkb:StateNotify (xcb:-event) ((~code :initform 2) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (mods :initarg :mods :type xcb:CARD8) (baseMods :initarg :baseMods :type xcb:CARD8) (latchedMods :initarg :latchedMods :type xcb:CARD8) (lockedMods :initarg :lockedMods :type xcb:CARD8) (group :initarg :group :type xcb:CARD8) (baseGroup :initarg :baseGroup :type xcb:INT16) (latchedGroup :initarg :latchedGroup :type xcb:INT16) (lockedGroup :initarg :lockedGroup :type xcb:CARD8) (compatState :initarg :compatState :type xcb:CARD8) (grabMods :initarg :grabMods :type xcb:CARD8) (compatGrabMods :initarg :compatGrabMods :type xcb:CARD8) (lookupMods :initarg :lookupMods :type xcb:CARD8) (compatLoockupMods :initarg :compatLoockupMods :type xcb:CARD8) (ptrBtnState :initarg :ptrBtnState :type xcb:CARD16) (changed :initarg :changed :type xcb:CARD16) (keycode :initarg :keycode :type xcb:KEYCODE) (eventType :initarg :eventType :type xcb:CARD8) (requestMajor :initarg :requestMajor :type xcb:CARD8) (requestMinor :initarg :requestMinor :type xcb:CARD8))) (defclass xcb:xkb:ControlsNotify (xcb:-event) ((~code :initform 3) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (numGroups :initarg :numGroups :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (changedControls :initarg :changedControls :type xcb:CARD32) (enabledControls :initarg :enabledControls :type xcb:CARD32) (enabledControlChanges :initarg :enabledControlChanges :type xcb:CARD32) (keycode :initarg :keycode :type xcb:KEYCODE) (eventType :initarg :eventType :type xcb:CARD8) (requestMajor :initarg :requestMajor :type xcb:CARD8) (requestMinor :initarg :requestMinor :type xcb:CARD8) (pad~1 :initform 4 :type xcb:-pad))) (defclass xcb:xkb:IndicatorStateNotify (xcb:-event) ((~code :initform 4) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (state :initarg :state :type xcb:CARD32) (stateChanged :initarg :stateChanged :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad))) (defclass xcb:xkb:IndicatorMapNotify (xcb:-event) ((~code :initform 5) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (state :initarg :state :type xcb:CARD32) (mapChanged :initarg :mapChanged :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad))) (defclass xcb:xkb:NamesNotify (xcb:-event) ((~code :initform 6) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (changed :initarg :changed :type xcb:CARD16) (firstType :initarg :firstType :type xcb:CARD8) (nTypes :initarg :nTypes :type xcb:CARD8) (firstLevelName :initarg :firstLevelName :type xcb:CARD8) (nLevelNames :initarg :nLevelNames :type xcb:CARD8) (pad~1 :initform 1 :type xcb:-pad) (nRadioGroups :initarg :nRadioGroups :type xcb:CARD8) (nKeyAliases :initarg :nKeyAliases :type xcb:CARD8) (changedGroupNames :initarg :changedGroupNames :type xcb:CARD8) (changedVirtualMods :initarg :changedVirtualMods :type xcb:CARD16) (firstKey :initarg :firstKey :type xcb:KEYCODE) (nKeys :initarg :nKeys :type xcb:CARD8) (changedIndicators :initarg :changedIndicators :type xcb:CARD32) (pad~2 :initform 4 :type xcb:-pad))) (defclass xcb:xkb:CompatMapNotify (xcb:-event) ((~code :initform 7) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (changedGroups :initarg :changedGroups :type xcb:CARD8) (firstSI :initarg :firstSI :type xcb:CARD16) (nSI :initarg :nSI :type xcb:CARD16) (nTotalSI :initarg :nTotalSI :type xcb:CARD16) (pad~0 :initform 16 :type xcb:-pad))) (defclass xcb:xkb:BellNotify (xcb:-event) ((~code :initform 8) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (bellClass :initarg :bellClass :type xcb:CARD8) (bellID :initarg :bellID :type xcb:CARD8) (percent :initarg :percent :type xcb:CARD8) (pitch :initarg :pitch :type xcb:CARD16) (duration :initarg :duration :type xcb:CARD16) (name :initarg :name :type xcb:ATOM) (window :initarg :window :type xcb:WINDOW) (eventOnly :initarg :eventOnly :type xcb:BOOL) (pad~0 :initform 7 :type xcb:-pad))) (defclass xcb:xkb:ActionMessage (xcb:-event) ((~code :initform 9) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (keycode :initarg :keycode :type xcb:KEYCODE) (press :initarg :press :type xcb:BOOL) (keyEventFollows :initarg :keyEventFollows :type xcb:BOOL) (mods :initarg :mods :type xcb:CARD8) (group :initarg :group :type xcb:CARD8) (message~ :initform '(name message type xcb:xkb:STRING8 size 8) :type xcb:-list) (message :initarg :message :type xcb:-ignore) (pad~0 :initform 10 :type xcb:-pad))) (defclass xcb:xkb:AccessXNotify (xcb:-event) ((~code :initform 10) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (keycode :initarg :keycode :type xcb:KEYCODE) (detailt :initarg :detailt :type xcb:CARD16) (slowKeysDelay :initarg :slowKeysDelay :type xcb:CARD16) (debounceDelay :initarg :debounceDelay :type xcb:CARD16) (pad~0 :initform 16 :type xcb:-pad))) (defclass xcb:xkb:ExtensionDeviceNotify (xcb:-event) ((~code :initform 11) (xkbType :initarg :xkbType :type xcb:CARD8) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (deviceID :initarg :deviceID :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (reason :initarg :reason :type xcb:CARD16) (ledClass :initarg :ledClass :type xcb:CARD16) (ledID :initarg :ledID :type xcb:CARD16) (ledsDefined :initarg :ledsDefined :type xcb:CARD32) (ledState :initarg :ledState :type xcb:CARD32) (firstButton :initarg :firstButton :type xcb:CARD8) (nButtons :initarg :nButtons :type xcb:CARD8) (supported :initarg :supported :type xcb:CARD16) (unsupported :initarg :unsupported :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad))) (defconst xcb:xkb:error-number-class-alist '((0 . xcb:xkb:Keyboard)) "(error-number . error-class) alist.") (defconst xcb:xkb:event-number-class-alist '((0 . xcb:xkb:NewKeyboardNotify) (1 . xcb:xkb:MapNotify) (2 . xcb:xkb:StateNotify) (3 . xcb:xkb:ControlsNotify) (4 . xcb:xkb:IndicatorStateNotify) (5 . xcb:xkb:IndicatorMapNotify) (6 . xcb:xkb:NamesNotify) (7 . xcb:xkb:CompatMapNotify) (8 . xcb:xkb:BellNotify) (9 . xcb:xkb:ActionMessage) (10 . xcb:xkb:AccessXNotify) (11 . xcb:xkb:ExtensionDeviceNotify)) "(event-number . event-class) alist.") (provide 'xcb-xkb) ;;; xcb-xkb.el ends here xelb-0.18/xcb-xlib.el000066400000000000000000000105341353702660000144330ustar00rootroot00000000000000;;; xcb-xlib.el --- Port of Xlib -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; This file currently only contains constants from 'Xlib.h' ;;; Code: (defconst xlib:XNRequiredCharSet "requiredCharSet") (defconst xlib:XNQueryOrientation "queryOrientation") (defconst xlib:XNBaseFontName "baseFontName") (defconst xlib:XNOMAutomatic "omAutomatic") (defconst xlib:XNMissingCharSet "missingCharSet") (defconst xlib:XNDefaultString "defaultString") (defconst xlib:XNOrientation "orientation") (defconst xlib:XNDirectionalDependentDrawing "directionalDependentDrawing") (defconst xlib:XNContextualDrawing "contextualDrawing") (defconst xlib:XNFontInfo "fontInfo") (defconst xlib:XNVaNestedList "XNVaNestedList") (defconst xlib:XNQueryInputStyle "queryInputStyle") (defconst xlib:XNClientWindow "clientWindow") (defconst xlib:XNInputStyle "inputStyle") (defconst xlib:XNFocusWindow "focusWindow") (defconst xlib:XNResourceName "resourceName") (defconst xlib:XNResourceClass "resourceClass") (defconst xlib:XNGeometryCallback "geometryCallback") (defconst xlib:XNDestroyCallback "destroyCallback") (defconst xlib:XNFilterEvents "filterEvents") (defconst xlib:XNPreeditStartCallback "preeditStartCallback") (defconst xlib:XNPreeditDoneCallback "preeditDoneCallback") (defconst xlib:XNPreeditDrawCallback "preeditDrawCallback") (defconst xlib:XNPreeditCaretCallback "preeditCaretCallback") (defconst xlib:XNPreeditStateNotifyCallback "preeditStateNotifyCallback") (defconst xlib:XNPreeditAttributes "preeditAttributes") (defconst xlib:XNStatusStartCallback "statusStartCallback") (defconst xlib:XNStatusDoneCallback "statusDoneCallback") (defconst xlib:XNStatusDrawCallback "statusDrawCallback") (defconst xlib:XNStatusAttributes "statusAttributes") (defconst xlib:XNArea "area") (defconst xlib:XNAreaNeeded "areaNeeded") (defconst xlib:XNSpotLocation "spotLocation") (defconst xlib:XNColormap "colorMap") (defconst xlib:XNStdColormap "stdColorMap") (defconst xlib:XNForeground "foreground") (defconst xlib:XNBackground "background") (defconst xlib:XNBackgroundPixmap "backgroundPixmap") (defconst xlib:XNFontSet "fontSet") (defconst xlib:XNLineSpace "lineSpace") (defconst xlib:XNCursor "cursor") (defconst xlib:XNQueryIMValuesList "queryIMValuesList") (defconst xlib:XNQueryICValuesList "queryICValuesList") (defconst xlib:XNVisiblePosition "visiblePosition") (defconst xlib:XNR6PreeditCallback "r6PreeditCallback") (defconst xlib:XNStringConversionCallback "stringConversionCallback") (defconst xlib:XNStringConversion "stringConversion") (defconst xlib:XNResetState "resetState") (defconst xlib:XNHotKey "hotKey") (defconst xlib:XNHotKeyState "hotKeyState") (defconst xlib:XNPreeditState "preeditState") (defconst xlib:XNSeparatorofNestedList "separatorofNestedList") (defconst xlib:XIMPreeditArea #x0001) (defconst xlib:XIMPreeditCallbacks #x0002) (defconst xlib:XIMPreeditPosition #x0004) (defconst xlib:XIMPreeditNothing #x0008) (defconst xlib:XIMPreeditNone #x0010) (defconst xlib:XIMStatusArea #x0100) (defconst xlib:XIMStatusCallbacks #x0200) (defconst xlib:XIMStatusNothing #x0400) (defconst xlib:XIMStatusNone #x0800) (defconst xlib:XIMReverse #x001) (defconst xlib:XIMUnderline #x002) (defconst xlib:XIMHighlight #x004) (defconst xlib:XIMPrimary #x010) (defconst xlib:XIMSecondary #x020) (defconst xlib:XIMTertiary #x040) (defconst xlib:XIMVisibleToForward #x080) (defconst xlib:XIMVisibleToBackword #x100) (defconst xlib:XIMVisibleToCenter #x200) (defconst xlib:XBufferOverflow -1) (defconst xlib:XLookupNone 1) (defconst xlib:XLookupChars 2) (defconst xlib:XLookupKeySym 3) (defconst xlib:XLookupBoth 4) (provide 'xcb-xlib) ;;; xcb-xlib.el ends here xelb-0.18/xcb-xprint.el000066400000000000000000000327121353702660000150230ustar00rootroot00000000000000;;; xcb-xprint.el --- X11 XPrint extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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) (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) (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) (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) (options~ :initform '(name options type xcb:xprint:STRING8 size (xcb:-fieldref 'len-options)) :type xcb:-list) (options :initarg :options :type xcb:-ignore))) (defclass xcb:xprint:PrintGetDocumentData (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (max-bytes :initarg :max-bytes :type xcb:CARD32))) (defclass xcb:xprint:PrintGetDocumentData~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (status-code :initarg :status-code :type xcb:CARD32) (finished-flag :initarg :finished-flag :type xcb:CARD32) (dataLen :initarg :dataLen :type xcb:CARD32) (pad~1 :initform 12 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (xcb:-fieldref 'dataLen)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:xprint:PrintStartPage (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xprint:PrintEndPage (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (cancel :initarg :cancel :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xprint:PrintSelectInput (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (event-mask :initarg :event-mask :type xcb:CARD32))) (defclass xcb:xprint:PrintInputSelected (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT))) (defclass xcb:xprint:PrintInputSelected~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (event-mask :initarg :event-mask :type xcb:CARD32) (all-events-mask :initarg :all-events-mask :type xcb:CARD32))) (defclass xcb:xprint:PrintGetAttributes (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (pool :initarg :pool :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xprint:PrintGetAttributes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (stringLen :initarg :stringLen :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (attributes~ :initform '(name attributes type xcb:xprint:STRING8 size (xcb:-fieldref 'stringLen)) :type xcb:-list) (attributes :initarg :attributes :type xcb:-ignore))) (defclass xcb:xprint:PrintGetOneAttributes (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (nameLen :initarg :nameLen :type xcb:CARD32) (pool :initarg :pool :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (name~ :initform '(name name type xcb:xprint:STRING8 size (xcb:-fieldref 'nameLen)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:xprint:PrintGetOneAttributes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (valueLen :initarg :valueLen :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (value~ :initform '(name value type xcb:xprint:STRING8 size (xcb:-fieldref 'valueLen)) :type xcb:-list) (value :initarg :value :type xcb:-ignore))) (defclass xcb:xprint:PrintSetAttributes (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (stringLen :initarg :stringLen :type xcb:CARD32) (pool :initarg :pool :type xcb:CARD8) (rule :initarg :rule :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (attributes~ :initform '(name attributes type xcb:xprint:STRING8 size nil) :type xcb:-list) (attributes :initarg :attributes :type xcb:-ignore))) (defclass xcb:xprint:PrintGetPageDimensions (xcb:-request) ((~opcode :initform 21 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT))) (defclass xcb:xprint:PrintGetPageDimensions~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (offset-x :initarg :offset-x :type xcb:CARD16) (offset-y :initarg :offset-y :type xcb:CARD16) (reproducible-width :initarg :reproducible-width :type xcb:CARD16) (reproducible-height :initarg :reproducible-height :type xcb:CARD16))) (defclass xcb:xprint:PrintQueryScreens (xcb:-request) ((~opcode :initform 22 :type xcb:-u1))) (defclass xcb:xprint:PrintQueryScreens~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (listCount :initarg :listCount :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (roots~ :initform '(name roots type xcb:WINDOW size (xcb:-fieldref 'listCount)) :type xcb:-list) (roots :initarg :roots :type xcb:-ignore))) (defclass xcb:xprint:PrintSetImageResolution (xcb:-request) ((~opcode :initform 23 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT) (image-resolution :initarg :image-resolution :type xcb:CARD16))) (defclass xcb:xprint:PrintSetImageResolution~reply (xcb:-reply) ((status :initarg :status :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (previous-resolutions :initarg :previous-resolutions :type xcb:CARD16))) (defclass xcb:xprint:PrintGetImageResolution (xcb:-request) ((~opcode :initform 24 :type xcb:-u1) (context :initarg :context :type xcb:xprint:PCONTEXT))) (defclass xcb:xprint:PrintGetImageResolution~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (image-resolution :initarg :image-resolution :type xcb:CARD16))) (defclass xcb:xprint:Notify (xcb:-event) ((~code :initform 0) (detail :initarg :detail :type xcb:CARD8) (~sequence :type xcb:CARD16) (context :initarg :context :type xcb:xprint:PCONTEXT) (cancel :initarg :cancel :type xcb:BOOL))) (defclass xcb:xprint:AttributNotify (xcb:-event) ((~code :initform 1) (detail :initarg :detail :type xcb:CARD8) (~sequence :type xcb:CARD16) (context :initarg :context :type xcb:xprint:PCONTEXT))) (defclass xcb:xprint:BadContext (xcb:-error) ((~code :initform 0))) (defclass xcb:xprint:BadSequence (xcb:-error) ((~code :initform 1))) (defconst xcb:xprint:error-number-class-alist '((0 . xcb:xprint:BadContext) (1 . xcb:xprint:BadSequence)) "(error-number . error-class) alist.") (defconst xcb:xprint:event-number-class-alist '((0 . xcb:xprint:Notify) (1 . xcb:xprint:AttributNotify)) "(event-number . event-class) alist.") (provide 'xcb-xprint) ;;; xcb-xprint.el ends here xelb-0.18/xcb-xproto.el000066400000000000000000003037331353702660000150360ustar00rootroot00000000000000;;; xcb-xproto.el --- X11 core protocol -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' 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:-event 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:-event 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:-event 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:-event 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:-event xcb:CirculateNotify) ((~code :initform 27))) (defconst xcb:Property:NewValue 0) (defconst xcb:Property:Delete 1) (defclass xcb:PropertyNotify (xcb:-event) ((~code :initform 28) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (window :initarg :window :type xcb:WINDOW) (atom :initarg :atom :type xcb:ATOM) (time :initarg :time :type xcb:TIMESTAMP) (state :initarg :state :type xcb:BYTE) (pad~1 :initform 3 :type xcb:-pad))) (defclass xcb:SelectionClear (xcb:-event) ((~code :initform 29) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (owner :initarg :owner :type xcb:WINDOW) (selection :initarg :selection :type xcb:ATOM))) (defconst xcb:Time:CurrentTime 0) (defconst xcb:Atom:None 0) (defconst xcb:Atom:Any 0) (defconst xcb:Atom:PRIMARY 1) (defconst xcb:Atom:SECONDARY 2) (defconst xcb:Atom:ARC 3) (defconst xcb:Atom:ATOM 4) (defconst xcb:Atom:BITMAP 5) (defconst xcb:Atom:CARDINAL 6) (defconst xcb:Atom:COLORMAP 7) (defconst xcb:Atom:CURSOR 8) (defconst xcb:Atom:CUT_BUFFER0 9) (defconst xcb:Atom:CUT_BUFFER1 10) (defconst xcb:Atom:CUT_BUFFER2 11) (defconst xcb:Atom:CUT_BUFFER3 12) (defconst xcb:Atom:CUT_BUFFER4 13) (defconst xcb:Atom:CUT_BUFFER5 14) (defconst xcb:Atom:CUT_BUFFER6 15) (defconst xcb:Atom:CUT_BUFFER7 16) (defconst xcb:Atom:DRAWABLE 17) (defconst xcb:Atom:FONT 18) (defconst xcb:Atom:INTEGER 19) (defconst xcb:Atom:PIXMAP 20) (defconst xcb:Atom:POINT 21) (defconst xcb:Atom:RECTANGLE 22) (defconst xcb:Atom:RESOURCE_MANAGER 23) (defconst xcb:Atom:RGB_COLOR_MAP 24) (defconst xcb:Atom:RGB_BEST_MAP 25) (defconst xcb:Atom:RGB_BLUE_MAP 26) (defconst xcb:Atom:RGB_DEFAULT_MAP 27) (defconst xcb:Atom:RGB_GRAY_MAP 28) (defconst xcb:Atom:RGB_GREEN_MAP 29) (defconst xcb:Atom:RGB_RED_MAP 30) (defconst xcb:Atom:STRING 31) (defconst xcb:Atom:VISUALID 32) (defconst xcb:Atom:WINDOW 33) (defconst xcb:Atom:WM_COMMAND 34) (defconst xcb:Atom:WM_HINTS 35) (defconst xcb:Atom:WM_CLIENT_MACHINE 36) (defconst xcb:Atom:WM_ICON_NAME 37) (defconst xcb:Atom:WM_ICON_SIZE 38) (defconst xcb:Atom:WM_NAME 39) (defconst xcb:Atom:WM_NORMAL_HINTS 40) (defconst xcb:Atom:WM_SIZE_HINTS 41) (defconst xcb:Atom:WM_ZOOM_HINTS 42) (defconst xcb:Atom:MIN_SPACE 43) (defconst xcb:Atom:NORM_SPACE 44) (defconst xcb:Atom:MAX_SPACE 45) (defconst xcb:Atom:END_SPACE 46) (defconst xcb:Atom:SUPERSCRIPT_X 47) (defconst xcb:Atom:SUPERSCRIPT_Y 48) (defconst xcb:Atom:SUBSCRIPT_X 49) (defconst xcb:Atom:SUBSCRIPT_Y 50) (defconst xcb:Atom:UNDERLINE_POSITION 51) (defconst xcb:Atom:UNDERLINE_THICKNESS 52) (defconst xcb:Atom:STRIKEOUT_ASCENT 53) (defconst xcb:Atom:STRIKEOUT_DESCENT 54) (defconst xcb:Atom:ITALIC_ANGLE 55) (defconst xcb:Atom:X_HEIGHT 56) (defconst xcb:Atom:QUAD_WIDTH 57) (defconst xcb:Atom:WEIGHT 58) (defconst xcb:Atom:POINT_SIZE 59) (defconst xcb:Atom:RESOLUTION 60) (defconst xcb:Atom:COPYRIGHT 61) (defconst xcb:Atom:NOTICE 62) (defconst xcb:Atom:FONT_NAME 63) (defconst xcb:Atom:FAMILY_NAME 64) (defconst xcb:Atom:FULL_NAME 65) (defconst xcb:Atom:CAP_HEIGHT 66) (defconst xcb:Atom:WM_CLASS 67) (defconst xcb:Atom:WM_TRANSIENT_FOR 68) (defclass xcb:SelectionRequest (xcb:-event) ((~code :initform 30) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (owner :initarg :owner :type xcb:WINDOW) (requestor :initarg :requestor :type xcb:WINDOW) (selection :initarg :selection :type xcb:ATOM) (target :initarg :target :type xcb:ATOM) (property :initarg :property :type xcb:ATOM))) (defclass xcb:SelectionNotify (xcb:-event) ((~code :initform 31) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (requestor :initarg :requestor :type xcb:WINDOW) (selection :initarg :selection :type xcb:ATOM) (target :initarg :target :type xcb:ATOM) (property :initarg :property :type xcb:ATOM))) (defconst xcb:ColormapState:Uninstalled 0) (defconst xcb:ColormapState:Installed 1) (defconst xcb:Colormap:None 0) (defclass xcb:ColormapNotify (xcb:-event) ((~code :initform 32) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (window :initarg :window :type xcb:WINDOW) (colormap :initarg :colormap :type xcb:COLORMAP) (new :initarg :new :type xcb:BOOL) (state :initarg :state :type xcb:BYTE) (pad~1 :initform 2 :type xcb:-pad))) (defclass xcb:ClientMessageData (xcb:-union) ((~size :initform 20) (data8~ :initform '(name data8 type xcb:CARD8 size 20) :type xcb:-list) (data8 :initarg :data8 :type xcb:-ignore) (data16~ :initform '(name data16 type xcb:CARD16 size 10) :type xcb:-list) (data16 :initarg :data16 :type xcb:-ignore) (data32~ :initform '(name data32 type xcb:CARD32 size 5) :type xcb:-list) (data32 :initarg :data32 :type xcb:-ignore))) (defclass xcb:ClientMessage (xcb:-event) ((~code :initform 33) (format :initarg :format :type xcb:CARD8) (~sequence :type xcb:CARD16) (window :initarg :window :type xcb:WINDOW) (type :initarg :type :type xcb:ATOM) (data :initarg :data :type xcb:ClientMessageData))) (defconst xcb:Mapping:Modifier 0) (defconst xcb:Mapping:Keyboard 1) (defconst xcb:Mapping:Pointer 2) (defclass xcb:MappingNotify (xcb:-event) ((~code :initform 34) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (request :initarg :request :type xcb:BYTE) (first-keycode :initarg :first-keycode :type xcb:KEYCODE) (count :initarg :count :type xcb:CARD8) (pad~1 :initform 1 :type xcb:-pad))) (defclass xcb:GeGeneric (xcb:-generic-event) ((pad~0 :initform 22 :type xcb:-pad))) (defclass xcb:Request (xcb:-error) ((~code :initform 1) (bad-value :initarg :bad-value :type xcb:CARD32) (minor-opcode :initarg :minor-opcode :type xcb:CARD16) (major-opcode :initarg :major-opcode :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad))) (defclass xcb:Value (xcb:-error) ((~code :initform 2) (bad-value :initarg :bad-value :type xcb:CARD32) (minor-opcode :initarg :minor-opcode :type xcb:CARD16) (major-opcode :initarg :major-opcode :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad))) (defclass xcb:Window (xcb:-error xcb:Value) ((~code :initform 3))) (defclass xcb:Pixmap (xcb:-error xcb:Value) ((~code :initform 4))) (defclass xcb:Atom (xcb:-error xcb:Value) ((~code :initform 5))) (defclass xcb:Cursor (xcb:-error xcb:Value) ((~code :initform 6))) (defclass xcb:Font (xcb:-error xcb:Value) ((~code :initform 7))) (defclass xcb:Match (xcb:-error xcb:Request) ((~code :initform 8))) (defclass xcb:Drawable (xcb:-error xcb:Value) ((~code :initform 9))) (defclass xcb:Access (xcb:-error xcb:Request) ((~code :initform 10))) (defclass xcb:Alloc (xcb:-error xcb:Request) ((~code :initform 11))) (defclass xcb:Colormap (xcb:-error xcb:Value) ((~code :initform 12))) (defclass xcb:GContext (xcb:-error xcb:Value) ((~code :initform 13))) (defclass xcb:IDChoice (xcb:-error xcb:Value) ((~code :initform 14))) (defclass xcb:Name (xcb:-error xcb:Request) ((~code :initform 15))) (defclass xcb:Length (xcb:-error xcb:Request) ((~code :initform 16))) (defclass xcb:Implementation (xcb:-error xcb:Request) ((~code :initform 17))) (defconst xcb:WindowClass:CopyFromParent 0) (defconst xcb:WindowClass:InputOutput 1) (defconst xcb:WindowClass:InputOnly 2) (defconst xcb:CW:BackPixmap 1) (defconst xcb:CW:BackPixel 2) (defconst xcb:CW:BorderPixmap 4) (defconst xcb:CW:BorderPixel 8) (defconst xcb:CW:BitGravity 16) (defconst xcb:CW:WinGravity 32) (defconst xcb:CW:BackingStore 64) (defconst xcb:CW:BackingPlanes 128) (defconst xcb:CW:BackingPixel 256) (defconst xcb:CW:OverrideRedirect 512) (defconst xcb:CW:SaveUnder 1024) (defconst xcb:CW:EventMask 2048) (defconst xcb:CW:DontPropagate 4096) (defconst xcb:CW:Colormap 8192) (defconst xcb:CW:Cursor 16384) (defconst xcb:BackPixmap:None 0) (defconst xcb:BackPixmap:ParentRelative 1) (defconst xcb:Gravity:BitForget 0) (defconst xcb:Gravity:WinUnmap 0) (defconst xcb:Gravity:NorthWest 1) (defconst xcb:Gravity:North 2) (defconst xcb:Gravity:NorthEast 3) (defconst xcb:Gravity:West 4) (defconst xcb:Gravity:Center 5) (defconst xcb:Gravity:East 6) (defconst xcb:Gravity:SouthWest 7) (defconst xcb:Gravity:South 8) (defconst xcb:Gravity:SouthEast 9) (defconst xcb:Gravity:Static 10) (defclass xcb:CreateWindow (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (depth :initarg :depth :type xcb:CARD8) (wid :initarg :wid :type xcb:WINDOW) (parent :initarg :parent :type xcb:WINDOW) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (border-width :initarg :border-width :type xcb:CARD16) (class :initarg :class :type xcb:CARD16) (visual :initarg :visual :type xcb:VISUALID) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 background-pixmap) (2 background-pixel) (4 border-pixmap) (8 border-pixel) (16 bit-gravity) (32 win-gravity) (64 backing-store) (128 backing-planes) (256 backing-pixel) (512 override-redirect) (1024 save-under) (2048 event-mask) (4096 do-not-propogate-mask) (8192 colormap) (16384 cursor))) :type xcb:-switch) (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP) (background-pixel :initarg :background-pixel :type xcb:CARD32) (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP) (border-pixel :initarg :border-pixel :type xcb:CARD32) (bit-gravity :initarg :bit-gravity :type xcb:CARD32) (win-gravity :initarg :win-gravity :type xcb:CARD32) (backing-store :initarg :backing-store :type xcb:CARD32) (backing-planes :initarg :backing-planes :type xcb:CARD32) (backing-pixel :initarg :backing-pixel :type xcb:CARD32) (override-redirect :initarg :override-redirect :type xcb:BOOL32) (save-under :initarg :save-under :type xcb:BOOL32) (event-mask :initarg :event-mask :type xcb:CARD32) (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32) (colormap :initarg :colormap :type xcb:COLORMAP) (cursor :initarg :cursor :type xcb:CURSOR))) (defclass xcb:ChangeWindowAttributes (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 background-pixmap) (2 background-pixel) (4 border-pixmap) (8 border-pixel) (16 bit-gravity) (32 win-gravity) (64 backing-store) (128 backing-planes) (256 backing-pixel) (512 override-redirect) (1024 save-under) (2048 event-mask) (4096 do-not-propogate-mask) (8192 colormap) (16384 cursor))) :type xcb:-switch) (background-pixmap :initarg :background-pixmap :type xcb:PIXMAP) (background-pixel :initarg :background-pixel :type xcb:CARD32) (border-pixmap :initarg :border-pixmap :type xcb:PIXMAP) (border-pixel :initarg :border-pixel :type xcb:CARD32) (bit-gravity :initarg :bit-gravity :type xcb:CARD32) (win-gravity :initarg :win-gravity :type xcb:CARD32) (backing-store :initarg :backing-store :type xcb:CARD32) (backing-planes :initarg :backing-planes :type xcb:CARD32) (backing-pixel :initarg :backing-pixel :type xcb:CARD32) (override-redirect :initarg :override-redirect :type xcb:BOOL32) (save-under :initarg :save-under :type xcb:BOOL32) (event-mask :initarg :event-mask :type xcb:CARD32) (do-not-propogate-mask :initarg :do-not-propogate-mask :type xcb:CARD32) (colormap :initarg :colormap :type xcb:COLORMAP) (cursor :initarg :cursor :type xcb:CURSOR))) (defconst xcb:MapState:Unmapped 0) (defconst xcb:MapState:Unviewable 1) (defconst xcb:MapState:Viewable 2) (defclass xcb:GetWindowAttributes (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:GetWindowAttributes~reply (xcb:-reply) ((backing-store :initarg :backing-store :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (visual :initarg :visual :type xcb:VISUALID) (class :initarg :class :type xcb:CARD16) (bit-gravity :initarg :bit-gravity :type xcb:CARD8) (win-gravity :initarg :win-gravity :type xcb:CARD8) (backing-planes :initarg :backing-planes :type xcb:CARD32) (backing-pixel :initarg :backing-pixel :type xcb:CARD32) (save-under :initarg :save-under :type xcb:BOOL) (map-is-installed :initarg :map-is-installed :type xcb:BOOL) (map-state :initarg :map-state :type xcb:CARD8) (override-redirect :initarg :override-redirect :type xcb:BOOL) (colormap :initarg :colormap :type xcb:COLORMAP) (all-event-masks :initarg :all-event-masks :type xcb:CARD32) (your-event-mask :initarg :your-event-mask :type xcb:CARD32) (do-not-propagate-mask :initarg :do-not-propagate-mask :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:DestroyWindow (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:DestroySubwindows (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defconst xcb:SetMode:Insert 0) (defconst xcb:SetMode:Delete 1) (defclass xcb:ChangeSaveSet (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (mode :initarg :mode :type xcb:BYTE) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:ReparentWindow (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (parent :initarg :parent :type xcb:WINDOW) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16))) (defclass xcb:MapWindow (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:MapSubwindows (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:UnmapWindow (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:UnmapSubwindows (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defconst xcb:ConfigWindow:X 1) (defconst xcb:ConfigWindow:Y 2) (defconst xcb:ConfigWindow:Width 4) (defconst xcb:ConfigWindow:Height 8) (defconst xcb:ConfigWindow:BorderWidth 16) (defconst xcb:ConfigWindow:Sibling 32) (defconst xcb:ConfigWindow:StackMode 64) (defconst xcb:StackMode:Above 0) (defconst xcb:StackMode:Below 1) (defconst xcb:StackMode:TopIf 2) (defconst xcb:StackMode:BottomIf 3) (defconst xcb:StackMode:Opposite 4) (defclass xcb:ConfigureWindow (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (value-mask :initarg :value-mask :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 x) (2 y) (4 width) (8 height) (16 border-width) (32 sibling) (64 stack-mode))) :type xcb:-switch) (x :initarg :x :type xcb:INT32) (y :initarg :y :type xcb:INT32) (width :initarg :width :type xcb:CARD32) (height :initarg :height :type xcb:CARD32) (border-width :initarg :border-width :type xcb:CARD32) (sibling :initarg :sibling :type xcb:WINDOW) (stack-mode :initarg :stack-mode :type xcb:CARD32))) (defconst xcb:Circulate:RaiseLowest 0) (defconst xcb:Circulate:LowerHighest 1) (defclass xcb:CirculateWindow (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (direction :initarg :direction :type xcb:CARD8) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:GetGeometry (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:GetGeometry~reply (xcb:-reply) ((depth :initarg :depth :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (root :initarg :root :type xcb:WINDOW) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (border-width :initarg :border-width :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:QueryTree (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:QueryTree~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (root :initarg :root :type xcb:WINDOW) (parent :initarg :parent :type xcb:WINDOW) (children-len :initarg :children-len :type xcb:CARD16) (pad~1 :initform 14 :type xcb:-pad) (children~ :initform '(name children type xcb:WINDOW size (xcb:-fieldref 'children-len)) :type xcb:-list) (children :initarg :children :type xcb:-ignore))) (defclass xcb:InternAtom (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (only-if-exists :initarg :only-if-exists :type xcb:BOOL) (name-len :initarg :name-len :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:InternAtom~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (atom :initarg :atom :type xcb:ATOM))) (defclass xcb:GetAtomName (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (atom :initarg :atom :type xcb:ATOM))) (defclass xcb:GetAtomName~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (name-len :initarg :name-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defconst xcb:PropMode:Replace 0) (defconst xcb:PropMode:Prepend 1) (defconst xcb:PropMode:Append 2) (defclass xcb:ChangeProperty (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8) (window :initarg :window :type xcb:WINDOW) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (format :initarg :format :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad) (data-len :initarg :data-len :type xcb:CARD32) (data~ :initform '(name data type xcb:void size (/ (* (xcb:-fieldref 'data-len) (xcb:-fieldref 'format)) 8)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:DeleteProperty (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (property :initarg :property :type xcb:ATOM))) (defconst xcb:GetPropertyType:Any 0) (defclass xcb:GetProperty (xcb:-request) ((~opcode :initform 20 :type xcb:-u1) (delete :initarg :delete :type xcb:BOOL) (window :initarg :window :type xcb:WINDOW) (property :initarg :property :type xcb:ATOM) (type :initarg :type :type xcb:ATOM) (long-offset :initarg :long-offset :type xcb:CARD32) (long-length :initarg :long-length :type xcb:CARD32))) (defclass xcb:GetProperty~reply (xcb:-reply) ((format :initarg :format :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (type :initarg :type :type xcb:ATOM) (bytes-after :initarg :bytes-after :type xcb:CARD32) (value-len :initarg :value-len :type xcb:CARD32) (pad~0 :initform 12 :type xcb:-pad) (value~ :initform '(name value type xcb:void size (* (xcb:-fieldref 'value-len) (/ (xcb:-fieldref 'format) 8))) :type xcb:-list) (value :initarg :value :type xcb:-ignore))) (defclass xcb:ListProperties (xcb:-request) ((~opcode :initform 21 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:ListProperties~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (atoms-len :initarg :atoms-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (atoms~ :initform '(name atoms type xcb:ATOM size (xcb:-fieldref 'atoms-len)) :type xcb:-list) (atoms :initarg :atoms :type xcb:-ignore))) (defclass xcb:SetSelectionOwner (xcb:-request) ((~opcode :initform 22 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (owner :initarg :owner :type xcb:WINDOW) (selection :initarg :selection :type xcb:ATOM) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:GetSelectionOwner (xcb:-request) ((~opcode :initform 23 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (selection :initarg :selection :type xcb:ATOM))) (defclass xcb:GetSelectionOwner~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (owner :initarg :owner :type xcb:WINDOW))) (defclass xcb:ConvertSelection (xcb:-request) ((~opcode :initform 24 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (requestor :initarg :requestor :type xcb:WINDOW) (selection :initarg :selection :type xcb:ATOM) (target :initarg :target :type xcb:ATOM) (property :initarg :property :type xcb:ATOM) (time :initarg :time :type xcb:TIMESTAMP))) (defconst xcb:SendEventDest:PointerWindow 0) (defconst xcb:SendEventDest:ItemFocus 1) (defclass xcb:SendEvent (xcb:-request) ((~opcode :initform 25 :type xcb:-u1) (propagate :initarg :propagate :type xcb:BOOL) (destination :initarg :destination :type xcb:WINDOW) (event-mask :initarg :event-mask :type xcb:CARD32) (event~ :initform '(name event type xcb:char size 32) :type xcb:-list) (event :initarg :event :type xcb:-ignore))) (defconst xcb:GrabMode:Sync 0) (defconst xcb:GrabMode:Async 1) (defconst xcb:GrabStatus:Success 0) (defconst xcb:GrabStatus:AlreadyGrabbed 1) (defconst xcb:GrabStatus:InvalidTime 2) (defconst xcb:GrabStatus:NotViewable 3) (defconst xcb:GrabStatus:Frozen 4) (defconst xcb:Cursor:None 0) (defclass xcb:GrabPointer (xcb:-request) ((~opcode :initform 26 :type xcb:-u1) (owner-events :initarg :owner-events :type xcb:BOOL) (grab-window :initarg :grab-window :type xcb:WINDOW) (event-mask :initarg :event-mask :type xcb:CARD16) (pointer-mode :initarg :pointer-mode :type xcb:BYTE) (keyboard-mode :initarg :keyboard-mode :type xcb:BYTE) (confine-to :initarg :confine-to :type xcb:WINDOW) (cursor :initarg :cursor :type xcb:CURSOR) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:GrabPointer~reply (xcb:-reply) ((status :initarg :status :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:UngrabPointer (xcb:-request) ((~opcode :initform 27 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (time :initarg :time :type xcb:TIMESTAMP))) (defconst xcb:ButtonIndex:Any 0) (defconst xcb:ButtonIndex:1 1) (defconst xcb:ButtonIndex:2 2) (defconst xcb:ButtonIndex:3 3) (defconst xcb:ButtonIndex:4 4) (defconst xcb:ButtonIndex:5 5) (defclass xcb:GrabButton (xcb:-request) ((~opcode :initform 28 :type xcb:-u1) (owner-events :initarg :owner-events :type xcb:BOOL) (grab-window :initarg :grab-window :type xcb:WINDOW) (event-mask :initarg :event-mask :type xcb:CARD16) (pointer-mode :initarg :pointer-mode :type xcb:CARD8) (keyboard-mode :initarg :keyboard-mode :type xcb:CARD8) (confine-to :initarg :confine-to :type xcb:WINDOW) (cursor :initarg :cursor :type xcb:CURSOR) (button :initarg :button :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (modifiers :initarg :modifiers :type xcb:CARD16))) (defclass xcb:UngrabButton (xcb:-request) ((~opcode :initform 29 :type xcb:-u1) (button :initarg :button :type xcb:CARD8) (grab-window :initarg :grab-window :type xcb:WINDOW) (modifiers :initarg :modifiers :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:ChangeActivePointerGrab (xcb:-request) ((~opcode :initform 30 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cursor :initarg :cursor :type xcb:CURSOR) (time :initarg :time :type xcb:TIMESTAMP) (event-mask :initarg :event-mask :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad))) (defclass xcb:GrabKeyboard (xcb:-request) ((~opcode :initform 31 :type xcb:-u1) (owner-events :initarg :owner-events :type xcb:BOOL) (grab-window :initarg :grab-window :type xcb:WINDOW) (time :initarg :time :type xcb:TIMESTAMP) (pointer-mode :initarg :pointer-mode :type xcb:BYTE) (keyboard-mode :initarg :keyboard-mode :type xcb:BYTE) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:GrabKeyboard~reply (xcb:-reply) ((status :initarg :status :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:UngrabKeyboard (xcb:-request) ((~opcode :initform 32 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (time :initarg :time :type xcb:TIMESTAMP))) (defconst xcb:Grab:Any 0) (defclass xcb:GrabKey (xcb:-request) ((~opcode :initform 33 :type xcb:-u1) (owner-events :initarg :owner-events :type xcb:BOOL) (grab-window :initarg :grab-window :type xcb:WINDOW) (modifiers :initarg :modifiers :type xcb:CARD16) (key :initarg :key :type xcb:KEYCODE) (pointer-mode :initarg :pointer-mode :type xcb:CARD8) (keyboard-mode :initarg :keyboard-mode :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:UngrabKey (xcb:-request) ((~opcode :initform 34 :type xcb:-u1) (key :initarg :key :type xcb:KEYCODE) (grab-window :initarg :grab-window :type xcb:WINDOW) (modifiers :initarg :modifiers :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defconst xcb:Allow:AsyncPointer 0) (defconst xcb:Allow:SyncPointer 1) (defconst xcb:Allow:ReplayPointer 2) (defconst xcb:Allow:AsyncKeyboard 3) (defconst xcb:Allow:SyncKeyboard 4) (defconst xcb:Allow:ReplayKeyboard 5) (defconst xcb:Allow:AsyncBoth 6) (defconst xcb:Allow:SyncBoth 7) (defclass xcb:AllowEvents (xcb:-request) ((~opcode :initform 35 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:GrabServer (xcb:-request) ((~opcode :initform 36 :type xcb:-u1))) (defclass xcb:UngrabServer (xcb:-request) ((~opcode :initform 37 :type xcb:-u1))) (defclass xcb:QueryPointer (xcb:-request) ((~opcode :initform 38 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:QueryPointer~reply (xcb:-reply) ((same-screen :initarg :same-screen :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (root :initarg :root :type xcb:WINDOW) (child :initarg :child :type xcb:WINDOW) (root-x :initarg :root-x :type xcb:INT16) (root-y :initarg :root-y :type xcb:INT16) (win-x :initarg :win-x :type xcb:INT16) (win-y :initarg :win-y :type xcb:INT16) (mask :initarg :mask :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:TIMECOORD (xcb:-struct) ((time :initarg :time :type xcb:TIMESTAMP) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16))) (defclass xcb:GetMotionEvents (xcb:-request) ((~opcode :initform 39 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (start :initarg :start :type xcb:TIMESTAMP) (stop :initarg :stop :type xcb:TIMESTAMP))) (defclass xcb:GetMotionEvents~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (events-len :initarg :events-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (events~ :initform '(name events type xcb:TIMECOORD size (xcb:-fieldref 'events-len)) :type xcb:-list) (events :initarg :events :type xcb:-ignore))) (defclass xcb:TranslateCoordinates (xcb:-request) ((~opcode :initform 40 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (src-window :initarg :src-window :type xcb:WINDOW) (dst-window :initarg :dst-window :type xcb:WINDOW) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16))) (defclass xcb:TranslateCoordinates~reply (xcb:-reply) ((same-screen :initarg :same-screen :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (child :initarg :child :type xcb:WINDOW) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16))) (defclass xcb:WarpPointer (xcb:-request) ((~opcode :initform 41 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (src-window :initarg :src-window :type xcb:WINDOW) (dst-window :initarg :dst-window :type xcb:WINDOW) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (src-width :initarg :src-width :type xcb:CARD16) (src-height :initarg :src-height :type xcb:CARD16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16))) (defconst xcb:InputFocus:None 0) (defconst xcb:InputFocus:PointerRoot 1) (defconst xcb:InputFocus:Parent 2) (defconst xcb:InputFocus:FollowKeyboard 3) (defclass xcb:SetInputFocus (xcb:-request) ((~opcode :initform 42 :type xcb:-u1) (revert-to :initarg :revert-to :type xcb:CARD8) (focus :initarg :focus :type xcb:WINDOW) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:GetInputFocus (xcb:-request) ((~opcode :initform 43 :type xcb:-u1))) (defclass xcb:GetInputFocus~reply (xcb:-reply) ((revert-to :initarg :revert-to :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (focus :initarg :focus :type xcb:WINDOW))) (defclass xcb:QueryKeymap (xcb:-request) ((~opcode :initform 44 :type xcb:-u1))) (defclass xcb:QueryKeymap~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (keys~ :initform '(name keys type xcb:CARD8 size 32) :type xcb:-list) (keys :initarg :keys :type xcb:-ignore))) (defclass xcb:OpenFont (xcb:-request) ((~opcode :initform 45 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (fid :initarg :fid :type xcb:FONT) (name-len :initarg :name-len :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:CloseFont (xcb:-request) ((~opcode :initform 46 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (font :initarg :font :type xcb:FONT))) (defconst xcb:FontDraw:LeftToRight 0) (defconst xcb:FontDraw:RightToLeft 1) (defclass xcb:FONTPROP (xcb:-struct) ((name :initarg :name :type xcb:ATOM) (value :initarg :value :type xcb:CARD32))) (defclass xcb:CHARINFO (xcb:-struct) ((left-side-bearing :initarg :left-side-bearing :type xcb:INT16) (right-side-bearing :initarg :right-side-bearing :type xcb:INT16) (character-width :initarg :character-width :type xcb:INT16) (ascent :initarg :ascent :type xcb:INT16) (descent :initarg :descent :type xcb:INT16) (attributes :initarg :attributes :type xcb:CARD16))) (defclass xcb:QueryFont (xcb:-request) ((~opcode :initform 47 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (font :initarg :font :type xcb:FONTABLE))) (defclass xcb:QueryFont~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (min-bounds :initarg :min-bounds :type xcb:CHARINFO) (pad~1 :initform 4 :type xcb:-pad) (max-bounds :initarg :max-bounds :type xcb:CHARINFO) (pad~2 :initform 4 :type xcb:-pad) (min-char-or-byte2 :initarg :min-char-or-byte2 :type xcb:CARD16) (max-char-or-byte2 :initarg :max-char-or-byte2 :type xcb:CARD16) (default-char :initarg :default-char :type xcb:CARD16) (properties-len :initarg :properties-len :type xcb:CARD16) (draw-direction :initarg :draw-direction :type xcb:BYTE) (min-byte1 :initarg :min-byte1 :type xcb:CARD8) (max-byte1 :initarg :max-byte1 :type xcb:CARD8) (all-chars-exist :initarg :all-chars-exist :type xcb:BOOL) (font-ascent :initarg :font-ascent :type xcb:INT16) (font-descent :initarg :font-descent :type xcb:INT16) (char-infos-len :initarg :char-infos-len :type xcb:CARD32) (properties~ :initform '(name properties type xcb:FONTPROP size (xcb:-fieldref 'properties-len)) :type xcb:-list) (properties :initarg :properties :type xcb:-ignore) (char-infos~ :initform '(name char-infos type xcb:CHARINFO size (xcb:-fieldref 'char-infos-len)) :type xcb:-list) (char-infos :initarg :char-infos :type xcb:-ignore))) (defclass xcb:QueryTextExtents (xcb:-request) ((~opcode :initform 48 :type xcb:-u1) (odd-length :type xcb:BOOL) (font :initarg :font :type xcb:FONTABLE) (string~ :initform '(name string type xcb:CHAR2B size nil) :type xcb:-list) (string :initarg :string :type xcb:-ignore))) (cl-defmethod xcb:marshal ((obj xcb:QueryTextExtents)) nil (setf (slot-value obj 'odd-length) (logand (length (xcb:-fieldref 'string)) 1)) (cl-call-next-method obj)) (defclass xcb:QueryTextExtents~reply (xcb:-reply) ((draw-direction :initarg :draw-direction :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (font-ascent :initarg :font-ascent :type xcb:INT16) (font-descent :initarg :font-descent :type xcb:INT16) (overall-ascent :initarg :overall-ascent :type xcb:INT16) (overall-descent :initarg :overall-descent :type xcb:INT16) (overall-width :initarg :overall-width :type xcb:INT32) (overall-left :initarg :overall-left :type xcb:INT32) (overall-right :initarg :overall-right :type xcb:INT32))) (defclass xcb:STR (xcb:-struct) ((name-len :initarg :name-len :type xcb:CARD8) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:ListFonts (xcb:-request) ((~opcode :initform 49 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (max-names :initarg :max-names :type xcb:CARD16) (pattern-len :initarg :pattern-len :type xcb:CARD16) (pattern~ :initform '(name pattern type xcb:char size (xcb:-fieldref 'pattern-len)) :type xcb:-list) (pattern :initarg :pattern :type xcb:-ignore))) (defclass xcb:ListFonts~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (names-len :initarg :names-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (names~ :initform '(name names type xcb:STR size (xcb:-fieldref 'names-len)) :type xcb:-list) (names :initarg :names :type xcb:-ignore))) (defclass xcb:ListFontsWithInfo (xcb:-request) ((~opcode :initform 50 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (max-names :initarg :max-names :type xcb:CARD16) (pattern-len :initarg :pattern-len :type xcb:CARD16) (pattern~ :initform '(name pattern type xcb:char size (xcb:-fieldref 'pattern-len)) :type xcb:-list) (pattern :initarg :pattern :type xcb:-ignore))) (defclass xcb:ListFontsWithInfo~reply (xcb:-reply) ((name-len :initarg :name-len :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (min-bounds :initarg :min-bounds :type xcb:CHARINFO) (pad~0 :initform 4 :type xcb:-pad) (max-bounds :initarg :max-bounds :type xcb:CHARINFO) (pad~1 :initform 4 :type xcb:-pad) (min-char-or-byte2 :initarg :min-char-or-byte2 :type xcb:CARD16) (max-char-or-byte2 :initarg :max-char-or-byte2 :type xcb:CARD16) (default-char :initarg :default-char :type xcb:CARD16) (properties-len :initarg :properties-len :type xcb:CARD16) (draw-direction :initarg :draw-direction :type xcb:BYTE) (min-byte1 :initarg :min-byte1 :type xcb:CARD8) (max-byte1 :initarg :max-byte1 :type xcb:CARD8) (all-chars-exist :initarg :all-chars-exist :type xcb:BOOL) (font-ascent :initarg :font-ascent :type xcb:INT16) (font-descent :initarg :font-descent :type xcb:INT16) (replies-hint :initarg :replies-hint :type xcb:CARD32) (properties~ :initform '(name properties type xcb:FONTPROP size (xcb:-fieldref 'properties-len)) :type xcb:-list) (properties :initarg :properties :type xcb:-ignore) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:SetFontPath (xcb:-request) ((~opcode :initform 51 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (font-qty :initarg :font-qty :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (font~ :initform '(name font type xcb:STR size (xcb:-fieldref 'font-qty)) :type xcb:-list) (font :initarg :font :type xcb:-ignore))) (defclass xcb:GetFontPath (xcb:-request) ((~opcode :initform 52 :type xcb:-u1))) (defclass xcb:GetFontPath~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (path-len :initarg :path-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (path~ :initform '(name path type xcb:STR size (xcb:-fieldref 'path-len)) :type xcb:-list) (path :initarg :path :type xcb:-ignore))) (defclass xcb:CreatePixmap (xcb:-request) ((~opcode :initform 53 :type xcb:-u1) (depth :initarg :depth :type xcb:CARD8) (pid :initarg :pid :type xcb:PIXMAP) (drawable :initarg :drawable :type xcb:DRAWABLE) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:FreePixmap (xcb:-request) ((~opcode :initform 54 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (pixmap :initarg :pixmap :type xcb:PIXMAP))) (defconst xcb:GC:Function 1) (defconst xcb:GC:PlaneMask 2) (defconst xcb:GC:Foreground 4) (defconst xcb:GC:Background 8) (defconst xcb:GC:LineWidth 16) (defconst xcb:GC:LineStyle 32) (defconst xcb:GC:CapStyle 64) (defconst xcb:GC:JoinStyle 128) (defconst xcb:GC:FillStyle 256) (defconst xcb:GC:FillRule 512) (defconst xcb:GC:Tile 1024) (defconst xcb:GC:Stipple 2048) (defconst xcb:GC:TileStippleOriginX 4096) (defconst xcb:GC:TileStippleOriginY 8192) (defconst xcb:GC:Font 16384) (defconst xcb:GC:SubwindowMode 32768) (defconst xcb:GC:GraphicsExposures 65536) (defconst xcb:GC:ClipOriginX 131072) (defconst xcb:GC:ClipOriginY 262144) (defconst xcb:GC:ClipMask 524288) (defconst xcb:GC:DashOffset 1048576) (defconst xcb:GC:DashList 2097152) (defconst xcb:GC:ArcMode 4194304) (defconst xcb:GX:clear 0) (defconst xcb:GX:and 1) (defconst xcb:GX:andReverse 2) (defconst xcb:GX:copy 3) (defconst xcb:GX:andInverted 4) (defconst xcb:GX:noop 5) (defconst xcb:GX:xor 6) (defconst xcb:GX:or 7) (defconst xcb:GX:nor 8) (defconst xcb:GX:equiv 9) (defconst xcb:GX:invert 10) (defconst xcb:GX:orReverse 11) (defconst xcb:GX:copyInverted 12) (defconst xcb:GX:orInverted 13) (defconst xcb:GX:nand 14) (defconst xcb:GX:set 15) (defconst xcb:LineStyle:Solid 0) (defconst xcb:LineStyle:OnOffDash 1) (defconst xcb:LineStyle:DoubleDash 2) (defconst xcb:CapStyle:NotLast 0) (defconst xcb:CapStyle:Butt 1) (defconst xcb:CapStyle:Round 2) (defconst xcb:CapStyle:Projecting 3) (defconst xcb:JoinStyle:Miter 0) (defconst xcb:JoinStyle:Round 1) (defconst xcb:JoinStyle:Bevel 2) (defconst xcb:FillStyle:Solid 0) (defconst xcb:FillStyle:Tiled 1) (defconst xcb:FillStyle:Stippled 2) (defconst xcb:FillStyle:OpaqueStippled 3) (defconst xcb:FillRule:EvenOdd 0) (defconst xcb:FillRule:Winding 1) (defconst xcb:SubwindowMode:ClipByChildren 0) (defconst xcb:SubwindowMode:IncludeInferiors 1) (defconst xcb:ArcMode:Chord 0) (defconst xcb:ArcMode:PieSlice 1) (defclass xcb:CreateGC (xcb:-request) ((~opcode :initform 55 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cid :initarg :cid :type xcb:GCONTEXT) (drawable :initarg :drawable :type xcb:DRAWABLE) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 function) (2 plane-mask) (4 foreground) (8 background) (16 line-width) (32 line-style) (64 cap-style) (128 join-style) (256 fill-style) (512 fill-rule) (1024 tile) (2048 stipple) (4096 tile-stipple-x-origin) (8192 tile-stipple-y-origin) (16384 font) (32768 subwindow-mode) (65536 graphics-exposures) (131072 clip-x-origin) (262144 clip-y-origin) (524288 clip-mask) (1048576 dash-offset) (2097152 dashes) (4194304 arc-mode))) :type xcb:-switch) (function :initarg :function :type xcb:CARD32) (plane-mask :initarg :plane-mask :type xcb:CARD32) (foreground :initarg :foreground :type xcb:CARD32) (background :initarg :background :type xcb:CARD32) (line-width :initarg :line-width :type xcb:CARD32) (line-style :initarg :line-style :type xcb:CARD32) (cap-style :initarg :cap-style :type xcb:CARD32) (join-style :initarg :join-style :type xcb:CARD32) (fill-style :initarg :fill-style :type xcb:CARD32) (fill-rule :initarg :fill-rule :type xcb:CARD32) (tile :initarg :tile :type xcb:PIXMAP) (stipple :initarg :stipple :type xcb:PIXMAP) (tile-stipple-x-origin :initarg :tile-stipple-x-origin :type xcb:INT32) (tile-stipple-y-origin :initarg :tile-stipple-y-origin :type xcb:INT32) (font :initarg :font :type xcb:FONT) (subwindow-mode :initarg :subwindow-mode :type xcb:CARD32) (graphics-exposures :initarg :graphics-exposures :type xcb:BOOL32) (clip-x-origin :initarg :clip-x-origin :type xcb:INT32) (clip-y-origin :initarg :clip-y-origin :type xcb:INT32) (clip-mask :initarg :clip-mask :type xcb:PIXMAP) (dash-offset :initarg :dash-offset :type xcb:CARD32) (dashes :initarg :dashes :type xcb:CARD32) (arc-mode :initarg :arc-mode :type xcb:CARD32))) (defclass xcb:ChangeGC (xcb:-request) ((~opcode :initform 56 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (gc :initarg :gc :type xcb:GCONTEXT) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 function) (2 plane-mask) (4 foreground) (8 background) (16 line-width) (32 line-style) (64 cap-style) (128 join-style) (256 fill-style) (512 fill-rule) (1024 tile) (2048 stipple) (4096 tile-stipple-x-origin) (8192 tile-stipple-y-origin) (16384 font) (32768 subwindow-mode) (65536 graphics-exposures) (131072 clip-x-origin) (262144 clip-y-origin) (524288 clip-mask) (1048576 dash-offset) (2097152 dashes) (4194304 arc-mode))) :type xcb:-switch) (function :initarg :function :type xcb:CARD32) (plane-mask :initarg :plane-mask :type xcb:CARD32) (foreground :initarg :foreground :type xcb:CARD32) (background :initarg :background :type xcb:CARD32) (line-width :initarg :line-width :type xcb:CARD32) (line-style :initarg :line-style :type xcb:CARD32) (cap-style :initarg :cap-style :type xcb:CARD32) (join-style :initarg :join-style :type xcb:CARD32) (fill-style :initarg :fill-style :type xcb:CARD32) (fill-rule :initarg :fill-rule :type xcb:CARD32) (tile :initarg :tile :type xcb:PIXMAP) (stipple :initarg :stipple :type xcb:PIXMAP) (tile-stipple-x-origin :initarg :tile-stipple-x-origin :type xcb:INT32) (tile-stipple-y-origin :initarg :tile-stipple-y-origin :type xcb:INT32) (font :initarg :font :type xcb:FONT) (subwindow-mode :initarg :subwindow-mode :type xcb:CARD32) (graphics-exposures :initarg :graphics-exposures :type xcb:BOOL32) (clip-x-origin :initarg :clip-x-origin :type xcb:INT32) (clip-y-origin :initarg :clip-y-origin :type xcb:INT32) (clip-mask :initarg :clip-mask :type xcb:PIXMAP) (dash-offset :initarg :dash-offset :type xcb:CARD32) (dashes :initarg :dashes :type xcb:CARD32) (arc-mode :initarg :arc-mode :type xcb:CARD32))) (defclass xcb:CopyGC (xcb:-request) ((~opcode :initform 57 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (src-gc :initarg :src-gc :type xcb:GCONTEXT) (dst-gc :initarg :dst-gc :type xcb:GCONTEXT) (value-mask :initarg :value-mask :type xcb:CARD32))) (defclass xcb:SetDashes (xcb:-request) ((~opcode :initform 58 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (gc :initarg :gc :type xcb:GCONTEXT) (dash-offset :initarg :dash-offset :type xcb:CARD16) (dashes-len :initarg :dashes-len :type xcb:CARD16) (dashes~ :initform '(name dashes type xcb:CARD8 size (xcb:-fieldref 'dashes-len)) :type xcb:-list) (dashes :initarg :dashes :type xcb:-ignore))) (defconst xcb:ClipOrdering:Unsorted 0) (defconst xcb:ClipOrdering:YSorted 1) (defconst xcb:ClipOrdering:YXSorted 2) (defconst xcb:ClipOrdering:YXBanded 3) (defclass xcb:SetClipRectangles (xcb:-request) ((~opcode :initform 59 :type xcb:-u1) (ordering :initarg :ordering :type xcb:BYTE) (gc :initarg :gc :type xcb:GCONTEXT) (clip-x-origin :initarg :clip-x-origin :type xcb:INT16) (clip-y-origin :initarg :clip-y-origin :type xcb:INT16) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size nil) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defclass xcb:FreeGC (xcb:-request) ((~opcode :initform 60 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (gc :initarg :gc :type xcb:GCONTEXT))) (defclass xcb:ClearArea (xcb:-request) ((~opcode :initform 61 :type xcb:-u1) (exposures :initarg :exposures :type xcb:BOOL) (window :initarg :window :type xcb:WINDOW) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:CopyArea (xcb:-request) ((~opcode :initform 62 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (src-drawable :initarg :src-drawable :type xcb:DRAWABLE) (dst-drawable :initarg :dst-drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:CopyPlane (xcb:-request) ((~opcode :initform 63 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (src-drawable :initarg :src-drawable :type xcb:DRAWABLE) (dst-drawable :initarg :dst-drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (bit-plane :initarg :bit-plane :type xcb:CARD32))) (defconst xcb:CoordMode:Origin 0) (defconst xcb:CoordMode:Previous 1) (defclass xcb:PolyPoint (xcb:-request) ((~opcode :initform 64 :type xcb:-u1) (coordinate-mode :initarg :coordinate-mode :type xcb:BYTE) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (points~ :initform '(name points type xcb:POINT size nil) :type xcb:-list) (points :initarg :points :type xcb:-ignore))) (defclass xcb:PolyLine (xcb:-request) ((~opcode :initform 65 :type xcb:-u1) (coordinate-mode :initarg :coordinate-mode :type xcb:BYTE) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (points~ :initform '(name points type xcb:POINT size nil) :type xcb:-list) (points :initarg :points :type xcb:-ignore))) (defclass xcb:SEGMENT (xcb:-struct) ((x1 :initarg :x1 :type xcb:INT16) (y1 :initarg :y1 :type xcb:INT16) (x2 :initarg :x2 :type xcb:INT16) (y2 :initarg :y2 :type xcb:INT16))) (defclass xcb:PolySegment (xcb:-request) ((~opcode :initform 66 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (segments~ :initform '(name segments type xcb:SEGMENT size nil) :type xcb:-list) (segments :initarg :segments :type xcb:-ignore))) (defclass xcb:PolyRectangle (xcb:-request) ((~opcode :initform 67 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size nil) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defclass xcb:PolyArc (xcb:-request) ((~opcode :initform 68 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (arcs~ :initform '(name arcs type xcb:ARC size nil) :type xcb:-list) (arcs :initarg :arcs :type xcb:-ignore))) (defconst xcb:PolyShape:Complex 0) (defconst xcb:PolyShape:Nonconvex 1) (defconst xcb:PolyShape:Convex 2) (defclass xcb:FillPoly (xcb:-request) ((~opcode :initform 69 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (shape :initarg :shape :type xcb:CARD8) (coordinate-mode :initarg :coordinate-mode :type xcb:CARD8) (pad~1 :initform 2 :type xcb:-pad) (points~ :initform '(name points type xcb:POINT size nil) :type xcb:-list) (points :initarg :points :type xcb:-ignore))) (defclass xcb:PolyFillRectangle (xcb:-request) ((~opcode :initform 70 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (rectangles~ :initform '(name rectangles type xcb:RECTANGLE size nil) :type xcb:-list) (rectangles :initarg :rectangles :type xcb:-ignore))) (defclass xcb:PolyFillArc (xcb:-request) ((~opcode :initform 71 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (arcs~ :initform '(name arcs type xcb:ARC size nil) :type xcb:-list) (arcs :initarg :arcs :type xcb:-ignore))) (defconst xcb:ImageFormat:XYBitmap 0) (defconst xcb:ImageFormat:XYPixmap 1) (defconst xcb:ImageFormat:ZPixmap 2) (defclass xcb:PutImage (xcb:-request) ((~opcode :initform 72 :type xcb:-u1) (format :initarg :format :type xcb:CARD8) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (dst-x :initarg :dst-x :type xcb:INT16) (dst-y :initarg :dst-y :type xcb:INT16) (left-pad :initarg :left-pad :type xcb:CARD8) (depth :initarg :depth :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size nil) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:GetImage (xcb:-request) ((~opcode :initform 73 :type xcb:-u1) (format :initarg :format :type xcb:CARD8) (drawable :initarg :drawable :type xcb:DRAWABLE) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (plane-mask :initarg :plane-mask :type xcb:CARD32))) (defclass xcb:GetImage~reply (xcb:-reply) ((depth :initarg :depth :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (visual :initarg :visual :type xcb:VISUALID) (pad~0 :initform 20 :type xcb:-pad) (data~ :initform '(name data type xcb:BYTE size (* (xcb:-fieldref 'length) 4)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:PolyText8 (xcb:-request) ((~opcode :initform 74 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (items~ :initform '(name items type xcb:BYTE size nil) :type xcb:-list) (items :initarg :items :type xcb:-ignore))) (defclass xcb:PolyText16 (xcb:-request) ((~opcode :initform 75 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (items~ :initform '(name items type xcb:BYTE size nil) :type xcb:-list) (items :initarg :items :type xcb:-ignore))) (defclass xcb:ImageText8 (xcb:-request) ((~opcode :initform 76 :type xcb:-u1) (string-len :initarg :string-len :type xcb:BYTE) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (string~ :initform '(name string type xcb:char size (xcb:-fieldref 'string-len)) :type xcb:-list) (string :initarg :string :type xcb:-ignore))) (defclass xcb:ImageText16 (xcb:-request) ((~opcode :initform 77 :type xcb:-u1) (string-len :initarg :string-len :type xcb:BYTE) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (x :initarg :x :type xcb:INT16) (y :initarg :y :type xcb:INT16) (string~ :initform '(name string type xcb:CHAR2B size (xcb:-fieldref 'string-len)) :type xcb:-list) (string :initarg :string :type xcb:-ignore))) (defconst xcb:ColormapAlloc:None 0) (defconst xcb:ColormapAlloc:All 1) (defclass xcb:CreateColormap (xcb:-request) ((~opcode :initform 78 :type xcb:-u1) (alloc :initarg :alloc :type xcb:BYTE) (mid :initarg :mid :type xcb:COLORMAP) (window :initarg :window :type xcb:WINDOW) (visual :initarg :visual :type xcb:VISUALID))) (defclass xcb:FreeColormap (xcb:-request) ((~opcode :initform 79 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP))) (defclass xcb:CopyColormapAndFree (xcb:-request) ((~opcode :initform 80 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (mid :initarg :mid :type xcb:COLORMAP) (src-cmap :initarg :src-cmap :type xcb:COLORMAP))) (defclass xcb:InstallColormap (xcb:-request) ((~opcode :initform 81 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP))) (defclass xcb:UninstallColormap (xcb:-request) ((~opcode :initform 82 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP))) (defclass xcb:ListInstalledColormaps (xcb:-request) ((~opcode :initform 83 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:ListInstalledColormaps~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (cmaps-len :initarg :cmaps-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (cmaps~ :initform '(name cmaps type xcb:COLORMAP size (xcb:-fieldref 'cmaps-len)) :type xcb:-list) (cmaps :initarg :cmaps :type xcb:-ignore))) (defclass xcb:AllocColor (xcb:-request) ((~opcode :initform 84 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad))) (defclass xcb:AllocColor~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (pixel :initarg :pixel :type xcb:CARD32))) (defclass xcb:AllocNamedColor (xcb:-request) ((~opcode :initform 85 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (name-len :initarg :name-len :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:AllocNamedColor~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pixel :initarg :pixel :type xcb:CARD32) (exact-red :initarg :exact-red :type xcb:CARD16) (exact-green :initarg :exact-green :type xcb:CARD16) (exact-blue :initarg :exact-blue :type xcb:CARD16) (visual-red :initarg :visual-red :type xcb:CARD16) (visual-green :initarg :visual-green :type xcb:CARD16) (visual-blue :initarg :visual-blue :type xcb:CARD16))) (defclass xcb:AllocColorCells (xcb:-request) ((~opcode :initform 86 :type xcb:-u1) (contiguous :initarg :contiguous :type xcb:BOOL) (cmap :initarg :cmap :type xcb:COLORMAP) (colors :initarg :colors :type xcb:CARD16) (planes :initarg :planes :type xcb:CARD16))) (defclass xcb:AllocColorCells~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pixels-len :initarg :pixels-len :type xcb:CARD16) (masks-len :initarg :masks-len :type xcb:CARD16) (pad~1 :initform 20 :type xcb:-pad) (pixels~ :initform '(name pixels type xcb:CARD32 size (xcb:-fieldref 'pixels-len)) :type xcb:-list) (pixels :initarg :pixels :type xcb:-ignore) (masks~ :initform '(name masks type xcb:CARD32 size (xcb:-fieldref 'masks-len)) :type xcb:-list) (masks :initarg :masks :type xcb:-ignore))) (defclass xcb:AllocColorPlanes (xcb:-request) ((~opcode :initform 87 :type xcb:-u1) (contiguous :initarg :contiguous :type xcb:BOOL) (cmap :initarg :cmap :type xcb:COLORMAP) (colors :initarg :colors :type xcb:CARD16) (reds :initarg :reds :type xcb:CARD16) (greens :initarg :greens :type xcb:CARD16) (blues :initarg :blues :type xcb:CARD16))) (defclass xcb:AllocColorPlanes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pixels-len :initarg :pixels-len :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (red-mask :initarg :red-mask :type xcb:CARD32) (green-mask :initarg :green-mask :type xcb:CARD32) (blue-mask :initarg :blue-mask :type xcb:CARD32) (pad~2 :initform 8 :type xcb:-pad) (pixels~ :initform '(name pixels type xcb:CARD32 size (xcb:-fieldref 'pixels-len)) :type xcb:-list) (pixels :initarg :pixels :type xcb:-ignore))) (defclass xcb:FreeColors (xcb:-request) ((~opcode :initform 88 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (plane-mask :initarg :plane-mask :type xcb:CARD32) (pixels~ :initform '(name pixels type xcb:CARD32 size nil) :type xcb:-list) (pixels :initarg :pixels :type xcb:-ignore))) (defconst xcb:ColorFlag:Red 1) (defconst xcb:ColorFlag:Green 2) (defconst xcb:ColorFlag:Blue 4) (defclass xcb:COLORITEM (xcb:-struct) ((pixel :initarg :pixel :type xcb:CARD32) (red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (flags :initarg :flags :type xcb:BYTE) (pad~0 :initform 1 :type xcb:-pad))) (defclass xcb:StoreColors (xcb:-request) ((~opcode :initform 89 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (items~ :initform '(name items type xcb:COLORITEM size nil) :type xcb:-list) (items :initarg :items :type xcb:-ignore))) (defclass xcb:StoreNamedColor (xcb:-request) ((~opcode :initform 90 :type xcb:-u1) (flags :initarg :flags :type xcb:CARD8) (cmap :initarg :cmap :type xcb:COLORMAP) (pixel :initarg :pixel :type xcb:CARD32) (name-len :initarg :name-len :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:RGB (xcb:-struct) ((red :initarg :red :type xcb:CARD16) (green :initarg :green :type xcb:CARD16) (blue :initarg :blue :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad))) (defclass xcb:QueryColors (xcb:-request) ((~opcode :initform 91 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (pixels~ :initform '(name pixels type xcb:CARD32 size nil) :type xcb:-list) (pixels :initarg :pixels :type xcb:-ignore))) (defclass xcb:QueryColors~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (colors-len :initarg :colors-len :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (colors~ :initform '(name colors type xcb:RGB size (xcb:-fieldref 'colors-len)) :type xcb:-list) (colors :initarg :colors :type xcb:-ignore))) (defclass xcb:LookupColor (xcb:-request) ((~opcode :initform 92 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cmap :initarg :cmap :type xcb:COLORMAP) (name-len :initarg :name-len :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:LookupColor~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (exact-red :initarg :exact-red :type xcb:CARD16) (exact-green :initarg :exact-green :type xcb:CARD16) (exact-blue :initarg :exact-blue :type xcb:CARD16) (visual-red :initarg :visual-red :type xcb:CARD16) (visual-green :initarg :visual-green :type xcb:CARD16) (visual-blue :initarg :visual-blue :type xcb:CARD16))) (defconst xcb:Pixmap:None 0) (defclass xcb:CreateCursor (xcb:-request) ((~opcode :initform 93 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cid :initarg :cid :type xcb:CURSOR) (source :initarg :source :type xcb:PIXMAP) (mask :initarg :mask :type xcb:PIXMAP) (fore-red :initarg :fore-red :type xcb:CARD16) (fore-green :initarg :fore-green :type xcb:CARD16) (fore-blue :initarg :fore-blue :type xcb:CARD16) (back-red :initarg :back-red :type xcb:CARD16) (back-green :initarg :back-green :type xcb:CARD16) (back-blue :initarg :back-blue :type xcb:CARD16) (x :initarg :x :type xcb:CARD16) (y :initarg :y :type xcb:CARD16))) (defconst xcb:Font:None 0) (defclass xcb:CreateGlyphCursor (xcb:-request) ((~opcode :initform 94 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cid :initarg :cid :type xcb:CURSOR) (source-font :initarg :source-font :type xcb:FONT) (mask-font :initarg :mask-font :type xcb:FONT) (source-char :initarg :source-char :type xcb:CARD16) (mask-char :initarg :mask-char :type xcb:CARD16) (fore-red :initarg :fore-red :type xcb:CARD16) (fore-green :initarg :fore-green :type xcb:CARD16) (fore-blue :initarg :fore-blue :type xcb:CARD16) (back-red :initarg :back-red :type xcb:CARD16) (back-green :initarg :back-green :type xcb:CARD16) (back-blue :initarg :back-blue :type xcb:CARD16))) (defclass xcb:FreeCursor (xcb:-request) ((~opcode :initform 95 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cursor :initarg :cursor :type xcb:CURSOR))) (defclass xcb:RecolorCursor (xcb:-request) ((~opcode :initform 96 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (cursor :initarg :cursor :type xcb:CURSOR) (fore-red :initarg :fore-red :type xcb:CARD16) (fore-green :initarg :fore-green :type xcb:CARD16) (fore-blue :initarg :fore-blue :type xcb:CARD16) (back-red :initarg :back-red :type xcb:CARD16) (back-green :initarg :back-green :type xcb:CARD16) (back-blue :initarg :back-blue :type xcb:CARD16))) (defconst xcb:QueryShapeOf:LargestCursor 0) (defconst xcb:QueryShapeOf:FastestTile 1) (defconst xcb:QueryShapeOf:FastestStipple 2) (defclass xcb:QueryBestSize (xcb:-request) ((~opcode :initform 97 :type xcb:-u1) (class :initarg :class :type xcb:CARD8) (drawable :initarg :drawable :type xcb:DRAWABLE) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:QueryBestSize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:QueryExtension (xcb:-request) ((~opcode :initform 98 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (name-len :initarg :name-len :type xcb:CARD16) (pad~1 :initform 2 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-len)) :type xcb:-list) (name :initarg :name :type xcb:-ignore))) (defclass xcb:QueryExtension~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (present :initarg :present :type xcb:BOOL) (major-opcode :initarg :major-opcode :type xcb:CARD8) (first-event :initarg :first-event :type xcb:CARD8) (first-error :initarg :first-error :type xcb:CARD8))) (defclass xcb:ListExtensions (xcb:-request) ((~opcode :initform 99 :type xcb:-u1))) (defclass xcb:ListExtensions~reply (xcb:-reply) ((names-len :initarg :names-len :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~0 :initform 24 :type xcb:-pad) (names~ :initform '(name names type xcb:STR size (xcb:-fieldref 'names-len)) :type xcb:-list) (names :initarg :names :type xcb:-ignore))) (defclass xcb:ChangeKeyboardMapping (xcb:-request) ((~opcode :initform 100 :type xcb:-u1) (keycode-count :initarg :keycode-count :type xcb:CARD8) (first-keycode :initarg :first-keycode :type xcb:KEYCODE) (keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (keysyms~ :initform '(name keysyms type xcb:KEYSYM size (* (xcb:-fieldref 'keycode-count) (xcb:-fieldref 'keysyms-per-keycode))) :type xcb:-list) (keysyms :initarg :keysyms :type xcb:-ignore))) (defclass xcb:GetKeyboardMapping (xcb:-request) ((~opcode :initform 101 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (first-keycode :initarg :first-keycode :type xcb:KEYCODE) (count :initarg :count :type xcb:CARD8))) (defclass xcb:GetKeyboardMapping~reply (xcb:-reply) ((keysyms-per-keycode :initarg :keysyms-per-keycode :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~0 :initform 24 :type xcb:-pad) (keysyms~ :initform '(name keysyms type xcb:KEYSYM size (xcb:-fieldref 'length)) :type xcb:-list) (keysyms :initarg :keysyms :type xcb:-ignore))) (defconst xcb:KB:KeyClickPercent 1) (defconst xcb:KB:BellPercent 2) (defconst xcb:KB:BellPitch 4) (defconst xcb:KB:BellDuration 8) (defconst xcb:KB:Led 16) (defconst xcb:KB:LedMode 32) (defconst xcb:KB:Key 64) (defconst xcb:KB:AutoRepeatMode 128) (defconst xcb:LedMode:Off 0) (defconst xcb:LedMode:On 1) (defconst xcb:AutoRepeatMode:Off 0) (defconst xcb:AutoRepeatMode:On 1) (defconst xcb:AutoRepeatMode:Default 2) (defclass xcb:ChangeKeyboardControl (xcb:-request) ((~opcode :initform 102 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (value-mask :initarg :value-mask :type xcb:CARD32) (value-list :initform '(expression (xcb:-fieldref 'value-mask) cases ((1 key-click-percent) (2 bell-percent) (4 bell-pitch) (8 bell-duration) (16 led) (32 led-mode) (64 key) (128 auto-repeat-mode))) :type xcb:-switch) (key-click-percent :initarg :key-click-percent :type xcb:INT32) (bell-percent :initarg :bell-percent :type xcb:INT32) (bell-pitch :initarg :bell-pitch :type xcb:INT32) (bell-duration :initarg :bell-duration :type xcb:INT32) (led :initarg :led :type xcb:CARD32) (led-mode :initarg :led-mode :type xcb:CARD32) (key :initarg :key :type xcb:KEYCODE32) (auto-repeat-mode :initarg :auto-repeat-mode :type xcb:CARD32))) (defclass xcb:GetKeyboardControl (xcb:-request) ((~opcode :initform 103 :type xcb:-u1))) (defclass xcb:GetKeyboardControl~reply (xcb:-reply) ((global-auto-repeat :initarg :global-auto-repeat :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (led-mask :initarg :led-mask :type xcb:CARD32) (key-click-percent :initarg :key-click-percent :type xcb:CARD8) (bell-percent :initarg :bell-percent :type xcb:CARD8) (bell-pitch :initarg :bell-pitch :type xcb:CARD16) (bell-duration :initarg :bell-duration :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (auto-repeats~ :initform '(name auto-repeats type xcb:CARD8 size 32) :type xcb:-list) (auto-repeats :initarg :auto-repeats :type xcb:-ignore))) (defclass xcb:Bell (xcb:-request) ((~opcode :initform 104 :type xcb:-u1) (percent :initarg :percent :type xcb:INT8))) (defclass xcb:ChangePointerControl (xcb:-request) ((~opcode :initform 105 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (acceleration-numerator :initarg :acceleration-numerator :type xcb:INT16) (acceleration-denominator :initarg :acceleration-denominator :type xcb:INT16) (threshold :initarg :threshold :type xcb:INT16) (do-acceleration :initarg :do-acceleration :type xcb:BOOL) (do-threshold :initarg :do-threshold :type xcb:BOOL))) (defclass xcb:GetPointerControl (xcb:-request) ((~opcode :initform 106 :type xcb:-u1))) (defclass xcb:GetPointerControl~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (acceleration-numerator :initarg :acceleration-numerator :type xcb:CARD16) (acceleration-denominator :initarg :acceleration-denominator :type xcb:CARD16) (threshold :initarg :threshold :type xcb:CARD16) (pad~1 :initform 18 :type xcb:-pad))) (defconst xcb:Blanking:NotPreferred 0) (defconst xcb:Blanking:Preferred 1) (defconst xcb:Blanking:Default 2) (defconst xcb:Exposures:NotAllowed 0) (defconst xcb:Exposures:Allowed 1) (defconst xcb:Exposures:Default 2) (defclass xcb:SetScreenSaver (xcb:-request) ((~opcode :initform 107 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (timeout :initarg :timeout :type xcb:INT16) (interval :initarg :interval :type xcb:INT16) (prefer-blanking :initarg :prefer-blanking :type xcb:CARD8) (allow-exposures :initarg :allow-exposures :type xcb:CARD8))) (defclass xcb:GetScreenSaver (xcb:-request) ((~opcode :initform 108 :type xcb:-u1))) (defclass xcb:GetScreenSaver~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (timeout :initarg :timeout :type xcb:CARD16) (interval :initarg :interval :type xcb:CARD16) (prefer-blanking :initarg :prefer-blanking :type xcb:BYTE) (allow-exposures :initarg :allow-exposures :type xcb:BYTE) (pad~1 :initform 18 :type xcb:-pad))) (defconst xcb:HostMode:Insert 0) (defconst xcb:HostMode:Delete 1) (defconst xcb:Family:Internet 0) (defconst xcb:Family:DECnet 1) (defconst xcb:Family:Chaos 2) (defconst xcb:Family:ServerInterpreted 5) (defconst xcb:Family:Internet6 6) (defclass xcb:ChangeHosts (xcb:-request) ((~opcode :initform 109 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8) (family :initarg :family :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (address-len :initarg :address-len :type xcb:CARD16) (address~ :initform '(name address type xcb:BYTE size (xcb:-fieldref 'address-len)) :type xcb:-list) (address :initarg :address :type xcb:-ignore))) (defclass xcb:HOST (xcb:-struct) ((family :initarg :family :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (address-len :initarg :address-len :type xcb:CARD16) (address~ :initform '(name address type xcb:BYTE size (xcb:-fieldref 'address-len)) :type xcb:-list) (address :initarg :address :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align))) (defclass xcb:ListHosts (xcb:-request) ((~opcode :initform 110 :type xcb:-u1))) (defclass xcb:ListHosts~reply (xcb:-reply) ((mode :initarg :mode :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (hosts-len :initarg :hosts-len :type xcb:CARD16) (pad~0 :initform 22 :type xcb:-pad) (hosts~ :initform '(name hosts type xcb:HOST size (xcb:-fieldref 'hosts-len)) :type xcb:-list) (hosts :initarg :hosts :type xcb:-ignore))) (defconst xcb:AccessControl:Disable 0) (defconst xcb:AccessControl:Enable 1) (defclass xcb:SetAccessControl (xcb:-request) ((~opcode :initform 111 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8))) (defconst xcb:CloseDown:DestroyAll 0) (defconst xcb:CloseDown:RetainPermanent 1) (defconst xcb:CloseDown:RetainTemporary 2) (defclass xcb:SetCloseDownMode (xcb:-request) ((~opcode :initform 112 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8))) (defconst xcb:Kill:AllTemporary 0) (defclass xcb:KillClient (xcb:-request) ((~opcode :initform 113 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (resource :initarg :resource :type xcb:CARD32))) (defclass xcb:RotateProperties (xcb:-request) ((~opcode :initform 114 :type xcb:-u1) (pad~0 :initform 1 :type xcb:-pad) (window :initarg :window :type xcb:WINDOW) (atoms-len :initarg :atoms-len :type xcb:CARD16) (delta :initarg :delta :type xcb:INT16) (atoms~ :initform '(name atoms type xcb:ATOM size (xcb:-fieldref 'atoms-len)) :type xcb:-list) (atoms :initarg :atoms :type xcb:-ignore))) (defconst xcb:ScreenSaver:Reset 0) (defconst xcb:ScreenSaver:Active 1) (defclass xcb:ForceScreenSaver (xcb:-request) ((~opcode :initform 115 :type xcb:-u1) (mode :initarg :mode :type xcb:CARD8))) (defconst xcb:MappingStatus:Success 0) (defconst xcb:MappingStatus:Busy 1) (defconst xcb:MappingStatus:Failure 2) (defclass xcb:SetPointerMapping (xcb:-request) ((~opcode :initform 116 :type xcb:-u1) (map-len :initarg :map-len :type xcb:CARD8) (map~ :initform '(name map type xcb:CARD8 size (xcb:-fieldref 'map-len)) :type xcb:-list) (map :initarg :map :type xcb:-ignore))) (defclass xcb:SetPointerMapping~reply (xcb:-reply) ((status :initarg :status :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:GetPointerMapping (xcb:-request) ((~opcode :initform 117 :type xcb:-u1))) (defclass xcb:GetPointerMapping~reply (xcb:-reply) ((map-len :initarg :map-len :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~0 :initform 24 :type xcb:-pad) (map~ :initform '(name map type xcb:CARD8 size (xcb:-fieldref 'map-len)) :type xcb:-list) (map :initarg :map :type xcb:-ignore))) (defconst xcb:MapIndex:Shift 0) (defconst xcb:MapIndex:Lock 1) (defconst xcb:MapIndex:Control 2) (defconst xcb:MapIndex:1 3) (defconst xcb:MapIndex:2 4) (defconst xcb:MapIndex:3 5) (defconst xcb:MapIndex:4 6) (defconst xcb:MapIndex:5 7) (defclass xcb:SetModifierMapping (xcb:-request) ((~opcode :initform 118 :type xcb:-u1) (keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8) (keycodes~ :initform '(name keycodes type xcb:KEYCODE size (* (xcb:-fieldref 'keycodes-per-modifier) 8)) :type xcb:-list) (keycodes :initarg :keycodes :type xcb:-ignore))) (defclass xcb:SetModifierMapping~reply (xcb:-reply) ((status :initarg :status :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:GetModifierMapping (xcb:-request) ((~opcode :initform 119 :type xcb:-u1))) (defclass xcb:GetModifierMapping~reply (xcb:-reply) ((keycodes-per-modifier :initarg :keycodes-per-modifier :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~0 :initform 24 :type xcb:-pad) (keycodes~ :initform '(name keycodes type xcb:KEYCODE size (* (xcb:-fieldref 'keycodes-per-modifier) 8)) :type xcb:-list) (keycodes :initarg :keycodes :type xcb:-ignore))) (defclass xcb:NoOperation (xcb:-request) ((~opcode :initform 127 :type xcb:-u1))) (defconst xcb:error-number-class-alist '((1 . xcb:Request) (2 . xcb:Value) (3 . xcb:Window) (4 . xcb:Pixmap) (5 . xcb:Atom) (6 . xcb:Cursor) (7 . xcb:Font) (8 . xcb:Match) (9 . xcb:Drawable) (10 . xcb:Access) (11 . xcb:Alloc) (12 . xcb:Colormap) (13 . xcb:GContext) (14 . xcb:IDChoice) (15 . xcb:Name) (16 . xcb:Length) (17 . xcb:Implementation)) "(error-number . error-class) alist.") (defconst xcb:event-number-class-alist '((2 . xcb:KeyPress) (3 . xcb:KeyRelease) (4 . xcb:ButtonPress) (5 . xcb:ButtonRelease) (6 . xcb:MotionNotify) (7 . xcb:EnterNotify) (8 . xcb:LeaveNotify) (9 . xcb:FocusIn) (10 . xcb:FocusOut) (11 . xcb:KeymapNotify) (12 . xcb:Expose) (13 . xcb:GraphicsExposure) (14 . xcb:NoExposure) (15 . xcb:VisibilityNotify) (16 . xcb:CreateNotify) (17 . xcb:DestroyNotify) (18 . xcb:UnmapNotify) (19 . xcb:MapNotify) (20 . xcb:MapRequest) (21 . xcb:ReparentNotify) (22 . xcb:ConfigureNotify) (23 . xcb:ConfigureRequest) (24 . xcb:GravityNotify) (25 . xcb:ResizeRequest) (26 . xcb:CirculateNotify) (27 . xcb:CirculateRequest) (28 . xcb:PropertyNotify) (29 . xcb:SelectionClear) (30 . xcb:SelectionRequest) (31 . xcb:SelectionNotify) (32 . xcb:ColormapNotify) (33 . xcb:ClientMessage) (34 . xcb:MappingNotify) (35 . xcb:GeGeneric)) "(event-number . event-class) alist.") (provide 'xcb-xproto) ;;; xcb-xproto.el ends here xelb-0.18/xcb-xselinux.el000066400000000000000000000321061353702660000153530ustar00rootroot00000000000000;;; xcb-xselinux.el --- X11 SELinux extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xselinux.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xselinux:-extension-xname "SELinux") (defconst xcb:xselinux:-extension-name "SELinux") (defconst xcb:xselinux:-major-version 1) (defconst xcb:xselinux:-minor-version 0) (require 'xcb-xproto) (defclass xcb:xselinux:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (client-major :initarg :client-major :type xcb:CARD8) (client-minor :initarg :client-minor :type xcb:CARD8))) (defclass xcb:xselinux:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (server-major :initarg :server-major :type xcb:CARD16) (server-minor :initarg :server-minor :type xcb:CARD16))) (defclass xcb:xselinux:SetDeviceCreateContext (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetDeviceCreateContext (xcb:-request) ((~opcode :initform 2 :type xcb:-u1))) (defclass xcb:xselinux:GetDeviceCreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:SetDeviceContext (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (device :initarg :device :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetDeviceContext (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (device :initarg :device :type xcb:CARD32))) (defclass xcb:xselinux:GetDeviceContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:SetWindowCreateContext (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetWindowCreateContext (xcb:-request) ((~opcode :initform 6 :type xcb:-u1))) (defclass xcb:xselinux:GetWindowCreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetWindowContext (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xselinux:GetWindowContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:ListItem (xcb:-struct) ((name :initarg :name :type xcb:ATOM) (object-context-len :initarg :object-context-len :type xcb:CARD32) (data-context-len :initarg :data-context-len :type xcb:CARD32) (object-context~ :initform '(name object-context type xcb:char size (xcb:-fieldref 'object-context-len)) :type xcb:-list) (object-context :initarg :object-context :type xcb:-ignore) (pad~0 :initform 4 :type xcb:-pad-align) (data-context~ :initform '(name data-context type xcb:char size (xcb:-fieldref 'data-context-len)) :type xcb:-list) (data-context :initarg :data-context :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align))) (defclass xcb:xselinux:SetPropertyCreateContext (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetPropertyCreateContext (xcb:-request) ((~opcode :initform 9 :type xcb:-u1))) (defclass xcb:xselinux:GetPropertyCreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:SetPropertyUseContext (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetPropertyUseContext (xcb:-request) ((~opcode :initform 11 :type xcb:-u1))) (defclass xcb:xselinux:GetPropertyUseContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetPropertyContext (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (property :initarg :property :type xcb:ATOM))) (defclass xcb:xselinux:GetPropertyContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetPropertyDataContext (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (property :initarg :property :type xcb:ATOM))) (defclass xcb:xselinux:GetPropertyDataContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:ListProperties (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xselinux:ListProperties~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (properties-len :initarg :properties-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (properties~ :initform '(name properties type xcb:xselinux:ListItem size (xcb:-fieldref 'properties-len)) :type xcb:-list) (properties :initarg :properties :type xcb:-ignore))) (defclass xcb:xselinux:SetSelectionCreateContext (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetSelectionCreateContext (xcb:-request) ((~opcode :initform 16 :type xcb:-u1))) (defclass xcb:xselinux:GetSelectionCreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:SetSelectionUseContext (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (context-len :initarg :context-len :type xcb:CARD32) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetSelectionUseContext (xcb:-request) ((~opcode :initform 18 :type xcb:-u1))) (defclass xcb:xselinux:GetSelectionUseContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetSelectionContext (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (selection :initarg :selection :type xcb:ATOM))) (defclass xcb:xselinux:GetSelectionContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:GetSelectionDataContext (xcb:-request) ((~opcode :initform 20 :type xcb:-u1) (selection :initarg :selection :type xcb:ATOM))) (defclass xcb:xselinux:GetSelectionDataContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (defclass xcb:xselinux:ListSelections (xcb:-request) ((~opcode :initform 21 :type xcb:-u1))) (defclass xcb:xselinux:ListSelections~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (selections-len :initarg :selections-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (selections~ :initform '(name selections type xcb:xselinux:ListItem size (xcb:-fieldref 'selections-len)) :type xcb:-list) (selections :initarg :selections :type xcb:-ignore))) (defclass xcb:xselinux:GetClientContext (xcb:-request) ((~opcode :initform 22 :type xcb:-u1) (resource :initarg :resource :type xcb:CARD32))) (defclass xcb:xselinux:GetClientContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (context-len :initarg :context-len :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (context~ :initform '(name context type xcb:char size (xcb:-fieldref 'context-len)) :type xcb:-list) (context :initarg :context :type xcb:-ignore))) (provide 'xcb-xselinux) ;;; xcb-xselinux.el ends here xelb-0.18/xcb-xtest.el000066400000000000000000000053751353702660000146530ustar00rootroot00000000000000;;; xcb-xtest.el --- X11 Test extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xtest.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xtest:-extension-xname "XTEST") (defconst xcb:xtest:-extension-name "Test") (defconst xcb:xtest:-major-version 2) (defconst xcb:xtest:-minor-version 2) (require 'xcb-xproto) (defclass xcb:xtest:GetVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1) (major-version :initarg :major-version :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (minor-version :initarg :minor-version :type xcb:CARD16))) (defclass xcb:xtest:GetVersion~reply (xcb:-reply) ((major-version :initarg :major-version :type xcb:CARD8) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (minor-version :initarg :minor-version :type xcb:CARD16))) (defconst xcb:xtest:Cursor:None 0) (defconst xcb:xtest:Cursor:Current 1) (defclass xcb:xtest:CompareCursor (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW) (cursor :initarg :cursor :type xcb:CURSOR))) (defclass xcb:xtest:CompareCursor~reply (xcb:-reply) ((same :initarg :same :type xcb:BOOL) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:xtest:FakeInput (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (type :initarg :type :type xcb:BYTE) (detail :initarg :detail :type xcb:BYTE) (pad~0 :initform 2 :type xcb:-pad) (time :initarg :time :type xcb:CARD32) (root :initarg :root :type xcb:WINDOW) (pad~1 :initform 8 :type xcb:-pad) (rootX :initarg :rootX :type xcb:INT16) (rootY :initarg :rootY :type xcb:INT16) (pad~2 :initform 7 :type xcb:-pad) (deviceid :initarg :deviceid :type xcb:CARD8))) (defclass xcb:xtest:GrabControl (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (impervious :initarg :impervious :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (provide 'xcb-xtest) ;;; xcb-xtest.el ends here xelb-0.18/xcb-xv.el000066400000000000000000000426511353702660000141370ustar00rootroot00000000000000;;; xcb-xv.el --- X11 Xv extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xv.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xv:-extension-xname "XVideo") (defconst xcb:xv:-extension-name "Xv") (defconst xcb:xv:-major-version 2) (defconst xcb:xv:-minor-version 2) (require 'xcb-xproto) (require 'xcb-shm) (xcb:deftypealias 'xcb:xv:PORT 'xcb:-u4) (xcb:deftypealias 'xcb:xv:ENCODING 'xcb:-u4) (defconst xcb:xv:Type:InputMask 1) (defconst xcb:xv:Type:OutputMask 2) (defconst xcb:xv:Type:VideoMask 4) (defconst xcb:xv:Type:StillMask 8) (defconst xcb:xv:Type:ImageMask 16) (defconst xcb:xv:ImageFormatInfoType:RGB 0) (defconst xcb:xv:ImageFormatInfoType:YUV 1) (defconst xcb:xv:ImageFormatInfoFormat:Packed 0) (defconst xcb:xv:ImageFormatInfoFormat:Planar 1) (defconst xcb:xv:AttributeFlag:Gettable 1) (defconst xcb:xv:AttributeFlag:Settable 2) (defconst xcb:xv:VideoNotifyReason:Started 0) (defconst xcb:xv:VideoNotifyReason:Stopped 1) (defconst xcb:xv:VideoNotifyReason:Busy 2) (defconst xcb:xv:VideoNotifyReason:Preempted 3) (defconst xcb:xv:VideoNotifyReason:HardError 4) (defconst xcb:xv:ScanlineOrder:TopToBottom 0) (defconst xcb:xv:ScanlineOrder:BottomToTop 1) (defconst xcb:xv:GrabPortStatus:Success 0) (defconst xcb:xv:GrabPortStatus:BadExtension 1) (defconst xcb:xv:GrabPortStatus:AlreadyGrabbed 2) (defconst xcb:xv:GrabPortStatus:InvalidTime 3) (defconst xcb:xv:GrabPortStatus:BadReply 4) (defconst xcb:xv:GrabPortStatus:BadAlloc 5) (defclass xcb:xv:Rational (xcb:-struct) ((numerator :initarg :numerator :type xcb:INT32) (denominator :initarg :denominator :type xcb:INT32))) (defclass xcb:xv:Format (xcb:-struct) ((visual :initarg :visual :type xcb:VISUALID) (depth :initarg :depth :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xv:AdaptorInfo (xcb:-struct) ((base-id :initarg :base-id :type xcb:xv:PORT) (name-size :initarg :name-size :type xcb:CARD16) (num-ports :initarg :num-ports :type xcb:CARD16) (num-formats :initarg :num-formats :type xcb:CARD16) (type :initarg :type :type xcb:CARD8) (pad~0 :initform 1 :type xcb:-pad) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-size)) :type xcb:-list) (name :initarg :name :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align) (formats~ :initform '(name formats type xcb:xv:Format size (xcb:-fieldref 'num-formats)) :type xcb:-list) (formats :initarg :formats :type xcb:-ignore))) (defclass xcb:xv:EncodingInfo (xcb:-struct) ((encoding :initarg :encoding :type xcb:xv:ENCODING) (name-size :initarg :name-size :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (pad~0 :initform 2 :type xcb:-pad) (rate :initarg :rate :type xcb:xv:Rational) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'name-size)) :type xcb:-list) (name :initarg :name :type xcb:-ignore) (pad~1 :initform 4 :type xcb:-pad-align))) (defclass xcb:xv:Image (xcb:-struct) ((id :initarg :id :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (data-size :initarg :data-size :type xcb:CARD32) (num-planes :initarg :num-planes :type xcb:CARD32) (pitches~ :initform '(name pitches type xcb:CARD32 size (xcb:-fieldref 'num-planes)) :type xcb:-list) (pitches :initarg :pitches :type xcb:-ignore) (offsets~ :initform '(name offsets type xcb:CARD32 size (xcb:-fieldref 'num-planes)) :type xcb:-list) (offsets :initarg :offsets :type xcb:-ignore) (data~ :initform '(name data type xcb:CARD8 size (xcb:-fieldref 'data-size)) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:xv:AttributeInfo (xcb:-struct) ((flags :initarg :flags :type xcb:CARD32) (min :initarg :min :type xcb:INT32) (max :initarg :max :type xcb:INT32) (size :initarg :size :type xcb:CARD32) (name~ :initform '(name name type xcb:char size (xcb:-fieldref 'size)) :type xcb:-list) (name :initarg :name :type xcb:-ignore) (pad~0 :initform 4 :type xcb:-pad-align))) (defclass xcb:xv:ImageFormatInfo (xcb:-struct) ((id :initarg :id :type xcb:CARD32) (type :initarg :type :type xcb:CARD8) (byte-order :initarg :byte-order :type xcb:CARD8) (pad~0 :initform 2 :type xcb:-pad) (guid~ :initform '(name guid type xcb:CARD8 size 16) :type xcb:-list) (guid :initarg :guid :type xcb:-ignore) (bpp :initarg :bpp :type xcb:CARD8) (num-planes :initarg :num-planes :type xcb:CARD8) (pad~1 :initform 2 :type xcb:-pad) (depth :initarg :depth :type xcb:CARD8) (pad~2 :initform 3 :type xcb:-pad) (red-mask :initarg :red-mask :type xcb:CARD32) (green-mask :initarg :green-mask :type xcb:CARD32) (blue-mask :initarg :blue-mask :type xcb:CARD32) (format :initarg :format :type xcb:CARD8) (pad~3 :initform 3 :type xcb:-pad) (y-sample-bits :initarg :y-sample-bits :type xcb:CARD32) (u-sample-bits :initarg :u-sample-bits :type xcb:CARD32) (v-sample-bits :initarg :v-sample-bits :type xcb:CARD32) (vhorz-y-period :initarg :vhorz-y-period :type xcb:CARD32) (vhorz-u-period :initarg :vhorz-u-period :type xcb:CARD32) (vhorz-v-period :initarg :vhorz-v-period :type xcb:CARD32) (vvert-y-period :initarg :vvert-y-period :type xcb:CARD32) (vvert-u-period :initarg :vvert-u-period :type xcb:CARD32) (vvert-v-period :initarg :vvert-v-period :type xcb:CARD32) (vcomp-order~ :initform '(name vcomp-order type xcb:CARD8 size 32) :type xcb:-list) (vcomp-order :initarg :vcomp-order :type xcb:-ignore) (vscanline-order :initarg :vscanline-order :type xcb:CARD8) (pad~4 :initform 11 :type xcb:-pad))) (defclass xcb:xv:BadPort (xcb:-error) ((~code :initform 0))) (defclass xcb:xv:BadEncoding (xcb:-error) ((~code :initform 1))) (defclass xcb:xv:BadControl (xcb:-error) ((~code :initform 2))) (defclass xcb:xv:VideoNotify (xcb:-event) ((~code :initform 0) (reason :initarg :reason :type xcb:BYTE) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (drawable :initarg :drawable :type xcb:DRAWABLE) (port :initarg :port :type xcb:xv:PORT))) (defclass xcb:xv:PortNotify (xcb:-event) ((~code :initform 1) (pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (time :initarg :time :type xcb:TIMESTAMP) (port :initarg :port :type xcb:xv:PORT) (attribute :initarg :attribute :type xcb:ATOM) (value :initarg :value :type xcb:INT32))) (defclass xcb:xv:QueryExtension (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:xv:QueryExtension~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major :initarg :major :type xcb:CARD16) (minor :initarg :minor :type xcb:CARD16))) (defclass xcb:xv:QueryAdaptors (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (window :initarg :window :type xcb:WINDOW))) (defclass xcb:xv:QueryAdaptors~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-adaptors :initarg :num-adaptors :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (info~ :initform '(name info type xcb:xv:AdaptorInfo size (xcb:-fieldref 'num-adaptors)) :type xcb:-list) (info :initarg :info :type xcb:-ignore))) (defclass xcb:xv:QueryEncodings (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT))) (defclass xcb:xv:QueryEncodings~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-encodings :initarg :num-encodings :type xcb:CARD16) (pad~1 :initform 22 :type xcb:-pad) (info~ :initform '(name info type xcb:xv:EncodingInfo size (xcb:-fieldref 'num-encodings)) :type xcb:-list) (info :initarg :info :type xcb:-ignore))) (defclass xcb:xv:GrabPort (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:xv:GrabPort~reply (xcb:-reply) ((result :initarg :result :type xcb:BYTE) (~sequence :type xcb:CARD16) (length :type xcb:CARD32))) (defclass xcb:xv:UngrabPort (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (time :initarg :time :type xcb:TIMESTAMP))) (defclass xcb:xv:PutVideo (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (vid-x :initarg :vid-x :type xcb:INT16) (vid-y :initarg :vid-y :type xcb:INT16) (vid-w :initarg :vid-w :type xcb:CARD16) (vid-h :initarg :vid-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16))) (defclass xcb:xv:PutStill (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (vid-x :initarg :vid-x :type xcb:INT16) (vid-y :initarg :vid-y :type xcb:INT16) (vid-w :initarg :vid-w :type xcb:CARD16) (vid-h :initarg :vid-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16))) (defclass xcb:xv:GetVideo (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (vid-x :initarg :vid-x :type xcb:INT16) (vid-y :initarg :vid-y :type xcb:INT16) (vid-w :initarg :vid-w :type xcb:CARD16) (vid-h :initarg :vid-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16))) (defclass xcb:xv:GetStill (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (vid-x :initarg :vid-x :type xcb:INT16) (vid-y :initarg :vid-y :type xcb:INT16) (vid-w :initarg :vid-w :type xcb:CARD16) (vid-h :initarg :vid-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16))) (defclass xcb:xv:StopVideo (xcb:-request) ((~opcode :initform 9 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE))) (defclass xcb:xv:SelectVideoNotify (xcb:-request) ((~opcode :initform 10 :type xcb:-u1) (drawable :initarg :drawable :type xcb:DRAWABLE) (onoff :initarg :onoff :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xv:SelectPortNotify (xcb:-request) ((~opcode :initform 11 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (onoff :initarg :onoff :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xv:QueryBestSize (xcb:-request) ((~opcode :initform 12 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (vid-w :initarg :vid-w :type xcb:CARD16) (vid-h :initarg :vid-h :type xcb:CARD16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16) (motion :initarg :motion :type xcb:BOOL) (pad~0 :initform 3 :type xcb:-pad))) (defclass xcb:xv:QueryBestSize~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (actual-width :initarg :actual-width :type xcb:CARD16) (actual-height :initarg :actual-height :type xcb:CARD16))) (defclass xcb:xv:SetPortAttribute (xcb:-request) ((~opcode :initform 13 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (attribute :initarg :attribute :type xcb:ATOM) (value :initarg :value :type xcb:INT32))) (defclass xcb:xv:GetPortAttribute (xcb:-request) ((~opcode :initform 14 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (attribute :initarg :attribute :type xcb:ATOM))) (defclass xcb:xv:GetPortAttribute~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (value :initarg :value :type xcb:INT32))) (defclass xcb:xv:QueryPortAttributes (xcb:-request) ((~opcode :initform 15 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT))) (defclass xcb:xv:QueryPortAttributes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-attributes :initarg :num-attributes :type xcb:CARD32) (text-size :initarg :text-size :type xcb:CARD32) (pad~1 :initform 16 :type xcb:-pad) (attributes~ :initform '(name attributes type xcb:xv:AttributeInfo size (xcb:-fieldref 'num-attributes)) :type xcb:-list) (attributes :initarg :attributes :type xcb:-ignore))) (defclass xcb:xv:ListImageFormats (xcb:-request) ((~opcode :initform 16 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT))) (defclass xcb:xv:ListImageFormats~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-formats :initarg :num-formats :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (format~ :initform '(name format type xcb:xv:ImageFormatInfo size (xcb:-fieldref 'num-formats)) :type xcb:-list) (format :initarg :format :type xcb:-ignore))) (defclass xcb:xv:QueryImageAttributes (xcb:-request) ((~opcode :initform 17 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (id :initarg :id :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:xv:QueryImageAttributes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num-planes :initarg :num-planes :type xcb:CARD32) (data-size :initarg :data-size :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (pad~1 :initform 12 :type xcb:-pad) (pitches~ :initform '(name pitches type xcb:CARD32 size (xcb:-fieldref 'num-planes)) :type xcb:-list) (pitches :initarg :pitches :type xcb:-ignore) (offsets~ :initform '(name offsets type xcb:CARD32 size (xcb:-fieldref 'num-planes)) :type xcb:-list) (offsets :initarg :offsets :type xcb:-ignore))) (defclass xcb:xv:PutImage (xcb:-request) ((~opcode :initform 18 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (id :initarg :id :type xcb:CARD32) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (src-w :initarg :src-w :type xcb:CARD16) (src-h :initarg :src-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (data~ :initform '(name data type xcb:CARD8 size nil) :type xcb:-list) (data :initarg :data :type xcb:-ignore))) (defclass xcb:xv:ShmPutImage (xcb:-request) ((~opcode :initform 19 :type xcb:-u1) (port :initarg :port :type xcb:xv:PORT) (drawable :initarg :drawable :type xcb:DRAWABLE) (gc :initarg :gc :type xcb:GCONTEXT) (shmseg :initarg :shmseg :type xcb:shm:SEG) (id :initarg :id :type xcb:CARD32) (offset :initarg :offset :type xcb:CARD32) (src-x :initarg :src-x :type xcb:INT16) (src-y :initarg :src-y :type xcb:INT16) (src-w :initarg :src-w :type xcb:CARD16) (src-h :initarg :src-h :type xcb:CARD16) (drw-x :initarg :drw-x :type xcb:INT16) (drw-y :initarg :drw-y :type xcb:INT16) (drw-w :initarg :drw-w :type xcb:CARD16) (drw-h :initarg :drw-h :type xcb:CARD16) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (send-event :initarg :send-event :type xcb:CARD8) (pad~0 :initform 3 :type xcb:-pad))) (defconst xcb:xv:error-number-class-alist '((0 . xcb:xv:BadPort) (1 . xcb:xv:BadEncoding) (2 . xcb:xv:BadControl)) "(error-number . error-class) alist.") (defconst xcb:xv:event-number-class-alist '((0 . xcb:xv:VideoNotify) (1 . xcb:xv:PortNotify)) "(event-number . event-class) alist.") (provide 'xcb-xv) ;;; xcb-xv.el ends here xelb-0.18/xcb-xvmc.el000066400000000000000000000147041353702660000144550ustar00rootroot00000000000000;;; xcb-xvmc.el --- X11 XvMC extension -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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 'el_client.el' from 'xvmc.xml', ;; which you can retrieve from . ;;; Code: (require 'xcb-types) (defconst xcb:xvmc:-extension-xname "XVideo-MotionCompensation") (defconst xcb:xvmc:-extension-name "XvMC") (defconst xcb:xvmc:-major-version 1) (defconst xcb:xvmc:-minor-version 1) (require 'xcb-xv) (xcb:deftypealias 'xcb:xvmc:CONTEXT 'xcb:-u4) (xcb:deftypealias 'xcb:xvmc:SURFACE 'xcb:-u4) (xcb:deftypealias 'xcb:xvmc:SUBPICTURE 'xcb:-u4) (defclass xcb:xvmc:SurfaceInfo (xcb:-struct) ((id :initarg :id :type xcb:xvmc:SURFACE) (chroma-format :initarg :chroma-format :type xcb:CARD16) (pad0 :initarg :pad0 :type xcb:CARD16) (max-width :initarg :max-width :type xcb:CARD16) (max-height :initarg :max-height :type xcb:CARD16) (subpicture-max-width :initarg :subpicture-max-width :type xcb:CARD16) (subpicture-max-height :initarg :subpicture-max-height :type xcb:CARD16) (mc-type :initarg :mc-type :type xcb:CARD32) (flags :initarg :flags :type xcb:CARD32))) (defclass xcb:xvmc:QueryVersion (xcb:-request) ((~opcode :initform 0 :type xcb:-u1))) (defclass xcb:xvmc:QueryVersion~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (major :initarg :major :type xcb:CARD32) (minor :initarg :minor :type xcb:CARD32))) (defclass xcb:xvmc:ListSurfaceTypes (xcb:-request) ((~opcode :initform 1 :type xcb:-u1) (port-id :initarg :port-id :type xcb:xv:PORT))) (defclass xcb:xvmc:ListSurfaceTypes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num :initarg :num :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (surfaces~ :initform '(name surfaces type xcb:xvmc:SurfaceInfo size (xcb:-fieldref 'num)) :type xcb:-list) (surfaces :initarg :surfaces :type xcb:-ignore))) (defclass xcb:xvmc:CreateContext (xcb:-request) ((~opcode :initform 2 :type xcb:-u1) (context-id :initarg :context-id :type xcb:xvmc:CONTEXT) (port-id :initarg :port-id :type xcb:xv:PORT) (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16) (flags :initarg :flags :type xcb:CARD32))) (defclass xcb:xvmc:CreateContext~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width-actual :initarg :width-actual :type xcb:CARD16) (height-actual :initarg :height-actual :type xcb:CARD16) (flags-return :initarg :flags-return :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (priv-data~ :initform '(name priv-data type xcb:CARD32 size (xcb:-fieldref 'length)) :type xcb:-list) (priv-data :initarg :priv-data :type xcb:-ignore))) (defclass xcb:xvmc:DestroyContext (xcb:-request) ((~opcode :initform 3 :type xcb:-u1) (context-id :initarg :context-id :type xcb:xvmc:CONTEXT))) (defclass xcb:xvmc:CreateSurface (xcb:-request) ((~opcode :initform 4 :type xcb:-u1) (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE) (context-id :initarg :context-id :type xcb:xvmc:CONTEXT))) (defclass xcb:xvmc:CreateSurface~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (pad~1 :initform 24 :type xcb:-pad) (priv-data~ :initform '(name priv-data type xcb:CARD32 size (xcb:-fieldref 'length)) :type xcb:-list) (priv-data :initarg :priv-data :type xcb:-ignore))) (defclass xcb:xvmc:DestroySurface (xcb:-request) ((~opcode :initform 5 :type xcb:-u1) (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE))) (defclass xcb:xvmc:CreateSubpicture (xcb:-request) ((~opcode :initform 6 :type xcb:-u1) (subpicture-id :initarg :subpicture-id :type xcb:xvmc:SUBPICTURE) (context :initarg :context :type xcb:xvmc:CONTEXT) (xvimage-id :initarg :xvimage-id :type xcb:CARD32) (width :initarg :width :type xcb:CARD16) (height :initarg :height :type xcb:CARD16))) (defclass xcb:xvmc:CreateSubpicture~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (width-actual :initarg :width-actual :type xcb:CARD16) (height-actual :initarg :height-actual :type xcb:CARD16) (num-palette-entries :initarg :num-palette-entries :type xcb:CARD16) (entry-bytes :initarg :entry-bytes :type xcb:CARD16) (component-order~ :initform '(name component-order type xcb:CARD8 size 4) :type xcb:-list) (component-order :initarg :component-order :type xcb:-ignore) (pad~1 :initform 12 :type xcb:-pad) (priv-data~ :initform '(name priv-data type xcb:CARD32 size (xcb:-fieldref 'length)) :type xcb:-list) (priv-data :initarg :priv-data :type xcb:-ignore))) (defclass xcb:xvmc:DestroySubpicture (xcb:-request) ((~opcode :initform 7 :type xcb:-u1) (subpicture-id :initarg :subpicture-id :type xcb:xvmc:SUBPICTURE))) (defclass xcb:xvmc:ListSubpictureTypes (xcb:-request) ((~opcode :initform 8 :type xcb:-u1) (port-id :initarg :port-id :type xcb:xv:PORT) (surface-id :initarg :surface-id :type xcb:xvmc:SURFACE))) (defclass xcb:xvmc:ListSubpictureTypes~reply (xcb:-reply) ((pad~0 :initform 1 :type xcb:-pad) (~sequence :type xcb:CARD16) (length :type xcb:CARD32) (num :initarg :num :type xcb:CARD32) (pad~1 :initform 20 :type xcb:-pad) (types~ :initform '(name types type xcb:xv:ImageFormatInfo size (xcb:-fieldref 'num)) :type xcb:-list) (types :initarg :types :type xcb:-ignore))) (provide 'xcb-xvmc) ;;; xcb-xvmc.el ends here xelb-0.18/xcb.el000066400000000000000000001140761353702660000135050ustar00rootroot00000000000000;;; xcb.el --- X protocol Emacs Lisp Binding (XELB) -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 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: (eval-when-compile (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" :remote 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) (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)))) (cl-defmethod xcb:-convert-sequence ((obj xcb:connection) sequence16) "Convert 16-bit sequence number SEQUENCE16 (read from a packet). The result would be 29 or 61 bits, depending on the machine." (with-slots (request-sequence) obj ;; Assume there are no more than #xFFFF requests sent since the ;; request corresponding to this packet was made. Because errors ;; and replies are always read out in the process filter, this ;; assumption is quite safe. (let ((sequence (logior (logand request-sequence xcb:-SEQUENCE-SEGMENT-MASK) sequence16))) ;; `xcb:-cache-request' ensures sequence number never wraps. (when (> sequence request-sequence) (cl-decf sequence #x10000)) sequence))) (defun xcb:-connection-filter (process message) "Filter function for an X connection. Concurrency is disabled as it breaks the orders of errors, replies and events." (let* ((connection (plist-get (process-plist process) 'connection)) ;; Temporarily disable GC here as typically it's about to do ;; lots of marshaling/unmarshaling. (gc-cons-threshold most-positive-fixnum) (cache (vconcat (slot-value connection 'message-cache) message)) (cache-length (length cache))) (setf (slot-value connection 'message-cache) cache) (unless (slot-value connection 'lock) ;; Start parsing message (setf (slot-value connection 'lock) t) ;; Process error/reply/event (catch 'break (while (<= 32 (length cache)) (pcase (aref cache 0) (0 ;error (xcb:-log "Error received: %s" (substring cache 0 32)) (let ((sequence (funcall (if xcb:lsb #'xcb:-unpack-u2-lsb #'xcb:-unpack-u2) cache 2)) (plist (slot-value connection 'error-plist)) struct) (setq sequence (xcb:-convert-sequence connection sequence)) (when (plist-member plist sequence) (setq struct (plist-get plist sequence)) (setf (slot-value connection 'error-plist) (plist-put plist sequence (push `(,(aref cache 1) . ,(substring cache 0 32)) struct)))) (setq cache (substring cache 32)) (setf (slot-value connection 'last-seen-sequence) sequence))) (1 ;reply (let* ((reply-words (funcall (if xcb:lsb #'xcb:-unpack-u4-lsb #'xcb:-unpack-u4) cache 4)) (reply-length (+ 32 (* 4 reply-words))) struct sequence plist) (when (< (length cache) reply-length) ;too short, do next time (throw 'break nil)) (xcb:-log "Reply received: %s" (substring cache 0 reply-length)) (setq sequence (funcall (if xcb:lsb #'xcb:-unpack-u2-lsb #'xcb:-unpack-u2) cache 2) sequence (xcb:-convert-sequence connection sequence)) (setq plist (slot-value connection 'reply-plist)) (setq struct (plist-get plist sequence)) (when struct (setf (slot-value connection 'reply-plist) (plist-put plist sequence (if (symbolp struct) ;; Single reply or ;; first reply for multiple replies (list struct (substring cache 0 reply-length)) ;; Multiple replies `(,(car struct) ,@(cdr struct) ,(substring cache 0 reply-length)))))) (setq cache (substring cache reply-length)) (setf (slot-value connection 'last-seen-sequence) sequence))) (x ;event (let (synthetic listener event-length) (when (/= 0 (logand x #x80)) ;synthetic event (setq synthetic t x (logand x #x7f))) ;low 7 bits is the event number (setq listener (plist-get (slot-value connection 'event-plist) x)) (pcase listener (`xge (setq event-length (funcall (if xcb:lsb #'xcb:-unpack-u4-lsb #'xcb:-unpack-u4) cache 4) ;; event-length indicates additional words to the ;; first 32 bytes. event-length (+ 32 (* 4 event-length))) (when (< (length cache) event-length) ;; Too short. (throw 'break nil)) (setq listener (lax-plist-get (slot-value connection 'event-plist) (vector (aref cache 1) (funcall (if xcb:lsb #'xcb:-unpack-u2-lsb #'xcb:-unpack-u2) cache 8))))) (`xkb (setq listener (lax-plist-get (slot-value connection 'event-plist) (vector (aref cache 1)))))) ;; Conventional events are 32 bytes in size. (unless event-length (setq event-length 32)) (when listener (with-slots (event-queue) connection (setf event-queue (nconc event-queue `([,listener ,(substring cache 0 event-length) ,synthetic]))))) (xcb:-log "Event received: %s" (substring cache 0 event-length)) (setq cache (substring cache event-length))))))) (setf (slot-value connection 'lock) nil)) (unless (slot-value connection 'lock) (with-slots (message-cache) connection (let ((current-cache-length (length message-cache))) (setf message-cache (substring message-cache (- cache-length (length cache)))) (when (/= current-cache-length cache-length) (xcb:-connection-filter process [])))) (xcb:-process-events connection)))) (cl-defmethod xcb:-process-events ((conn xcb:connection)) "Process cached events." (with-slots (event-lock event-queue) conn (unless (< 0 event-lock) (cl-incf event-lock) (unwind-protect (let (event data synthetic) (while (setq event (pop event-queue)) (setq data (aref event 1) synthetic (aref event 2)) (dolist (listener (aref event 0)) (unwind-protect (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) (xcb:flush obj) (delete-process (slot-value obj 'process)) ;; Reset every slot to its default value (let ((slots (eieio-class-slots 'xcb:connection))) (dolist (slot slots) (setf (slot-value obj (eieio-slot-descriptor-name slot)) (eieio-oref-default obj (eieio-slot-descriptor-name slot))))))) ;;;; Other routines (cl-defmethod xcb:get-setup ((obj xcb:connection)) "Get the setup info of X connection OBJ." (slot-value obj 'setup-data)) (cl-defmethod xcb:get-socket ((obj xcb:connection)) "Get the socket of X connection OBJ." (slot-value obj 'socket)) (cl-defmethod xcb:get-maximum-request-length ((obj xcb:connection)) "Get maximum request length from setup data." (slot-value (xcb:get-setup obj) 'maximum-request-length)) (cl-defmethod xcb:+event ((obj xcb:connection) event listener) "Attach function LISTENER to event EVENT. Note that event listeners attached this way are shared with the super- and sub- classes of EVENT (since they have the same event number)." (let* ((event-number (xcb:-error-or-event-class->number obj event)) (plist (slot-value obj 'event-plist)) key listeners) (when (consp event-number) (setq key (car event-number) event-number (cdr event-number) listeners (plist-get plist key)) ;; Add a placeholder. (setf (slot-value obj 'event-plist) (plist-put plist key (if (child-of-class-p event 'xcb:-generic-event) 'xge 'xkb)))) (setq listeners (lax-plist-get plist event-number)) (setf (slot-value obj 'event-plist) (lax-plist-put plist event-number (append listeners (list listener)))))) (cl-defmethod xcb:flush ((obj xcb:connection)) "Flush request data to X server." (let ((cache (slot-value obj 'request-cache))) (when (< 0 (length cache)) (setf (slot-value obj 'request-cache) []) ;should be cleared ASAP (cl-incf (slot-value obj 'event-lock)) (unwind-protect (process-send-string (slot-value obj 'process) (apply #'unibyte-string (append cache nil))) (cl-decf (slot-value obj 'event-lock))) (xcb:-process-events obj)))) (cl-defmethod xcb:get-extension-data ((obj xcb:connection) namespace) "Fetch the extension data from X server (block until data is retrieved)." (let* ((plist (slot-value obj 'extension-plist)) (data (plist-get plist namespace))) (if (eieio-object-p data) data (when (not data) ;the request has not been made (xcb:prefetch-extension-data obj namespace)) (setq data (xcb:-+reply obj (plist-get (slot-value obj 'extension-plist) namespace))) (when (cadr data) ;has error (error "[XELB] %s" (cadr data))) (setq data (car data)) (setf (slot-value obj 'extension-plist) (plist-put plist namespace data)) ;; Cache major opcode, first event and first error if possible (with-slots (present major-opcode first-event first-error) data (when (= 1 present) (setf (slot-value obj 'extension-opcode-plist) (plist-put (slot-value obj 'extension-opcode-plist) namespace major-opcode) (slot-value obj 'extension-first-event-alist) (nconc (slot-value obj 'extension-first-event-alist) `((,namespace . ,first-event))) (slot-value obj 'extension-first-error-alist) (nconc (slot-value obj 'extension-first-error-alist) `((,namespace . ,first-error)))))) data))) (cl-defmethod xcb:prefetch-extension-data ((obj xcb:connection) namespace) "Prefetch the extension data from X server." (when (not (plist-get (slot-value obj 'extension-plist) namespace)) (let* ((extension-xname (symbol-value (intern-soft (concat (symbol-name namespace) ":-extension-xname")))) (sequence (xcb:-+request obj (make-instance 'xcb:QueryExtension :name-len (length extension-xname) :name extension-xname)))) (setf (slot-value obj 'extension-plist) (plist-put (slot-value obj 'extension-plist) namespace sequence)) (xcb:flush obj)))) (cl-defmethod xcb:generate-id ((obj xcb:connection)) "Generate new X ID." (let* ((setup (xcb:get-setup obj)) (base (slot-value setup 'resource-id-base)) (mask (slot-value setup 'resource-id-mask)) (increment (logand mask (- mask))) (xid (+ (slot-value obj 'xid) increment))) (when (> xid mask) (error "[XELB] Unable to allocate new X resource ID")) (setf (slot-value obj 'xid) xid) (logior base xid))) ;;;; Request related (cl-defmethod xcb:-cache-request ((obj xcb:connection) request) "Send (or cache) a request and return the sequence number." (let* ((namespace (intern (replace-regexp-in-string ":[^:]+$" "" (symbol-name (eieio-object-class request))))) (extension-opcode (plist-get (slot-value obj 'extension-opcode-plist) namespace)) (msg (xcb:marshal request)) (len (+ 2 (length msg))) (cache (slot-value obj 'request-cache))) (when extension-opcode (setq msg (vconcat (vector extension-opcode) msg)) (setq len (1+ len))) (when (> 2 (length msg)) ;for short message (e.g. GetInputFocus) (setq msg (vconcat msg [0])) (setq len (1+ len))) (setq msg (vconcat (substring msg 0 2) (funcall (if (slot-value request '~lsb) #'xcb:-pack-u2-lsb #'xcb:-pack-u2) (ceiling len 4)) (substring msg 2) (make-vector (% (- 4 (% len 4)) 4) 0))) ;required sometimes (when (< (xcb:get-maximum-request-length obj) (+ (length msg) (length cache))) ;flush on cache full (xcb:flush obj) (setq cache [])) (with-slots (request-cache request-sequence last-seen-sequence) obj (when (>= request-sequence most-positive-fixnum) ;; Force wrapping the sequence number. (xcb:aux:sync obj) (setf request-sequence 0 last-seen-sequence 0)) (setf request-cache (vconcat cache msg) request-sequence (1+ request-sequence)) (xcb:-log "Cache request #%d: %s" request-sequence msg) request-sequence))) (cl-defmethod xcb:-+request ((obj xcb:connection) request) (let ((sequence (xcb:-cache-request obj request)) (class (eieio-object-class request))) (when (fboundp (xcb:-request-class->reply-class class)) ;; This request has a reply (setf (slot-value obj 'reply-plist) ;require reply (plist-put (slot-value obj 'reply-plist) sequence class)) (setf (slot-value obj 'error-plist) ;require error (plist-put (slot-value obj 'error-plist) sequence nil))) sequence)) (defmacro xcb:+request (obj request) "Make a request. If the request has a reply, then errors will also be available (if any). Otherwise no error will ever be reported." (declare (indent 2)) `(xcb:-+request ,obj ,request)) (cl-defmethod xcb:-+request-checked ((obj xcb:connection) request) (when (fboundp (xcb:-request-class->reply-class (eieio-object-class request))) (error "This method shall not be called with request that has a reply")) (let ((sequence (xcb:-cache-request obj request))) (setf (slot-value obj 'error-plist) (plist-put (slot-value obj 'error-plist) sequence nil)) sequence)) (defmacro xcb:+request-checked (obj request) "Make a request (which have no reply) and check for errors." (declare (indent 2)) `(xcb:-+request-checked ,obj ,request)) (cl-defmethod xcb:-+request-unchecked ((obj xcb:connection) request) (unless (fboundp (xcb:-request-class->reply-class (eieio-object-class request))) (error "This method shall not be called with request that has no reply")) (let ((sequence (xcb:-cache-request obj request))) (setf (slot-value obj 'reply-plist) (plist-put (slot-value obj 'reply-plist) sequence (eieio-object-class request))) sequence)) (defmacro xcb:+request-unchecked (obj request) "Make a request (which have at least a reply) and discard any error." (declare (indent 2)) `(xcb:-+request-unchecked ,obj ,request)) (cl-defmethod xcb:-+reply ((obj xcb:connection) sequence &optional multiple) (unless (plist-member (slot-value obj 'reply-plist) sequence) (error "This method is intended for requests with replies")) (xcb:flush obj) ;or we may have to wait forever (if multiple ;; Multiple replies (xcb:aux:sync obj) ;; Single reply (let ((process (slot-value obj 'process))) ;; Wait until the request processed (cl-incf (slot-value obj 'event-lock)) (unwind-protect (with-timeout (xcb:connection-timeout (warn "[XELB] Retrieve reply timeout")) (while (and (> sequence (slot-value obj 'last-seen-sequence)) (<= sequence (slot-value obj 'request-sequence))) (accept-process-output process 1 nil 1))) (cl-decf (slot-value obj 'event-lock))) (xcb:-process-events obj))) (let* ((reply-plist (slot-value obj 'reply-plist)) (reply-data (plist-get reply-plist sequence)) (error-plist (slot-value obj 'error-plist)) (error-data (plist-get error-plist sequence)) class-name reply replies error errors) (if (symbolp reply-data) (setq replies nil) ;no reply (setq class-name (xcb:-request-class->reply-class (car reply-data))) (if multiple ;; Multiple replies (dolist (i (cdr reply-data)) (setq reply (make-instance class-name)) (xcb:unmarshal reply i) (setq replies (nconc replies (list reply)))) ;; Single reply (setq reply-data (cadr reply-data) replies (make-instance class-name)) (xcb:unmarshal replies reply-data))) (setq errors (mapcar (lambda (i) (setq error (make-instance (xcb:-error-number->class obj (car i)))) (xcb:unmarshal error (cdr i)) error) error-data)) (cl-remf (slot-value obj 'reply-plist) sequence) (cl-remf (slot-value obj 'error-plist) sequence) (list replies errors))) (defmacro xcb:+reply (obj sequence &optional multiple) "Return the reply of a request of which the sequence number is SEQUENCE. If MULTIPLE is nil, the return value is the only reply, or it returns a list of all replies. WARNING: for requests that have multiple replies, you MUST supply a non-nil MULTIPLE value, or some replies may be lost!" (declare (indent 2)) `(xcb:-+reply ,obj ,sequence ,multiple)) (cl-defmethod xcb:-request-check ((obj xcb:connection) sequence) (when (plist-member (slot-value obj 'reply-plist) sequence) (error "This method is intended for requests with no reply")) (xcb:flush obj) ;or we may have to wait forever (let ((error-plist (slot-value obj 'error-plist)) error-obj tmp) (unless (plist-member error-plist sequence) (error "This method shall be called after `xcb:+request-checked'")) (when (> sequence (slot-value obj 'last-seen-sequence)) (xcb:aux:sync obj)) ;wait until the request is processed (setq error-obj (mapcar (lambda (i) (setq tmp (cdr i) i (make-instance (xcb:-error-number->class obj (car i)))) (xcb:unmarshal i tmp) i) (plist-get error-plist sequence))) (cl-remf (slot-value obj 'error-plist) sequence) error-obj)) (defmacro xcb:request-check (obj sequence) "Return the error of the request of which the sequence number is SEQUENCE. The sequence number shall be returned by `xcb:+request-checked'." (declare (indent 2)) `(xcb:-request-check ,obj ,sequence)) (defmacro xcb:+request+reply (obj request &optional multiple) "Make a request and return its replies and errors. If MULTIPLE is nil, the return value is a list of which the car is the only reply and the cadr a list of errors. Otherwise, the car of the result is a list of replies. WARNING: for requests that have multiple replies, you MUST supply a non-nil MULTIPLE value, or some replies may be lost!" (declare (indent 2)) `(xcb:-+reply ,obj (xcb:-+request ,obj ,request) ,multiple)) (defmacro xcb:+request-checked+request-check (obj request) "Make a request (which has no reply) and return the errors." (declare (indent 2)) `(xcb:-request-check ,obj (xcb:-+request-checked ,obj ,request))) (defmacro xcb:+request-unchecked+reply (obj request &optional multiple) "Make a request (that has at least one reply) and only return the reply. If MULTIPLE is nil, the return value is the only reply, or it returns a list of all replies. WARNING: for requests that have multiple replies, you MUST supply a non-nil MULTIPLE value, or some replies may be lost!" (declare (indent 2)) `(car (xcb:-+reply ,obj (xcb:-+request-unchecked ,obj ,request) ,multiple))) ;;;; Misc. (cl-defmethod xcb:aux:sync ((obj xcb:connection)) "Force sync with X server. Sync by sending a GetInputFocus request and waiting until it's processed." (let ((sequence (xcb:-cache-request obj (make-instance 'xcb:GetInputFocus))) (process (slot-value obj 'process))) (xcb:flush obj) ;; Wait until request processed (cl-incf (slot-value obj 'event-lock)) (unwind-protect (with-timeout (xcb:connection-timeout (warn "[XELB] Sync timeout")) (while (and (> sequence (slot-value obj 'last-seen-sequence)) ;; In case the sequence number has been wrapped. (<= sequence (slot-value obj 'request-sequence))) (accept-process-output process 1 nil 1))) (cl-decf (slot-value obj 'event-lock))) (xcb:-process-events obj) ;; Discard any reply or error. (cl-remf (slot-value obj 'reply-plist) sequence) (cl-remf (slot-value obj 'error-plist) sequence))) (cl-defmethod xcb:-error-or-event-class->number ((obj xcb:connection) class) "Return the error/event number of a error/event class CLASS. If CLASS is a generic event, return (XGE-CODE . [EXTENSION EVTYPE]); Or if it's an XKB event, return (XKB-EVENT-CODE [XKB-CODE])." (unless (symbolp class) (setq class (eieio-class-name class))) (let ((prefix (replace-regexp-in-string ":[^:]+$" ":" (symbol-name class))) first-code alist result parents) (cond ((child-of-class-p class 'xcb:-error) ;; Error. (if (string= prefix "xcb:") (setq first-code 0 alist xcb:error-number-class-alist) (setq first-code (cdr (assq (intern (substring prefix 0 -1)) (slot-value obj 'extension-first-error-alist))) alist (symbol-value (intern-soft (concat prefix "error-number-class-alist"))))) (setq result (car (rassq class alist))) (when result (setq result (+ first-code result)))) ((child-of-class-p class 'xcb:-generic-event) ;; Generic event. (setq alist (symbol-value (intern-soft (concat prefix "xge-number-class-alist"))) result (plist-get (slot-value obj 'extension-opcode-plist) (intern-soft (substring prefix 0 -1)))) ;; Ensure the extension has been initialized. (when result (setq result `(35 . [,result ,(car (rassq class alist))])))) ((string= prefix "xcb:xkb:") ;; XKB event. (eval-and-compile (require 'xcb-xkb)) ;; XKB uses a single event code for all events. (setq result (cdr (assq 'xcb:xkb (slot-value obj 'extension-first-event-alist)))) ;; Ensure the XKB extension has been initialized. (when result (setq alist xcb:xkb:event-number-class-alist result `(,result . [,(car (rassq class alist))])))) (t ;; Other event. (if (string= prefix "xcb:") (setq first-code 0 alist xcb:event-number-class-alist) (setq first-code (cdr (assq (intern (substring prefix 0 -1)) (slot-value obj 'extension-first-event-alist))) alist (symbol-value (intern-soft (concat prefix "event-number-class-alist"))))) (setq result (car (rassq class alist))) (when result (setq result (+ first-code result))))) (unless result ;; Fallback to use the error/event number of one superclass. Thus if the ;; error/event number of a subclass differs from that of its parent, it ;; must be explicitly pointed out. (setq parents (eieio-class-parents class)) (while (and parents (not result)) (setq result (xcb:-error-or-event-class->number obj (pop parents))))) result)) (cl-defmethod xcb:-event-number->class ((obj xcb:connection) number) "Return the event class that has the event number NUMBER. Note that when multiple events have the same number, only the top-most superclass will be returned." (if (or (< number 64) (> number 127)) ;; Xproto event (cdr (assoc number xcb:event-number-class-alist)) ;; Extension event (let ((first-event number) namespace index alist) (while (and (not namespace) (>= first-event 64)) (setq namespace (car (rassoc first-event (slot-value obj 'extension-first-event-alist))) first-event (1- first-event))) (setq index (- number first-event 1)) (setq alist (intern-soft (concat (symbol-name namespace) ":event-number-class-alist"))) (cdr (assoc index (symbol-value alist)))))) (cl-defmethod xcb:-error-number->class ((obj xcb:connection) number) "Return the error class that has the error number NUMBER. Note that when multiple errors have the same number, only the top-most superclass will be returned." (if (or (< number 128) (> number 255)) ;; Xproto error (cdr (assoc number xcb:error-number-class-alist)) ;; Extension error (let ((first-error number) namespace index alist) (while (and (not namespace) (>= first-error 128)) (setq namespace (car (rassoc first-error (slot-value obj 'extension-first-error-alist))) first-error (1- first-error))) (setq index (- number first-error 1)) (setq alist (intern-soft (concat (symbol-name namespace) ":error-number-class-alist"))) (cdr (assoc index (symbol-value alist)))))) (provide 'xcb) ;;; xcb.el ends here xelb-0.18/xelb.el000066400000000000000000000053221353702660000136540ustar00rootroot00000000000000;;; xelb.el --- X protocol Emacs Lisp Binding -*- lexical-binding: t -*- ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Author: Chris Feng ;; Maintainer: Chris Feng ;; Version: 0.18 ;; Package-Requires: ((emacs "24.4") (cl-generic "0.2")) ;; Keywords: unix ;; URL: https://github.com/ch11ng/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