Request for wxGridBagSizer

BlitzMax Modules Forums/Brucey's Modules/Request for wxGridBagSizer

I need wxGridBagSizer and started to program it:
Type wxGridBagSizer Extends wxFlexGridSizer
	Function _create:wxGridBagSizer(wxSizerPtr:Byte Ptr)
		If wxSizerPtr Then
			Local this: wxGridBagSizer= New wxGridBagSizer
		
			this.wxSizerPtr = wxSizerPtr
		
			Return this
		End If
		
		Return Null
	End Function

	Function CreateGridBagSizer:wxGridBagSizer(vgap:Int=0, hgap:Int=0)
		Return New wxGridBagSizer.Create(vgap, hgap)
	End Function
	
	Method Create:wxBoxSizer(vgap:Int=0, hgap:Int=0)
		wxSizerPtr = bmx_wxgridbagsizer_create(Self, vgap, hgap)
		Return Self
	End Method
	
	Method Add:wxSizerItem(window:wxWindow, row:Int=0, col:Int=0, rowspan:Int=0, colspan:Int=0, flag:Int=0, border:Int=0)
		Return wxSizerItem._create(bmx_wxgridbagsizer_add(wxSizerPtr, window.wxObjectPtr, row, col, rowspan, colspan, flag, border))
	End Method

	Method AddSizer:wxSizerItem(sizer:wxSizer, row:Int=0, col:Int=0, rowspan:Int=0, colspan:Int=0, flag:Int=0, border:Int=0)
		Return wxSizerItem._create(bmx_wxgridbagsizer_addsizer(wxSizerPtr, sizer.wxSizerPtr, row, col, rowspan, colspan, flag, border))
	End Method

	Method AddWH:wxSizerItem(width:Int, height:Int, row:Int=0, col:Int=0, rowspan:Int=0, colspan:Int=0, flag:Int=0, border:Int=0)
		Return wxSizerItem._create(bmx_wxgridbagsizer_addwh(wxSizerPtr, width, height, row, col, rowspan, colspan, flag, border))
	End Method
	
	Method AddGBSizerItem:wxSizerItem(item:wxGBSizerItem, row:Int=0, col:Int=0, rowspan:Int=0, colspan:Int=0, flag:Int=0, border:Int=0)
		Return wxSizerItem._create(bmx_wxgridbagsizer_addgbsizeritem(wxSizerPtr, item.wxSizerItemPtr, row, col, rowspan, colspan, flag, border))
	End Method
	
	Method CheckForIntersection:Int(item:wxGBSizerItem, excludeItem:wxGBSizerItem=Null)
		If excludeItem Then
			Return bmx_wxgridbagsizer_checkforintersection(wxSizerPtr, item.wxSizerItemPtr, excludeItem.wxSizerItemPtr)
		Else
			Return bmx_wxgridbagsizer_checkforintersection(wxSizerPtr, item.wxSizerItemPtr, Null)
		EndIf
	End Method
	
	Method CheckForIntersection2:Int(row:Int, col:Int, rowspan:Int, colspan:Int, excludeItem:wxGBSizerItem=Null)
		If excludeItem Then
			Return bmx_wxgridbagsizer_checkforintersection2(wxSizerPtr, row, col, rowspan, colspan, excludeItem.wxSizerItemPtr)
		Else
			Return bmx_wxgridbagsizer_checkforintersection2(wxSizerPtr, row, col, rowspan, colspan, Null)
		EndIf
	End Method
	
	'Method FindItemWindow:wxGBSizerItem(window:wxWindow)
	'End Method

	'Method FindItemSizer:wxGBSizerItem(sizer:wxSizer)
	'End Method
	
	'Method FindItemAtPoint:wxGBSizerItem(x:Int, y:Int)
	'End Method

	'Method FindItemAtPosition:wxGBSizerItem(row:Int, col:Int)
	'End Method
	
	Method GetCellSize(row:Int, col:Int, width:Int Var, height:Int Var)
		bmx_wxgridbagsizer_getcellsize(wxSizerPtr, col, row, Varptr width, Varptr height)
	End Method
	
	Method GetEmptyCellSize(width:Int Var, height:Int Var)
		bmx_wxgridbagsizer_getemptycellsize(wxSizerPtr, Varptr width, Varptr height)
	End Method
	
	Method GetItemPositionWindow(window:wxWindow, row:Int Var, col:Int Var)
		bmx_wxgridbagsizer_getitempositionwindow(wxSizerPtr, window.wxObjectPtr, Varptr row, Varptr col)
	End Method
	
	Method GetItemPositionSizer(sizer:wxSizer, row:Int Var, col:Int Var)
		bmx_wxgridbagsizer_getitempositionsizer(wxSizerPtr, sizer.wxSizerPtr, Varptr row, Varptr col)
	End Method

	Method GetItemPositionWH(width:Int, height:Int, row:Int Var, col:Int Var)
		bmx_wxgridbagsizer_getitempositionwh(wxSizerPtr, width, height, Varptr row, Varptr col)
	End Method
	
	Method GetItemSpanWindow(window:wxWindow, rowspan:Int Var, colspan:Int Var)
		bmx_wxgridbagsizer_getitemspanwindow(wxSizerPtr, window.wxObjectPtr, Varptr rowspan, Varptr colspan)
	End Method
	
	Method GetItemSpanSizer(sizer:wxSizer, rowspan:Int Var, colspan:Int Var)
		bmx_wxgridbagsizer_getitemspansizer(wxSizerPtr, sizer.wxSizerPtr, Varptr rowspan, Varptr colspan)
	End Method

	Method GetItemSpanWH(width:Int, height:Int, rowspan:Int Var, colspan:Int Var)
		bmx_wxgridbagsizer_getitemspanwh(wxSizerPtr, width, height, Varptr rowspan, Varptr colspan)
	End Method
	
	Method RecalcSizes()
	End Method
	
	Method SetEmptyCellSize(width:Int, height:Int)
		bmx_gridbagsizer_setemptycellsize(wxSizerPtr, width, height)
	End Method
	
	Method SetItemPositionWindow:Int(window:wxWindow, row:Int, col:Int)
		Return bmx_wxgridbagsizer_setitempositionwindow(wxSizerPtr, window.wxObjectPtr, row, col)
	End Method
	
	Method SetItemPositionSizer:Int(sizer:wxSizer, row:Int, col:Int)
		Return bmx_wxgridbagsizer_setitempositionsizer(wxSizerPtr, sizer.wxSizerPtr, row, col)
	End Method

	Method SetItemPositionWH:Int(width:Int, height:Int, row:Int, col:Int)
		Return bmx_wxgridbagsizer_setitempositionwh(wxSizerPtr, width, height, row, col)
	End Method

	Method SetItemSpanWindow:Int(window:wxWindow, rowspan:Int, colspan:Int)
		Return bmx_wxgridbagsizer_setitemspanwindow(wxSizerPtr, window.wxObjectPtr, rowspan, colspan)
	End Method
	
	Method SetItemSpanSizer:Int(sizer:wxSizer, rowspan:Int, colspan:Int)
		Return bmx_wxgridbagsizer_setitemspansizer(wxSizerPtr, sizer.wxSizerPtr, rowspan, colspan)
	End Method

	Method SetItemSpanWH:Int(width:Int, height:Int, rowspan:Int, colspan:Int)
		Return bmx_wxgridbagsizer_setitemspanwh(wxSizerPtr, width, height, rowspan, colspan)
	End Method
End Type

Type wxGBSizerItem Extends wxSizerItem

	Function _create:wxGBSizerItem(wxGBSizerItemPtr:Byte Ptr)
		Local this:wxGBSizerItem = New wxGBSizerItem
		
		this.wxSizerItemPtr = wxGBSizerItemPtr
		
		Return this
	End Function

End Type


	Function bmx_wxgridbagsizer_create:Byte Ptr(handle:Object, vgap:Int, hgap:Int)
	Function bmx_wxgridbagsizer_add:Byte Ptr(handle:Byte Ptr, window:Byte Ptr, row:Int, col:Int, rowspan:Int, colspan:Int, flag:Int, border:Int)
	Function bmx_wxgridbagsizer_addsizer:Byte Ptr(handle:Byte Ptr, sizer:Byte Ptr, row:Int, col:Int, rowspan:Int, colspan:Int, flag:Int, border:Int)
	Function bmx_wxgridbagsizer_addwh:Byte Ptr(handle:Byte Ptr, width:Int, height:Int, row:Int, col:Int, rowspan:Int, colspan:Int, flag:Int, border:Int)
	Function bmx_wxgridbagsizer_checkforintersection:Int(handle:Byte Ptr, item:Byte Ptr, excludeItem:Byte Ptr)
	Function bmx_wxgridbagsizer_checkforintersection2:Int(handle:Byte Ptr, row:Int, col:Int, rowspan:Int, colspan:Int, excludeItem:Byte Ptr)
	Function bmx_wxgridbagsizer_getcellsize(handle:Byte Ptr, row:Int, col:Int, width:Int Ptr, height:Int Ptr)
	Function bmx_wxgridbagsizer_getemptycellsize(handle:Byte Ptr, width:Int Ptr, height:Int Ptr)
	Function bmx_wxgridbagsizer_getitempositionwindow(handle:Byte Ptr, window:Byte Ptr, row:Int Ptr, col:Int Ptr)
	Function bmx_wxgridbagsizer_getitempositionsizer(handle:Byte Ptr, sizer:Byte Ptr, row:Int Ptr, col:Int Ptr)
	Function bmx_wxgridbagsizer_getitempositionwh(handle:Byte Ptr, width:Int, height:Int, row:Int Ptr, col:Int Ptr)
	Function bmx_wxgridbagsizer_getitemspanwindow(handle:Byte Ptr, window:Byte Ptr, rowspan:Int Ptr, colspan:Int Ptr)
	Function bmx_wxgridbagsizer_getitemspansizer(handle:Byte Ptr, sizer:Byte Ptr, rowspan:Int Ptr, colspan:Int Ptr)
	Function bmx_wxgridbagsizer_getitemspanwh(handle:Byte Ptr, width:Int, height:Int, rowspan:Int Ptr, colspan:Int Ptr)
	Function bmx_gridbagsizer_setemptycellsize(handle:Byte Ptr, width:Int, height:Int)
	Function bmx_wxgridbagsizer_setitempositionwindow:Int(handle:Byte Ptr, window:Byte Ptr, row:Int, col:Int)
	Function bmx_wxgridbagsizer_setitempositionsizer:Int(handle:Byte Ptr, sizer:Byte Ptr, row:Int, col:Int)
	Function bmx_wxgridbagsizer_setitempositionwh:Int(handle:Byte Ptr, width:Int, height:Int, row:Int, col:Int)
	Function bmx_wxgridbagsizer_setitemspanwindow:Int(handle:Byte Ptr, window:Byte Ptr, rowspan:Int, colspan:Int)
	Function bmx_wxgridbagsizer_setitemspansizer:Int(handle:Byte Ptr, sizer:Byte Ptr, rowspan:Int, colspan:Int)
	Function bmx_wxgridbagsizer_setitemspanwh:Int(handle:Byte Ptr, width:Int, height:Int, rowspan:Int, colspan:Int)


But I've get some barriers to implement the c++ code. So I hope for implementation for the next update :)

cu olli