
                   Three-D Athena Widgets (Xaw3d)
                          Kaleb S. Keithley
                   kaleb@jpl-devvax.jpl.nasa.gov

Features:

This is Release 0.6 (17 Feb, 1993) of a set of 3-D widgets based on the 
R5 Athena Widget set.  The Three-D Athena may be used as a general 
replacement for the Athena (Xaw) Widget set.

In general, you may relink almost any Athena Widget based application with 
the Three-D Athena Widget set and obtain a three dimensional appearance.  
On systems with shared libraries, you can replace your shared libXaw with 
libXaw3d and obtain the three dimensional appearance without even relinking.

In this release, I have tested all of the clients distributed on the R5 MIT 
source tape, plus xfig-2.1.5, xarchie-1.3, and aXe-3.1.  All Xaw3d sources 
have been thoroughly delinted using Sun's /bin/lint and gcc using -traditional 
-pedantic -Wall and -ansi -pedantic -Wall.

Top and bottom shadow colors, shadow width, top and bottom shadow contrast
should be self explanatory, and may be set via the usual and customary 
methods, e.g. app-defaults, .Xdefaults, programmatically, with editres, 
etc.  The user data resource may be used to "hang" application specific 
data on a widget, and is only settable programmatically.


This release adds the following features:

    o The Layout widget.  If I may borrow the phrase, this is an insanely
      great widget written by Keith Packard, and introduced at the '93
      X Technical Conference.  I have included it in Xaw3d, with Keith's
      permission, because Xaw has been in need of a versatile manager
      widget.  Subclassed from Constraint, the Layout widget uses TeX-
      like semantics to describe where to place children and how to do 
      geometry management.

    o Scrollbar with arrows.  This is an Athena-based arrowhead-style 
      Scrollbar written by Mitch Trachtenberg that is 100% compatible
      with the normal Athena Scrollbar.  Selection of the normal style
      or the arrow style Scrollbar is a compile-time option for Xaw3d.
      The arrow style scrollbar is available separately on export in 
      the file: /contrib/Xaw.Scrollbar.mta.Z

    o Bug fixes.  More bug fixes than you can shake a stick at.


Known problems:

    o You won't be able to replace shared libXaw with libXaw3d on systems
      with SVR3 style shared libraries.

    o On SVR4/386, I've had reports that replacing shared libXaw with 
      libXaw3d works, and I've reports that it doesn't.  Try it and see.

    o Xaw3d pixel allocation doesn't behave well when beNiceToColormap
      is False and the Default Colormap is full.  Unfortunately, I've
      seen the Motif algorithm that handles this situation...  Anyone
      else want to take a stab at it?


aXe and xarchie:

      aXe and xarchie won't compile against Xaw3d because they subclass 
      the Xaw widgets themselves.  To solve this, I now have a pair of 
      patches for these programs.  See below for where to get these patches.

      Renaming/replacing shared libXaw with libXaw3d will definitely break 
      unpatched aXe and xarchie.


Getting:

Xaw3d may be found on export.lcs.mit.edu (18.24.0.12) and possibly other
sites; check archie.  On export, it may be found in the file:

    ~ftp/contrib/Xaw3d/R5/Xaw3d-0.6.tar.Z

There is no patch file -- it would be larger than the tar file.

Patches for xarchie-1.3 and aXe-3.1 may be found in the files:

    ~ftp/contrib/Xaw3d/R5/xarchie3d.patch.
    ~ftp/contrib/Xaw3d/R5/aXe3d.patch.


Building:  

Untar the distribution from the base of your MIT source tree.  This will 
create the directory .../mit/lib/Xaw3d.  'cd' there and:

    'make Makefile; make includes; make depend; make; make install'.  

The Imakefile contains the line:

#    EXTRA_DEFINES = -DARROW_SCROLLBAR

If you want the arrow-scrollbar, then uncomment the line by deleting the '#'.

The Imakefile uses the Xaw symbols in .../mit/config, so if you have 
debugging, profiling, shared libs, etc. specified for Xaw, you'll get 
them in Xaw3d too.


Using:

Just relink your Xaw based application with -lXaw3d.

To obtain an appearance similar to another well know widget set, use the 
following resources:
    *background:        LightSkyBlue
    *shapeStyle:        Rectangle
    *beNiceToColormap:  False

By default, Label widgets do not have shadows drawn for them.  You can
force shadows to be drawn for specifying:
    *shadowWidth: 2

If you'd like the default behavior (i.e. not 3-D) on pulldown menus, use:
    *SmeBSB*shadowWidth: 0


Credits (in chronological order of their contribution):

          All the people at the X Consortium

          Achille Hui (eillihca@drizzle.stanford.edu)
          Robert Withrow (witr@rwwa.com)
          Malcolm Strickland (chuck-strickland@orl.mmc.com
          David Flanagan (david@ora.com)
          Jamie Zawinski (jwz%thalidomide@lucid.com
          Frank Terhaar-Yonkers (fty@bizarre.trpnc.epa.gov)
          Mike Schulze (mike@cs.curtin.edu.au)
          Gustaf Neumann (neumann@dec4.wu-wien.ac.at)
          Jerry Whelan (guru@stasi.bradley.edu)
          Mark Rawling (mwr@mel.dit.csiro.au)
          Tim Theisen (tim@cs.wisc.edu)
          Mitch Trachtenberg (mitch@mta.com)
          Keith Packard (keithp@ncd.com)


Comments, fixes, etc. to: 
          kaleb@jpl-devvax.jpl.nasa.gov

