Boost logo

Boost :

From: Hajo Kirchhoff (mailinglists_at_[hidden])
Date: 2004-11-15 02:48:52


Hi all,

I have only just now gotten back from a conference and am still catching
up on this discussion.

Jared McIntyre wrote:
> When I'm programming my apps, I want to think about actions that I want
> to expose to the GUI. I want to code in terms of PingServer() instead
>
> I also want to expose the data in my models to the GUI in such a way
> that I can bind them easily to the GUI. This is next to impossible to

I've added a third article describing pretty much both of your
requirements at
http://www.litwindow.com/Library/Articles/rapidui_article_3.htm

> do cross platform since every GUI has their own concept of string, etc.
> So, I end up writing all the code to do that as well, which is also
> very repetitive and pattern based and should be abstractable (which the
> Lit Window library seems to do, though I haven't played with it yet).

It does precisely that and in a platform and even UI framework
independent manner. It provides a layer above the UI framework, so your
Lit Window Library would work with Qt, wxWindows, MFC, whatever
framework is supported.

> If done properly, the abstraction layer shouldn't require me to think
> about buttons, comboboxes, layout, etc. I'll do that in the platform

The Lit Window Library decouples the layout from the code. Layout is
done with a designer and written into an XRC file. Code is written as
C++ code and a simple rules language which can be seamlessly integrated
into C++. I will be using the boost parser to parse the rules.

Binding the layout, code and data is done using names/identifiers.

> I will always want to think platform specific code when I am thinking
> about form layout, new control development, etc, but I shouldn't have to

I want to take this even a step further and research and implement UI
patterns and distinguish between different implementations for the same
pattern.

Example: Two listboxes and four buttons <, <<, >, >> let a user choose m
elements out of a list of n elements. Its a very common design pattern.
Another implementation is the check list box, a list box with check
boxes in front of each item. It implements the same UI design pattern,
select m of n, but with completely different visuals.

A good UI design tool would let you choose the pattern, "select m of n"
and then offer you a variety of possible implementations for various
platforms such as big screen (>1024x768 resolution), small screen
(640x480) or even a phone.

Hajo

Lit Window Library: http://www.litwindow.com/library


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