From: Aleksey Chernoraenko (archer_at_[hidden])
Date: 2004-11-19 16:28:10


Hello,

I'm probably too late and what I'd like to say is too general, but maybe
somebody will find the following thoughts useful.
There are many GUI frameworks - platform-specific, platform-independent,
something in between,
but most of them (I'm afraid to say all of them :) have the same problems.

On the one hand they give a user many really good things: windowing,
controls, event handling, geometry, drag&drop support, etc...
On the other hand they are monolithic - you have to use the *whole*
framework, you cannot take and use only one subsystem.
My application is based on MapApp and I see nice implementation of
general event handlers in other framework
but I cannot use it because I cannot rewrite whole application on new
framework.

IMO, the best GUI "framework" would be a *set* of separate, specific
libraries each of which
would provide good abstractions/algorithms in some specific gui-related
area:

** general-purpose 2d lightweight geometry and general algorithms
    ( boost::gui::2d::point, rect, path, ...)

** painting areas, canvases and painting algorithms

** events, propagation and handling mechanisms, (event_target, listener,
subscribers...)

** windowing (windows, views...)

** layout algorithms (placing visual elements relatively to each other),
language to express constrains.

** widgets, controls, text engine and etc...

** ...

In other words GUI "framework" should have good separation and provide
set of useful abstractions,
algorithms which I can use separately (more or less) and bind to
platform API or some
platform-specific already existent "low-level" framework (MacApp, MFC,
QT, WxWindows... ).
I believe it's possible and I'm not the only one who wants it.

Thanks,
Aleksey Chernoraenko.