I'm obviously missing some basic understanding of either Go or Wx Widgets.
I'm trying to create a very basic table with checkboxes in the first column.
table := wx.NewGrid(w, wx.ID_ANY)
table.CreateGrid(4, 2)
table.SetCellEditor(0, 0, wx.SwigIsGridCellBoolRenderer{})
That code gives me this error:
invalid type for composite literal: wx.SwigIsGridCellBoolRenderer
I know I also have to set the editor. But I'm not even that far. The more detailed the answer, the better. Thank you!
The error hints you are using a composite literal, which can be used to create values of struts, slices, arrays, maps or derivatives of these.
This:
wx.SwigIsGridCellBoolRenderer{}
Would be an empty composite literal of the type wx.SwigIsGridCellBoolRenderer
, but that type is nether of the types you may use with a composite literal. It is an interface type:
type SwigIsGridCellBoolRenderer interface {
SwigGetGridCellBoolRenderer() GridCellBoolRenderer
}
wx.NewGrid()
returns a type of wx.Grid
which is an interface with a method:
SetCellEditor(arg2 int, arg3 int, arg4 SwigIsGridCellEditor)
So you have to pass a value to it that satisfies / implements the wx.SwigIsGridCellEditor
interface.
This interface has a single method:
type SwigIsGridCellEditor interface {
SwigGetGridCellEditor() GridCellEditor
}
So any type that has such SwigGetGridCellEditor()
method may be used here. Such types are:
wx.SwigClassGridCellTextEditor
wx.SwigClassGridCellAutoWrapStringEditor
wx.SwigClassGridCellBoolEditor
wx.SwigClassGridCellChoiceEditor
wx.SwigClassGridCellEnumEditor
So create an instance of one of the above, that you can pass to table.SetCellEditor()
.
For example:
editor := wx.NewGridCellTextEditor()
table.SetCellEditor(0, 0, editor)