X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12028905135250524409f1e7b9bfa9c55e5ce16b..f2cc8cbbbd6fffea122a5f8a6f73ac3f524c7283:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 96024f1559..eeed12325b 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -59,7 +59,8 @@ public: int border, wxObject* userData ); - ~wxSizerItem(); + wxSizerItem(); + virtual ~wxSizerItem(); virtual void DeleteWindows(); @@ -111,7 +112,7 @@ public: wxWindow *GetWindow() const { return m_window; } void SetWindow( wxWindow *window ) - { m_window = window; } + { m_window = window; m_minSize = window->GetSize(); } wxSizer *GetSizer() const { return m_sizer; } void SetSizer( wxSizer *sizer ) @@ -412,12 +413,19 @@ public: void SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode) { m_growMode = mode; } wxFlexSizerGrowMode GetNonFlexibleGrowMode() const { return m_growMode; } - + // Read-only access to the row heights and col widths arrays + const wxArrayInt& GetRowHeights() const { return m_rowHeights; } + const wxArrayInt& GetColWidths() const { return m_colWidths; } + // implementation virtual void RecalcSizes(); virtual wxSize CalcMin(); protected: + void AdjustForFlexDirection(); + void AdjustForGrowables(const wxSize& sz, const wxSize& minsz, + int nrows, int ncols); + // the heights/widths of all rows/columns wxArrayInt m_rowHeights, m_colWidths; @@ -499,27 +507,47 @@ private: #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(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) @@ -528,6 +556,7 @@ private: #endif // wxUSE_NOTEBOOK +#endif // wxUSE_BOOKCTRL + +#endif // __WXSIZER_H__ -#endif - // __WXSIZER_H__