Appendix H
© 1995, 1996, 1997 Gregg M. Townsend, Ralph E. Griswold, and Clinton
L. Jeffery
The X Window System
This appendix discusses issues that are specific to implementations of Icon
running under the X Window System.
Under X, an Icon program is a client that performs graphical I/O on a server.
The client and server can be the same machine, as when a program runs and
displays locally on a workstation, or on different machines. A remote server
can be specified by using the display attribute when opening a window.
There are many implementations of X, and different systems provide different
features, so this appendix can't say precisely how things will work in all
situations.
Color Specifications
Color specifications that are not recognized by Icon are passed to X for
interpretation. X servers typically offer large sets of color names, including
unusual ones such as orchid
and papayawhip
.
Color correction is controlled by the gamma
attribute. The
default value of gamma
is based on the color returned by X
for the device-independent X color specification RGBi:.5/.5/.5
.
On older X systems that do not recognize this specification, a configuration
default value is used.
The interpretation of RGBi:.5/.5/.5
depends on properties
associated with the root window. These properties are set by the xcmsdb
utility. The library program xgamma
can be used to set the
properties to approximate a particular gamma value.
Font Specifications
In interpreting a font specification, Icon recognizes the following font
characteristics and tries to match them as well as possible against the
available X fonts:
condensed, narrow, normal, wide, extended
light, medium, demi, bold, demibold
roman, italic, oblique
mono, proportional
sans, serif
The same specification can produce fonts of different appearance on different
servers.
If a font specification is not understood or matched by Icon's font naming
system, it is passed verbatim to X as a font name. This allows the use of
native X font specifications, including wild cards. As a special case, a
font specification of "fixed"
(without any size or
other characteristics) is passed to X as a font name without interpretation.
Images
In ReadImage()
, if an image file is not a valid GIF file, an
attempt is made to read it as an X Bitmap or X Pixmap file.
In WriteImage()
, if the file name ends in .xbm
or .XBM
, an X Bitmap file written. If the file name ends in
.xpm
or .XPM
, an X Pixmap file is written. If
the file name ends in .xpm.Z
, a compressed X Pixmap file is
written. In all other cases a GIF image is written.
X Resources
Default()
returns values registered with the X Resource Manager.
These values often are set by an .Xresources
or .Xdefaults
file.
Keyboard Event Codes
Icon uses X keysym codes as event codes. The actual code returned
for a particular key depends on the configuration of the X server; this
can be altered dynamically by the xmodmap utility. For example, the
Sun keypad has one key labeled "3", "PgDn", and "R15".
Whether this key produces an Icon event "3"
, Key_PgDn
,
Key_R15
, or even something else depends on the X configuration.
The library file keysyms.icn
lists many of the possible codes. For
maximum portability, use only those that appear in Appendix D.
Cursors and Pointers
The text cursor is an underscore character. It is visible only when the
cursor attribute is on and the program is awaiting input in WRead()
or WReads()
. The cursor does not blink and may be hard to locate
in a window containing a large amount of text.
The mouse location indicator, set by the pointer attribute, is selected
from the X cursor
font. The following values are accepted:
The default mouse location indicator is "left ptr"
.
Back to Contents