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.