
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.4 (instead of 3.2g)
     HTML widget of Mosaic updated to work with xpm 3.4

  o  There are several improvements for the XmGraph widget 
     interface of Wafe

     - all percent codes in XmGraphCallbacks refering to widgets 
       are now substituted by 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 <Widget>

           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 <TclCommand>       (returns workProcID)
           removeWorkProc <workProcId>


  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 <name> <parent> <resource value pairs>
         
       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).


