This is a program to prepare a fill-out form describing a purchase
order.  There are two things of interest in this program:

 - it uses variable trace callbacks to achieve a spreadsheet-like 
   recalculation functionality
 - it contains code to render the on-screen textual info in PostScript
   for a hardcopy of the form.

The program is provided in the file 'purchase', and it uses the
'fileselector.tcl' code from the GIPSI package written by Matthew Rice
<rice@waterloo.hp.com>.  The Tcl code is devoid of comments, because
they all reside in the Literate Programming source, purchase.w; to get
a printed copy of the commented/annotated source (16 pages), do 'make
printdoc'.

PostScript hardcopy
-------------------

The PostScript hardcopy code is relatively short and can be extracted
for use in other programs. It has the following advantages:

 - the code works for the intended purpose, i.e. it provides an 
   Encapsulated PS rendition of the textual information of a 
   hierarchy of windows
 - it is relatively simple and easy to customize

and deficiencies:

 - the approach is a hack
 - radio- and checkbuttons aren't handled (it shouldn't be difficult, though)
 - horizontal clipping of text is not handled
 - font changes in Text widget are ignored (one font per whole widget)

Usage
  set PSdump [widgets2ps .rootwidget]

to get the PS as a string, or

  widgets2ps .rootwidget filename

to store the PS code in a file.
