From: Philippe A. Bouchard (philippe_at_[hidden])
Date: 2003-07-28 23:55:33
.NET. What is the definition of a widget? It is basically the visual
representation of a container. In ten years from now, I expect to cout my
application to the screen:
typedef tree<window< tree<container< list<widget< list<entry<stringstream,
...> >, ...> >, ...> >, ...> > myapplication;
for_each(application.begin(), application.end(), print(uiout));
Jonathan D. Turkanis wrote:
> I am very interested in this project, and would be willing to devote a
> considerable amount of time to it, depending on how it evolves.
> (Please forgive me if I focus exclusively on GUI objects, and ignore
> the connection with STL-containers of non-GUI objects.)
> I believe that it is possible to create a flexible, elegant
> platform-independent user interface system in C++ which serves 90% of
> most programmers' GUI needs. This should be done in such a way that
> programmers could fill in the remaining 10%, when necessary, using
> their favorite platform-specific tools.
> I have several observations:
> 2. Last year I wrote a template-based win32 GUI library, with features
> inspired by the standard library. All of the significant widgets
> (tree-views, menus, etc.) have an STL-container-like interface. Also,
> there is a framework for associating styles with widgets which
> parallels the
> locale framework. A style corresponds to a locale; facets include
> fonts, borders, backgrounds, etc. There is an additional dimension,
> though: facets are assigned to styles relative to a "style-target",
> e.g., menu, tree-view, etc.
> 3. I believe almost everything can be done using the following
> ingredients: a. The ability to create, destroy, size, position,
> show and hide a rectangular window with no children and no
> decorations. b. The ability to draw an image (bitmap, png, etc.)
> at a particular
> point in a window
> c. The ability to perform simple drawing, possibly limited to
> filling rectangles and drawing straight lines, but possibly including
> more sophisticated constructs.
> d. The ability to draw text, with simple formatting. (Here I am
> thinking of text only for labels and simple edit controls. Word
> processing documents would not be supported.)
> e. A timer facility.
> f. The ability to harness UI events, such as mouse movements, and
> direct them to the appropriate widgets.
Philippe A. Bouchard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk