Boost logo

Boost :

From: Hajo Kirchhoff (mailinglists_at_[hidden])
Date: 2004-11-02 13:51:30


Hello all,

> Considering the fact that some of the Boosters work on the GUI library,
> I would like to throw something to the mix:

I wasn't aware that some people here were into GUI work!

In that case I'd like to gauge interest in my work:

http://developers.slashdot.org/article.pl?sid=04/10/18/1118242

and the homepage at

http://www.litwindow.com/library

This is a two part library. The base part is UI independent while the
second part aims at reducing the work for UI coding.

I was about to prepare an announcement for the base part because it
might be of interest even to non-gui programming, but am jumping the gun
here. An official announcement will follow soon.

The base part contains "data adapters" and a (very) simple constraints
solver. "Data adapters" is a small, portable "reflections" or extended
runtime type information like mechanism for C++. It is a bit simpler to
use than other such mechanisms I've seen. If you've got this struct

struct SomeSettings {
   int m_aMember;
   SomeOtherStruct m_struct;
   vector<string> m_strings;
};

the neccessary data adapter definition which you must include in a
source file looks like this

IMPLEMENT_CONTAINER_ADAPTER(vector<string>)

BEGIN_DATA_ADAPTER(SomeSettings)
   PROP(m_aMember)
   PROP(m_struct)
   PROP(m_strings)
END_DATA_ADAPTER()

Note these things: It supports containers, you do not have to repeat any
type information and you do not have to modify the original struct
definition, which allows using foreign data definitions. To use it:

SomeSettings aVariable;

aggregate a=make_aggregate(aVariable);
cout << a["m_struct"].to_string();
container c=a["m_strings"].get_container();
// do stuff with the container

Initial documentation is

http://www.litwindow.com/lwl/doc/html/group__data__adapters__howto.html

Some code is at

http://cvs.sourceforge.net/viewcvs.py/litwindow/litwindow/lwbase/include/litwindow/dataadapter.h?rev=1.2&view=markup

and

http://cvs.sourceforge.net/viewcvs.py/litwindow/litwindow/lwbase/src/dataadapterimp.cpp?rev=1.2&view=markup

(look for accessor_as_debug)

still under development but already somewhat mature (> 1year)

The second part of the library aims at reducing GUI coding by a factor
of 10 (if anyone has a better catch phrase, please let me know). It
introduces a generic "mediator" object, enhances widgets of an existing
UI framework and lets a programmer use rules (predicates) to code UI
dependencies.

http://www.litwindow.com/library contains several links to an overview,
FAQ and further reading.

I welcome any comments and thoughts you might have.

Best regards and thank you for your interest

Hajo Kirchhoff

--------------------------------------------
Lit Window Library - Speed up GUI coding 10x
   http://www.litwindow.com/library?src=ml

wxVisualSetup - integrate wxWidgets into Visual Studio .NET
   http://www.litwindow.com/Products/products.html?src=ml

BugLister - Defect Tracker
   http://www.litwindow.com/buglister?src=ml

Tips & Tricks for wxWidgets & MS Visual Studio
   http://www.litwindow.com/Knowhow/knowhow.html?src=ml


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