From: Mathew Robertson (mathew.robertson_at_[hidden])
Date: 2004-12-22 00:17:35
> My design for a C++ GUI library would being with creating an
> flow component that could render XML + CSS.
> The flow component would flow blocks. Blocks would contain text,
> images, or other objects. If a block changed size, the flow
> component would reflow immediately.
> This is basically what web designers work with in a modern
> browser like KHTML or Mozilla. I'm far more interested in
> creating a component of this nature, than another set of gray
> box wrappers.
> Initially, I figured I'd stop short of attempting to create a
> 2d canvas, something that would be a outlet for vector graphics
> like SVG or flash.
> The components in the GUI library could then be implemented
> using the flow compnent.
> This would mean skipping platform specific widget library, and
> implementing an cross-platform widget library using this flow
> component, combining blocks, effects, and images, to create what
> ever look and feel is desired. The look and feel could be
> specified by designers somewhat simply using XML + CSS.
> You'd get skinnable applications.
> Swing took the route of defining look and feel in Java, and
> foroging native components. I'd like to make it much easier to
> implement the look and feel.
> Create all the widgets using the flow component, and with C++,
> you'd not pay too dear a penalty for forgoing native components.
> Native components are welcome, of course, so long as they play
> nice the canvas. (Win32 GDI objects do not.)
> A huge benefit, too, is that if someone implements a the device
> class for their device, they could turn to Boost to have a ready
> Windowing library.
> So, I'm going to get working on a flow component...
The real benefit is that every widget now gets to have multi-lingual support as a native capability.
And you also get word wrapping, hyphenation, etc.. on every widget...!
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk