X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/df5ddbca48c63ffae5cfd044a92d7352245e8c86..1a6a6043f79b8b12958e6cb09d443213a969507d:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 32cff00a7c..11b4e38912 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -26,13 +26,9 @@ // classes //--------------------------------------------------------------------------- -class wxStaticBox; -class wxNotebook; - class wxSizerItem; class wxSizer; class wxBoxSizer; -class wxStaticBoxSizer; //--------------------------------------------------------------------------- // wxSizerItem @@ -51,6 +47,8 @@ public: wxSizerItem( wxSizer *sizer, int option, int flag, int border, wxObject* userData ); ~wxSizerItem(); + + virtual void DeleteWindows(); virtual wxSize GetSize(); virtual wxSize CalcMin(); @@ -65,15 +63,15 @@ public: { m_ratio = (width && height) ? ((float) width / (float) height) : 1; } void SetRatio( wxSize size ) { m_ratio = (size.x && size.y) ? ((float) size.x / (float) size.y) : 1; } - void SetRatio( float ratio ) + void SetRatio( float ratio ) { m_ratio = ratio; } - float GetRatio() const + float GetRatio() const { return m_ratio; } bool IsWindow(); bool IsSizer(); bool IsSpacer(); - + void SetInitSize( int x, int y ) { m_minSize.x = x; m_minSize.y = y; } void SetOption( int option ) @@ -116,7 +114,7 @@ protected: // is shrinked. it is safer to preserve initial value. float m_ratio; wxObject *m_userData; - + private: DECLARE_CLASS(wxSizerItem); }; @@ -125,7 +123,7 @@ private: // wxSizer //--------------------------------------------------------------------------- -class WXDLLEXPORT wxSizer: public wxObject +class WXDLLEXPORT wxSizer: public wxObject, public wxClientDataContainer { public: wxSizer(); @@ -147,34 +145,37 @@ public: virtual bool Remove( wxWindow *window ); virtual bool Remove( wxSizer *sizer ); virtual bool Remove( int pos ); + + virtual void Clear( bool delete_windows=FALSE ); + virtual void DeleteWindows(); void SetMinSize( int width, int height ) { DoSetMinSize( width, height ); } void SetMinSize( wxSize size ) { DoSetMinSize( size.x, size.y ); } - + /* Searches recursively */ bool SetItemMinSize( wxWindow *window, int width, int height ) { return DoSetItemMinSize( window, width, height ); } bool SetItemMinSize( wxWindow *window, wxSize size ) { return DoSetItemMinSize( window, size.x, size.y ); } - + /* Searches recursively */ bool SetItemMinSize( wxSizer *sizer, int width, int height ) { return DoSetItemMinSize( sizer, width, height ); } bool SetItemMinSize( wxSizer *sizer, wxSize size ) { return DoSetItemMinSize( sizer, size.x, size.y ); } - + bool SetItemMinSize( int pos, int width, int height ) { return DoSetItemMinSize( pos, width, height ); } bool SetItemMinSize( int pos, wxSize size ) { return DoSetItemMinSize( pos, size.x, size.y ); } - + wxSize GetSize() { return m_size; } wxPoint GetPosition() { return m_position; } - + /* Calculate the minimal size or return m_minSize if bigger. */ wxSize GetMinSize(); @@ -197,13 +198,15 @@ protected: wxPoint m_position; wxList m_children; + wxSize GetMaxWindowSize( wxWindow *window ); wxSize GetMinWindowSize( wxWindow *window ); - + wxSize FitSize( wxWindow *window ); + virtual void DoSetMinSize( int width, int height ); virtual bool DoSetItemMinSize( wxWindow *window, int width, int height ); virtual bool DoSetItemMinSize( wxSizer *sizer, int width, int height ); virtual bool DoSetItemMinSize( int pos, int width, int height ); - + private: DECLARE_CLASS(wxSizer); }; @@ -217,7 +220,7 @@ class WXDLLEXPORT wxGridSizer: public wxSizer public: wxGridSizer( int rows, int cols, int vgap, int hgap ); wxGridSizer( int cols, int vgap = 0, int hgap = 0 ); - + void RecalcSizes(); wxSize CalcMin(); @@ -229,15 +232,15 @@ public: int GetRows() { return m_rows; } int GetVGap() { return m_vgap; } int GetHGap() { return m_hgap; } - + protected: int m_rows; int m_cols; int m_vgap; int m_hgap; - + void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); - + private: DECLARE_CLASS(wxGridSizer); }; @@ -252,10 +255,10 @@ public: wxFlexGridSizer( int rows, int cols, int vgap, int hgap ); wxFlexGridSizer( int cols, int vgap = 0, int hgap = 0 ); ~wxFlexGridSizer(); - + void RecalcSizes(); wxSize CalcMin(); - + void AddGrowableRow( size_t idx ); void RemoveGrowableRow( size_t idx ); void AddGrowableCol( size_t idx ); @@ -266,9 +269,9 @@ protected: int *m_colWidths; wxArrayInt m_growableRows; wxArrayInt m_growableCols; - + void CreateArrays(); - + private: DECLARE_CLASS(wxFlexGridSizer); }; @@ -295,7 +298,7 @@ protected: int m_minHeight; int m_fixedWidth; int m_fixedHeight; - + private: DECLARE_CLASS(wxBoxSizer); }; @@ -304,6 +307,10 @@ private: // wxStaticBoxSizer //--------------------------------------------------------------------------- +#if wxUSE_STATBOX + +class WXDLLEXPORT wxStaticBox; + class WXDLLEXPORT wxStaticBoxSizer: public wxBoxSizer { public: @@ -317,17 +324,21 @@ public: protected: wxStaticBox *m_staticBox; - + private: DECLARE_CLASS(wxStaticBoxSizer); }; +#endif // wxUSE_STATBOX + //--------------------------------------------------------------------------- // wxNotebookSizer //--------------------------------------------------------------------------- #if wxUSE_NOTEBOOK +class WXDLLEXPORT wxNotebook; + class WXDLLEXPORT wxNotebookSizer: public wxSizer { public: @@ -341,12 +352,12 @@ public: protected: wxNotebook *m_notebook; - + private: DECLARE_CLASS(wxNotebookSizer); }; -#endif +#endif // wxUSE_NOTEBOOK #endif