No Macros, just straight and beautiful OO with C++. Actualy its a pretty good
wrapper around a really wired GUI Toolkit.
phlox
That's why I said that the design & code of GTKmm are very good, I used it some time ago, and I used to think that the design was very good, using all the advanced topics of C++, more after trying GTK+ in plain C, which is a pain for those who don't like C.
Everything good, until you use that -almost perfect and mature design- in the real world...
The win32 port isn't very good, I've spent days trying to compile the gtkmm's glade.
I think I've said enough about the
usability and speed of the toolkit.
But I had to thank one thing to GTKmm, because it was so slow, I begin to search for a lightweight C++ GUI toolkit.
And then, I found
FLTK. It's very amazing, because the design is very clean and C++ mature, with namespaces and all. And guess what, it's fast and the minimal example statically linked weights less than 100k. And the example containing all FLTK widgets weights 500k. You don't find that on any other toolkit.
But soon after I started using it, I noticed it lacked some functionality, Unicode support (a must), some important widgets, etc. And the comunity of FLTK is very small, with the project maintained with 1 or 2 persons.
And then, I found another GUI toolkit, called wxWindows.
At first I didn't liked (unlike the others 2), because the design seemed to be rather old C++ (without namespaces, without using the STL, using MFC like macros, etc).
But after trying to convince myself to look around it, I found it wasn't bad... and it was fast! And the design wasn't bad after all, using inheritance, and very good coded and commented.
Then I discovered that it used
native widgets, looking almost the same as an MFC app in win32, a GTK+ app in linux, a Cocoa app in MacOS X, etc.
Later I found that feature to be VERY important if you care about cross-platform.
Well, I started using it, and I'm using it till now, and found it to be the best
real world toolkit.
And the downsides I found at start (without using the STL, macros, etc), it was because wx is really cross-platform, and to support a
wide range of compilers and platforms, they had to choose not so advanced features of C++. That counts for the wxWidgets 2.x version.
The wxWidgets 3 will use full STL compatibility, and more advances features of C++, etc. (see the wx roadmap for more info)
That's my simplified and reduced history for a search of a GUI crossplatform toolkit where I feel comfortable.