X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5279a24d25b1d865212c838bb25546f79a9106df..0ce742cf092c9244f27957e308c16f3c2631042d:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 417cb9d981..5b8af95cdb 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -26,27 +26,32 @@ // classes //--------------------------------------------------------------------------- +class wxStaticBox; + class wxSizerItem; class wxSizer; class wxBoxSizer; +class wxStaticBoxSizer; //--------------------------------------------------------------------------- // wxSizerItem //--------------------------------------------------------------------------- -class WXDLLEXPORT wxSizerItem: wxObject +class WXDLLEXPORT wxSizerItem: public wxObject { public: // spacer - wxSizerItem( int width, int height, int option ) + wxSizerItem( int width, int height, int option, int flag, int border ); // window - wxSizerItem( wxWindow *window, int option ); + wxSizerItem( wxWindow *window, int option, int flag, int border ); // subsizer - wxSizerItem( wxSizer *sizer, int option ); + wxSizerItem( wxSizer *sizer, int option, int flag, int border ); - virtual wxSize GetMinSize(); + virtual wxSize GetSize(); + virtual wxSize CalcMin(); + virtual void SetDimension( wxPoint pos, wxSize size ); bool IsWindow(); bool IsSizer(); @@ -58,30 +63,44 @@ public: { return m_sizer; } int GetOption() const { return m_option; } + int GetFlag() const + { return m_flag; } + int GetBorder() const + { return m_border; } -private: +protected: wxWindow *m_window; wxSizer *m_sizer; + wxSize m_size; wxSize m_minSize; int m_option; -} + int m_border; + int m_flag; +}; //--------------------------------------------------------------------------- // wxSizer //--------------------------------------------------------------------------- -class WXDLLEXPORT wxSizer: wxObject +class WXDLLEXPORT wxSizer: public wxObject { public: - wxSizer() - ~wxSizer() + wxSizer(); + ~wxSizer(); + + virtual void Add( wxWindow *window, int option = 0, int flag = 0, int border = 0 ); + virtual void Add( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 ); + virtual void Add( int width, int height, int option = 0, int flag = 0, int border = 0 ); + + virtual void Prepend( wxWindow *window, int option = 0, int flag = 0, int border = 0 ); + virtual void Prepend( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 ); + virtual void Prepend( int width, int height, int option = 0, int flag = 0, int border = 0 ); - virtual void Add( wxWindow *window, int option = 0 ); - virtual void Add( wxSizer *sizer, int option = 0 ); - virtual void Add( int width, int height, int option = 0 ); + virtual bool Remove( wxWindow *window ); + virtual bool Remove( wxSizer *sizer ); + virtual bool Remove( int pos ); - void SetDimension( int x, int y, int width, int height ) - { DoSetDimension( x, y, width, height ); } + void SetDimension( int x, int y, int width, int height ); wxSize GetSize() { return m_size; } @@ -89,21 +108,65 @@ public: { return m_position; } wxSize GetMinSize() { return CalcMin(); } - + virtual void RecalcSizes() = 0; virtual wxSize CalcMin() = 0; + + virtual void Layout(); void Fit( wxWindow *window ); void SetSizeHints( wxWindow *window ); -private: +protected: wxSize m_size; wxPoint m_position; wxList m_children; wxSize GetMinWindowSize( wxWindow *window ); - virtual void DoSetDimension( int x, int y, int width, int height ); -} +}; + +//--------------------------------------------------------------------------- +// wxBoxSizer +//--------------------------------------------------------------------------- + +class WXDLLEXPORT wxBoxSizer: public wxSizer +{ +public: + wxBoxSizer( int orient ); + + void RecalcSizes(); + wxSize CalcMin(); + + int GetOrientation() + { return m_orient; } + +protected: + int m_orient; + int m_stretchable; + int m_minWidth; + int m_minHeight; + int m_fixedWidth; + int m_fixedHeight; +}; + +//--------------------------------------------------------------------------- +// wxStaticBoxSizer +//--------------------------------------------------------------------------- + +class WXDLLEXPORT wxStaticBoxSizer: public wxBoxSizer +{ +public: + wxStaticBoxSizer( wxStaticBox *box, int orient ); + + void RecalcSizes(); + wxSize CalcMin(); + + wxStaticBox *GetStaticBox() + { return m_staticBox; } + +protected: + wxStaticBox *m_staticBox; +}; #endif // __WXSIZER_H__