The Xg Widget Set
In the many years that I have been developing GUIs for UNIX, I have always envied the controls that are commonly available for MS Windows applications. In attempt to rectify this situation I designed the "Xg Widget Set". This widget set is an extension of the Motif widget set and provides many of the controls found in MS Windows applications.
This release of the "Xg Widget Set" is the first public release. It is available for use under the LGPL (see the LICENSE file).
To download "The Xg Widget Set"
save one of the following links (for Netscape you may need to right click and select "Save Target As..."):
At this time no documentation is available,
I am in the process of writing the documentation (in HTML) and will post
it here in the near future. The source code contains example code for each
widget in the set, refer to these examples to get an idea on how to use
At present I am providing a single makefile,
in the future I will provide makefiles for most UNIX platforms. The widget
set has been built on about every UNIX platform that supports X11 and Motif
with just a couple of minor tweaks in the makefile, so you shouldn't have
a difficult time here.
In addition to the widgets, I have provided
some utility functions that I have found useful (see
The widget set is self contained, as such
it requires no additional libraries other than X, Xt, and Motif (1.1, 1.2.x
Following is a list of all the widgets
in the Xg Widget Set:
A clock widget (digital) that uses standard
strftime() format strings. This can by displayed rotated. Subclass of XgFastLabel.
An implementation of a MS Windows combination
box (text and drop down list).
Subclass of XmPushButton. Allows pixmaps
(XPM format) and text to be displayed simultaneously.
A basic label widget that is much faster
than an XmLabel. Text can be rotated in any direction. Uses standard strings
instead of XmString strings.
A numerical entry widget. A composite
widget with a text entry and spin buttons. Allows for range limiting and
A simple Tab widget that can be oriented
on any side of its parent. The text on the tabs is automatically rotated
depending on orientation. This widget is usually contained in an XmForm
widget that simply manages the XgTabs widget and another XmForm that would
contain your dialog controls. A callback can be added to the XgTabs widget
to notify on tab selection or you can supply a list of widgets that would
automatically be managed/unmanaged dependent on which tab is selected.
Any number of XgTabs widgets can be on an interface.
A date/time entry widget. A composite
widget with specialized date and time entry fields and spin buttons. Allows
for range limiting and input verification.
A toolbar widget that allows any widget
on an interface to be registered for drop onto the toolbar. That is, you
register a widget and it can then be dragged on to the toolbar where it
is then cloned. The toolbar can also be pre-configured with widgets (you
can save the contained widgets in an X resource file, for later loading).
Additionally, tool tips can be assigned to any widget dropped on to the
A set of utility functions for Motif.
Following is a list of the functions: