コード例 #1
0
ファイル: drawing.go プロジェクト: kumakichi/walk
func createBitmap() (*walk.Bitmap, error) {
	bounds := walk.Rectangle{Width: 200, Height: 200}

	bmp, err := walk.NewBitmap(bounds.Size())
	if err != nil {
		return nil, err
	}

	succeeded := false
	defer func() {
		if !succeeded {
			bmp.Dispose()
		}
	}()

	canvas, err := walk.NewCanvasFromImage(bmp)
	if err != nil {
		return nil, err
	}
	defer canvas.Dispose()

	brushBmp, err := walk.NewBitmapFromFile("../img/plus.png")
	if err != nil {
		return nil, err
	}
	defer brushBmp.Dispose()

	brush, err := walk.NewBitmapBrush(brushBmp)
	if err != nil {
		return nil, err
	}
	defer brush.Dispose()

	if err := canvas.FillRectangle(brush, bounds); err != nil {
		return nil, err
	}

	font, err := walk.NewFont("Times New Roman", 40, walk.FontBold|walk.FontItalic)
	if err != nil {
		return nil, err
	}
	defer font.Dispose()

	if err := canvas.DrawText("Walk Drawing Example", font, walk.RGB(0, 0, 0), bounds, walk.TextWordbreak); err != nil {
		return nil, err
	}

	succeeded = true

	return bmp, nil
}
コード例 #2
0
ファイル: font.go プロジェクト: kumakichi/walk
func (f Font) Create() (*walk.Font, error) {
	if f.Family == "" && f.PointSize == 0 {
		return nil, nil
	}

	var fs walk.FontStyle

	if f.Bold {
		fs |= walk.FontBold
	}
	if f.Italic {
		fs |= walk.FontItalic
	}
	if f.Underline {
		fs |= walk.FontUnderline
	}
	if f.StrikeOut {
		fs |= walk.FontStrikeOut
	}

	return walk.NewFont(f.Family, f.PointSize, fs)
}