What is xclass?

The xclass library is a C++ GUI toolkit for the X windows environment.
It is Xlib-based and consists of a set of components, ranging from simple
widgets to complex ones, including also many of the commonly used dialog
boxes. The components have the MS Windows-95/98 look and feel.

A bit of history...

Everything started shortly after hacking fvwm into fvwm95. I was busy
morphing the FvwmWinList module into FvwmTaskBar, when a person named D.
Barth posted a note on the fvwm mailing list announcing a ready taskbar
module for fvwm. I contacted him immediately and after a short e-mail
interchange we decided to do some work together in order to make fvwm95 more
Windows-like. We were also encouraged by the amount of people that started
downloading fvwm95 and sent patches, bugfixes and improvements.

In order to make fvwm95 more Windows95-like, we needed to have a minimum
number of applications: an explorer-like file manager, a desktop manager, a
Notepad-like editor and configuration tools. But writing an X application is
not quite an easy task, specially when dealing with Xlib directly. Normally
there are toolkits that are supposed to simplify the job, and since we did
not wanted to start writing the n-th X toolkit, we started looking at the
options available. At that time there was no KDE and no Gnome, no gtk, the
Qt library was very recent and the look was not suitable, not to mention
license limitations. Tcl/tk looked promising, but it was slooooow and had a
Motif look. The Athena toolkit was kind of obsolete, messy to use, and had a
ugly look (the Xaw95 hack appeared later).

After some time, we finally went to the idea of writing our own toolkit
library. We chose C++ as the programming language, and the goal was to have
a library (of course LGPL'ed) that implemented a minimum number of widgets
and other facilities that would ease the development of new applications
with Windows-95 look and feel. We also wanted it to be compatible with the
current X standards (ICCCM, Motif, CDE, and so on...), to be easily
expandable, fast and small.

That's how xclass was born. At first it was named xclass95, since it was
meant to be some sort of companion to fvwm95, but we quiclky decided to make
it an independent project. With the time other people started using the
library to write applications, more
programmers joined the effort, and it became a more ambitious project.

The xclass libary has been involved in other projects: until recently it
was part of the fOX Project (the
default About dialog widget still shows the
logo), and it was also used to implement many of the GUI classes of the
ROOT project (the TG* set of classes,
for example).

Why to use xclass?

With so many free programming libraries and X toolkits around, why would
one want to use xclass? Like any other toolkit, the xclass library provides
certain advantages and disadvantages for the application programmer.

Advantages:

LPGL.

C++ code, object-oriented, easy to learn.

Nice and familiar look and feel.

Rich set of widgets.

Small and fast. Xclass applications
run approximately 1.5 - 3 times faster and are correspondingly smaller than
similar ones using other popular toolkits.

Low X resource usage through an efficient resource manager.

Optimized for X windows. The programmer has full access to X events
and objects for extra flexibility.

Stable code. Even new "development" versions of the library are carefully
tested before releasing.

Disadvantages:

C++ code (yup, C++ can be sometimes a pain in the neck, too...).

Lack of documentation.

Porting xclass applications to other types of operating systems
can be difficult. Xclass is optimized for using with the X windows system
under a Unix operating system (under MS Windows you can try
cygwin).