RE: Re: Re: [boost] GUI/GDI template library
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bronek Kozicki Sent: Tuesday, August 05, 2003 2:06 AM To: Boost mailing list Subject: Re: Re: Re: [boost] GUI/GDI template library E. Gladyshev [EMAIL PROTECTED] wrote: I don't know much about other GUI systems but win32 and MFC. I think we can try to define the low-level layer using win32 and/or MFC as the starting point. Please, do NOT use MFC. Just native Win32 API as a starting point. MFC is 1) not available on mingw 2) big and full of traps. If we can do Win32 I guess there isn't any point in doing MFC. I will not miss it much :) Brock ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: Re: Re: [boost] GUI/GDI template library
E. Gladyshev [EMAIL PROTECTED] wrote: I don't know much about other GUI systems but win32 and MFC. I think we can try to define the low-level layer using win32 and/or MFC as the starting point. Please, do NOT use MFC. Just native Win32 API as a starting point. MFC is 1) not available on mingw 2) big and full of traps. Regards B. ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Re: Re: Re: [boost] GUI/GDI template library
- Original Message - From: Brock Peabody [EMAIL PROTECTED] Do you think we will be OK restricting this library to the more conformant compilers? That should be fine. Compiler workarounds can often be added later, and you shouldn't need to worry about these from the start. In fact, we do NOT want compilar workarounds to affect the interface, so it's sometimes best to push them out of your mind when putting together an interface. Doug ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: Re: [boost] GUI/GDI template library
--- Brock Peabody [EMAIL PROTECTED] wrote: That might be a better way to go. I just don't know enough about GUI systems other than MFC to be able to envision what a scheme like that would look like or if it would succeed. You might save a lot of work coming up with a single low-level representation scheme, but it might become too complex. It's probably worth a try. In the worst case, I feel confident that we can make my brute-force approach work. I don't know much about other GUI systems but win32 and MFC. I think we can try to define the low-level layer using win32 and/or MFC as the starting point. If we cover these two, it'll be a good start and prove of concept. Eugene __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: [boost] GUI/GDI template library
--- Brock Peabody [EMAIL PROTECTED] wrote: http://groups.yahoo.com/group/boost/files/ The name is boost_gui.zip. There is a ton of code, but the interface I think, your library has a lot of good stuff. However it does need a major redesign to cleanly remove all direct references to the physhical layer (MFC) in the template code. For example I am a bit worried about defintions like this one: namespace controls { struct static_control : controls::callback_cwndCStatic { enum { default_style = WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE }; void create(CWnd parent, const std::string text = , unsigned int style = default_style, const CRect = CRect(0,0,0,0)); void create(CWnd parent, unsigned int style); }; } It seems to me that it might not be very easy to clean it up from all MFC references w/o a sustantial architectural redesign. As far as I remember you suggested to overwrite it from scratch too. If we are to do it anyway, I think we need to redesign it from scratch as well using your library as a knowledge/experience base. Eugene __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: [boost] GUI/GDI template library
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of E. Gladyshev Sent: Monday, August 04, 2003 11:29 AM To: Boost mailing list Subject: RE: Re: [boost] GUI/GDI template library --- Brock Peabody [EMAIL PROTECTED] wrote: http://groups.yahoo.com/group/boost/files/ The name is boost_gui.zip. There is a ton of code, but the interface I think, your library has a lot of good stuff. However it does need a major redesign to cleanly remove all direct references to the physhical layer (MFC) in the template code. For example I am a bit worried about defintions like this one: namespace controls { struct static_control : controls::callback_cwndCStatic { enum { default_style = WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE }; void create(CWnd parent, const std::string text = , unsigned int style = default_style, const CRect = CRect(0,0,0,0)); void create(CWnd parent, unsigned int style); }; } It seems to me that it might not be very easy to clean it up from all MFC references w/o a sustantial architectural redesign. The implementation definitely needs to be redesigned from the ground up. The nice things is that even with my poor implementation, at the highest level (dialog.h and dialog.cpp) all of the MFC references are already hidden. As far as I remember you suggested to overwrite it from scratch too. If we are to do it anyway, I think we need to redesign it from scratch as well using your library as a knowledge/experience base. That sounds right to me. The sample boost_gui code was just a proof on concept, it will be much prettier if we start from scratch. The biggest thing I am lacking is any experience doing GUI development outside of MFC. If we can keep our interface simple it might be easiest to just make the library an interface specification which is implemented totally independently for each target platform. Does that seem reasonable? Brock ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: Re: [boost] GUI/GDI template library
--- Brock Peabody [EMAIL PROTECTED] wrote: If we can keep our interface simple it might be easiest to just make the library an interface specification which is implemented totally independently for each target platform. Does that seem reasonable? I agree. I think we can have 2 layers. One layer is a low-level single interface specification that will be implemented independently for each target platform. This low-level interface can be designed in terms of pImpl or ImplTraits idioms (the design would have to be different depending on the idiom we choose). I favor the ImplTraits idiom. The higher layer it the actual gui::boost library that would be implement as a modern C++ library and reside in .h files completely. The boost::gui would always call the specified low-level interface to do the low-level stuff (like create_window, draw_text, etc.). Is it what you mean? Eugene __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: Re: [boost] GUI/GDI template library
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of E. Gladyshev Sent: Monday, August 04, 2003 1:03 PM To: Boost mailing list Subject: RE: Re: Re: [boost] GUI/GDI template library --- Brock Peabody [EMAIL PROTECTED] wrote: If we can keep our interface simple it might be easiest to just make the library an interface specification which is implemented totally independently for each target platform. Does that seem reasonable? I agree. I think we can have 2 layers. One layer is a low-level single interface specification that will be implemented independently for each target platform. This low-level interface can be designed in terms of pImpl or ImplTraits idioms (the design would have to be different depending on the idiom we choose). I favor the ImplTraits idiom. The higher layer it the actual gui::boost library that would be implement as a modern C++ library and reside in .h files completely. The boost::gui would always call the specified low-level interface to do the low-level stuff (like create_window, draw_text, etc.). Is it what you mean? I think :) What I am trying to say is that the library would be completely reimplemented for each platform, except for those parts of the library which are implemented entirely in terms of the library's public interface. This saves us from having to find a representational scheme that will fit on top of an unknown number of platforms which might not have anything in common. Is that what you thought I meant? Brock ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: Re: [boost] GUI/GDI template library
--- Brock Peabody [EMAIL PROTECTED] wrote: This saves us from having to find a representational scheme that will fit on top of an unknown number of platforms which might not have anything in common. I think this is where we disagree. I prefer to find a single low-level represntation scheme that could be implemented on top of an unknown number of platforms. The representation could be even expressed in terms of a C API, it doesn't matter. The modern C++ layer will use the single representation, and not worry about a specific platform at all. The C++ layer will reside in .h files completely. If we do something like this, then our library will support Rainer Deyke's requirements (see his post in this thread). Eugene __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RE: Re: Re: [boost] GUI/GDI template library
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of E. Gladyshev Sent: Monday, August 04, 2003 2:33 PM To: Boost mailing list Subject: RE: Re: Re: [boost] GUI/GDI template library --- Brock Peabody [EMAIL PROTECTED] wrote: This saves us from having to find a representational scheme that will fit on top of an unknown number of platforms which might not have anything in common. I think this is where we disagree. I prefer to find a single low-level represntation scheme that could be implemented on top of an unknown number of platforms. The representation could be even expressed in terms of a C API, it doesn't matter. The modern C++ layer will use the single representation, and not worry about a specific platform at all. The C++ layer will reside in .h files completely. That might be a better way to go. I just don't know enough about GUI systems other than MFC to be able to envision what a scheme like that would look like or if it would succeed. You might save a lot of work coming up with a single low-level representation scheme, but it might become too complex. It's probably worth a try. In the worst case, I feel confident that we can make my brute-force approach work. If we do something like this, then our library will support Rainer Deyke's requirements (see his post in this thread). I'll see if I can find it. Brock ___ Unsubscribe other changes: http://lists.boost.org/mailman/listinfo.cgi/boost