---
name: "wxGridBagSizer"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/wxGridBagSizer"
---

# wxGridBagSizer(3erl)

Functions for wxGridBagSizer class

## NAME

wxGridBagSizer - Functions for wxGridBagSizer class

## DESCRIPTION

A *wxSizer* that can lay out items in a virtual grid like a *wxFlexGridSizer* but in this case explicit positioning of the items is allowed using *wxGBPosition* (not implemented in wx), and items can optionally span more than one row and/or column using *wxGBSpan* (not implemented in wx).

This class is derived (and can use functions) from: *wxFlexGridSizer* *wxGridSizer* *wxSizer*

wxWidgets docs: wxGridBagSizer

## DATA TYPES

```
wxGridBagSizer() = wx:wx_object()
```

## EXPORTS

```
new() -> wxGridBagSizer()
```

```
new(Options :: [Option]) -> wxGridBagSizer()
```

Types:

Option = {vgap, integer()} \| {hgap, integer()}\

Constructor, with optional parameters to specify the gap between the rows and columns.

```
add(This, Item) -> wxSizerItem:wxSizerItem()
```

Types:

This = wxGridBagSizer()\
 Item = wxGBSizerItem:wxGBSizerItem()\

```
add(This, Window, Pos) -> wxSizerItem:wxSizerItem()
```

Types:

This = wxGridBagSizer()\
 Window = wxWindow:wxWindow() \| wxSizer:wxSizer()\
 Pos = {R :: integer(), C :: integer()}\

```
add(This, Width, Height, Pos) -> wxSizerItem:wxSizerItem()
```

```
add(This, Window, Pos, Pos :: [Option]) ->
       wxSizerItem:wxSizerItem()
```

Types:

This = wxGridBagSizer()\
 Window = wxWindow:wxWindow() \| wxSizer:wxSizer()\
 Pos = {R :: integer(), C :: integer()}\
 Option = \
\
     {span, {RS :: integer(), CS :: integer()}} \|\
\
     {flag, integer()} \|\
\
     {border, integer()} \|\
\
     {userData, wx:wx\_object()}\

Adds the given item to the given position.

Return: A valid pointer if the item was successfully placed at the given position, or NULL if something was already there.

```
add(This, Width, Height, Pos, Options :: [Option]) ->
       wxSizerItem:wxSizerItem()
```

Types:

This = wxGridBagSizer()\
 Width = Height = integer()\
 Pos = {R :: integer(), C :: integer()}\
 Option = \
\
     {span, {RS :: integer(), CS :: integer()}} \|\
\
     {flag, integer()} \|\
\
     {border, integer()} \|\
\
     {userData, wx:wx\_object()}\

Adds a spacer to the given position.

*width* and *height* specify the dimension of the spacer to be added.

Return: A valid pointer if the spacer was successfully placed at the given position, or NULL if something was already there.

```
calcMin(This) -> {W :: integer(), H :: integer()}
```

Types:

This = wxGridBagSizer()\

Called when the managed size of the sizer is needed or when layout needs done.

```
checkForIntersection(This, Item) -> boolean()
```

Types:

This = wxGridBagSizer()\
 Item = wxGBSizerItem:wxGBSizerItem()\

```
checkForIntersection(This, Pos, Span) -> boolean()
```

```
checkForIntersection(This, Item, Span :: [Option]) -> boolean()
```

Types:

This = wxGridBagSizer()\
 Item = wxGBSizerItem:wxGBSizerItem()\
 Option = {excludeItem, wxGBSizerItem:wxGBSizerItem()}\

Look at all items and see if any intersect (or would overlap) the given item.

Returns true if so, false if there would be no overlap. If an *excludeItem* is given then it will not be checked for intersection, for example it may be the item we are checking the position of.

```
checkForIntersection(This, Pos, Span, Options :: [Option]) ->
                        boolean()
```

Types:

This = wxGridBagSizer()\
 Pos = {R :: integer(), C :: integer()}\
 Span = {RS :: integer(), CS :: integer()}\
 Option = {excludeItem, wxGBSizerItem:wxGBSizerItem()}\

```
findItem(This, Window) -> wxGBSizerItem:wxGBSizerItem()
```

Types:

This = wxGridBagSizer()\
 Window = wxWindow:wxWindow() \| wxSizer:wxSizer()\

Find the sizer item for the given window or subsizer, returns NULL if not found.

(non-recursive)

```
findItemAtPoint(This, Pt) -> wxGBSizerItem:wxGBSizerItem()
```

Types:

This = wxGridBagSizer()\
 Pt = {X :: integer(), Y :: integer()}\

Return the sizer item located at the point given in pt, or NULL if there is no item at that point.

The (x,y) coordinates in *pt* correspond to the client coordinates of the window using the sizer for layout. (non-recursive)

```
findItemAtPosition(This, Pos) -> wxGBSizerItem:wxGBSizerItem()
```

Types:

This = wxGridBagSizer()\
 Pos = {R :: integer(), C :: integer()}\

Return the sizer item for the given grid cell, or NULL if there is no item at that position.

(non-recursive)

```
findItemWithData(This, UserData) -> wxGBSizerItem:wxGBSizerItem()
```

Types:

This = wxGridBagSizer()\
 UserData = wx:wx\_object()\

Return the sizer item that has a matching user data (it only compares pointer values) or NULL if not found.

(non-recursive)

```
getCellSize(This, Row, Col) -> {W :: integer(), H :: integer()}
```

Types:

This = wxGridBagSizer()\
 Row = Col = integer()\

Get the size of the specified cell, including hgap and vgap.

Only valid after window layout has been performed.

```
getEmptyCellSize(This) -> {W :: integer(), H :: integer()}
```

Types:

This = wxGridBagSizer()\

Get the size used for cells in the grid with no item.

```
getItemPosition(This, Window) -> {R :: integer(), C :: integer()}
```

```
getItemPosition(This, Index) -> {R :: integer(), C :: integer()}
```

Types:

This = wxGridBagSizer()\
 Index = integer()\

```
getItemSpan(This, Window) -> {RS :: integer(), CS :: integer()}
```

```
getItemSpan(This, Index) -> {RS :: integer(), CS :: integer()}
```

Types:

This = wxGridBagSizer()\
 Index = integer()\

```
setEmptyCellSize(This, Sz) -> ok
```

Types:

This = wxGridBagSizer()\
 Sz = {W :: integer(), H :: integer()}\

Set the size used for cells in the grid with no item.

```
setItemPosition(This, Window, Pos) -> boolean()
```

```
setItemPosition(This, Index, Pos) -> boolean()
```

Types:

This = wxGridBagSizer()\
 Index = integer()\
 Pos = {R :: integer(), C :: integer()}\

```
setItemSpan(This, Window, Span) -> boolean()
```

```
setItemSpan(This, Index, Span) -> boolean()
```

Types:

This = wxGridBagSizer()\
 Index = integer()\
 Span = {RS :: integer(), CS :: integer()}\

```
destroy(This :: wxGridBagSizer()) -> ok
```

Destroys the object.
