This is the README file of patch8 for Wafe 1.0. This file describes the changes between Wafe 1.0.7 and 1.0.8. For changes between 1.0 and 1.0.7 please consult the README files contained in the patch kit. The new version features in the following items: Enhancements for all flavors of Wafe: - Caught a few more error cases, where Xpm routines could lead to hard X errors - Length limitations for callback and action commands removed: in versions before Wafe 1.0.8, callback commands could be at most 4KB long, action commands were limited to 1KB; now, the only limitation for these is available memory. The length limitation was not serious for most situations; however, since the length was refering to the length after percent substitution, certain substitions were length limited as well, which could leat to serious problem with eg. the Motif Text widget. - overall code improvements: * the code generated by Wafe c code generator is faster and more compact (e.g. in callback.c large sequences of if-tests were replaced by a switch statement, folding of identical code pieces, improved locality). * table driven command creation in generated code * replacing static structures by dynamic strings * folding constant strings (helps mostly on machines, that have to compile with -fwritable-strings or the like) * declaring read-only strings as "const" to improve share-ability (using _Xconst, which is supposed to be portable) * improved memory and resource management (necessary for fileSearchProc resource of XmFileSelectionWidget) * binaries of wafe or mofe are between 35 and 45KB smaller in 1.0.8 than in 1.0.7 (on Linux, measured with size: text and bss are smaller) - made code more robust: * more tests for NULL strings (esp. for HTML* commands) * avoid XKeysymToString for non existing keysyms Improved support for pixmaps: - Immediate pixmaps: * pixmap files don't have to be external files, but can be included in Tcl as well * requires XPM to be configured - Support for Motif's Image Cache mechanism: allows to load pixmap-file, bitmap-files or immediate pixmaps under a certain name into the image cache for later usage in resource specifications - Improved support in changePixmap for setting shapes in MOTIF for alignments "beginning", "centered" and "end" - In Motif flavors of Wafe, setValue (sV) never shapes a pixmap, changePixmap however shapes it. As a consequence the m-rdd demo does currently not shape the drag window. Feature-Table pixmap handling : xpm-immediate xpm-file xbm-file xbm-immediate image cache x x x - value x x x - changePixmap x x - - Notes: image cache: - The image cache mechanism allows to install images under some name, which can be used then as resource value. - only available in Motif versions. - currently, xpm- or xbm-files or immediate xpm-pixmaps can be installed as images in the image cache. - shaped pixmap are not supported via image cache value: - used to set bitmaps or pixmaps to labels, etc. - available in Motif or Athena flavors - currently, names of a) xpm- or xbm-files b) immediate xpm-pixmaps, or c) names of entries in the image cache (see above) can be be used 1) in resource mechanisms (resource files, merge resources, etc) 2) in argument list of widget creating commands 3) in setValues (sV) commands changePixmap: - used to set SHAPED pixmaps to labels, icons etc. - available in Motif or Athena flavors - uses Wafe's pixmap cache, no interaction with Motif's image cache available Enhancements for Motif flavors of Wafe: - support for fileSearchProc and dirSearchProc in XmFileSelectionBox widget class; for example, fileSearchProc allows to provide user defined routines to return the file names of the file listing etc. in order to provide additional filtering, removing certain postfixes, etc. - Change in percent codes for XmDrawingArea and XmDrawnButton: the percent code for the "id of the window where event occurred" changed form %w to %i; %w should be always widget name - new command to to load images intp the image cache Boolean XmInstallImage input arg 1: widget to determine display input arg 2: filename or data input arg 3: short name The second argument can be * a name of a pixmap file (.xpm) * a name of a compressed pixmap file (.xpm.gz) * an immediate pixmap * a name of a bitmap file - an improved version of Peter Sylvester's htmlEdit script (many thanks to Peter!) Fixes for additional widget classes: - Fix for Ghostview: percent codes for callback routines for width and height changed form %w and %h to %u and %v; %w should be always widget name - Fix for Ghostview support in Motif: file name change was realized by ghostview widget; fixed by avoiding the problem from Wafe - Fix for XbaeWidget class: percent codes %C and %R for callback routines were ignored - Fixed a bug concerning transparent .gif pictures in the html widget - Some minor code improvements in the html widget (avoiding multiple color lookups) Improved wafeperl for Perl4 and Perl5: - fixed a bug in construction of application class name 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 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/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) 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