Michael Van Canneyt wrotethere is another project which has an IDE, completely OOP, built on top
of GTK, so it IS possible.
(although, it must be said, they are stuck on a (different) compiler bug alo;
We're working to solve it.)
yes, this bug is quite nasty as I can't finish the new keyboard handling code in the editor widget... ;-)
The 'official' announcement for this project (KCL) is planned to happen very soon; but while watching this discussion here I couldn't resist to make some comments _now_:
We don't know which widget library (GTK, Qt) will be the best in the long term; in Win32 and other operating systems it's still the best (most efficient way; keeps the look and feel of this OS...) to use the native widgets of this OS / GUI.
Almost all of the existing GUI APIs are quite unsuited for most applications, if you want to use all those benefits of object pascal compilers like FreePascal or Delphi: Win32 is too low-level, in most cases; GTK, although is _is_ OOP in a way, is too procedural (writing GTK applications in FPC is possible, of course, but the source will look quite ugly); Qt uses many C++ specific features, and it doesn't support FPC specific stuff like properties, of course.
IMHO, the only solution is to create a component library similar to Delphi's VCL, which wraps this APIs but which doesn't rely on platform or toolkit specific features.
KCL tries to do exactly this: Currently, there are about 25 classes for stuff like widgets, forms, dialogs, layouts, fonts, canvas and so on. The only implementation available at this time is build on top of GTK, the native Win32 implementation will be in a usable state soon, and an implementation based on Qt will be added later this year. KCL does *not* try to be a VCL clone, although most classes are quite similar to VCL's classes. The most apparent difference is the way KCL does its layouting: As KCL is platform-independent, you are encouraged to use special layout widgets where possible.
Expect the public snapshot (LGPL license) of KCL soon. I'm very interested in your comments and reactions... ;-)
Another important thing to mention: The IDE build on top of KCL. It isn't really an IDE yet, it looks quite similar to the current CVS version of Lazarus: Menu bar, output window and a notebook widget which holds the editor widgets. The most important difference to Lazarus is this editor widget: It does _not_ use the GTK memo widget, it only consists of a canvas and a ScrollBox. It already does syntax highlighting (the SH is done on demand, so it is *extremely* fast), and there are no known bugs in this SH implementation. The most important editing keys are working, and a setup dialog for the keyboard shortcuts will be added very soon.
As you can see, this IDE is in a quite early stage, but the speed of development is quite high, I think. Together with KCL, it has everything that Lazarus lacks of... (and vice versa, our IDE isn't capable of calling the compiler yet)
I think we all know that there are not enough resources for two FreePascal RAD IDEs in the long term. Probably it would be the best to merge both IDEs in the near future; at least we should try to find identical solutions for some common problems like project management, or (more low-level) i18n and documentation.
- Sebastian