X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5d76f4628261a5d80ca18e45b311efa2e79f3d57..80b2db4ee671f62a1de0f9f91e007c83449df107:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index b5f0665955..76687aed61 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -1,19 +1,18 @@ ///////////////////////////////////////////////////////////////////////////// // Name: sizer.h -// Purpose: provide wxSizer class for layouting +// Purpose: provide wxSizer class for layout // Author: Robert Roebling and Robin Dunn // Modified by: Ron Lee // Created: // RCS-ID: $Id$ -// Copyright: (c) Robin Dunn, Dirk Holtwick and Robert Roebling -// (c) 2003, Ron Lee +// Copyright: (c) Robin Dunn, Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __WXSIZER_H__ #define __WXSIZER_H__ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "sizer.h" #endif @@ -153,7 +152,7 @@ protected: wxObject *m_userData; private: - DECLARE_CLASS(wxSizerItem); + DECLARE_CLASS(wxSizerItem) DECLARE_NO_COPY_CLASS(wxSizerItem) }; @@ -326,7 +325,7 @@ protected: virtual bool DoSetItemMinSize( size_t index, int width, int height ); private: - DECLARE_CLASS(wxSizer); + DECLARE_CLASS(wxSizer) }; //--------------------------------------------------------------------------- @@ -363,7 +362,7 @@ protected: void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); private: - DECLARE_CLASS(wxGridSizer); + DECLARE_CLASS(wxGridSizer) }; //--------------------------------------------------------------------------- @@ -395,9 +394,9 @@ public: // set the rows/columns which will grow (the others will remain of the // constant initial size) - void AddGrowableRow( size_t idx ); + void AddGrowableRow( size_t idx, int proportion = 0 ); void RemoveGrowableRow( size_t idx ); - void AddGrowableCol( size_t idx ); + void AddGrowableCol( size_t idx, int proportion = 0 ); void RemoveGrowableCol( size_t idx ); @@ -427,13 +426,17 @@ protected: wxArrayInt m_growableRows, m_growableCols; + // proportion values of the corresponding growable rows and columns + wxArrayInt m_growableRowsProportions, + m_growableColsProportions; + // parameters describing whether the growable cells should be resized in // both directions or only one int m_flexDirection; wxFlexSizerGrowMode m_growMode; private: - DECLARE_CLASS(wxFlexGridSizer); + DECLARE_CLASS(wxFlexGridSizer) DECLARE_NO_COPY_CLASS(wxFlexGridSizer) }; @@ -464,7 +467,7 @@ protected: int m_fixedHeight; private: - DECLARE_CLASS(wxBoxSizer); + DECLARE_CLASS(wxBoxSizer) }; //--------------------------------------------------------------------------- @@ -490,41 +493,62 @@ protected: wxStaticBox *m_staticBox; private: - DECLARE_CLASS(wxStaticBoxSizer); + DECLARE_CLASS(wxStaticBoxSizer) DECLARE_NO_COPY_CLASS(wxStaticBoxSizer) }; #endif // wxUSE_STATBOX -//--------------------------------------------------------------------------- -// wxNotebookSizer -//--------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// wxBookCtrlSizer +// ---------------------------------------------------------------------------- -#if wxUSE_NOTEBOOK +#if wxUSE_BOOKCTRL -class WXDLLEXPORT wxNotebook; +// this sizer works with wxNotebook/wxListbook/... and sizes the control to +// fit its pages +class WXDLLEXPORT wxBookCtrl; -class WXDLLEXPORT wxNotebookSizer: public wxSizer +class WXDLLEXPORT wxBookCtrlSizer : public wxSizer { public: - wxNotebookSizer( wxNotebook *nb ); + wxBookCtrlSizer(wxBookCtrl *bookctrl); - void RecalcSizes(); - wxSize CalcMin(); + virtual void RecalcSizes(); + virtual wxSize CalcMin(); - wxNotebook *GetNotebook() const - { return m_notebook; } + wxBookCtrl *GetControl() const { return m_bookctrl; } protected: - wxNotebook *m_notebook; + wxBookCtrl *m_bookctrl; private: - DECLARE_CLASS(wxNotebookSizer); + DECLARE_CLASS(wxBookCtrlSizer) + DECLARE_NO_COPY_CLASS(wxBookCtrlSizer) +}; + + +#if wxUSE_NOTEBOOK + +// before wxBookCtrl we only had wxNotebookSizer, keep it for backwards +// compatibility +class WXDLLEXPORT wxNotebook; + +class WXDLLEXPORT wxNotebookSizer : public wxBookCtrlSizer +{ +public: + wxNotebookSizer(wxNotebook *nb); + + wxNotebook *GetNotebook() const { return (wxNotebook *)m_bookctrl; } + +private: + DECLARE_CLASS(wxNotebookSizer) DECLARE_NO_COPY_CLASS(wxNotebookSizer) }; #endif // wxUSE_NOTEBOOK +#endif // wxUSE_BOOKCTRL + +#endif // __WXSIZER_H__ -#endif - // __WXSIZER_H__