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,
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);
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)
};
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();
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
wxT("invalid value for wxBoxSizer orientation") );
}
+ virtual wxSizerItem *AddSpacer(int size);
+
int GetOrientation() const { return m_orient; }
bool IsVertical() const { return m_orient == wxVERTICAL; }
#endif // WXWIN_COMPATIBILITY_2_8
+inline wxSizerItem*
+wxSizer::Insert(size_t index, wxSizerItem *item)
+{
+ return DoInsert(index, item);
+}
+
inline wxSizerItem*
wxSizer::Add( wxSizerItem *item )