# wxGridBagSizer

###
Module

wxGridBagSizer

###
Module Summary

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.