Xfce.org | Xfce Goodies | Xfce Foundation Classes | Xfce Bug Tracker | Xfce Wiki | Xfce Forum | Xfce DevBlog    

... the power of gtk, the power of c++!

Home | News | History | FAQ | Documentation | Download | Contact | Links

In the beginning...

My name is Jeff Franks. I'm a C++ programmer first, and a C programmer only when I have to be. My discovery of Linux several years ago came at a time when I was fed up with the Windows operating system. Linux presented me with a whole new programming experience and whole new learning curve.  I went looking for a C++ application framework and found the two main ones QT,  and Gtkmm (then Gtk--). QT was good, comprehensive, and reminded me a lot of Borland's OWL but then QT was still a proprietary library, and not released under the GPL as it is now. I started trying to write a program with Gtkmm but found a few bugs. I made an effort to discuss the bugs and help fix them but my novice emails were repeatedly ignored on the Gtkmm mailing list. I gave up and bought a GTK+ programming book by Donna Martin, et al., and set about learning GTK+. I soon realized that GTK+ wasn't too difficult and decided to try and write a C++ framework for it as I learnt. Today, the Xfce Foundation Classes is the result of that work.

Evolution of the Xfce Foundation Classes...

The Xfce Foundation Classes is not a new library but rather the latest incarnation of a stable library that has been in development for the past 5 years.  XFC started out as the GCode library in early 2000, about the same time that GTK+ development version 1.3.1 was released. Unfortunately for GCode there was a CAD program of the same name, so a new name had to be found, not an easy task! Havoc Pennington was approached and he kindly agreed to let GCode use the name Inti, originally a set of C++ foundation libraries written by him but no longer in active development. Inti was the original library on which GCode was based.
Under the new project name, Inti: Integrated Foundation Classes, stable versions up to 1.2.0 were released. During the development of the Inti 2.0 source code base it was decided to change the project name to GTK+ Foundation Classes, to better reflect the library's usage as a GTK+ language binding. To get this name Inti had to merge with two abandoned projects, GFC: GNU/GTK Foundation Classes and GFCLIB: GNU/GTK Foundation Classes. GFC 2.3.1 was the only release made under the newly merged project. Prior to its first stable release GFC became a part of the Xfce project.
A lot of time was spent developing the GFC source code base, which had been a one-person project. With the source code now mature and stable the time was right for the library to become part of a larger project, to assure its continued development. The Xfce Desktop Environment was the obvious choice because many of its goals were similar. Under its new name: Xfce Foundation Classes, the library is now an integral part of the Xfce project. Compared with its early days, the source code base has continually improved and evolved to the point now where essentially it's a complete rewrite; almost none of the original Inti source code remains.

The philosophy behind the Xfce Foundation Classes...

The Xfce Foundation Classes is a compact but comprehensive C++ wrapper around the Xfce and GTK+ libraries. It judiciously uses C++ language features to avoid layering on too much extra C++ complexity. Its API is easy to understand and use, and should be immediately familiar to most GTK+ programmers. Throughout its development the Xfce Foundation Classes has  maintained a good balance between remaining faithful to GTK+ and remaining faithful to C++. Hence the catchphrase  - the power of gtk, the power of c++.

If you take the time to use the Xfce Foundation Classes you will discover a well designed C++ interface that's light-weight, fast and easy to use. Its API adheres to the GTK+ programming paradigm so programmers can continue to use the concepts they're already familiar with. There is nothing too complex about the Xfce Foundation Classes so it should be usable by everyone. Give it a try and see what you think. You will be pleasantly surprised!

Valid XHTML 1.0  
    Copyright © 2004-2005 The XFC Development Team Xfce is © Olivier FOURDAN 1996-2005