X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7aab7176f17f06d41011d78dc462e47672357859..c9ccc09c64f4c29d4667796bef7b507d9e8d25ed:/include/wx/sizer.h diff --git a/include/wx/sizer.h b/include/wx/sizer.h index aa14476d05..39044e31e8 100644 --- a/include/wx/sizer.h +++ b/include/wx/sizer.h @@ -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); @@ -661,6 +665,10 @@ public: m_position = pos; m_size = size; Layout(); + + // This call is required for wxWrapSizer to be able to calculate its + // minimal size correctly. + InformFirstDirection(wxHORIZONTAL, size.x, size.y); } void SetDimension(int x, int y, int width, int height) { SetDimension(wxPoint(x, y), wxSize(width, height)); } @@ -713,6 +721,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 +745,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 +784,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 @@ -827,7 +839,7 @@ class WXDLLIMPEXP_CORE wxFlexGridSizer: public wxGridSizer public: // ctors specifying the number of columns only: number of rows will be // deduced automatically depending on the number of sizer elements - wxFlexGridSizer( int cols, int vgap, int hgap = 0); + wxFlexGridSizer( int cols, int vgap, int hgap ); wxFlexGridSizer( int cols, const wxSize& gap = wxSize(0, 0) ); // ctors specifying the number of rows and columns @@ -1105,6 +1117,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 )