X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0274a7973da59746c55bc91ebceac64f622b6a34..825794618f758d58d3b84c77cc60cd884c270f73:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index 289b765d80..6d414fd09d 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -510,7 +510,7 @@ public: wxSizerItem* Add( int width, int height, const wxSizerFlags& flags); wxSizerItem* Add( wxSizerItem *item); - wxSizerItem* AddSpacer(int size); + virtual wxSizerItem *AddSpacer(int size); wxSizerItem* AddStretchSpacer(int prop = 1); wxSizerItem* Insert(size_t index, @@ -542,7 +542,11 @@ public: int width, int height, const wxSizerFlags& flags); - virtual wxSizerItem* Insert( size_t index, wxSizerItem *item); + + // NB: do _not_ override this function in the derived classes, this one is + // virtual for compatibility reasons only to allow old code overriding + // it to continue to work, override DoInsert() instead in the new code + virtual wxSizerItem* Insert(size_t index, wxSizerItem *item); wxSizerItem* InsertSpacer(size_t index, int size); wxSizerItem* InsertStretchSpacer(size_t index, int prop = 1); @@ -713,6 +717,10 @@ protected: virtual bool DoSetItemMinSize( wxSizer *sizer, int width, int height ); virtual bool DoSetItemMinSize( size_t index, int width, int height ); + // insert a new item into m_children at given index and return the item + // itself + virtual wxSizerItem* DoInsert(size_t index, wxSizerItem *item); + private: DECLARE_CLASS(wxSizer) }; @@ -733,8 +741,6 @@ public: wxGridSizer( int rows, int cols, int vgap, int hgap ); wxGridSizer( int rows, int cols, const wxSize& gap ); - virtual wxSizerItem *Insert(size_t index, wxSizerItem *item); - virtual void RecalcSizes(); virtual wxSize CalcMin(); @@ -774,6 +780,8 @@ protected: int m_vgap; int m_hgap; + virtual wxSizerItem *DoInsert(size_t index, wxSizerItem *item); + void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); // returns the number of columns/rows needed for the current total number @@ -913,6 +921,8 @@ public: wxT("invalid value for wxBoxSizer orientation") ); } + virtual wxSizerItem *AddSpacer(int size); + int GetOrientation() const { return m_orient; } bool IsVertical() const { return m_orient == wxVERTICAL; } @@ -1103,6 +1113,12 @@ inline void wxSizerItem::SetSpacer(int width, int height) #endif // WXWIN_COMPATIBILITY_2_8 +inline wxSizerItem* +wxSizer::Insert(size_t index, wxSizerItem *item) +{ + return DoInsert(index, item); +} + inline wxSizerItem* wxSizer::Add( wxSizerItem *item )