Xbae Library Version 3.8 (see src/version.c) Xbae 3.8 is the third public release. The Xbae library is a set of two Motif widgets XbaeMatrix and XbaeCaption. It was developed using X11R4/X11R5 and Motif 1.1.[0-4] and 1.2.1 under SunOS 4.1.1. It has also been built on an IBM RS/6000 running AIX 3.2 and a Pyramid running OSx 5.1 (under the bsd universe). Thaddeus O. Cooper has ported Xbae to VAX/VMS. Contact him for more information. Xbae should be pretty portable to other platforms. To build the release: 1) Edit Xbae.tmpl and change HaveWcl to NO if you don't have Wcl. 2) xmkmf 3) make World 4) cd to 'examples' and "runtest" to see if things are working 5) make install What's in the release: src - the source code for XbaeMatrix and XbaeCaption doc - PostScript and FrameMaker documents for XbaeMatrix and XbaeCaption examples - some simple examples using XbaeMatrix and XbaeCaption What the widget's do: XbaeMatrix: XbaeMatrix is a Motif widget which presents an editable array of string data to the user in a scrollable table similar to a spreadsheet. The rows and columns of the Matrix may optionally be labeled. Also, a number of "fixed" leading rows or columns may be specified - these behave similarly to the labels. While XbaeMatrix looks and acts like a grid of XmTextField widgets, it actually contains only one XmTextField. This means that XbaeMatrix widgets with hundreds or thousands of rows have much less overhead than they would if they used an XmTextField for each cell. XbaeMatrix has callbacks for doing field validation and customizing traversal. It allows cells to be assigned independent colors. It allows rows, columns and regions of cells to be selected (highlighted). The matrix can be dynamically grown or shrunk by adding and deleting rows and columns at any position. XbaeCaption: XbaeCaption is a simple Motif manager widget used to associate an XmLabel (caption) with it's single child. The label may be either an XmString or Pixmap and can be displayed in any one of twelve positions around the perimeter of the child. XbaeCaption's geometry management technique is to simply "shrink wrap" it's child and display the caption alongside it. By using XbaeCaption with an XmFrame child, groups of related widgets can be labeled similarly to the IBM CUA "Group Box", but with more flexibility. XbaeCaption is also useful for associating labels with individual XmTextField widgets. Bugs fixed in version 3.8: * Changes so widgets compile under Motif 1.2.1 Known problem: the XmTextField doesn't correctly register it's dropsite * Fix function prototypes in Matrix.h * Fix Caption so a Caption Pixmap will use the Captions XmNforeground resource * Include FrameMaker source files for docs Bugs fixed in version 3.7: * XbaeMatrix would occasionally steal the focus from other widgets in the same shell. The Clip widget was changed to only respond to synthetic FocusIn events. * XbaeMatrix StringToAlignmentArray converter should free the array when the conversion fails. * All header files now use a more specific inclusion protection symbol to avoid conflicts with other packages. * The XbaeMatrix documentation incorrectly documented the XbaeMatrixLeaveCellCallbackStruct. Bugs fixed in version 3.6: * XbaeMatrix computes a bad width when XmNvisibleColumns == XmNcolumns. (reported by salevin@drl.mobil.com (S. A. Levin [Stewart])) * Changed XbaeMatrix to allow XmNvisibleRows to be greater than XmNrows. (reported by mark@bryce.llnl.gov (Mark Spruiell)) * The XbaeMatrix methods: XbaeMatrixAddRows, XbaeMatrixDeleteRows, XbaeMatrixAddColumns, XbaeMatrixDeleteColumns, XbaeMatrixSetRowColors, XbaeMatrixSetColumnColors and XbaeMatrixSetCellColor need to check if they are realized. (reported by salevin@drl.mobil.com (S. A. Levin [Stewart])) * Calling XbaeMatrixEditCell before the widget is realized could result in the edit TextField being positioned wrong. * XbaeMatrix needs to call the XmNtraverseCellCallback functions when the widget initially gets traversed into, and it is not currently editing a cell. (reported by mark@bryce.llnl.gov (Mark Spruiell)) * Adding/deleting rows from an XbaeMatrix with XmNfixedRows could later result in a core dump when scrolling to the bottom of the matrix. (reported by nick@ps.quotron.com (Nick Aiuto)) * Changed XbaeMatrix to use XrmPermStringToQuark for R5. Andrew Wason aw@bae.bellcore.com