From: Hajo Kirchhoff (mailinglists_at_[hidden])
Date: 2004-11-15 02:48:52
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
> 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
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.
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