X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2aab8f16ac7200349b41af957396029c176a9b9d..e13f1288772a23069470562fb5e0ce228640e77c:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index ccfb67985b..ece3be312e 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(); @@ -78,6 +80,8 @@ public: { m_flag = flag; } void SetBorder( int border ) { m_border = border; } + void Show ( bool show ) + { m_show = show; } wxWindow *GetWindow() const { return m_window; } @@ -93,6 +97,8 @@ public: { return m_flag; } int GetBorder() const { return m_border; } + bool IsShown() const + { return m_show; } wxObject* GetUserData() { return m_userData; } wxPoint GetPosition() @@ -107,10 +113,15 @@ protected: int m_option; int m_border; int m_flag; + + // If TRUE, then this item is considered in the layout + // calculation. Otherwise, it is skipped over. + bool m_show; // als: aspect ratio can always be calculated from m_size, // but this would cause precision loss when the window // is shrinked. it is safer to preserve initial value. float m_ratio; + wxObject *m_userData; private: @@ -143,6 +154,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,14 +193,31 @@ 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; } void SetDimension( int x, int y, int width, int height ); + // Manage whether individual windows or sub-sizers are considered + // in the layout calculations or not. + void Show( wxWindow *window, bool show = TRUE ); + void Hide( wxWindow *window ) + { Show (window, FALSE); } + void Show( wxSizer *sizer, bool show = TRUE ); + void Hide( wxSizer *sizer ) + { Show (sizer, FALSE); } + + bool IsShown( wxWindow *window ); + bool IsShown( wxSizer *sizer ); + + // Recursively call wxWindow::Show () on all sizer items. + void ShowItems (bool show); + protected: wxSize m_size; wxSize m_minSize; @@ -195,7 +226,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 +268,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: @@ -286,6 +323,9 @@ public: int GetOrientation() { return m_orient; } + void SetOrientation(int orient) + { m_orient = orient; } + protected: int m_orient; int m_stretchable;