00001 00002 00003 00004 #ifndef LAYOUTMANAGER_H 00005 #define LAYOUTMANAGER_H 00006 00007 #include "Control.h" 00008 #include "Layout.h" 00009 #include <vector> 00010 00011 namespace wkgl { 00012 00013 typedef RECT (*LAYOUTFUNC)(Control**, int, LAYOUT_INFO ); 00014 00024 class LayoutManager : public Control 00025 { 00026 protected: 00027 std::vector <Control*> comps; 00028 LAYOUT_INFO info; 00029 RECT area; 00030 00032 LAYOUTFUNC layoutf; 00033 00034 public: 00038 LayoutManager( Control *parent, LAYOUT_INFO linfo, 00039 LAYOUTFUNC l = NULL ); 00040 00044 virtual RECT layout(); 00045 00049 virtual void add( Control* com ); 00050 00054 virtual void setLayout( LAYOUTFUNC l ); 00055 00059 virtual void setLayoutInfo( LAYOUT_INFO info ); 00060 00064 virtual LAYOUT_INFO getLayoutInfo(); 00065 00069 virtual RECT getPaintArea(); 00070 00074 virtual int getWidth(); 00075 00079 virtual int getHeight(); 00080 00084 virtual void setPosition( int x, int y ); 00085 00088 virtual BOOL create( Control* parent ) { layout(); return TRUE; } 00089 }; 00090 } 00091 #endif
1.2.18