Figured out the deal with item.mask on Windows Tables. Need to rewrite this...
This commit is contained in:
parent
fecf53827a
commit
df383ada76
|
@ -81,6 +81,21 @@ func (t *table) OnSelected(f func()) {
|
|||
t.selected.set(f)
|
||||
}
|
||||
|
||||
func printMask(item *C.LVITEMW) {
|
||||
fmt.Printf("%d %d ", item.iItem, item.iSubItem)
|
||||
x := item.mask
|
||||
if x&C.LVIF_COLUMNS != 0{ fmt.Print("LVIF_COLUMNS ") }
|
||||
if x&C.LVIF_DI_SETITEM != 0{ fmt.Print("LVIF_DI_SETITEM ") }
|
||||
if x&C.LVIF_GROUPID != 0{ fmt.Print("LVIF_GROUPID ") }
|
||||
if x&C.LVIF_IMAGE != 0{ fmt.Print("LVIF_IMAGE ") }
|
||||
if x&C.LVIF_INDENT != 0{ fmt.Print("LVIF_INDENT ") }
|
||||
if x&C.LVIF_NORECOMPUTE != 0{ fmt.Print("LVIF_NORECOMPUTE ") }
|
||||
if x&C.LVIF_PARAM != 0{ fmt.Print("LVIF_PARAM ") }
|
||||
if x&C.LVIF_STATE != 0{ fmt.Print("LVIF_STATE ") }
|
||||
if x&C.LVIF_TEXT != 0{ fmt.Print("LVIF_TEXT ") }
|
||||
fmt.Print("\n")
|
||||
}
|
||||
|
||||
//export tableGetCell
|
||||
func tableGetCell(data unsafe.Pointer, item *C.LVITEMW) {
|
||||
t := (*table)(data)
|
||||
|
@ -88,7 +103,7 @@ func tableGetCell(data unsafe.Pointer, item *C.LVITEMW) {
|
|||
defer t.RUnlock()
|
||||
d := reflect.Indirect(reflect.ValueOf(t.data))
|
||||
datum := d.Index(int(item.iItem)).Field(int(item.iSubItem))
|
||||
// TODO figure out why changing item.mask causes crashes or why "it just works"
|
||||
printMask(item)
|
||||
switch {
|
||||
case datum.Type() == reflect.TypeOf(ImageIndex(0)):
|
||||
item.iImage = C.int(datum.Interface().(ImageIndex))
|
||||
|
|
Loading…
Reference in New Issue