예제 #1
0
파일: font.go 프로젝트: wangch/walk
func init() {
	// Retrieve screen DPI
	hDC := win.GetDC(0)
	defer win.ReleaseDC(0, hDC)
	screenDPIX = int(win.GetDeviceCaps(hDC, win.LOGPIXELSX))
	screenDPIY = int(win.GetDeviceCaps(hDC, win.LOGPIXELSY))

	// Initialize default font
	var err error
	if defaultFont, err = NewFont("MS Shell Dlg 2", 8, 0); err != nil {
		panic("failed to create default font")
	}
}
예제 #2
0
파일: canvas.go 프로젝트: wangch/walk
func (c *Canvas) init() (*Canvas, error) {
	c.dpix = int(win.GetDeviceCaps(c.hdc, win.LOGPIXELSX))
	c.dpiy = int(win.GetDeviceCaps(c.hdc, win.LOGPIXELSY))

	if win.SetBkMode(c.hdc, win.TRANSPARENT) == 0 {
		return nil, newError("SetBkMode failed")
	}

	switch win.SetStretchBltMode(c.hdc, win.HALFTONE) {
	case 0, win.ERROR_INVALID_PARAMETER:
		return nil, newError("SetStretchBltMode failed")
	}

	if !win.SetBrushOrgEx(c.hdc, 0, 0, nil) {
		return nil, newError("SetBrushOrgEx failed")
	}

	return c, nil
}
예제 #3
0
파일: canvas.go 프로젝트: wangch/walk
func (c *Canvas) Bounds() Rectangle {
	return Rectangle{
		Width:  int(win.GetDeviceCaps(c.hdc, win.HORZRES)),
		Height: int(win.GetDeviceCaps(c.hdc, win.VERTRES)),
	}
}