[1293] in linux-announce channel archive
Xbae-4.3 released
daemon@ATHENA.MIT.EDU (Lars Wirzenius)
Tue Nov 7 13:20:40 1995
Date: Mon, 6 Nov 1995 21:52:36 +0200
From: Lars Wirzenius <wirzeniu@cc.helsinki.fi>
To: linux-announce@vger.rutgers.edu
Reply-To: linux-announce-owner@vger.rutgers.edu
From: lister@frost.bain.oz.au (Andrew Lister)
Subject: Xbae-4.3 released
Reply-To: lister@bain.oz.au
Return-Receipt-To: lister@bain.oz.au
Approved: linux-announce@news.ornl.gov (Lars Wirzenius)
Newsgroups: comp.os.linux.announce
Followup-to: comp.os.linux.x
Organization: ?
-----BEGIN PGP SIGNED MESSAGE-----
Xbae version 4.3 has been uploaded to
ftp.x.org://contrib/widgets/motif/Xbae-4.3.tar.gz
If you are on the mailing list, it can also be retrieved by sending
mail to xbae-request@bain.oz.au, with Subject: set to "archive". In the
body of the message put
get Xbae-4.3.README
get Xbae-4.3.tar.gz
Here is the README file:
Xbae Library version 4.3
- ------------------------
NOTE: There have been a number of changes from the previous release.
Please ensure you read this file thoroughly! The XbaeMatrix manual
page should also be up to date so have a good read of this too.
See the INSTALL file for installation procedure.
Once again, comments, questions, bugs & postcards can be directed to
Andrew Lister (lister@bain.oz.au).
For those of you not already on the mailing list and would like to subscribe,
send mail to
xbae-request@bain.oz.au
with "subscribe" in the Subject: field.
What the widgets 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.
Changes in 4.3
- --------------
* Added an XbaeVersion to Matrix.h. The value for this is calculated in a way
similar to how Motif does it:
#define XbaeVERSION 4
#define XbaeREVISION 3
#define XbaeVersion (XbaeVERSION * 1000 + XbaeREVISION)
This brings another header file into the release - patchlevel.h.
* Merged in another patch from Jay Schmidgall that added the resources
XmNcellShadowTypes, XmNcellUserData, XmNclipWindow, XmNcolumnShadowTypes,
XmNcolumnUserData, XmNrowShadowTypes, XmNrowUserData and XmNtextField.
Also some more public functions to manipulate the data.
See the manual page for more information on these.
* Also added two more demo programs from Jay, fifteen and select-push
* Added row and column label colour resources (suggested by Adam Kerrison,
Adam.Kerrison@micromuse.co.uk)
* Merged in a patch from Jason Smith <js81736@internet.sbi.com>
that allows the Matrix to be compiled using Sunos 4.1.x Openwindows 3.0
and Motif 1.1.x
* Removed the line in SetValues() that resets the scrollbar to 0 when
the Matrix is redrawn (suggested by Adam Kerrison also)
* Added more public routines: XbaeMatrixIsRowSelected(),
XbaeMatrixIsColumnSelected(), XbaeMatrixIsCellSelected(),
XbaeMatrixFirstSelectedRow(), XbaeMatrixFirstSelectedColumn(),
XbaeMatrixFirstSelectedCell(), XbaeMatrixYToRow(), XbaeMatrixXToCol()
Suggested by Adam Kerrison.
* Fixed a bug with XmNtopRow and XmNleftColumn, found by Lori Corbani
(lec@informatics.jax.org)
* Fixed a bug that caused the selectedCells resource to not be updated if
a row or column was not visible. Pointed out by Jay Schmidgall.
* Added some new public functions - XbaeSelectAll() - to select all the
cells in the matrix which XbaeGetNumSelected() which returns the number
of selected cells in the matrix. This value is updated dynamically to
prevent traversing the entire matrix. Suggested by Eric Bruno
(bruno@nsipo.arc.nasa.gov)
* Looked some more into drawing a pixmap in a cell. Had it working but
decided that the method originally inspired by Kevin Brannen was less
than satisfactory and needs to be rethought. The current idea is to
allow a user defined widget, whether it be a label, togglebutton, etc.
widget, to be drawn in a cell.
* Added the XDesigner contribution from Eric Bruno (bruno@nsipo.arc.nasa.gov)
* The user can now dynamically change the width of a column by using the
Shift Key and middle button and dragging the column to a new position.
A column cannot be resized to less than one character.
* Added the Rogue Wave View.h++ contribution from Mark Steckel
(msteckel@aracada.com)
* Added a resizeCallback called when the matrix is resized so columns
can be adjusted, etc. Patch from Mark Steckel.
* Removed the losingFocusCB that was added in 4.0 as it was causing problems
and the overhead was not necessary, particularly in the case of a very
lengthy leaveCellCallback routine.
* Changed the default value for XmNspace to 4, rather than 6 as suggested by
Mike Perik <mikep@crt.com>
* Jay Schmidgall continued his work on the widget to provide us with:
o {Un}Highlight{Cell,Column,Row,All} routines
o XmNhighlightedCells to go along with the highlight routines
o ProcessDrag() routine - bound to Btn2Down to match Motif.
o XmNprocessDragCallback
o XmN{vertical,horizontal}ScrollBarDisplayPolicy
o XmNfill to make the matrix fill the available form.
o ResizeColumns reworked to draw across various portions of
the matrix's display
o allow zero rows and columns
o allow visible rows,columns > #rows,columns for sizing purposes
o XbaeMatrixNum{Rows,Columns} routines
o XbaeMatrix{En,Dis}ableRedisplay routines
This is typically most effective when the enable is called
just after an XmUpdateDisplay(), at least so I've found.
Plus a new demo program, "list", that emulates a motif list widget with
the added advantage of th matrix widgets resource. The choice program
was also enhanced.
* Split up more source files to provide Draw.c and Shadow.c so as
to keep the size of files down to a minimum.
* Added editres capability to all demo programs and cleaned up most
compilation warnings.
* Modified the Xbae.tmpl to allow a few more configurable options related
to resizing columns on the fly
* Changed all example program resource files to be the class name of the
demo. Now, to run a program something like setenv XAPPLRESDIR . and
then the program should suffice.
* Reworked the drawing of the resize columns.
* Removed the allocation of cells, selected cells and highlighted_cells
when the matrix is initialised. For very large (and I'm talkin' very)
matrixes, the memory consumption is quite considerable. A caveat of
this feature is, if there is no drawCellCallback, memory for the
above resources is allocated when one of the values changes.
Pointed out by Daiji Takamori (daijit@std.teradyne.com).
IMPORTANT: This feature may cause an application to crash if
the selected_cells, highlighted_cells or cells is dereferenced
before being initialised. Please check the value of the pointer in
all callbacks. The functions similar to XbaeMatrixIsCellSelected()
should probably be used rather than mucking around with matrix
internals.
* Realised that when using the drawCellCallback, there is no method to
actually edit the data in the cell and commit these changes. And
thus was born the writeCellCallback which should be defined for an
editable matrix that is drawn using the drawCellCallback. Failure
to do so will result in a warning message. The writeCellCallback
is called from the set cell action and all normal callbacks (leave, etc)
are called along the way.
* Checked on quite a few other implications of the drawCellCallback and
corrected where appropriate.
* Implemented the drawing of Pixmaps in cells via the XmNdrawCellCallback.
See the "draw" demo program for an example. I don't really know what
people expect to achieve by using this functionality. If you are one of
those people who intend to use it, please let me know the details.
I would still like to implement the idea described above about allowing
any widget to be drawn into a cell. Maybe in the next release!
* Added the demo program "draw" that demonstrates the drawCellCallback,
and writeCellCallback and pixmaps in cells.
* Updated the manual page for XbaeMatrix with Jay Schmidgall updating
the changes that he made.
- --
Andrew Lister Phone: +61 2 258 1757
DB Bain Group Services Fax: +61 2 258 1000
lister@bain.oz.au The opinions expressed are mine
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Maintainer of the Xbae Widgets --> Mail xbae-request@bain.oz.au for info
-----BEGIN PGP SIGNATURE-----
Version: 2.6.2i
iQCVAwUBMJ5l8YQRll5MupLRAQFBSQP/bFW/P1tH20GkSbnIsZg8Yg2FG2hqs+Jp
dkd2dKGmstDKl1AaJGu/Z3ZKVKKY875JdKQvzTcxidL2y/renB96lseSLSWcA96y
9a/ruaG8b72XPEzo4WfIHPvE8TNbVpYkerJ6wPWau58ulaVy0VunvSlkl0bdapKk
kKghjLVlK7I=
=BzGY
-----END PGP SIGNATURE-----
--
This article has been digitally signed by the moderator, using PGP.
Finger wirzeniu@kruuna.helsinki.fi for PGP key needed for validating signature.
Send submissions for comp.os.linux.announce to: linux-announce@news.ornl.gov
PLEASE remember a short description of the software and the LOCATION.