Oh right derp, preferredSize() is running on uitask already; don't use the dispatch channel. Almost working...

This commit is contained in:
Pietro Gagliardi 2014-02-24 14:12:02 -05:00
parent d08ad65c4c
commit 4c6ce9639f
1 changed files with 17 additions and 36 deletions

View File

@ -66,49 +66,30 @@ println("size of control", s.ctype)
var tm _TEXTMETRICS var tm _TEXTMETRICS
var baseX, baseY int var baseX, baseY int
ret := make(chan uiret)
defer close(ret)
println("calling getWindowDC") println("calling getWindowDC")
uitask <- &uimsg{ r1, _, err := _getWindowDC.Call(uintptr(s.hwnd))
call: _getWindowDC, println("getWindowDC",r1,err)
p: []uintptr{uintptr(s.hwnd)}, if r1 == 0 { // failure
ret: ret, panic(err) // TODO return it instead
} }
r := <-ret dc = _HANDLE(r1)
println("getWindowDC",r.ret,r.err)
if r.ret == 0 { // failure
panic(r.err) // TODO return it instead
}
dc = _HANDLE(r.ret)
println("getTextMetrics") println("getTextMetrics")
uitask <- &uimsg{ r1, _, err = _getTextMetrics.Call(
call: _getTextMetrics, uintptr(dc),
p: []uintptr{ uintptr(unsafe.Pointer(&tm)))
uintptr(dc), println("getTextMetrics",r1,err)
uintptr(unsafe.Pointer(&tm)), if r1 == 0 { // failure
}, panic(err) // TODO return it instead
ret: ret,
}
r = <-ret
println("getTextMetrics",r.ret,r.err)
if r.ret == 0 { // failure
panic(r.err) // TODO return it instead
} }
baseX = int(tm.tmAveCharWidth) // TODO not optimal; third reference has better way baseX = int(tm.tmAveCharWidth) // TODO not optimal; third reference has better way
baseY = int(tm.tmHeight) baseY = int(tm.tmHeight)
println("releaseDC") println("releaseDC")
uitask <- &uimsg{ r1, _, err = _releaseDC.Call(
call: _releaseDC, uintptr(s.hwnd),
p: []uintptr{ uintptr(dc))
uintptr(s.hwnd), println("releaseDC",r1,err)
uintptr(dc), if r1 == 0 { // failure
}, panic(err) // TODO return it instead
ret: ret,
}
r = <-ret
println("releaseDC",r.ret,r.err)
if r.ret == 0 { // failure
panic(r.err) // TODO return it instead
} }
// now that we have the conversion factors... // now that we have the conversion factors...