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..."):
The source code contains example code for each widget in the set, refer to these examples to get an idea on how to use the widgets.
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 XgUtils).
The widget set is self contained, as such it requires no additional libraries other than X, Xt, and Motif (1.1, 1.2.x or 2.0).
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 input verification.
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 toolbar.
A set of utility functions for Motif. Following is a list of the functions: