class versions of these functions as this won't work any more; please see the
documentation of wxLog for more information.
+- Confusing wxGridSizer(int cols, int vgap = 0, int hgap = 0) ctor which was
+ easy to mistake for wxGridSizer(int rows, int cols) overload was removed, you
+ will need to specify both vertical and horizontal gap if you want to use this
+ overload or specify both rows and columns and the gap otherwise. Use of the
+ new constructors taking wxSize for the gap argument is preferred.
+
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
class WXDLLIMPEXP_CORE wxGridSizer: public wxSizer
{
public:
+ // ctors specifying the number of columns only: number of rows will be
+ // deduced automatically depending on the number of sizer elements
+ wxGridSizer( int cols, int vgap, int hgap );
+ wxGridSizer( int cols, const wxSize& gap = wxSize(0, 0) );
+
+ // ctors specifying the number of rows and columns
+ wxGridSizer( int rows, int cols, const wxSize& gap );
wxGridSizer( int rows, int cols, int vgap, int hgap );
- wxGridSizer( int cols, int vgap = 0, int hgap = 0 );
virtual wxSizerItem *Insert(size_t index, wxSizerItem *item);
public:
//@{
/**
- Constructor for a wxGridSizer.
+ wxGridSizer constructors.
- @a rows and @a cols determine the number of columns and rows in the sizer -
- if either of the parameters is zero, it will be calculated to form the
- total number of children in the sizer, thus making the sizer grow dynamically.
+ Usually only the number of columns in the grid sizer needs to be
+ specified using @a cols argument. The number of rows will be deduced
+ automatically depending on the number of the elements added to the
+ sizer. If the number of @a rows is explicitly specified (and not zero),
+ the sizer will check that it no more than @code cols*rows @endcode
+ elements are added to it.
- @a vgap and @a hgap define extra space between all children.
+ The @a gap (or @a vgap and @a hgap which correspond to y and x fields
+ of the wxSize object) argument defines the size of the padding between
+ the grid rows (its vertical component, or @a vgap) and columns (its
+ horizontal component, or @a hgap) in pixels.
+
+ @since 2.9.1 (except for the four argument overload)
*/
- wxGridSizer(int rows, int cols, int vgap, int hgap);
- wxGridSizer(int cols, int vgap = 0, int hgap = 0);
+ wxGridSizer( int cols, int vgap, int hgap );
+ wxGridSizer( int cols, const wxSize& gap = wxSize(0, 0) );
+
+ wxGridSizer( int rows, int cols, int vgap, int hgap );
+ wxGridSizer( int rows, int cols, const wxSize& gap );
//@}
/**
//---------------------------------------------------------------------------
wxGridSizer::wxGridSizer( int rows, int cols, int vgap, int hgap )
- : m_rows( ( cols == 0 && rows == 0 ) ? 1 : rows )
- , m_cols( cols )
- , m_vgap( vgap )
- , m_hgap( hgap )
+ : m_rows( rows || cols ? rows : 1 ),
+ m_cols( cols ),
+ m_vgap( vgap ),
+ m_hgap( hgap )
+{
+}
+
+wxGridSizer::wxGridSizer( int rows, int cols, const wxSize& gap )
+ : m_rows( rows || cols ? rows : 1 ),
+ m_cols( cols ),
+ m_vgap( gap.GetHeight() ),
+ m_hgap( gap.GetWidth() )
{
}
wxGridSizer::wxGridSizer( int cols, int vgap, int hgap )
- : m_rows( cols == 0 ? 1 : 0 )
- , m_cols( cols )
- , m_vgap( vgap )
- , m_hgap( hgap )
+ : m_rows( cols == 0 ? 1 : 0 ),
+ m_cols( cols ),
+ m_vgap( vgap ),
+ m_hgap( hgap )
+{
+}
+
+wxGridSizer::wxGridSizer( int cols, const wxSize& gap )
+ : m_rows( cols == 0 ? 1 : 0 ),
+ m_cols( cols ),
+ m_vgap( gap.GetHeight() ),
+ m_hgap( gap.GetWidth() )
{
}