X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/566d84a7c3c06956562b9f8ac364aa3bad760c10..e13f1288772a23069470562fb5e0ce228640e77c:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index d406d059b6..ece3be312e 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -12,7 +12,7 @@ #ifndef __WXSIZER_H__ #define __WXSIZER_H__ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "sizer.h" #endif @@ -80,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; } @@ -95,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() @@ -109,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: @@ -184,7 +193,7 @@ public: virtual void Layout(); - void Fit( wxWindow *window ); + wxSize Fit( wxWindow *window ); void FitInside( wxWindow *window ); void SetSizeHints( wxWindow *window ); void SetVirtualSizeHints( wxWindow *window ); @@ -194,6 +203,21 @@ public: 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; @@ -244,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: @@ -296,6 +323,9 @@ public: int GetOrientation() { return m_orient; } + void SetOrientation(int orient) + { m_orient = orient; } + protected: int m_orient; int m_stretchable;