Version: 3.2.7
wxGridSizer Class Reference

#include <wx/sizer.h>

+ Inheritance diagram for wxGridSizer:

Detailed Description

A grid sizer is a sizer which lays out its children in a two-dimensional table with all table fields having the same size, i.e.

the width of each field is the width of the widest child, the height of each field is the height of the tallest child.

Library:  wxCore
Category:  Window Layout
See also
wxSizer, Sizers Overview

Public Member Functions

int GetCols () const
 Returns the number of columns that has been specified for the sizer. More...
 
int GetRows () const
 Returns the number of rows that has been specified for the sizer. More...
 
int GetEffectiveColsCount () const
 Returns the number of columns currently used by the sizer. More...
 
int GetEffectiveRowsCount () const
 Returns the number of rows currently used by the sizer. More...
 
int GetHGap () const
 Returns the horizontal gap (in pixels) between cells in the sizer. More...
 
int GetVGap () const
 Returns the vertical gap (in pixels) between the cells in the sizer. More...
 
void SetCols (int cols)
 Sets the number of columns in the sizer. More...
 
void SetHGap (int gap)
 Sets the horizontal gap (in pixels) between cells in the sizer. More...
 
void SetRows (int rows)
 Sets the number of rows in the sizer. More...
 
void SetVGap (int gap)
 Sets the vertical gap (in pixels) between the cells in the sizer. More...
 
virtual wxSize CalcMin ()
 This method is abstract and has to be overwritten by any derived class. More...
 
virtual void RepositionChildren (const wxSize &minSize)
 Method which must be overridden in the derived sizer classes. More...
 
 wxGridSizer (int cols, int vgap, int hgap)
 wxGridSizer constructors. More...
 
 wxGridSizer (int cols, const wxSize &gap=wxSize(0, 0))
 wxGridSizer constructors. More...
 
 wxGridSizer (int rows, int cols, int vgap, int hgap)
 wxGridSizer constructors. More...
 
 wxGridSizer (int rows, int cols, const wxSize &gap)
 wxGridSizer constructors. More...
 
- Public Member Functions inherited from wxSizer
 wxSizer ()
 The constructor. More...
 
virtual ~wxSizer ()
 The destructor. More...
 
wxSizerItemAdd (wxWindow *window, const wxSizerFlags &flags)
 Appends a child to the sizer. More...
 
wxSizerItemAdd (wxWindow *window, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Appends a child to the sizer. More...
 
wxSizerItemAdd (wxSizer *sizer, const wxSizerFlags &flags)
 Appends a child to the sizer. More...
 
wxSizerItemAdd (wxSizer *sizer, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Appends a child to the sizer. More...
 
wxSizerItemAdd (int width, int height, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Appends a spacer child to the sizer. More...
 
wxSizerItemAdd (int width, int height, const wxSizerFlags &flags)
 Appends a spacer child to the sizer. More...
 
wxSizerItemAdd (wxSizerItem *item)
 
virtual wxSizerItemAddSpacer (int size)
 This base function adds non-stretchable space to both the horizontal and vertical orientation of the sizer. More...
 
wxSizerItemAddStretchSpacer (int prop=1)
 Adds stretchable space to the sizer. More...
 
virtual void Clear (bool delete_windows=false)
 Detaches all children from the sizer. More...
 
wxSize ComputeFittingClientSize (wxWindow *window)
 Computes client area size for window so that it matches the sizer's minimal size. More...
 
wxSize ComputeFittingWindowSize (wxWindow *window)
 Like ComputeFittingClientSize(), but converts the result into window size. More...
 
virtual bool Detach (wxWindow *window)
 Detach the child window from the sizer without destroying it. More...
 
virtual bool Detach (wxSizer *sizer)
 Detach the child sizer from the sizer without destroying it. More...
 
virtual bool Detach (int index)
 Detach an item at position index from the sizer without destroying it. More...
 
wxSize Fit (wxWindow *window)
 Tell the sizer to resize the window so that its client area matches the sizer's minimal size (ComputeFittingClientSize() is called to determine it). More...
 
void FitInside (wxWindow *window)
 Tell the sizer to resize the virtual size of the window to match the sizer's minimal size. More...
 
virtual bool InformFirstDirection (int direction, int size, int availableOtherDir)
 Inform sizer about the first direction that has been decided (by parent item). More...
 
wxWindowGetContainingWindow () const
 Returns the window this sizer is used in or NULL if none. More...
 
void SetContainingWindow (wxWindow *window)
 Set the window this sizer is used in. More...
 
size_t GetItemCount () const
 Returns the number of items in the sizer. More...
 
wxSizerItemGetItem (wxWindow *window, bool recursive=false)
 Finds the wxSizerItem which holds the given window. More...
 
wxSizerItemGetItem (wxSizer *sizer, bool recursive=false)
 Finds the wxSizerItem which holds the given sizer. More...
 
wxSizerItemGetItem (size_t index)
 Finds the wxSizerItem which is located in the sizer at position index. More...
 
wxSizerItemGetItemById (int id, bool recursive=false)
 Finds the item in the sizer which has the given id. More...
 
wxSize GetMinSize ()
 Returns the minimal size of the sizer. More...
 
wxPoint GetPosition () const
 Returns the current position of the sizer. More...
 
wxSize GetSize () const
 Returns the current size of the sizer. More...
 
bool Hide (wxWindow *window, bool recursive=false)
 Hides the child window. More...
 
bool Hide (wxSizer *sizer, bool recursive=false)
 Hides the child sizer. More...
 
bool Hide (size_t index)
 Hides the item at position index. More...
 
wxSizerItemInsert (size_t index, wxWindow *window, const wxSizerFlags &flags)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, wxWindow *window, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, wxSizer *sizer, const wxSizerFlags &flags)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, wxSizer *sizer, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, int width, int height, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, int width, int height, const wxSizerFlags &flags)
 Insert a child into the sizer before any existing item at index. More...
 
wxSizerItemInsert (size_t index, wxSizerItem *item)
 
wxSizerItemInsertSpacer (size_t index, int size)
 Inserts non-stretchable space to the sizer. More...
 
wxSizerItemInsertStretchSpacer (size_t index, int prop=1)
 Inserts stretchable space to the sizer. More...
 
bool IsEmpty () const
 Return true if the sizer has no elements. More...
 
bool IsShown (wxWindow *window) const
 Returns true if the window is shown. More...
 
bool IsShown (wxSizer *sizer) const
 Returns true if the sizer is shown. More...
 
bool IsShown (size_t index) const
 Returns true if the item at index is shown. More...
 
virtual void Layout ()
 Call this to force layout of the children anew, e.g. after having added a child to or removed a child (window, other sizer or space) from the sizer while keeping the current dimension. More...
 
wxSizerItemPrepend (wxWindow *window, const wxSizerFlags &flags)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (wxWindow *window, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (wxSizer *sizer, const wxSizerFlags &flags)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (wxSizer *sizer, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (int width, int height, int proportion=0, int flag=0, int border=0, wxObject *userData=NULL)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (int width, int height, const wxSizerFlags &flags)
 Same as Add(), but prepends the items to the beginning of the list of items (windows, subsizers or spaces) owned by this sizer. More...
 
wxSizerItemPrepend (wxSizerItem *item)
 
wxSizerItemPrependSpacer (int size)
 Prepends non-stretchable space to the sizer. More...
 
wxSizerItemPrependStretchSpacer (int prop=1)
 Prepends stretchable space to the sizer. More...
 
virtual bool Remove (wxWindow *window)
 Removes a child window from the sizer, but does not destroy it (because windows are owned by their parent window, not the sizer). More...
 
virtual bool Remove (wxSizer *sizer)
 Removes a sizer child from the sizer and destroys it. More...
 
virtual bool Remove (int index)
 Removes a child from the sizer and destroys it if it is a sizer or a spacer, but not if it is a window (because windows are owned by their parent window, not the sizer). More...
 
virtual bool Replace (wxWindow *oldwin, wxWindow *newwin, bool recursive=false)
 Detaches the given oldwin from the sizer and replaces it with the given newwin. More...
 
virtual bool Replace (wxSizer *oldsz, wxSizer *newsz, bool recursive=false)
 Detaches the given oldsz from the sizer and replaces it with the given newsz. More...
 
virtual bool Replace (size_t index, wxSizerItem *newitem)
 Detaches the given item at position index from the sizer and replaces it with the given wxSizerItem newitem. More...
 
void SetDimension (int x, int y, int width, int height)
 Call this to force the sizer to take the given dimension and thus force the items owned by the sizer to resize themselves according to the rules defined by the parameter in the Add() and Prepend() methods. More...
 
void SetDimension (const wxPoint &pos, const wxSize &size)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void SetMinSize (const wxSize &size)
 Call this to give the sizer a minimal size. More...
 
void SetMinSize (int width, int height)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void SetSizeHints (wxWindow *window)
 This method first calls Fit() and then wxTopLevelWindow::SetSizeHints() on the window passed to it. More...
 
void SetVirtualSizeHints (wxWindow *window)
 Tell the sizer to set the minimal size of the window virtual area to match the sizer's minimal size. More...
 
bool Show (wxWindow *window, bool show=true, bool recursive=false)
 Shows or hides the window. More...
 
bool Show (wxSizer *sizer, bool show=true, bool recursive=false)
 Shows or hides sizer. More...
 
bool Show (size_t index, bool show=true)
 Shows the item at index. More...
 
virtual void ShowItems (bool show)
 Show or hide all items managed by the sizer. More...
 
wxSizerItemList & GetChildren ()
 Returns the list of the items in this sizer. More...
 
const wxSizerItemList & GetChildren () const
 Returns the list of the items in this sizer. More...
 
bool SetItemMinSize (wxWindow *window, int width, int height)
 Set an item's minimum size by window, sizer, or position. More...
 
bool SetItemMinSize (wxWindow *window, const wxSize &size)
 Set an item's minimum size by window, sizer, or position. More...
 
bool SetItemMinSize (wxSizer *sizer, int width, int height)
 Set an item's minimum size by window, sizer, or position. More...
 
bool SetItemMinSize (wxSizer *sizer, const wxSize &size)
 Set an item's minimum size by window, sizer, or position. More...
 
bool SetItemMinSize (size_t index, int width, int height)
 Set an item's minimum size by window, sizer, or position. More...
 
bool SetItemMinSize (size_t index, const wxSize &size)
 Set an item's minimum size by window, sizer, or position. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to NULL the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class. More...
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj. More...
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone. More...
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer. More...
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public. More...
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 
void * operator new (size_t size, const wxString &filename=NULL, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 

Additional Inherited Members

- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object. More...
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
 
- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data. More...
 

Constructor & Destructor Documentation

◆ wxGridSizer() [1/4]

wxGridSizer::wxGridSizer ( int  cols,
int  vgap,
int  hgap 
)

wxGridSizer constructors.

Usually only the number of columns in the flex grid sizer needs to be specified using cols argument. The number of rows will be deduced automatically depending on the number of the elements added to the sizer.

If a constructor form with rows parameter is used (and the value of rows argument is not zero, meaning "unspecified") the sizer will check that no more than cols*rows elements are added to it, i.e. that no more than the given number of rows is used. Adding less than maximally allowed number of items is not an error however.

Finally, it is also possible to specify the number of rows and use 0 for cols. In this case, the sizer will use the given fixed number of rows and as many columns as necessary.

The gap (or vgap and hgap, which correspond to the height and width of the wxSize object) argument defines the size of the padding between the rows (its vertical component, or vgap) and columns (its horizontal component, or hgap), in pixels.

Since
2.9.1 (except for the four argument overload)

◆ wxGridSizer() [2/4]

wxGridSizer::wxGridSizer ( int  cols,
const wxSize gap = wxSize(0, 0) 
)

wxGridSizer constructors.

Usually only the number of columns in the flex grid sizer needs to be specified using cols argument. The number of rows will be deduced automatically depending on the number of the elements added to the sizer.

If a constructor form with rows parameter is used (and the value of rows argument is not zero, meaning "unspecified") the sizer will check that no more than cols*rows elements are added to it, i.e. that no more than the given number of rows is used. Adding less than maximally allowed number of items is not an error however.

Finally, it is also possible to specify the number of rows and use 0 for cols. In this case, the sizer will use the given fixed number of rows and as many columns as necessary.

The gap (or vgap and hgap, which correspond to the height and width of the wxSize object) argument defines the size of the padding between the rows (its vertical component, or vgap) and columns (its horizontal component, or hgap), in pixels.

Since
2.9.1 (except for the four argument overload)

◆ wxGridSizer() [3/4]

wxGridSizer::wxGridSizer ( int  rows,
int  cols,
int  vgap,
int  hgap 
)

wxGridSizer constructors.

Usually only the number of columns in the flex grid sizer needs to be specified using cols argument. The number of rows will be deduced automatically depending on the number of the elements added to the sizer.

If a constructor form with rows parameter is used (and the value of rows argument is not zero, meaning "unspecified") the sizer will check that no more than cols*rows elements are added to it, i.e. that no more than the given number of rows is used. Adding less than maximally allowed number of items is not an error however.

Finally, it is also possible to specify the number of rows and use 0 for cols. In this case, the sizer will use the given fixed number of rows and as many columns as necessary.

The gap (or vgap and hgap, which correspond to the height and width of the wxSize object) argument defines the size of the padding between the rows (its vertical component, or vgap) and columns (its horizontal component, or hgap), in pixels.

Since
2.9.1 (except for the four argument overload)

◆ wxGridSizer() [4/4]

wxGridSizer::wxGridSizer ( int  rows,
int  cols,
const wxSize gap 
)

wxGridSizer constructors.

Usually only the number of columns in the flex grid sizer needs to be specified using cols argument. The number of rows will be deduced automatically depending on the number of the elements added to the sizer.

If a constructor form with rows parameter is used (and the value of rows argument is not zero, meaning "unspecified") the sizer will check that no more than cols*rows elements are added to it, i.e. that no more than the given number of rows is used. Adding less than maximally allowed number of items is not an error however.

Finally, it is also possible to specify the number of rows and use 0 for cols. In this case, the sizer will use the given fixed number of rows and as many columns as necessary.

The gap (or vgap and hgap, which correspond to the height and width of the wxSize object) argument defines the size of the padding between the rows (its vertical component, or vgap) and columns (its horizontal component, or hgap), in pixels.

Since
2.9.1 (except for the four argument overload)

Member Function Documentation

◆ CalcMin()

virtual wxSize wxGridSizer::CalcMin ( )
virtual

This method is abstract and has to be overwritten by any derived class.

Here, the sizer will do the actual calculation of its children's minimal sizes.

Implements wxSizer.

Reimplemented in wxFlexGridSizer, and wxGridBagSizer.

◆ GetCols()

int wxGridSizer::GetCols ( ) const

Returns the number of columns that has been specified for the sizer.

Returns zero if the sizer is automatically adjusting the number of columns depending on number of its children. To get the effective number of columns or rows being currently used, see GetEffectiveColsCount()

◆ GetEffectiveColsCount()

int wxGridSizer::GetEffectiveColsCount ( ) const

Returns the number of columns currently used by the sizer.

This will depend on the number of children the sizer has if the sizer is automatically adjusting the number of columns/rows.

Since
2.9.1

◆ GetEffectiveRowsCount()

int wxGridSizer::GetEffectiveRowsCount ( ) const

Returns the number of rows currently used by the sizer.

This will depend on the number of children the sizer has if the sizer is automatically adjusting the number of columns/rows.

Since
2.9.1

◆ GetHGap()

int wxGridSizer::GetHGap ( ) const

Returns the horizontal gap (in pixels) between cells in the sizer.

◆ GetRows()

int wxGridSizer::GetRows ( ) const

Returns the number of rows that has been specified for the sizer.

Returns zero if the sizer is automatically adjusting the number of rows depending on number of its children. To get the effective number of columns or rows being currently used, see GetEffectiveRowsCount().

◆ GetVGap()

int wxGridSizer::GetVGap ( ) const

Returns the vertical gap (in pixels) between the cells in the sizer.

◆ RepositionChildren()

virtual void wxGridSizer::RepositionChildren ( const wxSize minSize)
virtual

Method which must be overridden in the derived sizer classes.

The implementation should reposition the children using the current total size available to the sizer (m_size) and the size computed by the last call to CalcMin().

Note that you should never call this method directly, call Layout() instead if you need to manually update the sizer elements positions. This method is only called by wxWidgets itself.

Since
3.1.3, before this version RecalcSizes() method not taking any arguments had to be overridden in the derived classes instead.

Implements wxSizer.

Reimplemented in wxFlexGridSizer, and wxGridBagSizer.

◆ SetCols()

void wxGridSizer::SetCols ( int  cols)

Sets the number of columns in the sizer.

◆ SetHGap()

void wxGridSizer::SetHGap ( int  gap)

Sets the horizontal gap (in pixels) between cells in the sizer.

◆ SetRows()

void wxGridSizer::SetRows ( int  rows)

Sets the number of rows in the sizer.

◆ SetVGap()

void wxGridSizer::SetVGap ( int  gap)

Sets the vertical gap (in pixels) between the cells in the sizer.