Changes for Xarm 2.0.6 include:
Changes for Xarm 2.0.5 include:
- Fixed one cast in ToolTips.C for 64-bit support
- Upgraded the autoconf/automake tools to support new platforms
Changes for Xarm 2.0.4 include:
- Cleaned up include order so that the library now builds correctly on
Fedora Core 3 using GCC 3.4.2
- Fixed the check for new-style C++ header support and cleaned up the examples
to actually use the results
Older Changes for Xarm 2.0.X include:
- More cleanups so that Xarm compiles with newer compilers (GCC 3.0.1 and 3.0.2 have been tested)
This was pointed out by Gerry Marthe. (Thanks!)
- A bug-fix in the TreeList when deleting items (again thanks to Gerry Marthe)
- A ToolTip fix so that Tool Tips align properly when close to the edge of the screen, courtesy
of Steve Koh. (Thanks!)
- Added one more overload to XarmArg for the new xinput example.
- The PasswordField now has value methods to replace those inherited
from TextField. This allows programs to set the value of the
password directly. The string returned from PasswordField::value()
should be freed with XtFree just as for TextField.
- The xpasswd example has been cleaned up and modified to demonstrate the new
- Fixes to various headers and a few example sources for Solaris 2.6 CDE
compatiblity. Note that this means a Solaris Setup binary should be
- The old CObject base class has been removed!
This means that most code will probably require a few
small modifications to compile with the new version.
This is mainly due to the fact that the old versions
of addCallback and friends are gone! This also breaks
any semblence of binary compatibility with older versions of
the library - thus the move to 2.0. Overall, though, I think
code written with Xarm will end up much cleaner as a
- The TreeList widget has been tweaked and tuned conciderably.
It also now knows about wheel mice! Check the
Screen Shots page for an example.
- Xbae support has been enhanced and now covers versions through 4.8.4
including the Xbae Input widget.
Changes from previous versions:
- The ToolTip widget is now an XmLabel instead of a home-grown
(and drawn!) widget. This makes it work in MultiLanguage
environments with the same support as Motif in general. See
the xpasswd example and hover over any of it's widgets.
- Support for versions of OpenGL other than Mesa.
Suggested by Carl Best.
- Fixes for compile time errors in newer versions of GCC.
Discovered by Kurt V. Hindenburg.
- The versioning problem building XarmSetup
has been fixed.
- Major improvements to the Gauge code and the Gauge demo by
- Compatability fixes for Xbae 4.7
- Several bug fixes in the XPM handling code.
- Improvements in the make process.
- Tested on several platforms against the newly released
- A new widget! The XarmTreeList widget isn't a widget in the
strictest sense, but rather it's an adaptation of the Xbae Matrix. As such,
it requires the Matrix to work. There is also a new example (xtree) to
go along with and demonstrate the TreeList. Check out the
- The List wrapper now accepts and returns char ** instead of
XmStringTable for selectedItems(). This change was suggested by
Charles L. Rennolet.
- Modified the Matrix wrapper source so that only inline functions are called
inside the library. This should allow programs that don't use the Matrix
(or the new XarmTreeList) to avoid linking with libXbae.
- Fixed yet another typo in the Callback templates.
- Xarm now supports the Mesa Motif Widgets!
There is now a configure option (--with-gl=[DIR]). You can specify
the path to your GL libraries and includes or let configure try to find
them. There is also a cool example, check out
examples/cube. The header is Xarm/GLWidgets.h. Xarm.h now
defines XARM_HAS_GL if the GL libraries were found. This code inspired
by Jiangzhi. NOTE: The GL support requires Mesa 3.1 or higher.
- Added a check in the configure script for problems with GCC 2.95.2 and
above and the X libraries on certain systems. The only place I've noticed
this so far is on Solaris 2.6 with GCC 2.95.2. The Solaris X headers do
not define the return types of any X functions. Newer GCC's now
concider this an error by default instead of a warning. The Xarm configure
script will detect this condition and set the compiler flags to work around
- Removed the -Wl,-soname stuff from the Solaris shared library make
rules again. This is also related to newer GCC's requiring a new syntax.
Some day all this stuff will actually be consistent! Anyway, Xarm will
now link correctly on Solaris with the most recent GCC.
- Xarm now builds properly in environments with both Motif 2.X and CDE installed.
- Added libdl to the list of libraries for CDE linking. If anyone has problems
with this, please let me know.
- Added a check for two libraries that I know need to be added for at least
one version of CDE. The configure script will try to compile a short test
program without either one, then with one, then with the other, and finally
with both. If you see the message "checking for other required libraries...
unknown" then you will need to add any extra libraries to the file
config/common.mk to the MOTIF_EXTRA_LIBS variable.
- The Xarm Callback mechanism now understands Xarm objects! You can now say
addCallback(this, &MyApp::onOK, okButton, XmNactivateCallback)
instead of the less obvious
addCallback(this, &MyApp::onOK, okButton->widget(),XmNactivateCallback)
OK, so this might not seem like much, but I think it's an improvement.
- Xarm now defines XARM_HAS_NEWHEADERS if the current compiler allows
#include<iostream> instead of #include <iostream.h>
- This time, all the standards conformance stuff should be fixed!
- Finally fixed the Gauge redraw problem!
- A new example! Xarm now comes with the XarmSetup program
included in the examples directory. XarmSetup is a Setup
wizard that can be distributed as a stand-alone Xarm installation,
configuration and compilation tool. Check it out. I think it's pretty cool!
- Fixed a bug in the CDE and Motif 2.X ComboBox code related to retrieving
selectedItem(). Xarm was freeing the XmString returned from Motif. That
is a bad thing to do!
- Added mapWindow(), unmapWindow() and unmapSubwindows(). These aren't strictly
Motif functions but they are useful.
- Added functionality in the Xbae Matrix wrapper to sort by any column, ascending
or descending. Courtesy of Phil Grim.
- Added an option to the configure script to specify where Xbae is installed.
If you say ./configure --with-xbae=[BASEDIR] then it will use [BASEDIR]/include
and [BASEDIR]/lib for Xbae.
- Fixed the Event Handler Callback mechanism. It now correctly handles all
combinations of add/remove with different masks.
- Almost completely redesigned internals! Almost everything is inline now.
The library compiles to under 500K using EGCS 1.1 on my Linux system.
- A new overload for XarmArg so that Xarm object pointers can be passed in
place of widget values when setting resources.
- Auto-detection and support for compilers that use, understand and/or need
If you have comments or suggestions, email me at