Author:  Dan Heller <island!argv@sun.com>
This code is a modified Mailbox.c --the widget which supports "xbiff"
(written by Jim Fulton) which was apparently stolen from Clock.c, the widget
which supports "xclock."  Note, you are witnessing the big bang theory of
software development (everything is a subclass of universeWidgetClass).

Bug fix:
XtRemoveTimeOut() is called before calling XtAddTimeOut().  The old
mailbox would eventually timeout all the time rather than every 30 seconds
because the old timer was never removed for redisplay events or user
generated events.

Destroy() will now destroy the flagup and flagdown pixmaps as well as
other allocated resources.

Enhancements:
User can specify any icon he chooses for either the up flag or the down
flag.  Icons don't need to be the same size.  Note, the defaults remain to
be the flagup/flagdown icons that come with the Mailbox widget.

When new mail comes in, all new messages are scanned for author and subject
and are stored in the "mail" field of the mailwatch data structure.  The user
is supposed to supply a callback function which, upon the arrival of new mail,
will be called.  The "call data" parameter to the callback function will
contain the info about the new mail.

Left button causes the widget to check for new mail.  Middle button
clears the flag and lets it think there is no new mail (reset).

The program "xwatch" gives an example of the intended use of this widget:
The callback function installed does nothing more than print the callback
data (new mail info) to stdout.  You can choose to ignore this and not install
a callback function and and xwatch will be effectively just like xbiff except
for the following "feature" described below.

New "Feature"(?)
The mailbox flag goes up when there is new mail _and_ the user hasn't
read it yet.  As soon as the user updates the access time on the mailbox,
the flag goes down.  I had a pet peeve that xbiff had where you read some
mail but not delete it from the mailbox and the flag would remain up.
I'd always have to click on it to set it down.

BUGS:
Mail _must_ use the "From "-format string as the first 5 chars on a line
to separate the message from other messages (a "message separator").
This is how most mailers deposit mail in /usr/spool/mail.  Sorry MMDF users.

It is assumed that when the user starts up this widget, he knows what
his mail status is (how much he's got, etc).  Only new mail arrived
after the widget is created is accounted for.

Note: This code is remarkably similar to "watch" -- a program I wrote
to check for new mail and behave similarly to what it described above
only printing information on the status line of your terminal on the
title bar of your window (X or suntools).  Requests for this program
and other bug reports about the enclosed software can be sent to me at:

    Dan Heller <island!argv@sun.com>
