
"Alan Gutierrez" <alan-boost@engrm.com> wrote
Are we talking about the same thing? Interface and implentation are overloaded terms.
// interface (ABC) struct graphics_element{ virtual void draw(Context c) =0; }; // gui object.. struct my_wnd : graphics_element, size_handler,move_handler,draw_handler { void draw(Context c); ...}; //simple line definition... template <typename Units> // struct simple_line{ point<Units> start,end;} // dumb drawable line template <typename Units> struct drawable_line : simple_line<Units>, graphics_element{ void draw(Context c); Units thickness; Color color; }; template <typename Units> struct active_line : drawable_line<Units>, user_action_handler, draw_handler{..}; // text struct text_element : graphics_element {..} // edit box struct active_text : text_element,user_action_handler, draw_handler{..}; regards Andy Little