zntg/ui/allg5ui/font.go
Sander Schobers 7f9f10075f Replaced implementation of WidthOf by TextWidth.
- TextDimensions (the underlying al_get_text_dimensions) returns the dimensions of the printable characters (non-whitespace) which gives weird results when measuring spaces.
2019-04-13 10:18:00 +02:00

47 lines
732 B
Go

package allg5ui
import (
"opslag.de/schobers/geom"
"opslag.de/schobers/zntg/allg5"
)
type FontDefinition struct {
Name string
Size int
}
func NewFontDefinition(name string, size int) FontDefinition {
return FontDefinition{Name: name, Size: size}
}
type font struct {
f *allg5.Font
}
func newFont(f *allg5.Font) *font {
return &font{f}
}
func (f *font) Destroy() {
f.f.Destroy()
}
func (f *font) Height() float32 {
if f == nil {
return 0
}
return f.f.Height()
}
func (f *font) WidthOf(t string) float32 {
return f.f.TextWidth(t)
}
func (f *font) Measure(t string) geom.RectangleF32 {
if f == nil {
return geom.RectangleF32{}
}
var x, y, w, h = f.f.TextDimensions(t)
return geom.RectF32(x, y, x+w, y+h)
}