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: 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