This is the README file of patch9 for Wafe 1.0. This file describes the changes between Wafe 1.0.8 and 1.0.9. For changes between 1.0 and 1.0.8 please consult the README files contained in the patch kit. General information about Wafe can be found in the World Wide Web via the URL http://www.wu-wien.ac.at/wafe/wafe.html The new version features in the following items: Enhancements for all flavors of Wafe: - Support for cursor management in Wafe: Wafe allows now to change the cursor for all widgets (Athena and Motif Widgets) and allows to specify the appearance of the busy cursor as well. It supports the following features: - The specified cursor can refer to a cursor from the cursor font, or - can refer to a X Bitmap file (the Bitmap file is searched along the FILESEARCHPATH); if a Bitmap file is found, and in the same directory a file with the same name appended by "msk" or "Mask" exists, this file is interpreted as a Bitmap file specifying the mask. - the cursor foreground and background colors can be specified. - a cursor cache has been implemented to reduce the number of conversions needed when animated cursor are needed The command setCursor ? ? can be used the set the cursor in the Window of the specified widget to the specified cursor. The cursor name may refer to a name in the cursor font (see /usr/include/X11/cursorfont.h, without the leading "XC_"), or otherwise to an X Bitmap file (and Mask file; see above). Optionally the foreground and background colors of the cursor can be specified as well (if these are missing, white and black are used). If the specified Widget was set busy (by issuing the command "setBusy True") at the time setCursor was called, this command alters the appearance the busy cursor of that Widget. In addition the default appearance of the busyCursor can be altered via resources. The following sample resources define application wide the busy cursor *busyCursor: gumby *busyCursorForeground: red *busyCursorBackground: pink One can specify the default busy cursor specifically for widgets or widget classes as well, as the following example demonstrates *mydialog.busyCursor: spider *mydialog.busyCursorForeground: green In order to test whether a Widget is currently busy or not, the new boolean function isBusy can be used. - added regression test for Tcl scripts to detect bugs trying to sneak into the distribution earlier - extended Wafe's dynamic string implementation - converted more internal routines to Wafe's dynamic string implementation (caught places for potential allocation failures) - fixed a name clash fur "flush" (Tcl-file flush and flush for x server); the latter one is called now xflush - fixed a bug in percent substitution for %w and %W under R6 (the bug was introduced in patch8) - made wafeMMgetValue more robust - "../tcllib" appended to the auto_path to make testing the Tcl examples in wafe/src/tcl more convenient Enhancements for Athena Widget Set flavors of Wafe: - allowing again bitmaps to be used as pixmaps - library file XawText.tcl has now an additional function "XawTextDelete" either * to delete the selection, if there is one, or * to delete the next character (if no text is selected) - the handling of the list resource of the List widget has been modified, such it works now with X11R5 and X11R6 (and most likely as well with R4). Test examples for setting this resource can be found in wafe/src/tcl/list_tst - provided a function that converts Tcl-style argvs into NULL terminated string arrays (Xt-style); currently used only be the Athena List widget - better (well depends on point of view) X11R6 Xaw support: since the widget classes "Clock", "Logo" and "Mailbox" have been removed from the X11R6 Xaw library (and from the X11R6 Xaw3d library as well), Wafe does not include support for these widget classes for the time being - fixed version of Xaw3d for X11R6 provided on the server (includes fixes for Label.c, the Layout widget class, and a fix for the Linux Imakefile) ftp.wu-wien.ac.at:pub/src/X11/Xaw3d-1.0.1-src.tar.gz a linux shared library can be found at the same place. Information about various versions of Xaw3d is available under http://www.wu-wien.ac.at/wafe/wafe.html Enhancements for Motif flavors of Wafe: - added output converter for attribute classes VerticalInt and HorizontalInt - XmString to String conversion routines rewritten * converter is now truly reversible (old version had troubles with repeated, leading and trailing newlines; the Motif function used in old version did not preserve these) * new version is based on Wafe's dynamic strings (old version could overwrite allocated area for large XmStrings or very long charset names) * a few memory leaks fixed - the new built-in function String XmGetText Widget resourceName returns from a resource of Type XmString or String the string value. If the resource type is String the result is equivalent to [gV Widget resourceName]. If the resource type is XmString, the result will not include any tags (font tags, string direction, etc). If the specified resource is invalid, an Tcl-error is generated Enhancements for Motif 2.0 flavors of Wafe: - the following procedures have been added XmCSTextReplace - percent codes * %p (position) for XmComboBox, and * %s (text) for XmCSText fixed (had incorrect types) Fixes for additional widget classes: - provided summarizing README files about in which respect the packaged implementations of the additional widget classes differ from the original distributions for * HTML (wafe/lib/libhtmlw/README.wafe) * XmGraph (wafe/lib/XmGraph/README.wafe) * mtree (wafe/lib/mtree/README.wafe) - various small patches to reduce the number of warnings during compilation of additional widget classes Tcl sample scripts: - new scripts * pix_tst (tests various forms of pixmap settings using Athena widgets) * list_tst (tests various forms of setting of the list resource of the List widget class of the Athena widget set) * m-hourglass (visualizes progress report using a changing cursor image) * m-notebook2 (yet another scipt using the Motif 2.0 widget set) - several fixes and improvementes for m-htmlEdit Changes for Perl written applications - all application using text widgets use the XawTextDelete function (see above) In order to apply this patch, be sure that your Wafe installation is on the Wafe 1.0 level (or newer), cd to the Wafe home directory, expand this tar file over the old distribution; if you are a newcomer, please note that you have to get wafe-1.0.tar.gz and expand it, before expanding the patch release. If appropriate, remove and rebuild the following libraries - wafe/lib/plotter/At/libAt.a (fixes for Axis) - wafe/lib/Xaw3d/libXaw3d (fixes for Layout) - wafe/lib/layout/liblayout.a (fixes for Layout) - wafe/lib/layout/libm-layout.a (fixes for Layout) - wafe/lib/XmGraph/libgraph.a (fixes for Motif 2.0) - wafe/lib/libhtmlw/libm-htmlw.a (fixes for Motif 2.0) - wafe/lib/libhtmlw/libhtmlw.a (fixing memory leak, Motif 2.0) and perform the usual configuration in wafe/src/Imakefile (as indicated in INSTALL) or use the new TOPMAKE (read the top section of wafe/src/TOPMAKE). If you use Xaw3d, will have to rebuild the Xaw3d library manually. Finally, don't forget to install the new version! Gustaf Neumann