Xm++/CommonInteract release 0.52 =================== New features of this release: * Xm++/CommonInteract now runs also on the IBM RISC6000 using xlC * Improvements to the XmDrawing and CommonInteract classes (redrawing on slow displays is a bit better than before...) * Improvements to the dialog editor: editing grid and clipboard operations make it easier to create good looking dialog boxes * A lot of minor bug fixes It can be found on: export.lcs.mit.edu as: /contrib/Xm++.0.52.tar.Z and: sunsite.unc.edu as: /pub/Linux/incoming/Xm++.0.52.tar.Z Send mail to xmplus@ani.univie.ac.at if you cannot find it there or if you have other questions or comments. ........................................................................... For those who didn't know about Xm++ before - this is the contents of the current release's README file: Xm++/CommonInteract Another User Interface Development System =================== Xm++ is a user interface framework for the C++ language built upon X11 and the X-Toolkit. It is designed to be a simple and intuitive programming interface to access the functionality of commonly used widgets. Xm++ was initially created for the Motif widget set, now support for the Athena widgets was added. Applications created with Xm++ run in both environments without changes, although many nice features are only available when using Motif. In some situations Xm++ extends the underlying toolkit (i.e. providing a ComboBox borrowed from MS-Windows), but never tries to replace it - data of user interface objects is left to the widgets and only duplicated in rare cases. Xm++ has nothing common with Motif++ besides the general idea to encapsulate widgets in C++ objects and the '++' in it's name. Many ideas for the Xm++ architecture came from Digitalk's Smalltalk version, which provides an easy to use framework for Windows/PM/Mac applications (in the very first time of development I used the Windows dialog editor and a simple parser to create similar Smalltalk and Xm++ dialogs :-). Top level objects in Xm++: * 'Windows', 'SystemDialogs' and 'ToolBoxes' which use the automatic layout feature of various composite widgets in Motif and Xaw * 'UserDialogs' which can be individually laid out with a user interface builder (a first version of such a dialog editor is included in this distribution) Controls (children of top level objects): 'staticText', 'staticImage', 'pushButton', 'checkBox', 'radioButton', 'edit', 'listBox', 'comboBox', 'groupBox', 'paneArea', 'drawing', 'toolBar' The staticImage and all the button classes can display b/w (X-bitmap format) or color (GIF format) pictures as an alternative to a label text. Event handling is done by a simple but powerful mechanism which redirects Xt callbacks to member functions of Xm++ objects. CommonInteract(II) is built upon the Xm++ drawing class and provides components for building direct manipulative applications. Is is a very simplified implementation of some features from the CommonInteract system (research project of our institute in 1991), an approach to define a software achitecture for implementing direct manipulative applications with multiple interaction media (i.e. sound, alternative input devices). If you are interrested, look into the June 1993 issue of the JOOP (SIGS Publications - Journal of Object Oriented Programming) - there should be our paper about CommonInteract (but be aware, that it is our 'state of the art' from 1991). CommonInteract(II) is still undocumented and is included because it was used to implement the dialog editor. It currently supports only drawing primitives (lines, rectangles, circles...), but we plan to extend it to support bitmaps and some controls also. Known problem: the Xm++ drawing class has no redrawing strategy (always redraws the whole window, even after minimal changes like selecting an object), this looks very ugly on slow displays and should be fixed. About this release: ------------------- Xm++ is still incomplete and has a lot of bugs but we are using it here for smaller applications which are running without problems. So I think I can call it a 'beta release' which can be used to develop applications for any non-critical purposes. CommonInteract may be called a 'pre alpha release'. It's development will be continued this year because we plan to use it for another research project here. Besides incompleteness and the redrawing problem it seems to be stable and can be used for experimental applications. Platforms: ---------- this release was compiled and tested by the author on: HP9000/720 running HP-UX 8.07 SUN SPARC running SunOS Release 4.1.1 IBM RISC6000 running AIX 3.2 PC-AT386 running Linux v0.99pl6 and I'm also told that it runs on SGIs and DEC-Stations. The whole stuff was initially developed using an AT&T standard C++ compiler and then 'ported' to be useable with g++. This release should compile with an AT&T compiler version 2.1 and above and with GNU g++ 2.3.X (**not** 2.4.X until the multiple inheritance bug is fixed!!). Where to get it: ---------------- The current version should be available on: export.lcs.mit.edu as: /contrib/Xm++.0.52.tar.Z and: sunsite.unc.edu as: /pub/Linux/X11/devel/Xm++.0.52.tar.Z (send a mail to the address below if you cannot find it there) Where to find more information: ------------------------------- the .../doc directory contains INSTALL - how to build the libraries and examples README.GNU - problems and limitations when using gnu g++ (read!!) usersGuide.txt - a tutorial how to use Xm++ reference.txt - a first try of a Xm++ class reference manual the README files in the .../samples gives a brief description of each of the eight samples; Xm++/CommonInteract is free software for any non-profit purposes, see the file .../lib/COPYRIGHT for details. Send any comments, bug reports and donations :-) to the Author: Bernhard Strassl Vienna User Interface Group Institute for Applied Computer Science and Information Systems University of Vienna Lenaugasse 2/8, A-1080 Wien, Austria e-mail: xmplus@ani.univie.ac.at