((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/xlib-utils" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.")) (section 2 "xlib-utils" (toc)) (section 2 "Description" (p "Grab-bag of utilities for use with the xlib egg.  This includes a set of procedures for working with X properties, events, and EWMH desktops, as well as a datatype called xcontext, which is a way to package up a display, a screen, a xinerama-screen, and a window into a single convenient record.") (p "For bug reports, feature requests, and development versions, visit the " (link "https://bitbucket.org/retroj/xlib-utils-egg/" "bitbucket project page") ".")) (section 2 "Authors" (ul (li "John J Foerch"))) (section 2 "Requirements" (section 3 "Chicken Eggs" (ul (li "foreigners") (li "matchable") (li "miscmacros") (li "xinerama") (li "xlib"))) (section 3 "C Headers" (ul (li "Xlib.h")))) (section 2 "API" (section 3 "xcontext" (def (sig (procedure "(make-xcontext) => xcontext" (id make-xcontext)) (procedure "(make-xcontext . keywords) => xcontext" (id make-xcontext)) (procedure "(make-xcontext xc . keywords) => xcontext" (id make-xcontext)) (procedure "(xcontext? xc) => bool" (id xcontext?)) (procedure "(xcontext-display xc) => display or #f" (id xcontext-display)) (procedure "(xcontext-screen xc) => fixnum or #f" (id xcontext-screen)) (procedure "(xcontext-xinerama-screen xc) => xinerama-screen-info or #f" (id xcontext-xinerama-screen)) (procedure "(xcontext-window xc) => window or #f" (id xcontext-window)) (procedure "(xcontext-root xc) => window or #f" (id xcontext-root)) (procedure "(xcontext-data xc) => object" (id xcontext-data)) (procedure "(xcontext-data-set! xc object) => undefined" (id xcontext-data-set!)) (procedure "(with-xcontext xc (field...) body...) => body..." (id with-xcontext))))) (section 3 "events" (def (sig (procedure "(add-event-handler! xc event-type mask handler guard) => undefined" (id add-event-handler!)) (procedure "(handle-event event xcs) => undefined" (id handle-event)))) (def (sig (procedure "(xclientmessageevent-data-b event) => (fixnum...)" (id xclientmessageevent-data-b)) (procedure "(xclientmessageevent-data-s event) => (fixnum...)" (id xclientmessageevent-data-s)) (procedure "(xclientmessageevent-data-l event) => (fixnum...)" (id xclientmessageevent-data-l))))) (section 3 "screens" (def (sig (procedure "(screen-or-xinerama-screen-height xc) => fixnum" (id screen-or-xinerama-screen-height)) (procedure "(screen-or-xinerama-screen-width xc) => fixnum" (id screen-or-xinerama-screen-width)) (procedure "(screen-or-xinerama-screen-left xc) => fixnum" (id screen-or-xinerama-screen-left)) (procedure "(screen-or-xinerama-screen-top xc) => fixnum" (id screen-or-xinerama-screen-top))))) (section 3 "properties" (def (sig (procedure "(window-property-type) => " (id window-property-type)) (procedure "(window-property-format) => " (id window-property-format)) (procedure "(window-property-data) => " (id window-property-data)) (procedure "(window-property-count) => " (id window-property-count)) (procedure "(make-atom-property xc atom-name) => window-property" (id make-atom-property)) (procedure "(make-number-property number) => window-property" (id make-number-property)) (procedure "(make-numbers-property numbers) => window-property" (id make-numbers-property)) (procedure "(make-text-property text) => text-property" (id make-text-property)) (procedure "(window-property-set xc key value) => undefined" (id window-property-set)) (procedure "(window-property-append xc key value) => undefined" (id window-property-append)) (procedure "(window-get-string-property display window property) => string or #f" (id window-get-string-property)) (procedure "(window-get-string-property* xc property) => string or #f" (id window-get-string-property*)) (procedure "(set-wm-protocols xc syms) => undefined" (id set-wm-protocols)) (procedure "(active-window-title xc) => string or #f" (id active-window-title))))) (section 3 "desktops" (def (sig (procedure "(number-of-desktops xc) => fixnum" (id number-of-desktops)) (procedure "(desktop-names xc) => (string...)" (id desktop-names)) (procedure "(switch-to-desktop xc desktop-name) => undefined" (id switch-to-desktop)))))) (section 2 "Examples") (section 2 "License" (p "BSD")) (section 2 "Version History" (ul (li "0.1 (2015-07-26) utils for properties and desktops") (li "0.2 (2015-07-30) xcontext introduced") (li "0.3 (2015-08-02) with-xcontext root, active-window-title, set-wm-protocols") (li "0.4 (2015-08-03) xcontext-data, xcontext-event-handlers") (li "0.4.1 (2015-08-15) clientmessage-l0") (li "0.4.2 (2015-08-15) general event data unpacking") (li "0.4.3 (2015-11-12) window-get-string-property, window-get-string-property*, number-of-desktops, desktop-names, misc fixes") (li "0.5.0 (2017-06-05) xinerama support"))))