Appendix G
© 1995 , 1996 Gregg M. Townsend, Ralph E. Griswold, and Clinton
L. Jeffery
Changes Since Version 9.0
There are two changes to the graphics facilities of Version 9.3 of Icon since
the last previously released version, 9.1:
- color names are case-insensitive
- the default for
i in WDelay(W, i)
is 1.
Version 9.1 of Icon differs from Version 9.0 in several minor ways. This
appendix lists the changes that are most significant. Most programs will
be unaffected by the changes.
Windows
Windows can no longer be resized by the user unless the new resize
attribute is set to "on". Resizing by the program
is unaffected.
All windows now handle exposure events when one is blocked awaiting input.
Moving a dialog box, for example, no longer leaves a blank area in the program
window underneath.
Closing a window now invalidates future access to its canvas by any other
bindings that may still exist.
The image of a window produced by image() and tracing now includes
information about the window. The form is
window_i, j(label)
where i is the serial number of the canvas, j
is the serial number of the graphic context, and label is the
label.
Attributes
WAttrib(name=value) can no longer produce an error. Unrecognized
names or illegal values just cause WAttrib() to fail.
WAttrib(name) now always returns a legal value for the names
"drawop", "pattern", and "pointer".
The default pointer for the X Window System is "left ptr".
Measurements
The default starting point for rectangular areas is now the upper-left pixel
of the window, regardless of the setting of the dx or dy
attributes. Previously, it was (0,0). This change affects only those programs
that set dx or dy.
Ellipses drawn by DrawArc() are one pixel wider and taller
than before. This makes the interpretation of width and height by DrawArc()
consistent with FillArc() and other procedures.
The default line width is now 1. It previously was 0, giving similar but
less predictable results under the X window system.
The appearance of dashed and striped lines has been improved for lines having
a width greater than 1.
Text
The text cursor, when enabled, is always drawn in the foreground color.
It is a little larger (more prominent) than before.
DrawString() draws all characters exactly as given, with no
special interpretation. Previously, the newline character was interpreted
specially and the corresponding character of a font could not be drawn.
WWrite() and WWrites() still interpret newline,
tab, and other formatting characters.
Images
Transparency is now handled properly when reading GIF images.
For readability, spaces may now appear in the front portion of a DrawImage()
string.
Dialog Procedures
Dialog procedures now produce a beveled, three-dimensional appearance. Dialog()
has been renamed TextDialog(), and some new dialog procedures
have been added. ColorDialog() allows the selection of a color.
SelectDialog() offers a choice of the items in a list. ToggleDialog()
displays a set of independently selectable options.
Back to Contents