packages icon
				  Xo
			 The Open Widget Set
			     Release 2.1
			     10 Aug 1992
			      Pete Ware
	   README,v 2.1 1992/08/11 00:33:54 pete Exp

Introduction.

   Xo is a widget set with functionality similar to that of Motif but
   with a cleaner design.  It interacts well with other widget sets
   and, more importantly, it is easy for others to write widgets to extend
   the base widget set.  Documentation is quite extensive and
   accurate.  Walking (hierarchical) and pulldown menus are provided.
   Keyboard traversals (using the keyboard instead of the mouse) and
   hardcopy output (at least postscript) are planned.  In particular,
   all the header files are programmatically generated.

   The latest version can be found in archive.cis.ohio-state.edu:pub/Xo/*
   Contact ware@cis.ohio-state.edu for more information.

   Current widgets implemented are:
   Box		A manager widget that places widgets in a rectangular
		arrangment with identical sizes.
   Button	A widget that allows the user to ``press'' a button to
		cause something to happen.
   Column	Arranges children in a column
   CompBase	Provides common functionality for composite widgets.
   ConsBase	Provides common functionality for constraint widgets.
   Grip		A widget for allowing user to change widget dimensions
   Label	A widget that displays either text or a pixmap.
   Menu		A manager widget for holding the widgets in a menu.
   MenuBar	A manager widget for holding pulldown menus.
   MenuBarButton For pulldown menus inside a MenuBar.
   MenuButton	A widget that is placed inside of a menu.  Allows the
		display of either text or a pixmap.  Submenus can be
		attached to a menubutton.
   MenuShell	An override shell that allows multiple children
		(speeds up submenus signicantly).
   Obj2dBorder	Draws a simple line for border edge.
   Obj3dborder	Draws a beveled edge for a border.
   ObjArrow	An arrow that can point left, right, up or down.
   ObjBorder	Defines the basic behavior of borders.
   ObjDraw	Provides common function for gadgets.
   ObjLabel	A gadget that displays lines of text
   ObjLabelFormat
   		A gadget that allows for embedded control strings to
		signify formatting.
   ObjPixmap	A gadget that displays a pixmap (not yet implemented).
   Row		Arranges children in a row
   Scrollbar	Allows user to interactively change viewing area (incomplete).
   Seperator	A gadget that draws a chiseled edge.  Typically used in a
		\class{Label} widget to distuinguish between sections in
		a menu (soon implemented, not yet).
   Simple	A widget that provided common functionality for many of
		the widgets.  Never directly used.
   Vpane	Arranges widgets in a column and allows the user to
		interactively change the height.

Contents.

   ./X11	- For widget set include files
   ./X11/Xo	- The Xo include files.  MOST ARE AUTOMATICALLY GENERATED.
   ./build	- A program that actually generates the Xo include
		  files and documentation
   ./doc	- The LaTeX documentation for the system.
   ./examples	- Various example programs
   ./examples/xfontsel - Port of the xfontsel program to this widget set
   ./libtable	- A library that implements a generic insert/find/destroy
		  utility (currently only fixed size hashing).
   ./spec	- The description of the widget set that ``build'' uses to
		  generate the include files and documentation
   ./src	- The source for the Xo widgets
   ./test	- Test programs

Portability.

   This code is regularly compiled and run under:
        ______________________________________________________________________
        Machine	OS	       			Compiler		X11
        ______________________________________________________________________
   	Sun 3	SunOS 4.1      			gcc -Wall		R4,R5
	Sun 4	SunOS 4.1			gcc -Wall		R4,R5
	Sun 4	SunOS 4.1			cc			R4,R5
        ______________________________________________________________________


   This code has compiled and run under:
        ______________________________________________________________________
        Machine	OS	       			Compiler		X11
        ______________________________________________________________________
	Sun 4	Solarix 2.0			cc			R5
	SGI	IRIX 4.0, IRIX 3.3		cc
	E&S	ESV2.0				cc -systype bsd43
        ______________________________________________________________________

Installation.

   1. Examine ./Xo.tmpl.  It has an option for compiling with
      gcc.  If you have TeX/LaTex installed, you may also want to
      define HasTeX here so doc/Makefile gets generated correctly
   2. "xmkmf" to generate ./Makefile
   3. "make Makefiles" (to generate all the subdirectories' Makefiles)
   4. "make"
   5. "make depend" (if you like)

   Note that the "build" program must exist so the include files
   in X11/Xo can get generated from the specification in ./spec.  This
   also generated most of the LaTeX documents in ./doc.

Testing.

   Only one test program exists in ./src/test.

   A port of xfontsel to use pulldown menus is in ./examples/xfontsel.
   This is currently broken.