Boost logo

Boost :

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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk