	The TBL geometry manager widget and friends
	-------------------------------------------

doc :	   contains the manuals for the widgets
examples : contains a test program and several description files
src :	   contains 5 subdirectories; one for each widget


The widgets are Tbl, Lbl, Rc, Sensitive, and Command


Lbl is a debugged/enhanced version of the XV11R2 Xaw Label widget.

Sensitive is the XV11R2 Xaw Simple widget that has been subclassed from Lbl,
instead of vice versa.

Command is the XV11R2 Xaw Command widget that has been subclassed from Sensitive
instead of Label.

Rc is a geometry manager subclassed from Tbl.

Tbl is a geometry manager that lays out a fixed number of widgets according to
a specification patterned after the "tbl" preprocessor for creating tables in
documents.  Thus, to get a bunch of widgets to look like this:

                     --------------------- ----------
                    |                     |          |
                    |                     |          |
                    |                     |          |
                    |---------- ----------|          |
                    |          |          |          |
                    |          |          |          |
                    |          |          |          |
                     ---------- ---------- ----------

The "tbl" input specification would look like this:

                                   c s c
                                   c c ^.

This is just a very simple example.  Actually, the widget is loaded up
with lots of bells and whistles, such as the ability to specify
equal sized columns and/or rows, left, right, or center justify the strings
of the children widgets when they contain newlines (assuming the children can
handle such a request, which the accompanying label widget, "Lbl", does), and
certain widgets can be marked to "take up the slack" when adjusting the
children to fit into the layout. The widget resizes elegantly (it allows resize
requests from the children), looking at resources to determine whether the
widgets, the internal padding, or the inter-child padding (or any combination
of the three) adjust to fit the layout into the new size.

Since an "m by n" layout array of widgets is a simple subset of this widget's
capabilities, I have made it easy to subclass a widget that accepts a different
input specification and merely transforms it into a tbl specification.  For
example, the derived widget "Rc" transforms "2 x 2" into "c c\nc c.".

The "Lbl" widget looks a lot like the Xaw "Label" widget. In addition to some
bug fixes, the two primary differences are:

    1) It allows text with embedded newlines; permitting left,
       center, and right justification of multi-lined text.

    2) Has its own gravity attribute, so that it can be a resource, and so
       that one can be assured that it will work properly.

Since this is my first source contribution after 8 years of helping myself
to Usenet offerings, I have tested these widgets backwards and forwards.
It has been at least 3 hours since I've been able to find any bugs in them.

My apologies to anybody who is offended by the indentation and placement
of my curly braces -- I hate yours, too. :-)

Naturally, I made heavy use of the Xaw widgets as examples.  I could never
have done this without them.  There are, however, certain bugs in the
XV11R2 Xaw label derived widgets that make them lousy to use with Tbl, so
I have fixed them up in the accompanying "Lbl" and rederived "Command" from it.

I hope you like these widgets.  If they are well received, I have several
more in various stages of development.  Let me know about any bugs;  I have
some time to maintain/improve them.

If any of the big toolkit packagers (e.g., HP, DEC, MIT) would like to use
any of this stuff in their tookits, I would be honored. 

