diff options
author | Neil Williams <codehelp@debian.org> | 2007-07-15 21:14:17 +0100 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:37 -0800 |
commit | 25fbaa7f8700665d5aea046956175a35035f7fd5 (patch) | |
tree | 8b09348be556dddcf627248cc658150461145c14 /Xlibscm.html | |
parent | 583742ff5f4c9b42eab4584075e960c2982526ef (diff) | |
download | scm-debian/5e3-6.1.tar.gz scm-debian/5e3-6.1.zip |
Import Debian changes 5e3-6.1debian/5e3-6.1
scm (5e3-6.1) unstable; urgency=low
* Non-maintainer upload.
* Split doc-base file into two files, add missing 'Index' fields for 'info'
sections (closes: #369576).
Thanks to Robert Luberda for the patch.
* Remove from rules/postinst/postrm any manually doc-base handling code,
since dh_installdocs supports doc-base on its own.
Thanks to Robert Luberda for the patch.
Diffstat (limited to 'Xlibscm.html')
-rw-r--r-- | Xlibscm.html | 3399 |
1 files changed, 3399 insertions, 0 deletions
diff --git a/Xlibscm.html b/Xlibscm.html new file mode 100644 index 0000000..9dc41bb --- /dev/null +++ b/Xlibscm.html @@ -0,0 +1,3399 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd"> +<html> +<!-- +This manual documents the X Interface for SCM Language (version +5e3, October 2006). + + +Copyright C 1999 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the author. + +--> +<!-- Created on July, 17 2007 by texi2html 1.76 --> +<!-- +Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) + Karl Berry <karl@freefriends.org> + Olaf Bachmann <obachman@mathematik.uni-kl.de> + and many others. +Maintained by: Many creative people <dev@texi2html.cvshome.org> +Send bugs and suggestions to <users@texi2html.cvshome.org> + +--> +<head> +<title>XlibScm: XlibScm</title> + +<meta name="description" content="XlibScm: XlibScm"> +<meta name="keywords" content="XlibScm: XlibScm"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="texi2html 1.76"> +<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +pre.display {font-family: serif} +pre.format {font-family: serif} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: serif; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: serif; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.sansserif {font-family:sans-serif; font-weight:normal;} +ul.toc {list-style: none} +--> +</style> + + +</head> + +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> + +<a name="Top"></a> +<a name="SEC_Top"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="settitle">XlibScm</h1> + + +<p>This manual documents the X Interface for SCM Language (version +5e3, October 2006). +</p> + +<p>Copyright © 1999 Free Software Foundation, Inc. +</p> +<blockquote><p>Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. +</p> +<p>Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. +</p> +<p>Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the author. +</p></blockquote> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top"><a href="#SEC1">1. XlibScm</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC2">2. Display and Screens</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC3">3. Drawables</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC7">4. Graphics Context</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC9">5. Cursor</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC10">6. Colormap</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC11">7. Rendering</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC14">8. Images</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC15">9. Event</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC16">Indexes</a></td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr size="1"> +<a name="XlibScm"></a> +<a name="SEC1"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC2" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[ << ]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC2" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 1. XlibScm </h1> + +<p><em>XlibScm</em> is a SCM interface to <em>X</em>. +<a name="IDX1"></a> +The +<A HREF="http://www.x.org/"> +X Window System +</A> +is a network-transparent window system that was +designed at MIT. +<A HREF="scm_toc.html"> +SCM +</A> +is a portable Scheme implementation written in C. +The interface can be compiled into SCM or, on those platforms supporting +dynamic linking, compiled separately and loaded with <code>(require +'Xlib)</code>. +<a name="IDX2"></a> +</p> + +<p>Much of this X documentation is dervied from: +</p> +<p align="center"> Xlib - C Language X Interface +</p><p align="center"> X Consortium Standard +</p><p align="center"> X Version 11, Release 6.3 +</p> +<p>The X Window System is a trademark of X Consortium, Inc. +</p> +<p>TekHVC is a trademark of Tektronix, Inc. +</p> + + +<p>Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X +Consortium +</p> +<p>Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: +</p> +<p>The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +</p> +<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +</p> +<p>Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization from +the X Consortium. +</p> + + + +<p>Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991 by +Digital Equipment Corporation +</p> +<p>Portions Copyright (C) 1990, 1991 by Tektronix, Inc. +</p> +<p>Permission to use, copy, modify and distribute this documentation for +any purpose and without fee is hereby granted, provided that the above +copyright notice appears in all copies and that both that copyright +notice and this permission notice appear in all copies, and that the +names of Digital and Tektronix not be used in in advertising or +publicity pertaining to this documentation without specific, written +prior permission. Digital and Tektronix makes no representations about +the suitability of this documentation for any purpose. It is provided +"as is" without express or implied warranty. +</p> + +<hr size="6"> +<a name="Display-and-Screens"></a> +<a name="SEC2"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC1" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC3" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC1" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC3" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 2. Display and Screens </h1> + +<dl> +<dt><u>Function:</u> <b>x:open-display</b><i> display-name</i> +<a name="IDX3"></a> +</dt> +<dd><p><var>display-name</var> Specifies the hardware display name, which determines +the display and communications domain to be used. On a POSIX-conformant +system, if the display-name is #f, it defaults to the value of the +<var>DISPLAY</var> environment variable. +</p> +<p>The encoding and interpretation of <var>display-name</var> is +implementation-dependent. On POSIX-conformant systems, the +<var>display-name</var> or <var>DISPLAY</var> environment variable can be a string +in the format: +</p> +<dl> +<dt><u>Special Form:</u> <b>hostname:number.screen-number</b> +<a name="IDX4"></a> +</dt> +<dd><p><var>hostname</var> specifies the name of the host machine on which the +display is physically attached. Follow the <var>hostname</var> with either a +single colon (:) or a double colon (::). +</p> +<p><var>number</var> specifies the number of the display server on that host +machine. You may optionally follow this display number with a period +(.). A single CPU can have more than one display. Multiple displays +are usually numbered starting with zero. +</p> +<p><var>screen-number</var> specifies the screen to be used on that server. +Multiple screens can be controlled by a single X server. The +<var>screen-number</var> sets an internal variable that can be accessed by +using the x:default-screen procedure. +</p></dd></dl> +</dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:close</b><i> display</i> +<a name="IDX5"></a> +</dt> +<dd><p><var>display</var> specifies the connection to the X server. +</p> +<p>The <code>x:close</code> function closes the connection to the X server for +the <var>display</var> specified and destroys all windows, resource IDs +(Window, Font, Pixmap, Colormap, Cursor, and GContext), or other +resources that the client has created on this display, unless the +close-down mode of the resource has been changed (see +<code>x:set-close-down-mode</code>). Therefore, these windows, resource IDs, +and other resources should not be used again or an error will be +generated. Before exiting, you should call <var>x:close-display</var> or +<var>x:flush</var> explicitly so that any pending errors are reported. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:protocol-version</b><i> display</i> +<a name="IDX6"></a> +</dt> +<dd><p>Returns cons of the major version number (11) of the X protocol +associated with the connected <var>display</var> and the minor protocol +revision number of the X server. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:server-vendor</b><i> display</i> +<a name="IDX7"></a> +</dt> +<dd><p>Returns a string that provides some identification of the owner of the X +server implementation. The contents of the string are +implementation-dependent. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:vendor-release</b><i> display</i> +<a name="IDX8"></a> +</dt> +<dd><p>Returns a number related to a vendor's release of the X server. +</p></dd></dl> + + +<p>A display consists of one or more <em>Screen</em>s. Each screen has a +<em>root-window</em>, <em>default-graphics-context</em>, and <em>colormap</em>. +</p> +<dl> +<dt><u>Function:</u> <b>x:screen-count</b><i> display</i> +<a name="IDX9"></a> +</dt> +<dd><p>Returns the number of available screens. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:default-screen</b><i> display</i> +<a name="IDX10"></a> +</dt> +<dd><p>Returns the default screen number specified by the <code>x:open-display</code> +function. Use this screen number in applications which will use only a +single screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:root-window</b><i> display screen-number</i> +<a name="IDX11"></a> +</dt> +<dt><u>Function:</u> <b>x:root-window</b><i> display</i> +<a name="IDX12"></a> +</dt> +<dd><p><var>screen-number</var>, if givien, specifies the appropriate screen number +on the host server. Otherwise the default-screen for <var>display</var> is +used. +</p> +<p>Returns the root window for the specified <var>screen-number</var>. Use +<code>x:root-window</code> for functions that need a drawable of a particular +screen or for creating top-level windows. +</p> +<dl> +<dt><u>Function:</u> <b>x:root-window</b><i> window</i> +<a name="IDX13"></a> +</dt> +<dd><p>Returns the root window for the specified <var>window</var>'s screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:default-colormap</b><i> display screen-number</i> +<a name="IDX14"></a> +</dt> +<dt><u>Function:</u> <b>x:default-colormap</b><i> display</i> +<a name="IDX15"></a> +</dt> +<dt><u>Function:</u> <b>x:default-colormap</b><i> window</i> +<a name="IDX16"></a> +</dt> +<dd><p>Returns the default colormap of the specified screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:default-ccc</b><i> display screen-number</i> +<a name="IDX17"></a> +</dt> +<dt><u>Function:</u> <b>x:default-ccc</b><i> display</i> +<a name="IDX18"></a> +</dt> +<dt><u>Function:</u> <b>x:default-ccc</b><i> window</i> +<a name="IDX19"></a> +</dt> +<dd><p>Returns the default Color-Conversion-Context (ccc) of the specified +screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:default-gc</b><i> display screen-number</i> +<a name="IDX20"></a> +</dt> +<dt><u>Function:</u> <b>x:default-gc</b><i> display</i> +<a name="IDX21"></a> +</dt> +<dt><u>Function:</u> <b>x:default-gc</b><i> window</i> +<a name="IDX22"></a> +</dt> +<dd><p>Returns the default graphics-context of the specified screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-depths</b><i> display screen-number</i> +<a name="IDX23"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-depths</b><i> display</i> +<a name="IDX24"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-depths</b><i> window</i> +<a name="IDX25"></a> +</dt> +<dd><p>Returns an array of depths supported by the specified screen. +</p></dd></dl> + +<p>The <em>Visual</em> type describes possible colormap depths and +arrangements. +</p> +<dl> +<dt><u>Function:</u> <b>x:default-visual</b><i> display screen-number</i> +<a name="IDX26"></a> +</dt> +<dt><u>Function:</u> <b>x:default-visual</b><i> display</i> +<a name="IDX27"></a> +</dt> +<dt><u>Function:</u> <b>x:default-visual</b><i> window</i> +<a name="IDX28"></a> +</dt> +<dd><p>Returns the default Visual type for the specified screen. +</p> +<a name="IDX29"></a> +<a name="IDX30"></a> +</dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:make-visual</b><i> display depth class</i> +<a name="IDX31"></a> +</dt> +<dt><u>Function:</u> <b>x:make-visual</b><i> window depth class</i> +<a name="IDX32"></a> +</dt> +<dd><p>The integer <var>depth</var> specifies the number of bits per pixel. +The <var>class</var> argument specifies one of the possible +visual classes for a screen: +</p><ul> +<li> x:Static-Gray +</li><li> x:Static-Color +</li><li> x:True-Color +</li><li> x:Gray-Scale +</li><li> x:Pseudo-Color +</li><li> x:Direct-Color +</li></ul> + +<p><code>X:make-visual</code> returns a visual type for the screen specified by +<var>display</var> or <var>window</var> if successful; #f if not. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:visual-class</b><i> visual</i> +<a name="IDX33"></a> +</dt> +<dt><u>Function:</u> <b>x:visual-class</b><i> screen</i> +<a name="IDX34"></a> +</dt> +<dt><u>Function:</u> <b>x:visual-class</b><i> display</i> +<a name="IDX35"></a> +</dt> +<dd><p>Returns the (integer) visual class of its argument. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:visual-geometry</b><i> visual</i> +<a name="IDX36"></a> +</dt> +<dt><u>Function:</u> <b>x:visual-geometry</b><i> screen</i> +<a name="IDX37"></a> +</dt> +<dt><u>Function:</u> <b>x:visual-geometry</b><i> display</i> +<a name="IDX38"></a> +</dt> +<dd><p>Returns a list of the: +</p><ul> +<li> red_mask +</li><li> green_mask +</li><li> blue_mask +</li><li> colormap_size +</li></ul> +</dd></dl> + + +<dl> +<dt><u>Function:</u> <b>x:screen-cells</b><i> display screen-number</i> +<a name="IDX39"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-cells</b><i> display</i> +<a name="IDX40"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-cells</b><i> window</i> +<a name="IDX41"></a> +</dt> +<dd><p>Returns the number of entries in the default colormap. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-depth</b><i> display screen-number</i> +<a name="IDX42"></a> +</dt> +<dd><p>Returns the depth of the root window of the specified screen. +</p><dl> +<dt><u>Function:</u> <b>x:screen-depth</b><i> display</i> +<a name="IDX43"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-depth</b><i> window</i> +<a name="IDX44"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-depth</b><i> visual</i> +<a name="IDX45"></a> +</dt> +<dd><p>Returns the depth of argument. +</p> +<a name="IDX46"></a> +<p>The <em>depth</em> of a window or pixmap is the number of bits per pixel it has. +The <em>depth</em> of a graphics context is the depth of the drawables it can be +used in conjunction with graphics output. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-size</b><i> display screen-number</i> +<a name="IDX47"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-size</b><i> display</i> +<a name="IDX48"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-size</b><i> window</i> +<a name="IDX49"></a> +</dt> +<dd><p>Returns a list of integer height and width of the screen in pixels. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-dimensions</b><i> display screen-number</i> +<a name="IDX50"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-dimensions</b><i> display</i> +<a name="IDX51"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-dimensions</b><i> window</i> +<a name="IDX52"></a> +</dt> +<dd><p>Returns a list of integer height and width of the screen in millimeters. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-white</b><i> display screen-number</i> +<a name="IDX53"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-white</b><i> display</i> +<a name="IDX54"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-white</b><i> window</i> +<a name="IDX55"></a> +</dt> +<dd><p>Returns the white pixel value of the specified screen. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:screen-black</b><i> display screen-number</i> +<a name="IDX56"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-black</b><i> display</i> +<a name="IDX57"></a> +</dt> +<dt><u>Function:</u> <b>x:screen-black</b><i> window</i> +<a name="IDX58"></a> +</dt> +<dd><p>Returns the black pixel value of the specified screen. +</p></dd></dl> + +</dd></dl> +</dd></dl> +<hr size="6"> +<a name="Drawables"></a> +<a name="SEC3"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC2" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC4" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC7" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 3. Drawables </h1> + +<p>A <em>Drawable</em> is either a window or pixmap. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC5">3.2 Window Attributes</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr size="6"> +<a name="Windows-and-Pixmaps"></a> +<a name="SEC4"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC3" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC5" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC3" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC3" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC7" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="section"> 3.1 Windows and Pixmaps </h2> + +<dl> +<dt><u>Function:</u> <b>x:create-window</b><i> window position size border-width depth class visual field-name value …</i> +<a name="IDX59"></a> +</dt> +<dd><p>Creates and returns an unmapped Input-Output subwindow for a specified +parent <var>window</var> and causes the X server to generate a CreateNotify +event. The created window is placed on top in the stacking order with +respect to siblings. Any part of the window that extends outside its +parent <var>window</var> is clipped. The <var>border-width</var> for an +x:Input-Only window must be zero. +</p> +<p>The coordinate system has the X axis horizontal and the Y axis vertical +with the origin [0, 0] at the upper-left corner. Coordinates are +integral, in terms of pixels, and coincide with pixel centers. Each +window and pixmap has its own coordinate system. For a window, the +origin is inside the border at the inside, upper-left corner. +</p> +<p><var>Class</var> can be x:Input-Output, x:Input-Only, or x:Copy-From-Parent. +For class x:Input-Output, the <var>visual</var> type and <var>depth</var> must be +a combination supported for the screen. The <var>depth</var> need not be the +same as the parent, but the parent must not be a window of class +x:Input-Only. For an x:Input-Only window, the <var>depth</var> must be zero, +and the <var>visual</var> must be one supported by the screen. +</p> +<p>The returned window will have the attributes specified by +<var>field-name</var>s and <var>value</var>. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-window</b><i> window position size border-width border background</i> +<a name="IDX60"></a> +</dt> +<dd><p>The returned window inherits its depth, class, and visual from its +parent. All other window attributes, except <var>background</var> and +<var>border</var>, have their default values. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:create-pixmap</b><i> drawable size depth</i> +<a name="IDX61"></a> +</dt> +<dt><u>Function:</u> <b>x:create-pixmap</b><i> display size depth</i> +<a name="IDX62"></a> +</dt> +<dd><p><var>size</var> is a list, vector, or pair of nonzero integers specifying the width +and height desired in the new pixmap. +</p> +<p><var>x:create-pixmap</var> returns a new pixmap of the width, height, and +<var>depth</var> specified. It is valid to pass an x:Input-Only window to the +drawable argument. The <var>depth</var> argument must be one of the depths +supported by the screen of the specified <var>drawable</var>. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:close</b><i> window</i> +<a name="IDX63"></a> +</dt> +<dd><p>Destroys the specified <var>window</var> as well as all of its subwindows and +causes the X server to generate a DestroyNotify event for each window. +The window should not be used again. If the window specified by the +<var>window</var> argument is mapped, it is unmapped automatically. The +ordering of the DestroyNotify events is such that for any given window +being destroyed, DestroyNotify is generated on any inferiors of the +window before being generated on the window itself. The ordering among +siblings and across subhierarchies is not otherwise constrained. If the +<var>window</var> you specified is a root window, an error is signaled. +Destroying a mapped <var>window</var> will generate x:Expose events on other +windows that were obscured by the window being destroyed. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:close</b><i> pixmap</i> +<a name="IDX64"></a> +</dt> +<dd><p>Deletes the association between the <var>pixmap</var> and its storage. The X +server frees the pixmap storage when there are no references to it. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:window-geometry</b><i> drawable</i> +<a name="IDX65"></a> +</dt> +<dd><p>Returns a list of: +</p> +<dl compact="compact"> +<dt> coordinates</dt> +<dd><p><code>list</code> of x and y coordinates that define the location of the +<var>drawable</var>. For a window, these coordinates specify the upper-left +outer corner relative to its parent's origin. For pixmaps, these +coordinates are always zero. +</p></dd> +<dt> size</dt> +<dd><p><code>list</code> of the <var>drawable</var>'s dimensions (width and height). For +a window, these dimensions specify the inside size, not including the +border. +</p></dd> +<dt> border-width</dt> +<dd><p>The border width in pixels. If the <var>drawable</var> is a pixmap, this is +zero. +</p></dd> +<dt> depth</dt> +<dd><p>The depth of the <var>drawable</var> (bits per pixel for the object). +</p></dd> +</dl> +</dd></dl> + + +<dl> +<dt><u>Function:</u> <b>x:window-geometry-set!</b><i> window field-name value …</i> +<a name="IDX66"></a> +</dt> +<dd><p>Changes the <em>Configuration</em> components specified by +<var>field-name</var>s for the specified <var>window</var>. +</p></dd></dl> + + +<p>These are the attributes settable by <code>x:window-geometry-set!</code>. +That these attributes are encoded by small integers - just like those +of the next section. Be warned therefore that confusion of attribute +names will likely not signal errors, just cause mysterious behavior. +</p> +<dl> +<dt><u>Attribute:</u> <b>x:CWX</b> +<a name="IDX67"></a> +</dt> +<dt><u>Attribute:</u> <b>x:CWY</b> +<a name="IDX68"></a> +</dt> +<dt><u>Attribute:</u> <b>x:CW-Width</b> +<a name="IDX69"></a> +</dt> +<dt><u>Attribute:</u> <b>x:CW-Height</b> +<a name="IDX70"></a> +</dt> +<dd><p>The x:CWX and x:CYY members are used to set the window's x and y +coordinates, which are relative to the parent's origin and indicate the +position of the upper-left outer corner of the window. The x:CW-Width +and x:CW-Height members are used to set the inside size of the window, +not including the border, and must be nonzero. Attempts to configure a +root window have no effect. +</p> +<p>If a window's size actually changes, the window's subwindows move +according to their window gravity. Depending on the window's bit +gravity, the contents of the window also may be moved +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Border-Width</b> +<a name="IDX71"></a> +</dt> +<dd><p>The integer x:CW-Border-Width is used to set the width of the border in +pixels. Note that setting just the border width leaves the outer-left +corner of the window in a fixed position but moves the absolute position +of the window's origin. It is an error to set the border-width +attribute of an InputOnly window nonzero. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Sibling</b> +<a name="IDX72"></a> +</dt> +<dd><p>The sibling member is used to set the sibling window for stacking +operations. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Stack-Mode</b> +<a name="IDX73"></a> +</dt> +<dd><p>The x:CW-Stack-Mode member is used to set how the window is to be +restacked and can be set to x:Above, x:Below, x:Top-If, x:Bottom-If, or +x:Opposite. +</p></dd></dl> + + +<p>If a sibling and a stack-mode are specified, the window is restacked as +follows: +</p> +<dl compact="compact"> +<dt> <code>x:Above</code></dt> +<dd><p>The window is placed just above the sibling. +</p></dd> +<dt> <code>x:Below</code></dt> +<dd><p>The window is placed just below the sibling. +</p></dd> +<dt> <code>x:Top-If</code></dt> +<dd><p>If the sibling occludes the window, the window is placed at the top of +the stack. +</p></dd> +<dt> <code>x:Bottom-If</code></dt> +<dd><p>If the window occludes the sibling, the window is placed at the bottom +of the stack. +</p></dd> +<dt> <code>x:Opposite</code></dt> +<dd><p>If the sibling occludes the window, the window is placed at the top of +the stack. If the window occludes the sibling, the window is placed at +the bottom of the stack. +</p></dd> +</dl> + + +<p>If a stack-mode is specified but no sibling is specified, the window +is restacked as follows: +</p> +<dl compact="compact"> +<dt> <code>x:Above</code></dt> +<dd><p>The window is placed at the top of the stack. +</p></dd> +<dt> <code>x:Below</code></dt> +<dd><p>The window is placed at the bottom of the stack. +</p></dd> +<dt> <code>x:Top-If</code></dt> +<dd><p>If any sibling occludes the window, the window is placed at the top of +the stack. +</p></dd> +<dt> <code>x:Bottom-If</code></dt> +<dd><p>If the window occludes any sibling, the window is placed at the bottom +of the stack. +</p></dd> +<dt> <code>x:Opposite</code></dt> +<dd><p>If any sibling occludes the window, the window is placed at the top of +the stack. If the window occludes any sibling, the window is placed at +the bottom of the stack. +</p></dd> +</dl> + + + + +</dd></dl> +<hr size="6"> +<a name="Window-Attributes"></a> +<a name="SEC5"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC4" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC6" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC3" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC3" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC7" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="section"> 3.2 Window Attributes </h2> + +<dl> +<dt><u>Function:</u> <b>x:window-set!</b><i> window field-name value …</i> +<a name="IDX74"></a> +</dt> +<dd><p>Changes the components specified by <var>field-name</var>s for the specified +<var>window</var>. The restrictions are the same as for +<code>x:create-window</code>. The order in which components are verified and +altered is server dependent. If an error occurs, a subset of the +components may have been altered. +</p></dd></dl> + + +<p>The <code>x:create-window</code> and <code>x:window-set!</code> procedures take five +and one argument (respectively) followed by pairs of arguments, where +the first is one of the property-name symbols (or its top-level value) +listed below; and the second is the value to associate with that +property. +</p> +<dl> +<dt><u>Attribute:</u> <b>x:CW-Back-Pixmap</b> +<a name="IDX75"></a> +</dt> +<dd><p>Sets the background pixmap of the <var>window</var> to the specified pixmap. +The background pixmap can immediately be freed if no further explicit +references to it are to be made. If x:Parent-Relative is specified, the +background pixmap of the window's parent is used, or on the root window, +the default background is restored. It is an error to perform this +operation on an x:Input-Only window. If the background is set to #f or +None, the window has no defined background. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Back-Pixel</b> +<a name="IDX76"></a> +</dt> +<dd><p>Sets the background of the <var>window</var> to the specified pixel value. +Changing the background does not cause the <var>window</var> contents to be +changed. It is an error to perform this operation on an x:Input-Only +window. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Border-Pixmap</b> +<a name="IDX77"></a> +</dt> +<dd><p>Sets the border pixmap of the <var>window</var> to the pixmap you specify. +The border pixmap can be freed if no further explicit references to it +are to be made. If you specify x:Copy-From-Parent, a copy of the parent +window's border pixmap is used. It is an error to perform this +operation on an x:Input-Only <var>window</var>. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Border-Pixel</b> +<a name="IDX78"></a> +</dt> +<dd><p>Sets the border of the <var>window</var> to the pixel <var>value</var>. It is an +error to perform this operation on an x:Input-Only window. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Bit-Gravity</b> +<a name="IDX79"></a> +</dt> +<dt><u>Attribute:</u> <b>x:CW-Win-Gravity</b> +<a name="IDX80"></a> +</dt> +<dd><p>The bit gravity of a window defines which region of the window should be +retained when an x:Input-Output window is resized. The default value +for the bit-gravity attribute is x:Forget-Gravity. The window gravity +of a window allows you to define how the x:Input-Output or x:Input-Only +window should be repositioned if its parent is resized. The default +value for the win-gravity attribute is x:North-West-Gravity. +</p> +<p>If the inside width or height of a window is not changed and if the +window is moved or its border is changed, then the contents of the +window are not lost but move with the window. Changing the inside width +or height of the window causes its contents to be moved or lost +(depending on the bit-gravity of the window) and causes children to be +reconfigured (depending on their win-gravity). For a change of width +and height, the (x, y) pairs are defined: +</p> +<table> +<tr><td><p> Gravity Direction +</p></td><td><p> Coordinates +</p></td></tr> +<tr><td><p> x:North-West-Gravity +</p></td><td><p> (0, 0) +</p></td></tr> +<tr><td><p> x:North-Gravity +</p></td><td><p> (Width/2, 0) +</p></td></tr> +<tr><td><p> x:North-East-Gravity +</p></td><td><p> (Width, 0) +</p></td></tr> +<tr><td><p> x:West-Gravity +</p></td><td><p> (0, Height/2) +</p></td></tr> +<tr><td><p> x:Center-Gravity +</p></td><td><p> (Width/2, Height/2) +</p></td></tr> +<tr><td><p> x:East-Gravity +</p></td><td><p> (Width, Height/2) +</p></td></tr> +<tr><td><p> x:South-West-Gravity +</p></td><td><p> (0, Height) +</p></td></tr> +<tr><td><p> x:South-Gravity +</p></td><td><p> (Width/2, Height) +</p></td></tr> +<tr><td><p> x:South-East-Gravity +</p></td><td><p> (Width, Height) +</p></td></tr> +</table> + +<p>When a window with one of these bit-gravity values is resized, the +corresponding pair defines the change in position of each pixel in the +window. When a window with one of these win-gravities has its parent +window resized, the corresponding pair defines the change in position of +the window within the parent. When a window is so repositioned, a +x:Gravity-Notify event is generated (see section 10.10.5). +</p> +<p>A bit-gravity of x:Static-Gravity indicates that the contents or origin +should not move relative to the origin of the root window. If the +change in size of the window is coupled with a change in position (x, +y), then for bit-gravity the change in position of each pixel is (-x, +-y), and for win-gravity the change in position of a child when its +parent is so resized is (-x, -y). Note that x:Static-Gravity still only +takes effect when the width or height of the window is changed, not when +the window is moved. +</p> +<p>A bit-gravity of x:Forget-Gravity indicates that the window's contents +are always discarded after a size change, even if a backing store or +save under has been requested. The window is tiled with its background +and zero or more x:Expose events are generated. If no background is +defined, the existing screen contents are not altered. Some X servers +may also ignore the specified bit-gravity and always generate x:Expose +events. +</p> +<p>The contents and borders of inferiors are not affected by their parent's +bit-gravity. A server is permitted to ignore the specified bit-gravity +and use x:Forget-Gravity instead. +</p> +<p>A win-gravity of x:Unmap-Gravity is like x:North-West-Gravity (the +window is not moved), except the child is also unmapped when the parent +is resized, and an x:Unmap-Notify event is generated. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Backing-Store</b> +<a name="IDX81"></a> +</dt> +<dd><p>Some implementations of the X server may choose to maintain the contents +of x:Input-Output windows. If the X server maintains the contents of a +window, the off-screen saved pixels are known as backing store. The +backing store advises the X server on what to do with the contents of a +window. The backing-store attribute can be set to x:Not-Useful +(default), x:When-Mapped, or x:Always. A backing-store attribute of +x:Not-Useful advises the X server that maintaining contents is +unnecessary, although some X implementations may still choose to +maintain contents and, therefore, not generate x:Expose events. A +backing-store attribute of x:When-Mapped advises the X server that +maintaining contents of obscured regions when the window is mapped would +be beneficial. In this case, the server may generate an x:Expose event +when the window is created. A backing-store attribute of x:Always +advises the X server that maintaining contents even when the window is +unmapped would be beneficial. Even if the window is larger than its +parent, this is a request to the X server to maintain complete contents, +not just the region within the parent window boundaries. While the X +server maintains the window's contents, x:Expose events normally are not +generated, but the X server may stop maintaining contents at any time. +</p> +<p>When the contents of obscured regions of a window are being maintained, +regions obscured by noninferior windows are included in the destination +of graphics requests (and source, when the window is the source). +However, regions obscured by inferior windows are not included. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Backing-Planes</b> +<a name="IDX82"></a> +</dt> +<dt><u>Attribute:</u> <b>x:CW-Backing-Pixel</b> +<a name="IDX83"></a> +</dt> +<dd><p>You can set backing planes to indicate (with bits set to 1) which bit +planes of an x:Input-Output window hold dynamic data that must be +preserved in backing store and during save unders. The default value +for the backing-planes attribute is all bits set to 1. You can set +backing pixel to specify what bits to use in planes not covered by +backing planes. The default value for the backing-pixel attribute is +all bits set to 0. The X server is free to save only the specified bit +planes in the backing store or the save under and is free to regenerate +the remaining planes with the specified pixel value. Any extraneous +bits in these values (that is, those bits beyond the specified depth of +the window) may be simply ignored. If you request backing store or save +unders, you should use these members to minimize the amount of +off-screen memory required to store your window. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Override-Redirect</b> +<a name="IDX84"></a> +</dt> +<dd><p>To control window placement or to add decoration, a window manager often +needs to intercept (redirect) any map or configure request. Pop-up +windows, however, often need to be mapped without a window manager +getting in the way. To control whether an x:Input-Output or +x:Input-Only window is to ignore these structure control facilities, use +the override-redirect flag. +</p> +<p>The override-redirect flag specifies whether map and configure requests +on this window should override a x:Substructure-Redirect-Mask on the +parent. You can set the override-redirect flag to #t or #f (default). +Window managers use this information to avoid tampering with pop-up +windows. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Save-Under</b> +<a name="IDX85"></a> +</dt> +<dd><p>Some server implementations may preserve contents of x:Input-Output windows +under other x:Input-Output windows. This is not the same as preserving the +contents of a window for you. You may get better visual appeal if +transient windows (for example, pop-up menus) request that the system +preserve the screen contents under them, so the temporarily obscured +applications do not have to repaint. +</p> +<p>You can set the save-under flag to True or False (default). If +save-under is True, the X server is advised that, when this window is +mapped, saving the contents of windows it obscures would be beneficial. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Event-Mask</b> +<a name="IDX86"></a> +</dt> +<dd><p>The event mask defines which events the client is interested in for this +x:Input-Output or x:Input-Only window (or, for some event types, +inferiors of this window). The event mask is the bitwise inclusive OR +of zero or more of the valid event mask bits. You can specify that no +maskable events are reported by setting x:No-Event-Mask (default). +</p> +<p>The following table lists the event mask constants you can pass to the +event-mask argument and the circumstances in which you would want to +specify the event mask: +</p> +<table> +<tr><td><p> Event Mask +</p></td><td><p> Circumstances +</p></td></tr> +<tr><td><p> x:No-Event-Mask +</p></td><td><p> No events wanted +</p></td></tr> +<tr><td><p> x:Key-Press-Mask +</p></td><td><p> Keyboard down events wanted +</p></td></tr> +<tr><td><p> x:Key-Release-Mask +</p></td><td><p> Keyboard up events wanted +</p></td></tr> +<tr><td><p> x:Button-Press-Mask +</p></td><td><p> Pointer button down events wanted +</p></td></tr> +<tr><td><p> x:Button-Release-Mask +</p></td><td><p> Pointer button up events wanted +</p></td></tr> +<tr><td><p> x:Enter-Window-Mask +</p></td><td><p> Pointer window entry events wanted +</p></td></tr> +<tr><td><p> x:Leave-Window-Mask +</p></td><td><p> Pointer window leave events wanted +</p></td></tr> +<tr><td><p> x:Pointer-Motion-Mask +</p></td><td><p> Pointer motion events wanted +</p></td></tr> +<tr><td><p> x:Pointer-Motion-Hint-Mask +</p></td><td> +<p>If x:Pointer-Motion-Hint-Mask is selected in combination with one or +more motion-masks, the X server is free to send only one x:Motion-Notify +event (with the is_hint member of the X:Pointer-Moved-Event structure +set to x:Notify-Hint) to the client for the event window, until either +the key or button state changes, the pointer leaves the event window, or +the client calls X:Query-Pointer or X:Get-Motion-Events. The server +still may send x:Motion-Notify events without is_hint set to +x:Notify-Hint. +</p></td></tr> +<tr><td><p> x:Button1-Motion-Mask +</p></td><td><p> Pointer motion while button 1 down +</p></td></tr> +<tr><td><p> x:Button2-Motion-Mask +</p></td><td><p> Pointer motion while button 2 down +</p></td></tr> +<tr><td><p> x:Button3-Motion-Mask +</p></td><td><p> Pointer motion while button 3 down +</p></td></tr> +<tr><td><p> x:Button4-Motion-Mask +</p></td><td><p> Pointer motion while button 4 down +</p></td></tr> +<tr><td><p> x:Button5-Motion-Mask +</p></td><td><p> Pointer motion while button 5 down +</p></td></tr> +<tr><td><p> x:Button-Motion-Mask +</p></td><td><p> Pointer motion while any button down +</p></td></tr> +<tr><td><p> x:Keymap-State-Mask +</p></td><td><p> Keyboard state wanted at window entry and focus in +</p></td></tr> +<tr><td><p> x:Exposure-Mask +</p></td><td><p> Any exposure wanted +</p></td></tr> +<tr><td><p> x:Visibility-Change-Mask +</p></td><td><p> Any change in visibility wanted +</p></td></tr> +<tr><td><p> x:Structure-Notify-Mask +</p></td><td><p> Any change in window structure wanted +</p></td></tr> +<tr><td><p> x:Resize-Redirect-Mask +</p></td><td><p> Redirect resize of this window +</p></td></tr> +<tr><td><p> x:Substructure-Notify-Mask +</p></td><td><p> Substructure notification wanted +</p></td></tr> +<tr><td><p> x:Substructure-Redirect-Mask +</p></td><td><p> Redirect structure requests on children +</p></td></tr> +<tr><td><p> x:Focus-Change-Mask +</p></td><td><p> Any change in input focus wanted +</p></td></tr> +<tr><td><p> x:Property-Change-Mask +</p></td><td><p> Any change in property wanted +</p></td></tr> +<tr><td><p> x:Colormap-Change-Mask +</p></td><td><p> Any change in colormap wanted +</p></td></tr> +<tr><td><p> x:Owner-Grab-Button-Mask +</p></td><td><p> Automatic grabs should activate with owner_events set to True +</p></td></tr> +</table> + +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Dont-Propagate</b> +<a name="IDX87"></a> +</dt> +<dd><p>The do-not-propagate-mask attribute defines which events should not be +propagated to ancestor windows when no client has the event type +selected in this x:Input-Output or x:Input-Only window. The +do-not-propagate-mask is the bitwise inclusive OR of zero or more of the +following masks: x:Key-Press, x:Key-Release, x:Button-Press, +x:Button-Release, x:Pointer-Motion, x:Button1Motion, x:Button2Motion, +x:Button3Motion, x:Button4Motion, x:Button5Motion, and x:Button-Motion. +You can specify that all events are propagated by setting +x:No-Event-Mask (default). +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Colormap</b> +<a name="IDX88"></a> +</dt> +<dd><p>The colormap attribute specifies which colormap best reflects the true +colors of the x:Input-Output window. The colormap must have the same +visual type as the window. X servers capable of supporting multiple +hardware colormaps can use this information, and window managers can use +it for calls to X:Install-Colormap. You can set the colormap attribute +to a colormap or to x:Copy-From-Parent (default). +</p> +<p>If you set the colormap to x:Copy-From-Parent, the parent window's +colormap is copied and used by its child. However, the child window +must have the same visual type as the parent. The parent window must +not have a colormap of x:None. The colormap is copied by sharing the +colormap object between the child and parent, not by making a complete +copy of the colormap contents. Subsequent changes to the parent +window's colormap attribute do not affect the child window. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:CW-Cursor</b> +<a name="IDX89"></a> +</dt> +<dd><p>The cursor attribute specifies which cursor is to be used when the +pointer is in the x:Input-Output or x:Input-Only window. You can set +the cursor to a cursor or x:None (default). +</p> +<p>If you set the cursor to x:None, the parent's cursor is used when the +pointer is in the x:Input-Output or x:Input-Only window, and any change +in the parent's cursor will cause an immediate change in the displayed +cursor. On the root window, the default cursor is restored. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:window-ref</b><i> window field-name …</i> +<a name="IDX90"></a> +</dt> +<dd><p>Returns a list of the components specified by <var>field-name</var>s for the +specified <var>window</var>. Allowable <var>field-name</var>s are a subset of +those for <code>x:window-set!</code>: +</p> +<ul> +<li> x:CW-Back-Pixel +</li><li> x:CW-Bit-Gravity +</li><li> x:CW-Win-Gravity +</li><li> x:CW-Backing-Store +</li><li> x:CW-Backing-Planes +</li><li> x:CW-Backing-Pixel +</li><li> x:CW-Override-Redirect +</li><li> x:CW-Save-Under +</li><li> x:CW-Event-Mask +</li><li> x:CW-Dont-Propagate +</li><li> x:CW-Colormap +</li></ul> +</dd></dl> + + +<hr size="6"> +<a name="Window-Properties-and-Visibility"></a> +<a name="SEC6"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC5" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC7" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC3" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC3" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC7" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="section"> 3.3 Window Properties and Visibility </h2> + +<dl> +<dt><u>Function:</u> <b>x:get-window-property</b><i> window property </i> +<a name="IDX91"></a> +</dt> +<dd><p>Returns the (string or list of numbers) value of <var>property</var> of +<var>window</var>. +</p><dl> +<dt><u>Function:</u> <b>x:get-window-property</b><i> window property #t</i> +<a name="IDX92"></a> +</dt> +<dd><p>Removes and returns the (string or list of numbers) value of +<var>property</var> of <var>window</var>. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:list-properties</b><i> window</i> +<a name="IDX93"></a> +</dt> +<dd><p>Returns a list of the properties (strings) defined for <var>window</var>. +</p></dd></dl> + + +<p>In X parlance, a window which is hidden even when not obscured by other +windows is <em>unmapped</em>; one which +<a name="IDX94"></a> +<a name="IDX95"></a> +<a name="IDX96"></a> +<a name="IDX97"></a> +shows is <em>mapped</em>. It is an unfortunate name-collision with Scheme, +and is ingrained in the attribute names. +</p> +<dl> +<dt><u>Function:</u> <b>x:map-window</b><i> window</i> +<a name="IDX98"></a> +</dt> +<dd><p>Maps the <var>window</var> and all of its subwindows that have had map +requests. Mapping a window that has an unmapped ancestor does not +display the window but marks it as eligible for display when the +ancestor becomes mapped. Such a window is called unviewable. When all +its ancestors are mapped, the window becomes viewable and will be +visible on the screen if it is not obscured by another window. This +function has no effect if the <var>window</var> is already mapped. +</p> +<p>If the override-redirect of the window is False and if some other client +has selected x:Substructure-Redirect-Mask on the parent window, then the X +server generates a MapRequest event, and the <code>x:map-window</code> +function does not map the <var>window</var>. Otherwise, the <var>window</var> is +mapped, and the X server generates a MapNotify event. +</p> +<p>If the <var>window</var> becomes viewable and no earlier contents for it are +remembered, the X server tiles the <var>window</var> with its background. If +the window's background is undefined, the existing screen contents are +not altered, and the X server generates zero or more x:Expose events. If +backing-store was maintained while the <var>window</var> was unmapped, no +x:Expose events are generated. If backing-store will now be maintained, a +full-window exposure is always generated. Otherwise, only visible +regions may be reported. Similar tiling and exposure take place for any +newly viewable inferiors. +</p> +<p>If the window is an Input-Output window, <code>x:map-window</code> generates +x:Expose events on each Input-Output window that it causes to be displayed. +If the client maps and paints the window and if the client begins +processing events, the window is painted twice. To avoid this, first +ask for x:Expose events and then map the window, so the client processes +input events as usual. The event list will include x:Expose for each +window that has appeared on the screen. The client's normal response to +an x:Expose event should be to repaint the window. This method usually +leads to simpler programs and to proper interaction with window +managers. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:map-subwindows</b><i> window</i> +<a name="IDX99"></a> +</dt> +<dd><p>Maps all subwindows of a specified <var>window</var> in top-to-bottom +stacking order. The X server generates x:Expose events on each newly +displayed window. This may be much more efficient than mapping many +windows one at a time because the server needs to perform much of the +work only once, for all of the windows, rather than for each window. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:unmap-window</b><i> window</i> +<a name="IDX100"></a> +</dt> +<dd><p>Unmaps the specified <var>window</var> and causes the X server to generate an +UnmapNotify event. If the specified <var>window</var> is already unmapped, +<code>x:unmap-window</code> has no effect. Normal exposure processing on +formerly obscured windows is performed. Any child window will no longer +be visible until another map call is made on the parent. In other +words, the subwindows are still mapped but are not visible until the +parent is mapped. Unmapping a <var>window</var> will generate x:Expose events +on windows that were formerly obscured by it. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:unmap-subwindows</b><i> window</i> +<a name="IDX101"></a> +</dt> +<dd><p>Unmaps all subwindows for the specified <var>window</var> in bottom-to-top +stacking order. It causes the X server to generate an UnmapNotify event +on each subwindow and x:Expose events on formerly obscured windows. Using +this function is much more efficient than unmapping multiple windows one +at a time because the server needs to perform much of the work only +once, for all of the windows, rather than for each window. +</p></dd></dl> + +</dd></dl> +<hr size="6"> +<a name="Graphics-Context"></a> +<a name="SEC7"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC6" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC9" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC3" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC9" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 4. Graphics Context </h1> + + +<p>Most attributes of graphics operations are stored in <em>GC</em>s. These +include line width, line style, plane mask, foreground, background, +tile, stipple, clipping region, end style, join style, and so on. +Graphics operations (for example, drawing lines) use these values to +determine the actual drawing operation. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-gc</b><i> drawable field-name value …</i> +<a name="IDX102"></a> +</dt> +<dd><p>Creates and returns graphics context. The graphics context can be used +with any destination drawable having the same root and depth as the +specified <var>drawable</var>. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:gc-set!</b><i> graphics-context field-name value …</i> +<a name="IDX103"></a> +</dt> +<dd><p>Changes the components specified by <var>field-name</var>s for the specified +<var>graphics-context</var>. The restrictions are the same as for +<code>x:create-gc</code>. The order in which components are verified and +altered is server dependent. If an error occurs, a subset of the +components may have been altered. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:copy-gc-fields!</b><i> gcontext-src gcontext-dst field-name …</i> +<a name="IDX104"></a> +</dt> +<dd><p>Copies the components specified by <var>field-name</var>s from +<var>gcontext-src</var> to <var>gcontext-dst</var>. <var>Gcontext-src</var> and +<var>gcontext-dst</var> must have the same root and depth. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:gc-ref</b><i> graphics-context field-name …</i> +<a name="IDX105"></a> +</dt> +<dd><p>Returns a list of the components specified by <var>field-name</var>s … +from the specified <var>graphics-context</var>. +</p></dd></dl> + +<a name="SEC8"></a> +<h2 class="heading"> GC Attributes </h2> + + +<p>Both <code>x:create-gc</code> and <code>x:change-gc</code> take one argument +followed by pairs of arguments, where the first is one of the +property-name symbols (or its top-level value) listed below; and the +second is the value to associate with that property. +</p> +<dl> +<dt><u>Attribute:</u> <b>x:GC-Function</b> +<a name="IDX106"></a> +</dt> +<dd><p>The function attributes of a GC are used when you update a section of a +drawable (the destination) with bits from somewhere else (the source). +The function in a GC defines how the new destination bits are to be +computed from the source bits and the old destination bits. x:G-Xcopy is +typically the most useful because it will work on a color display, but +special applications may use other functions, particularly in concert +with particular planes of a color display. The 16 functions are: +</p> +<table><tr><td> </td><td><pre class="format"><tt> +x:G-Xclear 0 +x:G-Xand (AND src dst) +x:G-Xand-Reverse (AND src (NOT dst)) +x:G-Xcopy src +x:G-Xand-Inverted (AND (NOT src) dst) +x:G-Xnoop dst +x:G-Xxor (XOR src dst) +x:G-Xor (OR src dst) +x:G-Xnor (AND (NOT src) (NOT dst)) +x:G-Xequiv (XOR (NOT src) dst) +x:G-Xinvert (NOT dst) +x:G-Xor-Reverse (OR src (NOT dst)) +x:G-Xcopy-Inverted (NOT src) +x:G-Xor-Inverted (OR (NOT src) dst) +x:G-Xnand (OR (NOT src) (NOT dst)) +x:G-Xset 1</tt> +</pre></td></tr></table></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Plane-Mask</b> +<a name="IDX107"></a> +</dt> +<dd><p>Many graphics operations depend on either pixel values or planes in a +GC. The planes attribute is an integer which specifies which planes of +the destination are to be modified, one bit per plane. A monochrome +display has only one plane and will be the least significant bit of the +integer. As planes are added to the display hardware, they will occupy +more significant bits in the plane mask. +</p> +<p>In graphics operations, given a source and destination pixel, the result +is computed bitwise on corresponding bits of the pixels. That is, a +Boolean operation is performed in each bit plane. The plane-mask +restricts the operation to a subset of planes. <code>x:All-Planes</code> can be +used to refer to all planes of the screen simultaneously. The result is +computed by the following: +</p> +<table><tr><td> </td><td><pre class="format">(OR (AND (FUNC src dst) plane-mask) (AND dst (NOT plane-mask))) +</pre></td></tr></table> +<p>Range checking is not performed on a plane-mask value. It is simply +truncated to the appropriate number of bits. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Foreground</b> +<a name="IDX108"></a> +</dt> +<dt><u>Attribute:</u> <b>x:GC-Background</b> +<a name="IDX109"></a> +</dt> +<dd><p>Range checking is not performed on the values for foreground or +background. They are simply truncated to the appropriate number of +bits. +</p> +<p>Note that foreground and background are not initialized to any values +likely to be useful in a window. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Line-Width</b> +<a name="IDX110"></a> +</dt> +<dd><p>The line-width is measured in pixels and either can be greater than or +equal to one (wide line) or can be the special value zero (thin line). +</p> +<p>Thin lines (zero line-width) are one-pixel-wide lines drawn using an +unspecified, device-dependent algorithm. There are only two constraints +on this algorithm. +</p> +<ul> +<li> +If a line is drawn unclipped from [x1,y1] to [x2,y2] and if another line +is drawn unclipped from [x1+dx,y1+dy] to [x2+dx,y2+dy], a point [x,y] is +touched by drawing the first line if and only if the point [x+dx,y+dy] +is touched by drawing the second line. + +</li><li> +The effective set of points comprising a line cannot be affected by +clipping. That is, a point is touched in a clipped line if and only if +the point lies inside the clipping region and the point would be touched +by the line when drawn unclipped. +</li></ul> + +<p>A wide line drawn from [x1,y1] to [x2,y2] always draws the same pixels +as a wide line drawn from [x2,y2] to [x1,y1], not counting cap-style and +join-style. It is recommended that this property be true for thin +lines, but this is not required. A line-width of zero may differ from a +line-width of one in which pixels are drawn. This permits the use of +many manufacturers' line drawing hardware, which may run many times +faster than the more precisely specified wide lines. +</p> +<p>In general, drawing a thin line will be faster than drawing a wide line +of width one. However, because of their different drawing algorithms, +thin lines may not mix well aesthetically with wide lines. If it is +desirable to obtain precise and uniform results across all displays, a +client should always use a line-width of one rather than a linewidth of +zero. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Line-Style</b> +<a name="IDX111"></a> +</dt> +<dd><p>The line-style defines which sections of a line are drawn: +</p> +<dl compact="compact"> +<dt> <tt>x:Line-Solid</tt></dt> +<dd><p>The full path of the line is drawn. +</p></dd> +<dt> <tt>x:Line-Double-Dash</tt></dt> +<dd><p>The full path of the line is drawn, but the even dashes are filled +differently from the odd dashes (see fill-style) with x:Cap-Butt style used +where even and odd dashes meet. +</p></dd> +<dt> <tt>x:Line-On-Off-Dash</tt></dt> +<dd><p>Only the even dashes are drawn, and cap-style applies to all internal +ends of the individual dashes, except x:Cap-Not-Last is treated as x:Cap-Butt. +</p></dd> +</dl> +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Cap-Style</b> +<a name="IDX112"></a> +</dt> +<dd><p>The cap-style defines how the endpoints of a path are drawn: +</p> +<dl compact="compact"> +<dt> <tt>x:Cap-Not-Last</tt></dt> +<dd><p>This is equivalent to x:Cap-Butt except that for a line-width of zero the +final endpoint is not drawn. +</p></dd> +<dt> <tt>x:Cap-Butt</tt></dt> +<dd><p>The line is square at the endpoint (perpendicular to the slope of the +line) with no projection beyond. +</p></dd> +<dt> <tt>x:Cap-Round</tt></dt> +<dd><p>The line has a circular arc with the diameter equal to the line-width, +centered on the endpoint. (This is equivalent to x:Cap-Butt for line-width +of zero). +</p></dd> +<dt> <tt>x:Cap-Projecting</tt></dt> +<dd><p>The line is square at the end, but the path continues beyond the +endpoint for a distance equal to half the line-width. (This is +equivalent to x:Cap-Butt for line-width of zero). +</p></dd> +</dl> +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Join-Style</b> +<a name="IDX113"></a> +</dt> +<dd><p>The join-style defines how corners are drawn for wide lines: +</p> +<dl compact="compact"> +<dt> <tt>x:Join-Miter</tt></dt> +<dd><p>The outer edges of two lines extend to meet at an angle. However, if +the angle is less than 11 degrees, then a x:Join-Bevel join-style is used +instead. +</p></dd> +<dt> <tt>x:Join-Round</tt></dt> +<dd><p>The corner is a circular arc with the diameter equal to the +line-width, centered on the x:Join-point. +</p></dd> +<dt> <tt>x:Join-Bevel</tt></dt> +<dd><p>The corner has x:Cap-Butt endpoint styles with the triangular notch filled. +</p></dd> +</dl> +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Fill-Style</b> +<a name="IDX114"></a> +</dt> +<dd><p>The fill-style defines the contents of the source for line, text, and +fill requests. For all text and fill requests (for example, +X:Draw-Text, X:Fill-Rectangle, X:Fill-Polygon, and X:Fill-Arc); for line +requests with linestyle x:Line-Solid (for example, X:Draw-Line, +X:Draw-Segments, X:Draw-Rectangle, X:Draw-Arc); and for the even dashes +for line requests with line-style x:Line-On-Off-Dash or +x:Line-Double-Dash, the following apply: +</p> +<dl compact="compact"> +<dt> <tt>x:Fill-Solid</tt></dt> +<dd><p>Foreground +</p></dd> +<dt> <tt>x:Fill-Tiled</tt></dt> +<dd><p>Tile +</p></dd> +<dt> <tt>x:Fill-Opaque-Stippled</tt></dt> +<dd><p>A tile with the same width and height as stipple, but with background +everywhere stipple has a zero and with foreground everywhere stipple has +a one +</p></dd> +<dt> <tt>x:Fill-Stippled</tt></dt> +<dd><p>Foreground masked by stipple +</p></dd> +</dl> + +<p>When drawing lines with line-style x:Line-Double-Dash, the odd dashes +are controlled by the fill-style in the following manner: +</p> +<dl compact="compact"> +<dt> <tt>x:Fill-Solid</tt></dt> +<dd><p>Background +</p></dd> +<dt> <tt>x:Fill-Tiled</tt></dt> +<dd><p>Same as for even dashes +</p></dd> +<dt> <tt>x:Fill-Opaque-Stippled</tt></dt> +<dd><p>Same as for even dashes +</p></dd> +<dt> <tt>x:Fill-Stippled</tt></dt> +<dd><p>Background masked by stipple +</p></dd> +</dl> +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Fill-Rule</b> +<a name="IDX115"></a> +</dt> +<dd><p>The fill-rule defines what pixels are inside (drawn) for paths given in +X:Fill-Polygon requests and can be set to x:Even-Odd-Rule or +x:Winding-Rule. +</p> +<dl compact="compact"> +<dt> <tt>x:Even-Odd-Rule</tt></dt> +<dd><p>A point is inside if an infinite ray with the point as +origin crosses the path an odd number of times. +</p></dd> +<dt> <tt>x:Winding-Rule</tt></dt> +<dd><p>A point is inside if an infinite ray with the point as origin crosses an +unequal number of clockwise and counterclockwise directed path segments. +</p></dd> +</dl> + +<p>A clockwise directed path segment is one that crosses the ray from left +to right as observed from the point. A counterclockwise segment is one +that crosses the ray from right to left as observed from the point. The +case where a directed line segment is coincident with the ray is +uninteresting because you can simply choose a different ray that is not +coincident with a segment. +</p> +<p>For both x:Even-Odd-Rule and x:Winding-Rule, a point is infinitely +small, and the path is an infinitely thin line. A pixel is inside if +the center point of the pixel is inside and the center point is not on +the boundary. If the center point is on the boundary, the pixel is +inside if and only if the polygon interior is immediately to its right +(x increasing direction). Pixels with centers on a horizontal edge are +a special case and are inside if and only if the polygon interior is +immediately below (y increasing direction). +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Tile</b> +<a name="IDX116"></a> +</dt> +<dt><u>Attribute:</u> <b>x:GC-Stipple</b> +<a name="IDX117"></a> +</dt> +<dd><p>The tile/stipple represents an infinite two-dimensional plane, with the +tile/stipple replicated in all dimensions. +</p> +<p>The tile pixmap must have the same root and depth as the GC, or an error +results. The stipple pixmap must have depth one and must have the same +root as the GC, or an error results. For stipple operations where the +fill-style is x:Fill-Stippled but not x:Fill-Opaque-Stippled, the +stipple pattern is tiled in a single plane and acts as an additional +clip mask to be ANDed with the clip-mask. Although some sizes may be +faster to use than others, any size pixmap can be used for tiling or +stippling. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Tile-Stip-X-Origin</b> +<a name="IDX118"></a> +</dt> +<dt><u>Attribute:</u> <b>x:GC-Tile-Stip-Y-Origin</b> +<a name="IDX119"></a> +</dt> +<dd><p>When the tile/stipple plane is superimposed on a drawable for use in a +graphics operation, the upper-left corner of some instance of the +tile/stipple is at the coordinates within the drawable specified by the +tile/stipple origin. The tile/stipple origin is interpreted relative to +the origin of whatever destination drawable is specified in a graphics +request. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Font</b> +<a name="IDX120"></a> +</dt> +<dd><p>The font to be used for drawing text. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Subwindow-Mode</b> +<a name="IDX121"></a> +</dt> +<dd><p>You can set the subwindow-mode to x:Clip-By-Children or +x:Include-Inferiors. +</p><dl compact="compact"> +<dt> <tt>x:Clip-By-Children</tt></dt> +<dd><p>Both source and destination windows are additionally clipped by all +viewable Input-Output children. +</p></dd> +<dt> <tt>x:Include-Inferiors</tt></dt> +<dd><p>Neither source nor destination window is clipped by inferiors. This +will result in including subwindow contents in the source and drawing +through subwindow boundaries of the destination. The use of +<code>x:Include-Inferiors</code> on a window of one depth with mapped +inferiors of differing depth is not illegal, but the semantics are +undefined by the core protocol. +</p></dd> +</dl> +</dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Graphics-Exposures</b> +<a name="IDX122"></a> +</dt> +<dd><p>The graphics-exposure flag controls x:Graphics-Expose event generation +for X:Copy-Area and X:Copy-Plane requests (and any similar requests +defined by extensions). +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Clip-X-Origin</b> +<a name="IDX123"></a> +</dt> +<dt><u>Attribute:</u> <b>x:GC-Clip-Y-Origin</b> +<a name="IDX124"></a> +</dt> +<dd><p>The clip-mask origin is interpreted relative to the origin of whatever +destination drawable is specified in a graphics request. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Clip-Mask</b> +<a name="IDX125"></a> +</dt> +<dd><p>The clip-mask restricts writes to the destination drawable. If the +clip-mask is set to a pixmap, it must have depth one and have the same +root as the GC, or an error results. If clip-mask is set to +<a name="IDX126"></a> +<a name="IDX127"></a> +<em>x:None</em>, the pixels are always drawn regardless of the clip origin. +The clip-mask also can be set by calling <code>X:Set-Region</code>. Only +pixels where the clip-mask has a bit set to 1 are drawn. Pixels are not +drawn outside the area covered by the clip-mask or where the clip-mask +has a bit set to 0. The clip-mask affects all graphics requests. The +clip-mask does not clip sources. The clip-mask origin is interpreted +relative to the origin of whatever destination drawable is specified in +a graphics request. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Dash-Offset</b> +<a name="IDX128"></a> +</dt> +<dd><p>Defines the phase of the pattern, specifying how many pixels into the +dash-list the pattern should actually begin in any single graphics +request. Dashing is continuous through path elements combined with a +join-style but is reset to the dash-offset between each sequence of +joined lines. +</p> +<p>The unit of measure for dashes is the same for the ordinary +coordinate system. Ideally, a dash length is measured along +the slope of the line, but implementations are only required +to match this ideal for horizontal and vertical lines. +Failing the ideal semantics, it is suggested that the length +be measured along the major axis of the line. The major +axis is defined as the x axis for lines drawn at an angle of +between -45 and +45 degrees or between 135 and 225 degrees +from the x axis. For all other lines, the major axis is the +y axis. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Dash-List</b> +<a name="IDX129"></a> +</dt> +<dd><p>There must be at least one element in the specified <var>dash-list</var>. +The initial and alternating elements (second, fourth, and so on) of the +<var>dash-list</var> are the even dashes, and the others are the odd dashes. +Each element specifies a dash length in pixels. All of the elements +must be nonzero. Specifying an odd-length list is equivalent to +specifying the same list concatenated with itself to produce an +even-length list. +</p></dd></dl> + +<dl> +<dt><u>Attribute:</u> <b>x:GC-Arc-Mode</b> +<a name="IDX130"></a> +</dt> +<dd><p>The arc-mode controls filling in the X:Fill-Arcs function and can be set +to x:Arc-Pie-Slice or x:Arc-Chord. +</p><dl compact="compact"> +<dt> <tt>x:Arc-Pie-Slice</tt></dt> +<dd><p>The arcs are pie-slice filled. +</p></dd> +<dt> <tt>x:Arc-Chord</tt></dt> +<dd><p>The arcs are chord filled. +</p></dd> +</dl> +</dd></dl> + + +<hr size="6"> +<a name="Cursor"></a> +<a name="SEC9"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC7" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC10" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC7" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 5. Cursor </h1> + +<dl> +<dt><u>Function:</u> <b>x:create-cursor</b><i> display shape</i> +<a name="IDX131"></a> +</dt> +<dd><p>X provides a set of standard cursor shapes in a special font named +<a name="IDX132"></a> +<em>cursor</em>. Applications are encouraged to use this interface for +their cursors because the font can be customized for the individual +display type. The <var>shape</var> argument specifies which glyph of the standard +fonts to use. +</p> +<p>The hotspot comes from the information stored in the cursor font. The +initial colors of a cursor are a black foreground and a white background +(see X:Recolor-Cursor). The names of all cursor shapes are defined with +the prefix XC: in <tt>`x11.scm'</tt>. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-cursor</b><i> source-font source-char mask-font mask-char fgc bgc</i> +<a name="IDX133"></a> +</dt> +<dd><p>Creates a cursor from the source and mask bitmaps obtained from the +specified font glyphs. The integer <var>source-char</var> must be a defined +glyph in <var>source-font</var>. The integer <var>mask-char</var> must be a +defined glyph in <var>mask-font</var>. The origins of the <var>source-char</var> +and <var>mask-char</var> glyphs are positioned coincidently and define the +hotspot. The <var>source-char</var> and <var>mask-char</var> need not have the +same bounding box metrics, and there is no restriction on the placement +of the hotspot relative to the bounding boxes. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-cursor</b><i> source-font source-char #f #f fgc bgc</i> +<a name="IDX134"></a> +</dt> +<dd><p>If <var>mask-font</var> and <var>mask-char</var> are #f, all pixels of the source +are displayed. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-cursor</b><i> source-pixmap mask-pixmap fgc bgc origin</i> +<a name="IDX135"></a> +</dt> +<dd><p><var>mask-pixmap</var> must be the same size as the pixmap defined by the +<var>source-pixmap</var> argument. The foreground and background RGB values +must be specified using <var>foreground-color</var> and +<var>background-color</var>, even if the X server only has a x:Static-Gray or +x:Gray-Scale screen. The hotspot must be a point within the +<var>source-pixmap</var>. +</p> +<p><code>X:Create-Cursor</code> creates and returns a cursor. The +<var>foreground-color</var> is used for the pixels set to 1 in the source, +and the <var>background-color</var> is used for the pixels set to 0. Both +source and mask must have depth one but can have any root. The +<var>mask-pixmap</var> defines the shape of the cursor. The pixels set to 1 +in <var>mask-pixmap</var> define which source pixels are displayed, and the +pixels set to 0 define which pixels are ignored. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-cursor</b><i> source-pixmap #f fgc bgc origin</i> +<a name="IDX136"></a> +</dt> +<dd><p>If <var>mask-pixmap</var> is #f, all pixels of the source are displayed. +</p></dd></dl> + +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +<hr size="6"> +<a name="Colormap"></a> +<a name="SEC10"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC9" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC11" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC9" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC11" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 6. Colormap </h1> + +<p>A <em>colormap</em> maps pixel values to <em>RGB</em> color space values. +</p> +<dl> +<dt><u>Function:</u> <b>x:create-colormap</b><i> window visual alloc-policy</i> +<a name="IDX137"></a> +</dt> +<dd><p><var>window</var> specifies the window on whose screen you want to create a +colormap. <var>visual</var> specifies a visual type supported on the screen. +<var>alloc-policy</var> Specifies the colormap entries to be allocated. You +can pass <code>X:Alloc-None</code> or <code>X:Alloc-All</code>. +</p> +<p>The <code>X:Create-Colormap</code> function creates and returns a colormap of +the specified <var>visual</var> type for the screen on which <var>window</var> +resides. Note that <var>window</var> is used only to determine the screen. +</p> +<dl compact="compact"> +<dt> <samp>`X:Gray-Scale'</samp></dt> +<dt> <samp>`X:Pseudo-Color'</samp></dt> +<dt> <samp>`X:Direct-Color'</samp></dt> +<dd><p>The initial values of the colormap entries are undefined. +</p> +</dd> +<dt> <samp>`X:Static-Gray'</samp></dt> +<dt> <samp>`X:Static-Color'</samp></dt> +<dt> <samp>`X:True-Color'</samp></dt> +<dd><p>The entries have defined values, but those values are specific to +<var>visual</var> and are not defined by X. The <var>alloc-policy</var> must be +<samp>`X:Alloc-None'</samp>. +</p> +</dd> +</dl> + +<p>For the other visual classes, if <var>alloc-policy</var> is +<samp>`X:Alloc-None'</samp>, the colormap initially has no allocated entries, +and clients can allocate them. +</p> +<p>If <var>alloc-policy</var> is <samp>`X:Alloc-All'</samp>, the entire colormap is +allocated writable. The initial values of all allocated entries are +undefined. +</p> +<dl compact="compact"> +<dt> <samp>`X:Gray-Scale'</samp></dt> +<dt> <samp>`X:Pseudo-Color'</samp></dt> +<dd><p>The effect is as if an <code>XAllocColorCells</code> call returned all pixel +values from zero to N - 1, where N is the colormap entries value in +<var>visual</var>. +</p> +</dd> +<dt> <samp>`X:Direct-Color'</samp></dt> +<dd><p>The effect is as if an <code>XAllocColorPlanes</code> call returned a pixel +value of zero and red_mask, green_mask, and blue_mask values containing +the same bits as the corresponding masks in the specified visual. +</p></dd> +</dl> + +</dd></dl> + + +<p>To create a new colormap when the allocation out of a previously +shared colormap has failed because of resource exhaustion, use: +</p> +<dl> +<dt><u>Function:</u> <b>x:copy-colormap-and-free</b><i> colormap</i> +<a name="IDX138"></a> +</dt> +<dd><p>Creates and returns a colormap of the same visual type and for the same +screen as the specified <var>colormap</var>. It also moves all of the +client's existing allocation from the specified <var>colormap</var> to the +new colormap with their color values intact and their read-only or +writable characteristics intact and frees those entries in the specified +colormap. Color values in other entries in the new colormap are +undefined. If the specified colormap was created by the client with +alloc set to <samp>`X:Alloc-All'</samp>, the new colormap is also created with +<samp>`X:Alloc-All'</samp>, all color values for all entries are copied from the +specified <var>colormap</var>, and then all entries in the specified +<var>colormap</var> are freed. If the specified <var>colormap</var> was not +created by the client with <samp>`X:Alloc-All'</samp>, the allocations to be moved +are all those pixels and planes that have been allocated by the client +and that have not been freed since they were allocated. +</p> +</dd></dl> + +<p>A <em>colormap</em> maps pixel values to elements of the <em>RGB</em> +datatype. An <var>RGB</var> is a list or vector of 3 integers, describing +the red, green, and blue intensities respectively. The integers are in +the range 0 - 65535. +</p> +<dl> +<dt><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors nplanes</i> +<a name="IDX139"></a> +</dt> +<dt><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors nplanes contiguous?</i> +<a name="IDX140"></a> +</dt> +<dd><p>The <code>X:Alloc-Color-Cells</code> function allocates read/write color +cells. The number of colors, <var>ncolors</var> must be positive and the +number of planes, <var>nplanes</var> nonnegative. If <var>ncolors</var> and +nplanes are requested, then <var>ncolors</var> pixels and nplane plane masks +are returned. No mask will have any bits set to 1 in common with any +other mask or with any of the pixels. By ORing together each pixel with +zero or more masks, <var>ncolors</var> * 2^<var>nplanes</var> distinct pixels can +be produced. All of these are allocated writable by the request. +</p> +<dl compact="compact"> +<dt> <samp>`x:Gray-Scale'</samp></dt> +<dt> <samp>`x:Pseudo-Color'</samp></dt> +<dd><p>Each mask has exactly one bit set to 1. If <var>contiguous?</var> is +non-false and if all masks are ORed together, a single contiguous set of +bits set to 1 is formed. +</p></dd> +<dt> <samp>`x:Direct-Color'</samp></dt> +<dd><p>Each mask has exactly three bits set to 1. If <var>contiguous?</var> is +non-false and if all masks are ORed together, three contiguous sets of +bits set to 1 (one within each pixel subfield) is formed. +</p></dd> +</dl> + +<p>The RGB values of the allocated entries are undefined. +<code>X:Alloc-Color-Cells</code> returns a list of two uniform arrays if it +succeeded or #f if it failed. The first array has the pixels allocated +and the second has the plane-masks. +</p> + +<dl> +<dt><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors rgb</i> +<a name="IDX141"></a> +</dt> +<dt><u>Function:</u> <b>x:alloc-colormap-cells</b><i> colormap ncolors rgb contiguous?</i> +<a name="IDX142"></a> +</dt> +<dd><p>The specified <var>ncolors</var> must be positive; and <var>rgb</var> a list or +vector of 3 nonnegative integers. If <var>ncolors</var> colors, <var>nreds</var> +reds, <var>ngreens</var> greens, and <var>nblues</var> blues are requested, +<var>ncolors</var> pixels are returned; and the masks have <var>nreds</var>, +<var>ngreens</var>, and <var>nblues</var> bits set to 1, respectively. If +<var>contiguous?</var> is non-false, each mask will have a contiguous set of +bits set to 1. No mask will have any bits set to 1 in common with any +other mask or with any of the pixels. +</p> +<p>Each mask will lie within the corresponding pixel subfield. By ORing +together subsets of masks with each pixel value, <var>ncolors</var> * +2(<var>nreds</var>+<var>ngreens</var>+<var>nblues</var>) distinct pixel values can be +produced. All of these are allocated by the request. However, in the +colormap, there are only <var>ncolors</var> * 2^<var>nreds</var> independent red +entries, <var>ncolors</var> * 2^<var>ngreens</var> independent green entries, and +<var>ncolors</var> * 2^<var>nblues</var> independent blue entries. +</p> +<p><code>X:Alloc-Color-Cells</code> returns a list if it succeeded or #f if it +failed. The first element of the list has an array of the pixels +allocated. The second, third, and fourth elements are the red, green, +and blue plane-masks. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:free-colormap-cells</b><i> colormap pixels planes</i> +<a name="IDX143"></a> +</dt> +<dt><u>Function:</u> <b>x:free-colormap-cells</b><i> colormap pixels</i> +<a name="IDX144"></a> +</dt> +<dd><p>Frees the cells represented by pixels whose values are in the +<var>pixels</var> unsigned-integer uniform-vector. The <var>planes</var> argument +should not have any bits set to 1 in common with any of the pixels. The +set of all pixels is produced by ORing together subsets of the +<var>planes</var> argument with the pixels. The request frees all of these +pixels that were allocated by the client. Note that freeing an +individual pixel obtained from <code>X:Alloc-Colormap-Cells</code> with a +planes argument may not actually allow it to be reused until all of its +related pixels are also freed. Similarly, a read-only entry is not +actually freed until it has been freed by all clients, and if a client +allocates the same read-only entry multiple times, it must free the +entry that many times before the entry is actually freed. +</p> +<p>All specified pixels that are allocated by the client in the +<var>colormap</var> are freed, even if one or more pixels produce an error. +It is an error if a specified pixel is not allocated by the client (that +is, is unallocated or is only allocated by another client) or if the +colormap was created with all entries writable (by passing +<samp>`x:Alloc-All'</samp> to <code>X:Create-Colormap</code>). If more than one pixel +is in error, the one that gets reported is arbitrary. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:colormap-find-color</b><i> colormap rgb</i> +<a name="IDX145"></a> +</dt> +<dd><p><var>rgb</var> is a list or vector of 3 integers, describing the red, green, +and blue intensities respectively; or an integer <samp>`#x<i>rrggbb</i>'</samp>, +packing red, green and blue intensities in the range 0 - 255. +</p> +<dl> +<dt><u>Function:</u> <b>x:colormap-find-color</b><i> colormap color-name</i> +<a name="IDX146"></a> +</dt> +<dd><p>The case-insensitive string <var>color_name</var> specifies the name of a +color (for example, <tt>`red'</tt>) +</p> +<p><code>X:Colormap-Find-Color</code> allocates a read-only colormap entry +corresponding to the closest RGB value supported by the hardware. +<code>X:Colormap-Find-Color</code> returns the pixel value of the color +closest to the specified <var>RGB</var> or <var>color_name</var> elements +supported by the hardware, if successful; otherwise +<code>X:Colormap-Find-Color</code> returns #f. +</p> +<p>Multiple clients that request the same effective RGB value can +be assigned the same read-only entry, thus allowing entries to be +shared. When the last client deallocates a shared cell, it is +deallocated. +</p> +</dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:color-ref</b><i> colormap pixel</i> +<a name="IDX147"></a> +</dt> +<dd><p>Returns a list of 3 integers, describing the red, green, +and blue intensities respectively of the <var>colormap</var> entry of the +cell indexed by <var>pixel</var>. +</p> +<p>The integer <var>pixel</var> must be a valid index into <var>colormap</var>. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>X:Color-Set!</b><i> colormap pixel rgb</i> +<a name="IDX148"></a> +</dt> +<dd><p><var>rgb</var> is a list or vector of 3 integers, describing the red, green, +and blue intensities respectively; or an integer <samp>`#x<i>rrggbb</i>'</samp>, +packing red, green and blue intensities in the range 0 - 255. +</p> +<dl> +<dt><u>Function:</u> <b>X:Color-Set!</b><i> colormap pixel color-name</i> +<a name="IDX149"></a> +</dt> +<dd><p>The case-insensitive string <var>color_name</var> specifies the name of a +color (for example, <tt>`red'</tt>) +</p> +<p>The integer <var>pixel</var> must be a valid index into <var>colormap</var>. +</p> +<p><code>X:Color-Set!</code> changes the <var>colormap</var> entry of the read/write +cell indexed by <var>pixel</var>. If the <var>colormap</var> is an installed map +for its screen, the changes are visible immediately. +</p> +</dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:install-colormap</b><i> colormap</i> +<a name="IDX150"></a> +</dt> +<dd><p>Installs the specified <var>colormap</var> for its associated screen. All +windows associated with <var>colormap</var> immediately display with true +colors. A colormap is associated with a window when the window is +created or its attributes changed. +</p> +<p>If the specified colormap is not already an installed colormap, the X +server generates a ColormapNotify event on each window that has that +colormap. +</p> +</dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:ccc</b><i> colormap</i> +<a name="IDX151"></a> +</dt> +<dd><p>Returns the Color-Conversion-Context of <var>colormap</var>. +</p></dd></dl> + + +</dd></dl> +</dd></dl> +</dd></dl> +<hr size="6"> +<a name="Rendering"></a> +<a name="SEC11"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC10" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC14" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC14" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 7. Rendering </h1> + +<dl> +<dt><u>Function:</u> <b>x:flush</b><i> display</i> +<a name="IDX152"></a> +</dt> +<dt><u>Function:</u> <b>x:flush</b><i> window</i> +<a name="IDX153"></a> +</dt> +<dd><p>Flushes the output buffer. Some client applications need not use this +function because the output buffer is automatically flushed as needed by +calls to X:Pending, X:Next-Event, and X:Window-Event. Events generated +by the server may be enqueued into the library's event queue. +</p> +<dl> +<dt><u>Function:</u> <b>x:flush</b><i> gc</i> +<a name="IDX154"></a> +</dt> +<dd><p>Forces sending of GC component changes. +</p> +<p>Xlib usually defers sending changes to the components of a GC to the +server until a graphics function is actually called with that GC. This +permits batching of component changes into a single server request. In +some circumstances, however, it may be necessary for the client to +explicitly force sending the changes to the server. An example might be +when a protocol extension uses the GC indirectly, in such a way that the +extension interface cannot know what GC will be used. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:clear-area</b><i> window (x-pos y-pos) (width height) expose?</i> +<a name="IDX155"></a> +</dt> +<dd><p>Paints a rectangular area in the specified <var>window</var> according to the +specified dimensions with the <var>window</var>'s background pixel or pixmap. +The subwindow-mode effectively is <samp>`x:Clip-By-Children'</samp>. If width +is zero, it is replaced with the current width of the <var>window</var> minus +x. If height is zero, it is replaced with the current height of the +<var>window</var> minus y. If the <var>window</var> has a defined background +tile, the rectangle clipped by any children is filled with this tile. +If the <var>window</var> has background x:None, the contents of the +<var>window</var> are not changed. In either case, if <var>expose?</var> is True, +one or more x:Expose events are generated for regions of the rectangle +that are either visible or are being retained in a backing store. If +you specify a <var>window</var> whose class is x:Input-Only, an error +results. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:fill-rectangle</b><i> window gcontext position size</i> +<a name="IDX156"></a> +</dt> +</dl> + +</dd></dl> +<a name="SEC12"></a> +<h2 class="heading"> Draw Strings </h2> + +<dl> +<dt><u>Function:</u> <b>x:draw-string</b><i> drawable gc position string</i> +<a name="IDX157"></a> +</dt> +<dd><p><var>Position</var> specifies coordinates relative to the origin of +<var>drawable</var> of the origin of the first character to be drawn. +</p> +<p><code>x:draw-string</code> draws the characters of <var>string</var>, starting at +<var>position</var>. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:image-string</b><i> drawable gc position string</i> +<a name="IDX158"></a> +</dt> +<dd><p><var>Position</var> specifies coordinates relative to the origin of +<var>drawable</var> of the origin of the first character to be drawn. +</p> +<p><code>x:image-string</code> draws the characters <em>and background</em> of +<var>string</var>, starting at <var>position</var>. +</p></dd></dl> + +<a name="SEC13"></a> +<h2 class="heading"> Draw Shapes </h2> + +<dl> +<dt><u>Function:</u> <b>x:draw-points</b><i> drawable gc position …</i> +<a name="IDX159"></a> +</dt> +<dd><p><var>Position</var> … specifies coordinates of the point to be drawn. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-points</b><i> drawable gc x y …</i> +<a name="IDX160"></a> +</dt> +<dd><p>(<var>x</var>, <var>y</var>) … specifies coordinates of the point to be +drawn. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-points</b><i> drawable gc point-array</i> +<a name="IDX161"></a> +</dt> +<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost +index spans a range of 2. +</p> +<p>The <code>X:Draw-Points</code> procedure uses the foreground pixel and +function components of the <var>gc</var> to draw points into <var>drawable</var> +at the positions (relative to the origin of <var>drawable</var>) specified. +</p> +<p><code>X:Draw-Points</code> uses these <var>gc</var> components: function, +planemask, foreground, subwindow-mode, clip-x-origin, clip-y-origin, and +clip-mask. +</p></dd></dl> + + +<dl> +<dt><u>Function:</u> <b>x:draw-segments</b><i> drawable gc pos1 pos2 …</i> +<a name="IDX162"></a> +</dt> +<dd><p><var>Pos1</var>, <var>pos2</var>, … specify coordinates to be connected by +segments. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-segments</b><i> drawable gc x1 y1 x2 y2 …</i> +<a name="IDX163"></a> +</dt> +<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) … specify coordinates +to be connected by segments. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-segments</b><i> drawable gc point-array</i> +<a name="IDX164"></a> +</dt> +<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost +index spans a range of 2. +</p> +<p>The <code>X:Draw-Segments</code> procedure uses the components of the +specified <var>gc</var> to draw multiple unconnected lines between disjoint +adjacent pair of points passed as arguments. It draws the segments in +order and does not perform joining at coincident endpoints. For any +given line, <code>X:Draw-Segments</code> does not draw a pixel more than once. +If thin (zero line-width) segments intersect, the intersecting pixels +are drawn multiple times. If wide segments intersect, the intersecting +pixels are drawn only once, as though the entire PolyLine protocol +request were a single, filled shape. <code>X:Draw-Segments</code> treats all +coordinates as relative to the origin of <var>drawable</var>. +</p> +<p><code>X:Draw-Segments</code> uses these <var>gc</var> components: function, +plane-mask, line-width, line-style, cap-style, fill-style, +subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style. +It also use these <var>gc</var> mode-dependent components: foreground, +background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin, +dash-offset, and dash-list. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:draw-lines</b><i> drawable gc pos1 pos2 …</i> +<a name="IDX165"></a> +</dt> +<dd><p><var>Pos1</var>, <var>pos2</var>, … specify coordinates to be connected by +lines. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-lines</b><i> drawable gc x1 y1 x2 y2 …</i> +<a name="IDX166"></a> +</dt> +<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) … specify coordinates +to be connected by lines. +</p> +<dl> +<dt><u>Function:</u> <b>x:draw-lines</b><i> drawable gc point-array</i> +<a name="IDX167"></a> +</dt> +<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost +index spans a range of 2. +</p> +<p>The <code>X:Draw-Lines</code> procedure uses the components of the specified +<var>gc</var> to draw lines between each adjacent pair of points passed as +arguments. It draws the lines in order. The lines join correctly at +all intermediate points, and if the first and last points coincide, the +first and last lines also join correctly. For any given line, +<code>X:Draw-Lines</code> does not draw a pixel more than once. If thin (zero +line-width) lines intersect, the intersecting pixels are drawn multiple +times. If wide lines intersect, the intersecting pixels are drawn only +once, as though the entire PolyLine protocol request were a single, +filled shape. <code>X:Draw-Lines</code> treats all coordinates as relative to +the origin of <var>drawable</var>. +</p> +<p><code>X:Draw-Lines</code> uses these <var>gc</var> components: function, +plane-mask, line-width, line-style, cap-style, fill-style, +subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style. +It also use these <var>gc</var> mode-dependent components: foreground, +background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin, +dash-offset, and dash-list. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc pos1 pos2 …</i> +<a name="IDX168"></a> +</dt> +<dd><p><var>Pos1</var>, <var>pos2</var>, … specify coordinates of the border path. +</p> +<dl> +<dt><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc x1 y1 x2 y2 …</i> +<a name="IDX169"></a> +</dt> +<dd><p>(<var>x1</var>, <var>y1</var>), (<var>x2</var>, <var>y2</var>) … specify coordinates +of the border path. +</p> +<dl> +<dt><u>Function:</u> <b>x:fill-polygon</b><i> drawable gc point-array</i> +<a name="IDX170"></a> +</dt> +<dd><p><var>point-array</var> is a uniform short array of rank 2, whose rightmost +index spans a range of 2. +</p> +<p>The path is closed automatically if the last point in the list or +<var>point-array</var> does not coincide with the first point. +</p> +<p>The <code>X:Fill-Polygon</code> procedure uses the components of the specified +<var>gc</var> to fill the region closed by the specified path. +<code>X:Fill-Polygon</code> does not draw a pixel of the region more than +once. <code>X:Fill-Polygon</code> treats all coordinates as relative to the +origin of <var>drawable</var>. +</p> +<p><code>X:Fill-Polygon</code> uses these <var>gc</var> components: function, +planemask, fill-style, fill-rule, subwindow-mode, clip-x-origin, +clip-y-origin, and clip-mask. It also use these <var>gc</var> mode-dependent +components: foreground, background, tile, stipple, +tile-stipple-x-origin, and tile-stipple-y-origin. +</p></dd></dl> + +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +</dd></dl> +<hr size="6"> +<a name="Images"></a> +<a name="SEC14"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC11" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC15" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC11" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC15" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 8. Images </h1> + +<dl> +<dt><u>Function:</u> <b>x:read-bitmap-file</b><i> drawable file</i> +<a name="IDX171"></a> +</dt> +</dl> + +<hr size="6"> +<a name="Event"></a> +<a name="SEC15"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC14" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC14" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="chapter"> 9. Event </h1> + + +<p>These three status routines always return immediately if there are +events already in the queue. +</p> +<dl> +<dt><u>Function:</u> <b>x:q-length</b><i> display</i> +<a name="IDX172"></a> +</dt> +<dd><p>Returns the length of the event queue for the connected <var>display</var>. +Note that there may be more events that have not been read into the +queue yet (see X:Events-Queued). +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:pending</b><i> display</i> +<a name="IDX173"></a> +</dt> +<dd><p>Returns the number of events that have been received from the X server +but have not been removed from the event queue. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:events-queued</b><i> display</i> +<a name="IDX174"></a> +</dt> +<dd><p>Returns the number of events already in the queue if the number is +nonzero. If there are no events in the queue, <code>X:Events-Queued</code> +attempts to read more events out of the application's connection without +flushing the output buffer and returns the number read. +</p></dd></dl> + + +<p>Both of these routines return an object of type <em>event</em>. +</p> +<dl> +<dt><u>Function:</u> <b>x:next-event</b><i> display</i> +<a name="IDX175"></a> +</dt> +<dd><p>Removes and returns the first event from the event queue. If the event +queue is empty, <code>X:Next-Event</code> flushes the output buffer and blocks +until an event is received. +</p></dd></dl> + +<dl> +<dt><u>Function:</u> <b>x:peek-event</b><i> display</i> +<a name="IDX176"></a> +</dt> +<dd><p>Returns the first event from the event queue, but it does not remove the +event from the queue. If the queue is empty, <code>X:Peek-Event</code> +flushes the output buffer and blocks until an event is received. +</p></dd></dl> + + +<p>Each event object has fields dependent on its sub-type. +</p> +<dl> +<dt><u>Function:</u> <b>x:event-ref</b><i> event field-name</i> +<a name="IDX177"></a> +</dt> +<dd><table> +<tr><td><p> window +</p></td><td> +<p>The window on which <var>event</var> was generated and is referred to as the +event window. +</p></td></tr> +<tr><td><p> root +</p></td><td> +<p>is the event window's root window. +</p></td></tr> +<tr><td><p> subwindow +</p></td><td> +<p>If the source window is an inferior of the event window, the +<var>subwindow</var> is the child of the event window that is the source +window or the child of the event window that is an ancestor of the +source window. Otherwise, <samp>`None'</samp>. +</p></td></tr> +<tr><td><p> X-event:type +</p></td><td> +<p>An integer: <var>x:Key-Press</var>, <var>x:Key-Release</var>, +<var>x:Button-Press</var>, <var>x:Button-Release</var>, <var>x:Motion-Notify</var>, +<var>x:Enter-Notify</var>, <var>x:Leave-Notify</var>, <var>x:Focus-In</var>, +<var>x:Focus-Out</var>, <var>x:Keymap-Notify</var>, <var>x:Expose</var>, +<var>x:Graphics-Expose</var>, <var>x:No-Expose</var>, <var>x:Visibility-Notify</var>, +<var>x:Create-Notify</var>, <var>x:Destroy-Notify</var>, <var>x:Unmap-Notify</var>, +<var>x:Map-Notify</var>, <var>x:Map-Request</var>, <var>x:Reparent-Notify</var>, +<var>x:Configure-Notify</var>, <var>x:Configure-Request</var>, +<var>x:Gravity-Notify</var>, <var>x:Resize-Request</var>, +<var>x:Circulate-Notify</var>, <var>x:Circulate-Request</var>, +<var>x:Property-Notify</var>, <var>x:Selection-Clear</var>, +<var>x:Selection-Request</var>, <var>x:Selection-Notify</var>, +<var>x:Colormap-Notify</var>, <var>x:Client-Message</var>, or +<var>x:Mapping-Notify</var>. +</p></td></tr> +<tr><td><p> X-event:serial +</p></td><td> +<p>The serial number of the protocol request that generated the <var>event</var>. +</p></td></tr> +<tr><td><p> X-event:send-event +</p></td><td> +<p>Boolean that indicates whether the event was sent by a different client. +</p></td></tr> +<tr><td><p> X-event:time +</p></td><td> +<p>The time when the <var>event</var> was generated expressed in milliseconds. +</p></td></tr> +<tr><td><p> X-event:x +</p></td></tr> +<tr><td><p> X-event:y +</p></td><td> +<p>For window entry/exit events the <var>x</var> and <var>y</var> members are set to +the coordinates of the pointer position in the event window. This +position is always the pointer's final position, not its initial +position. If the event window is on the same screen as the root window, +<var>x</var> and <var>y</var> are the pointer coordinates relative to the event +window's origin. Otherwise, <var>x</var> and <var>y</var> are set to zero. +</p> +<p>For expose events The <var>x</var> and <var>y</var> members are set to the +coordinates relative to the drawable's origin and indicate the +upper-left corner of the rectangle. +</p> +<p>For configure, create, gravity, and reparent events the <var>x</var> and +<var>y</var> members are set to the window's coordinates relative to the +parent window's origin and indicate the position of the upper-left +outside corner of the created window. +</p></td></tr> +<tr><td><p> X-event:x-root +</p></td></tr> +<tr><td><p> X-event:y-root +</p></td><td> +<p>The pointer's coordinates relative to the root window's origin at the +time of the <var>event</var>. +</p></td></tr> +<tr><td><p> X-event:state +</p></td><td> +<p>For keyboard, pointer and window entry/exit events, the state member is +set to indicate the logical state of the pointer buttons and modifier +keys just prior to the <var>event</var>, which is the bitwise inclusive OR of +one or more of the button or modifier key masks: <var>x:Button1-Mask</var>, +<var>x:Button2-Mask</var>, <var>x:Button3-Mask</var>, <var>x:Button4-Mask</var>, +<var>x:Button5-Mask</var>, <var>x:Shift-Mask</var>, <var>x:Lock-Mask</var>, +<var>x:Control-Mask</var>, <var>x:Mod1-Mask</var>, <var>x:Mod2-Mask</var>, +<var>x:Mod3-Mask</var>, <var>x:Mod4-Mask</var>, and <var>x:Mod5-Mask</var>. +</p> +<p>For visibility events, the state of the window's visibility: +<var>x:Visibility-Unobscured</var>, <var>x:Visibility-Partially-Obscured</var>, or +<var>x:Visibility-Fully-Obscured</var>. +</p> +<p>For colormap events, indicates whether the colormap is installed or +uninstalled: x:Colormap-Installed or x:Colormap-Uninstalled. +</p> +<p>For property events, indicates whether the property was changed to a new +value or deleted: x:Property-New-Value or x:Property-Delete. +</p></td></tr> +<tr><td><p> X-event:keycode +</p></td><td> +<p>An integer that represents a physical key on the keyboard. +</p></td></tr> +<tr><td><p> X-event:same-screen +</p></td><td> +<p>Indicates whether the event window is on the same screen as the root +window. If #t, the event and root windows are on the same screen. If +#f, the event and root windows are not on the same screen. +</p></td></tr> +<tr><td><p> X-event:button +</p></td><td> +<p>The pointer button that changed state; can be the <var>x:Button1</var>, +<var>x:Button2</var>, <var>x:Button3</var>, <var>x:Button4</var>, or <var>x:Button5</var> +value. +</p></td></tr> +<tr><td><p> X-event:is-hint +</p></td><td> +<p>Detail of motion-notify events: <var>x:Notify-Normal</var> or +<var>x:Notify-Hint</var>. +</p></td></tr> +<tr><td><p> X-event:mode +</p></td><td> +<p>Indicates whether the <var>event</var> is a normal event, pseudo-motion event +when a grab activates, or a pseudo-motion event when a grab deactivates: +<var>x:Notify-Normal</var>, <var>x:Notify-Grab</var>, or <var>x:Notify-Ungrab</var>. +</p></td></tr> +<tr><td><p> X-event:detail +</p></td><td> +<p>Indicates the notification detail: <var>x:Notify-Ancestor</var>, +<var>x:Notify-Virtual</var>, <var>x:Notify-Inferior</var>, +<var>x:Notify-Nonlinear</var>, or <var>x:Notify-Nonlinear-Virtual</var>. +</p></td></tr> +<tr><td><p> X-event:focus +</p></td><td> +<p>If the event window is the focus window or an inferior of the focus +window, #t; otherwise #f. +</p></td></tr> +<tr><td><p> X-event:width +</p></td></tr> +<tr><td><p> X-event:height +</p></td><td> +<p>The size (extent) of the rectangle. +</p></td></tr> +<tr><td><p> X-event:count +</p></td><td> +<p>For mapping events is the number of keycodes altered. +</p> +<p>For expose events Is the number of Expose or GraphicsExpose events that +are to follow. If count is zero, no more Expose events follow for this +window. However, if count is nonzero, at least that number of Expose +events (and possibly more) follow for this window. Simple applications +that do not want to optimize redisplay by distinguishing between +subareas of its window can just ignore all Expose events with nonzero +counts and perform full redisplays on events with zero counts. +</p></td></tr> +<tr><td><p> X-event:major-code +</p></td><td> +<p>The major_code member is set to the graphics request initiated by the +client and can be either X_CopyArea or X_CopyPlane. If it is +X_CopyArea, a call to XCopyArea initiated the request. If it is +X_CopyPlane, a call to XCopyPlane initiated the request. +</p></td></tr> +<tr><td><p> X-event:minor-code +</p></td><td> +<p>Not currently used. +</p></td></tr> +<tr><td><p> X-event:border-width +</p></td><td> +<p>For configure events, the width of the window's border, in pixels. +</p></td></tr> +<tr><td><p> X-event:override-redirect +</p></td><td> +<p>The override-redirect attribute of the window. Window manager clients +normally should ignore this window if it is #t. +</p></td></tr> +<tr><td><p> X-event:from-configure +</p></td><td> +<p>True if the event was generated as a result of a resizing of the +window's parent when the window itself had a win-gravity of +x:Unmap-Gravity. +</p></td></tr> +<tr><td><p> X-event:value-mask +</p></td><td> +<p>Indicates which components were specified in the ConfigureWindow +protocol request. The corresponding values are reported as given in the +request. The remaining values are filled in from the current geometry +of the window, except in the case of above (sibling) and detail +(stack-mode), which are reported as None and Above, respectively, if +they are not given in the request. +</p></td></tr> +<tr><td><p> X-event:place +</p></td><td> +<p>The window's position after the restack occurs and is either +x:Place-On-Top or x:Place-On-Bottom. If it is x:Place-On-Top, the +window is now on top of all siblings. If it is x:Place-On-Bottom, the +window is now below all siblings. +</p></td></tr> +<tr><td><p> X-event:new +</p></td><td> +<p>indicate whether the colormap for the specified window was changed or +installed or uninstalled and can be True or False. If it is True, the +colormap was changed. If it is False, the colormap was installed or +uninstalled. +</p></td></tr> +<tr><td><p> X-event:format +</p></td><td> +<p>Is 8, 16, or 32 and specifies whether the data should be viewed as a +list of bytes, shorts, or longs +</p></td></tr> +<tr><td><p> X-event:request +</p></td><td> +<p>Indicates the kind of mapping change that occurred and can be +<var>x:Mapping-Modifier</var>, <var>x:Mapping-Keyboard</var>, or +<var>x:Mapping-Pointer</var>. If it is <var>x:Mapping-Modifier</var>, the +modifier mapping was changed. If it is <var>x:Mapping-Keyboard</var>, the +keyboard mapping was changed. If it is <var>x:Mapping-Pointer</var>, the +pointer button mapping was changed. +</p></td></tr> +<tr><td><p> X-event:first-keycode +</p></td><td> +<p>The X-event:first-keycode is set only if the X-event:request was set to +<var>x:Mapping-Keyboard</var>. The number in X-event:first-keycode +represents the first number in the range of the altered mapping, and +X-event:count represents the number of keycodes altered. +</p></td></tr> +</table> +</dd></dl> + +<hr size="6"> +<a name="Indexes"></a> +<a name="SEC16"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC15" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC17" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC15" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[ >> ]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1 class="unnumbered"> Indexes </h1> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top"><a href="#SEC17">Procedure and Macro Index</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC18">Variable Index</a></td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top"><a href="#SEC19">Concept Index</a></td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr size="6"> +<a name="Procedure-and-Macro-Index"></a> +<a name="SEC17"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC16" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC18" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC16" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[ >> ]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="unnumberedsec"> Procedure and Macro Index </h2> + +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC17_0" class="summary-letter"><b>H</b></a> + +<a href="#SEC17_1" class="summary-letter"><b>X</b></a> + +</td></tr></table> +<table border="0" class="index-fn"> +<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC17_0">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX4"><code>hostname:number.screen-number</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC17_1">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX139"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX140"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX141"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX142"><code>x:alloc-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX151"><code>x:ccc</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX155"><code>x:clear-area</code></a></td><td valign="top"><a href="#SEC11">7. Rendering</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX5"><code>x:close</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX63"><code>x:close</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX64"><code>x:close</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX147"><code>x:color-ref</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX148"><code>X:Color-Set!</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX149"><code>X:Color-Set!</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX145"><code>x:colormap-find-color</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX146"><code>x:colormap-find-color</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX138"><code>x:copy-colormap-and-free</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX104"><code>x:copy-gc-fields!</code></a></td><td valign="top"><a href="#SEC7">4. Graphics Context</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX137"><code>x:create-colormap</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX131"><code>x:create-cursor</code></a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX133"><code>x:create-cursor</code></a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX134"><code>x:create-cursor</code></a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX135"><code>x:create-cursor</code></a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX136"><code>x:create-cursor</code></a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX102"><code>x:create-gc</code></a></td><td valign="top"><a href="#SEC7">4. Graphics Context</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX61"><code>x:create-pixmap</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX62"><code>x:create-pixmap</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX59"><code>x:create-window</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX60"><code>x:create-window</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX17"><code>x:default-ccc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX18"><code>x:default-ccc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX19"><code>x:default-ccc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX14"><code>x:default-colormap</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX15"><code>x:default-colormap</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX16"><code>x:default-colormap</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX20"><code>x:default-gc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX21"><code>x:default-gc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX22"><code>x:default-gc</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX10"><code>x:default-screen</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX26"><code>x:default-visual</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX27"><code>x:default-visual</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX28"><code>x:default-visual</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX165"><code>x:draw-lines</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX166"><code>x:draw-lines</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX167"><code>x:draw-lines</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX159"><code>x:draw-points</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX160"><code>x:draw-points</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX161"><code>x:draw-points</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX162"><code>x:draw-segments</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX163"><code>x:draw-segments</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX164"><code>x:draw-segments</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX157"><code>x:draw-string</code></a></td><td valign="top"><a href="#SEC12">Draw Strings</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX177"><code>x:event-ref</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX174"><code>x:events-queued</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX168"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX169"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX170"><code>x:fill-polygon</code></a></td><td valign="top"><a href="#SEC13">Draw Shapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX156"><code>x:fill-rectangle</code></a></td><td valign="top"><a href="#SEC11">7. Rendering</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX152"><code>x:flush</code></a></td><td valign="top"><a href="#SEC11">7. Rendering</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX153"><code>x:flush</code></a></td><td valign="top"><a href="#SEC11">7. Rendering</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX154"><code>x:flush</code></a></td><td valign="top"><a href="#SEC11">7. Rendering</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX143"><code>x:free-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX144"><code>x:free-colormap-cells</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX105"><code>x:gc-ref</code></a></td><td valign="top"><a href="#SEC7">4. Graphics Context</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX103"><code>x:gc-set!</code></a></td><td valign="top"><a href="#SEC7">4. Graphics Context</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX91"><code>x:get-window-property</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX92"><code>x:get-window-property</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX158"><code>x:image-string</code></a></td><td valign="top"><a href="#SEC12">Draw Strings</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX150"><code>x:install-colormap</code></a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX93"><code>x:list-properties</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX31"><code>x:make-visual</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX32"><code>x:make-visual</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX99"><code>x:map-subwindows</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX98"><code>x:map-window</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX175"><code>x:next-event</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX3"><code>x:open-display</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX176"><code>x:peek-event</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX173"><code>x:pending</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX6"><code>x:protocol-version</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX172"><code>x:q-length</code></a></td><td valign="top"><a href="#SEC15">9. Event</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX171"><code>x:read-bitmap-file</code></a></td><td valign="top"><a href="#SEC14">8. Images</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX11"><code>x:root-window</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX12"><code>x:root-window</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX13"><code>x:root-window</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX56"><code>x:screen-black</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX57"><code>x:screen-black</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX58"><code>x:screen-black</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX39"><code>x:screen-cells</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX40"><code>x:screen-cells</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX41"><code>x:screen-cells</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX9"><code>x:screen-count</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX42"><code>x:screen-depth</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX43"><code>x:screen-depth</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX44"><code>x:screen-depth</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX45"><code>x:screen-depth</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX23"><code>x:screen-depths</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX24"><code>x:screen-depths</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX25"><code>x:screen-depths</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX50"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX51"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX52"><code>x:screen-dimensions</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX47"><code>x:screen-size</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX48"><code>x:screen-size</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX49"><code>x:screen-size</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX53"><code>x:screen-white</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX54"><code>x:screen-white</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX55"><code>x:screen-white</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX7"><code>x:server-vendor</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX101"><code>x:unmap-subwindows</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX100"><code>x:unmap-window</code></a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX8"><code>x:vendor-release</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX33"><code>x:visual-class</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX34"><code>x:visual-class</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX35"><code>x:visual-class</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX36"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX37"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX38"><code>x:visual-geometry</code></a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX65"><code>x:window-geometry</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX66"><code>x:window-geometry-set!</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX90"><code>x:window-ref</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX74"><code>x:window-set!</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC17_0" class="summary-letter"><b>H</b></a> + +<a href="#SEC17_1" class="summary-letter"><b>X</b></a> + +</td></tr></table> + +<hr size="6"> +<a name="Variable-Index"></a> +<a name="SEC18"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC17" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[<a href="#SEC19" title="Next section in reading order"> > </a>]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC16" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[ >> ]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="unnumberedsec"> Variable Index </h2> + +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC18_0" class="summary-letter"><b>X</b></a> + +</td></tr></table> +<table border="0" class="index-vr"> +<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC18_0">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX76"><code>x:CW-Back-Pixel</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX75"><code>x:CW-Back-Pixmap</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX83"><code>x:CW-Backing-Pixel</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX82"><code>x:CW-Backing-Planes</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX81"><code>x:CW-Backing-Store</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX79"><code>x:CW-Bit-Gravity</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX78"><code>x:CW-Border-Pixel</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX77"><code>x:CW-Border-Pixmap</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX71"><code>x:CW-Border-Width</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX88"><code>x:CW-Colormap</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX89"><code>x:CW-Cursor</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX87"><code>x:CW-Dont-Propagate</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX86"><code>x:CW-Event-Mask</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX70"><code>x:CW-Height</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX84"><code>x:CW-Override-Redirect</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX85"><code>x:CW-Save-Under</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX72"><code>x:CW-Sibling</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX73"><code>x:CW-Stack-Mode</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX69"><code>x:CW-Width</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX80"><code>x:CW-Win-Gravity</code></a></td><td valign="top"><a href="#SEC5">3.2 Window Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX67"><code>x:CWX</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX68"><code>x:CWY</code></a></td><td valign="top"><a href="#SEC4">3.1 Windows and Pixmaps</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX130"><code>x:GC-Arc-Mode</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX109"><code>x:GC-Background</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX112"><code>x:GC-Cap-Style</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX125"><code>x:GC-Clip-Mask</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX123"><code>x:GC-Clip-X-Origin</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX124"><code>x:GC-Clip-Y-Origin</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX129"><code>x:GC-Dash-List</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX128"><code>x:GC-Dash-Offset</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX115"><code>x:GC-Fill-Rule</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX114"><code>x:GC-Fill-Style</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX120"><code>x:GC-Font</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX108"><code>x:GC-Foreground</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX106"><code>x:GC-Function</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX122"><code>x:GC-Graphics-Exposures</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX113"><code>x:GC-Join-Style</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX111"><code>x:GC-Line-Style</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX110"><code>x:GC-Line-Width</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX107"><code>x:GC-Plane-Mask</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX117"><code>x:GC-Stipple</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX121"><code>x:GC-Subwindow-Mode</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX116"><code>x:GC-Tile</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX118"><code>x:GC-Tile-Stip-X-Origin</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX119"><code>x:GC-Tile-Stip-Y-Origin</code></a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC18_0" class="summary-letter"><b>X</b></a> + +</td></tr></table> + +<hr size="6"> +<a name="Concept-Index"></a> +<a name="SEC19"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC18" title="Previous section in reading order"> < </a>]</td> +<td valign="middle" align="left">[ > ]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC16" title="Beginning of this chapter or previous chapter"> << </a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Up section"> Up </a>]</td> +<td valign="middle" align="left">[ >> ]</td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left"> </td> +<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h2 class="unnumberedsec"> Concept Index </h2> + +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC19_0" class="summary-letter"><b>C</b></a> + +<a href="#SEC19_1" class="summary-letter"><b>D</b></a> + +<a href="#SEC19_2" class="summary-letter"><b>M</b></a> + +<a href="#SEC19_3" class="summary-letter"><b>N</b></a> + +<a href="#SEC19_4" class="summary-letter"><b>R</b></a> + +<a href="#SEC19_5" class="summary-letter"><b>U</b></a> + +<a href="#SEC19_6" class="summary-letter"><b>V</b></a> + +<a href="#SEC19_7" class="summary-letter"><b>X</b></a> + +</td></tr></table> +<table border="0" class="index-cp"> +<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_0">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#SEC10">colormap</a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX132">cursor</a></td><td valign="top"><a href="#SEC9">5. Cursor</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_1">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX46">depth</a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#SEC3">drawable</a></td><td valign="top"><a href="#SEC3">3. Drawables</a></td></tr> +<tr><td></td><td valign="top"><a href="#SEC3">Drawable</a></td><td valign="top"><a href="#SEC3">3. Drawables</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_2">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX94">map</a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX96">mapped</a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_3">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX127">none</a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_4">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#SEC10">RGB</a></td><td valign="top"><a href="#SEC10">6. Colormap</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_5">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX95">unmap</a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX97">unmapped</a></td><td valign="top"><a href="#SEC6">3.3 Window Properties and Visibility</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_6">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX29">visual</a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX30">Visual</a></td><td valign="top"><a href="#SEC2">2. Display and Screens</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +<tr><th><a name="SEC19_7">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#IDX1">X</a></td><td valign="top"><a href="#SEC1">1. XlibScm</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX126">x:None</a></td><td valign="top"><a href="#SEC8">GC Attributes</a></td></tr> +<tr><td></td><td valign="top"><a href="#IDX2"><code>Xlib</code></a></td><td valign="top"><a href="#SEC1">1. XlibScm</a></td></tr> +<tr><td colspan="3"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a href="#SEC19_0" class="summary-letter"><b>C</b></a> + +<a href="#SEC19_1" class="summary-letter"><b>D</b></a> + +<a href="#SEC19_2" class="summary-letter"><b>M</b></a> + +<a href="#SEC19_3" class="summary-letter"><b>N</b></a> + +<a href="#SEC19_4" class="summary-letter"><b>R</b></a> + +<a href="#SEC19_5" class="summary-letter"><b>U</b></a> + +<a href="#SEC19_6" class="summary-letter"><b>V</b></a> + +<a href="#SEC19_7" class="summary-letter"><b>X</b></a> + +</td></tr></table> + +<hr size="6"> +<a name="SEC_Contents"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1>Table of Contents</h1> +<div class="contents"> + +<ul class="toc"> + <li><a name="TOC1" href="#SEC1">1. XlibScm</a></li> + <li><a name="TOC2" href="#SEC2">2. Display and Screens</a></li> + <li><a name="TOC3" href="#SEC3">3. Drawables</a> + <ul class="toc"> + <li><a name="TOC4" href="#SEC4">3.1 Windows and Pixmaps</a></li> + <li><a name="TOC5" href="#SEC5">3.2 Window Attributes</a></li> + <li><a name="TOC6" href="#SEC6">3.3 Window Properties and Visibility</a></li> + </ul></li> + <li><a name="TOC7" href="#SEC7">4. Graphics Context</a></li> + <li><a name="TOC8" href="#SEC9">5. Cursor</a></li> + <li><a name="TOC9" href="#SEC10">6. Colormap</a></li> + <li><a name="TOC10" href="#SEC11">7. Rendering</a></li> + <li><a name="TOC11" href="#SEC14">8. Images</a></li> + <li><a name="TOC12" href="#SEC15">9. Event</a></li> + <li><a name="TOC13" href="#SEC16">Indexes</a> + <ul class="toc"> + <li><a name="TOC14" href="#SEC17">Procedure and Macro Index</a></li> + <li><a name="TOC15" href="#SEC18">Variable Index</a></li> + <li><a name="TOC16" href="#SEC19">Concept Index</a></li> + </ul> +</li> +</ul> +</div> +<hr size="1"> +<a name="SEC_About"></a> +<table cellpadding="1" cellspacing="1" border="0"> +<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td> +<td valign="middle" align="left">[<a href="#SEC16" title="Index">Index</a>]</td> +<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td> +</tr></table> +<h1>About This Document</h1> +<p> + This document was generated by <em>Neil Williams</em> on <em>July, 17 2007</em> using <a href="http://texi2html.cvshome.org/"><em>texi2html 1.76</em></a>. +</p> +<p> + The buttons in the navigation panels have the following meaning: +</p> +<table border="1"> + <tr> + <th> Button </th> + <th> Name </th> + <th> Go to </th> + <th> From 1.2.3 go to</th> + </tr> + <tr> + <td align="center"> [ < ] </td> + <td align="center">Back</td> + <td>previous section in reading order</td> + <td>1.2.2</td> + </tr> + <tr> + <td align="center"> [ > ] </td> + <td align="center">Forward</td> + <td>next section in reading order</td> + <td>1.2.4</td> + </tr> + <tr> + <td align="center"> [ << ] </td> + <td align="center">FastBack</td> + <td>beginning of this chapter or previous chapter</td> + <td>1</td> + </tr> + <tr> + <td align="center"> [ Up ] </td> + <td align="center">Up</td> + <td>up section</td> + <td>1.2</td> + </tr> + <tr> + <td align="center"> [ >> ] </td> + <td align="center">FastForward</td> + <td>next chapter</td> + <td>2</td> + </tr> + <tr> + <td align="center"> [Top] </td> + <td align="center">Top</td> + <td>cover (top) of document</td> + <td> </td> + </tr> + <tr> + <td align="center"> [Contents] </td> + <td align="center">Contents</td> + <td>table of contents</td> + <td> </td> + </tr> + <tr> + <td align="center"> [Index] </td> + <td align="center">Index</td> + <td>index</td> + <td> </td> + </tr> + <tr> + <td align="center"> [ ? ] </td> + <td align="center">About</td> + <td>about (help)</td> + <td> </td> + </tr> +</table> + +<p> + where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure: +</p> + +<ul> + <li> 1. Section One + <ul> + <li>1.1 Subsection One-One + <ul> + <li>...</li> + </ul> + </li> + <li>1.2 Subsection One-Two + <ul> + <li>1.2.1 Subsubsection One-Two-One</li> + <li>1.2.2 Subsubsection One-Two-Two</li> + <li>1.2.3 Subsubsection One-Two-Three + <strong><== Current Position </strong></li> + <li>1.2.4 Subsubsection One-Two-Four</li> + </ul> + </li> + <li>1.3 Subsection One-Three + <ul> + <li>...</li> + </ul> + </li> + <li>1.4 Subsection One-Four</li> + </ul> + </li> +</ul> + +<hr size="1"> +<p> + <font size="-1"> + This document was generated by <em>Neil Williams</em> on <em>July, 17 2007</em> using <a href="http://texi2html.cvshome.org/"><em>texi2html 1.76</em></a>. + </font> + <br> + +</p> +</body> +</html> |