It smells like what I was saying in part besides the javascript, win32 API & .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; myapplication application; 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 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost