Boost logo

Boost :

From: Loïc Joly (loic.actarus.joly_at_[hidden])
Date: 2004-08-25 12:53:35


Reece Dunn wrote:
[...]

> What I meant by "Java style GUI" is not in terms of L&F, but in terms
> of programming the framework. I understand how important having a
> native L&F is to the particular OS you are using (implemented using OS
> components for native feel): this is one of the goals I am aiming for.
>
> Thus, in Java Swing-style C++, you can do something like:
>
> boost::gui::frame * main = new boost::gui::frame( "My GUI App" );
> frame -> set_pane( new boost::gui::button( "PUSH" ));
> frame -> set_size( 500, 400 );
> frame -> show();
>
> boost::gui::message_loop msg;
> return msg.execute();
>
> And this will work, creating a window with a button in it's "client"
> area. That is, allow the user to:
> [1] create components/widgets using constructors instead of Create
> functions (like MFC);
>
> [2] allow "native" components (buttons, etc.) and windowless
> components (for performance);
>
> [3] provide a set of "layout managers" that are windowless components
> allowing you to specify scrolling panes, splitter panes, grid layouts,
> flow layouts, fixed/stretchy layouts and so on -- I personally find
> using layout managers easy to produce interfaces rapidly;
>
> [4] avoid message maps if possible -- I personally don't like message
> maps and feel there is a better way to implement event handling. From
> the discussions here boost::signal seems to be the way to go, but some
> effort needs to be taken to produce a flexible, portable way of
> handling messages that can both write generic handlers and OS-specific
> handlers;

All what you say here already exists in C++. For instance, you can have
a look at QT.

It does not use boost::signal (for portability reasons in the beginning,
I suppose, and because boost::signal did not exist at that time), but
also works with a mechanism of signals and slots that requires some
small preprocessing of files..

-- 
Loïc

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