
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