> Here is a very simplified version of how this can
> happen.
> 
>   template <typename Traits> struct edit_imp {...};
> 
>    struct edit {
> 
>       template <typename Traits> edit_imp<Traits>
> make_gui() {...}
>    };
> 
>    template <typename Traits> struct
> gui_wrapper_base {
> 
>       //some pure virtual functions
>    };
> 
>    template <typename Traits, typename Control>
> struct gui_wrapper : 
>       gui_wrapper_base<Traits> {
> 
>       gui_wrapper(const Control& imp);
>       
>       //implements virtual functions by forwarding
> to Control
> 
>    private:
>    
>       Control imp;
>    };
> 
>    template <typename Traits> struct gui_application
> {
> 
>       template <typename Control>
> gui_application(const Control&
> control)
>          : pimpl(new
> gui_wrapper<Traits,Control>(control) {
>       }
> 
>       //also assignment operator, etc...
> 
>       //forward operations to pimpl
> 
>    private:
> 
>       boost::shared_ptr<gui_wrapper_base<Traits> >
> pimpl;
>    };


Something is confusing here. How does make_gui() get
used?  
Anyway I think I got the basic idea.  The idea is that
the GUI elements are classes defined on top of a
pImpl. Someone else creates the pImpl object and
passes it to the GUI elements classes.  The GUI
elements then call pImpl methods do the real job.
Did I get it right?

> I just learned aboutit today after my attachment was
> rejected for being
> too large and I gave up on the sandbox :)  It's at:
> 
> http://groups.yahoo.com/group/boost/files/

Thanks.

> 
> you could connect two controls
> with my code like:
> 
>    set_manager( row( edit(&employee::name),
> edit(&employee::name)));


I don't think that it is exactly the same.  If some
control changes the data, how do other connected
controls get updated in your code?


> I kind of like another poster's (Mr. Bouchard I
> think) idea of default
> control types.  You might be able to simplify the
> above to:
> 
>    set_manager( row( &employee::name,
> &employee::name));

Agree, it sounds interesting.



__________________________________
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

Reply via email to