
I spent some time reading the archives regarding the gui project that was started towards the end of last year. Is that project still underway? What is the best way of keeping up with the status of it? Thanks, Matthew

Matthew Johnson wrote:
Hi Matthew, I am still interested in developing such a library and am using parts of it in a few of my own projects. The general feelings I got from those discussions was that: 1. A "traditional" heirarchy approach to the UI objects (buttons, list boxes, etc.) is not the right way to go. There is a complexity here when either (a) developing a framework from the underlying C-style/Objective-C API, or (b) building the framework on top of an existing framework such as Qt, wxWidgets, MFC or WTL. 2. Using boost::signals is the best way to go for event handling. The issues here involve providing the event mechanism for the core API and one that interacts with a frameworks event model (such as the WTL message maps). 3. There was a lot of discussion relating to use of native components vs custom-drawn graphics/UI objects. I still believe that there should be a graphics unit that handles graphics/font operations and a native-ui unit that provides an implementation of the native UI (frame, buttons, etc.) 4. Discussion relating to 3 was relating to the document model being used. I believe that this can be done through a combination of graphics and UI objects. For example (in Windows): * Grid -- a custom control * Table -- a listview UI component * Document -- a richedit UI component * HTML -- an mshtml component * VectorGraphics -- custom use of the graphics unit to render the vector elements 5. Relating to 3&4 was discussion about HTML/CSS. There are various areas that this comes into play, for example a color object interacting with the CSS color (name, RGB, etc.) and the rectangle/rect object. My current thinking on a GUI library is to make it modular. Thus, Boost.Platform would form the base (encapsulating OS and library detection, strings (ASCII/Unicode builds in Windows, string conversions, etc.), entry-point abstraction). Then you have Boost.Geometry (rect, point, size), Boost.Event, Boost.Graphics and Boost.UI. Regards, Reece

Christopher Diggins Object Oriented Template Library (OOTL) http://www.ootl.org ----- Original Message ----- From: "Matthew Johnson" <musical.matthew@mac.com> To: <boost@lists.boost.org> Sent: Thursday, February 17, 2005 7:52 PM Subject: [boost] gui library
Hi Matthew, I have already started work individually on a GDI library using the Boost Interfaces Library. Rather than tackling the big problem of GUI, I am first trying to solve the subproblem of a generic GDI. I already have a working prototype (a Logo style turtle-graphics library) to which I want to add some more features before sharing it with the list. My approach is to create a generic library based on interfaces which requires an implementation adapter layer which implements a minimal set of GDI primitive operations. This way a user can use the same drawing code across different toolkits. There are so many GDI libraries (Win32 api, MFC, VCL, wxWidgets, Motif, XLib, DirectX, OpenGL, Qt, ...) and I think it is important to be able to use the same drawing code across different GDI libraries. Afterwards I plan on later introducing an event handling library based on interfaces, then a widget library, and finally tying all portions together to create a big gui library. Anyway, that's the plan for now. If there is interest in an interfaces graphics library, I plan on maintaining discussion on this list. If the group's preference is in another kind of library, I will simply continue development on it for the OOTL library (the mailing list is at http://groups-beta.google.com/group/ootl/ ). CD
participants (3)
-
christopher diggins
-
Matthew Johnson
-
Reece Dunn