
I believe similar discussions were engaged some time ago and that these discussions resulted in: http://sourceforge.net/projects/notus/ What to the participants in these other discussions have to add? Robert Ramey

Hi Robert
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Robert Ramey
I believe similar discussions were engaged some time ago and that these discussions resulted in:
http://sourceforge.net/projects/notus/
What to the participants in these other discussions have to add?
Notus is a clever concept, but it addresses a different problem domain. Perhaps Notus could use this library as a back-end? Regards David Turner

From: "David Turner" <dkturner@telkomsa.net>
Hi Robert
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Robert Ramey
I believe similar discussions were engaged some time ago and that these discussions resulted in:
http://sourceforge.net/projects/notus/
What to the participants in these other discussions have to add?
Notus is a clever concept, but it addresses a different problem domain. Perhaps Notus could use this library as a back-end?
Thanks. I've looked at your code. You are right, your library is more like the display or even 'impl' layer in notus. It'll be nice to put these two together. Eugene

Hi
Thanks. I've looked at your code. You are right, your library is more like the display or even 'impl' layer in notus. It'll be nice to put these two together.
We agree, then :-). My plans for the gui library (henceforth just gui) are these: 1. Fix things so that free widgets are possible. I would still love to hear some suggestions on how to select the backend in situations where multiple backends are available. It would be nice to have a text-mode backend available on all platforms. 2. Implement the missing widgets I outlined earlier. As far as having a drawing widget is concerned, I'm now convinced that this is best done in a seperate library. I'll look at doing that once I've finished with gui. Gui is now hosted on sourceforge: http://cxxgui.sourceforge.net/. A version implementing the newer syntax (i.e. dots) is available for download. If anybody would like to help me out, particularly with the porting and build processes, I'd be most grateful :-). Regards David Turner

On Fri, 05 Mar 2004 14:42:50 +0200, David Turner wrote:
Gui is now hosted on sourceforge: http://cxxgui.sourceforge.net/. A version implementing the newer syntax (i.e. dots) is available for download. If anybody would like to help me out, particularly with the porting and build processes, I'd be most grateful :-).
I'd like to help. I could try to set it up to use boost build. Although I'm not that great with it, so if there's anyone who's more experienced? Daniel

Hi Daniel You wrote:
I'd like to help. I could try to set it up to use boost build. Although I'm not that great with it, so if there's anyone who's more experienced?
Thanks very much :-). Please send me a message via my SourceForge account (davidturner) so that I can contact you to work out the details. Anybody else who'd like to help, please do the same. Also, if anybody wants to get involved in secondary projects, such as graphics libraries and widget serialization, let me know by the same means. I've added a mailing list: http://lists.sourceforge.net/lists/listinfo/cxxgui-devel to which I will post design commentary. Regards David Turner

--- Robert Ramey <ramey@rrsd.com> wrote:
I believe similar discussions were engaged some time ago and that these discussions resulted in:
http://sourceforge.net/projects/notus/
What to the participants in these other discussions have to add?
Well, I am quite happy with the direction notus is taking but there is a lot to be done. First I'd like to comment on the issue of simplicity. Simplicity is great but IMHO, it should NOT be of concern of the core GUI design. The higher layers could simplify the core interface any way they like. Like another poster pointed out if a feature is missing it could easily be a showstopper. It is like missing a letter in the alphabet. The primary concern of the core GUI design should be consistency, *scalability* and feature support. I think that the discussion of the syntax like using operators '<<' or '[]' and so on is important but it is a secondary issue. I think that what we are missing a consistent fundamental GUI design. All this syntactic sugar or XML support could be added at a latter stage. Most of the GUI frameworks with their endless polymorphic hierarchies and castings are not fun anymore. :) The fundamental GUI library doesn't have to support all possible features right from the start. It is more important to identify all fundamental features and architectures that will let you to scale the framework up with new features. Usually a GUI feature is not a standalone thing. It relies on presence of other features. A good GUI library should identify a set of *fundamental* features and architectures that will let the library grow vertically and orthogonally. Notus is based on what we call MDS (the DDV terminology will be deprecated). Model - application data Display - physical device such as window, button Strategy - user defined behaviors template <typename Model, typename Display, typename Strategies > struct view {...} A typical strategy looks like this struct my_strategy : handle_event<mouse> handle_event<paint> { template< typename View > void on_event( View& v, mouse& e); template< typename View > void on_event( View& v, paint& e); }; As you can see, the strategy event handlers take the event source (View) as a template parameter. So as soon as the View provides the interface that is required by this strategy, it doesn't care what View really is. So strategies can be used as interchangeable components. Strategies can be combined and reused. typedef view< my_data, displays::window, tuple<my_strategy> > my_window; //customize my_window typedef view < my_data, displays::window, tuple<my_customization, typename my_window::strategy> > my_custom_window; //my_custom_window reuses all strategies that are defined in my_window; I'd like to note that notus doesn't have any casting stuff and almost no polymorphism. The idea is to create a *generative* framework where components can be constructed from a set of interchangeable and custom parts. I'd like to touch the issue of ownership. The core Notus doesn't care about ownership at all, the physical devices such as windows, buttons, etc. are represented by Displays. One display can be connected to one or more other displays so that it will get events generated by the displays that it is connected to. So at this level, it is a *network* of display connections not an ownership hierarchy. I anticipate your question What happens if the GUI object is physically deleted by its physical owner. Nothing really except that the connection doesn't exist anymore. *Important* the displays don't keep direct references to other displays. I appreciate your comments. Eugene __________________________________ Do you Yahoo!? Yahoo! Search - Find what you�re looking for faster http://search.yahoo.com
participants (5)
-
Daniel James
-
David Turner
-
E. Gladyshev
-
E. Gladyshev
-
Robert Ramey