Oh right derp, preferredSize() is running on uitask already; don't use the dispatch channel. Almost working...
This commit is contained in:
parent
d08ad65c4c
commit
4c6ce9639f
|
@ -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...
|
||||||
|
|
Loading…
Reference in New Issue