00001 #ifndef _WINDOW_H_INCLUDED_ 00002 #define _WINDOW_H_INCLUDED_ 00003 00004 #include <iostream> 00005 #include <vector> 00006 00007 class VisualComponent; 00008 00009 class Window 00010 { 00011 public: 00012 Window(); 00013 void SetContents( VisualComponent* contents_ ); 00014 void Draw() const; 00015 void Resize(); 00016 00017 private: 00018 // For simplicity, our window has only one visual component. 00019 // However, in more realistic scenario, the Window 00020 // could have a Composite tree of various visual components: 00021 std::vector< VisualComponent* > m_contents; 00022 }; 00023 00024 #endif //_WINDOW_H_INCLUDED_