X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..69429a166f8b168228bbb89eb8c52903670f4fd2:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index bcdeb0339c..3857f28d25 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -2,7 +2,7 @@ // Name: sizer.h // Purpose: provide wxSizer class for layouting // Author: Robert Roebling and Robin Dunn -// Modified by: +// Modified by: Ron Lee // Created: // RCS-ID: $Id$ // Copyright: (c) Robin Dunn, Dirk Holtwick and Robert Roebling @@ -12,7 +12,7 @@ #ifndef __WXSIZER_H__ #define __WXSIZER_H__ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "sizer.h" #endif @@ -47,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(); @@ -61,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 ) @@ -112,7 +114,7 @@ protected: // is shrinked. it is safer to preserve initial value. float m_ratio; wxObject *m_userData; - + private: DECLARE_CLASS(wxSizerItem); }; @@ -121,7 +123,7 @@ private: // wxSizer //--------------------------------------------------------------------------- -class WXDLLEXPORT wxSizer: public wxObject +class WXDLLEXPORT wxSizer: public wxObject, public wxClientDataContainer { public: wxSizer(); @@ -143,6 +145,9 @@ 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 ); } @@ -179,8 +184,10 @@ public: virtual void Layout(); - void Fit( wxWindow *window ); + wxSize Fit( wxWindow *window ); + void FitInside( wxWindow *window ); void SetSizeHints( wxWindow *window ); + void SetVirtualSizeHints( wxWindow *window ); wxList& GetChildren() { return m_children; } @@ -195,7 +202,10 @@ protected: wxSize GetMaxWindowSize( wxWindow *window ); wxSize GetMinWindowSize( wxWindow *window ); + wxSize GetMaxClientSize( wxWindow *window ); + wxSize GetMinClientSize( wxWindow *window ); wxSize FitSize( wxWindow *window ); + wxSize VirtualFitSize( wxWindow *window ); virtual void DoSetMinSize( int width, int height ); virtual bool DoSetItemMinSize( wxWindow *window, int width, int height ); @@ -234,6 +244,9 @@ protected: int m_vgap; int m_hgap; + // return the number of total items and the number of columns and rows + int CalcRowsCols(int& rows, int& cols) const; + void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); private: