This is the README file of patch1 for Wafe 0.97. The new version features in the following items: o The new version is based on Mosaic 2.4 (instead of 2.1) o The new version is based on xpm 3.4a (instead of 3.2g) HTML widget of Mosaic updated to work with xpm 3.4a o There are several improvements for the XmGraph widget interface of Wafe - all percent codes returning widgets are now in the form of widget IDs - the following percent codes are implemented now: for newArcCallback, newNodeCallback, arcMovedCallback, nodeMovedCallback, defaultActionCallback, selectNodeCallback, selectArcCallback, deselectCallback, selectSubgraphCallback %A list of selected arcs %N list of selected nodes %I widget ID of node or arc, which is manipulated for arcMovedCallback %f old "from-Widget" %t old "to-Widget" %F new "from-Widget" %T new "to-Widget" - a few other fixes in connection with multiple reason codes in the XmGraph implementation o There is a new global Tcl variable WAFELIB pointing to the location of the wafe library (usually /usr/lib/X11/wafe) o The new version has an output converter for Athena List widget for resource "list" (necessary for [gV somelist list]) o Support for X11R6's hook objects: An application may register functions, which are triggered at particular control points in the Intrinsics. These functions are intended to provide notifications of "Xt events" such as widget creation, modification, destroyal etc. X11R6 provides a "Hook Object" with several resources for callbacks (createHook, changeHook, configureHook, geometryHook, destroyHook). In Wafe these resources can be set and read using the standard sV and gV functions. The following percent codes can be used in the callback procedures: %w name of the Widget modified, destroyed etc. %W widget ID of the Widget modified, destroyed etc. %t type of the notification describing what happend Supported Wafe command: hooksOfDisplay returns widget ID of the Hook Object, which can be used for sV, gV, showRes etc. The specifyed widget determines the display. In case you experience problems in X11R6 with this Wafe function, i have a bug fix for X11R6's Xt, which i submitted some time ago to the X Consortium. I am not sure how soon this (or another fix for the problem) will be publically available from the X Consortium. Another surprise with X11R6 was the following: wafe compiled with X11R6 is smaller than wafe compiled with X11R5! o Support for Xt's Work Procedures Work Procedures can be used to implement a simple form of background processing. Most application spend most of its time waiting for input. A Tcl Work Procedure can be registered which will be executed whenever Xt is idle. Unless the tcl procedure returns 1, it will be restarted automatically when Xt is idle again. See Xt Intrinsics Manual for more details (XtAppAddWorkProc, XtWorkProc) Supported Wafe commands: addWorkProc (returns workProcID) removeWorkProc o Support for Athena Repeater widget class A Repeater widget is a subclass of the Athena Command widget class, which executes its callback repeatedly when the button is pressed. The most important additional resources are startCallback, stopCallback and various configurations for timeouts. Supported Wafe command to create a Repeater widget: Repeater See: wafe/src/tcl/repeater.tcl o Example for using tcl "trace var ..." facility to control widget resources (cool!) Using Tcl's trace facility it is possible to trigger Tcl commands, whenever these variables are updated (or read or deleted). This makes it for example possible, to define a global variable BACKGROUND, and whenever this variable is modified, the background resources of serveral widget can be updated See: wafe/src/tcl/repeater.tcl o Simple graphical debugger for Wafe (Tcl code) This is a small debugger for Wafe. It is very experimental and has probably many bugs. it is quite dangerous to try to debug the debugger with itself. However, i found already a bug with it in a 6000 line Wafe application (tcl part), so other might like to share it, but don't expect that it puts you out of your socks. It was mostly implemented on one rainy Sunday afternoon. Essentialy, this debugger supports - call level tracing on + Tcl procedures, + Wafe built-ins, and + global Tcl variables (on read, write, unset) - inspection of the current state of + Tcl procedures and + global Tcl variables The debugger can be called by the Tcl Command "wafeDebug" and should be loaded via autoload. The current version uses the Athena widget set, it should be quite easy to provide OSF/Motif support as well. o Wafe's C generator produces now slightly smaller and faster C code. o Improved Imakefile - trying to avoid problems with XCOMM, - autodedecting of OSF/Motif version (only when MOTIF is defined) - new topLevel makefile (MAKEFILE) It can be used to build several variants of Wafe without modifying the Imakefile o Several code improvements for xwafemail and xwafenews (some to tcl procedures rewritten to reduce number of braces needed) o Some bug fixes and functionality improvements for xwafemail and xwafenews (eg: ReplyAll and Update in xwafemail), now only fastmode (-F) for xwafemail is supported. o Finally, there are a few improvements for the tcl scripts in wafe/src/tcl/* -gustaf PS: in order to apply this patch, cd to the wafe home directory, expand this tar file over the 0.97 distribution, perform the usual configuration in wafe/src/Imakefile (as indicated in INSTALL) or use the new MAKEFILE (read the top section of MAKEFILE).