zntg/ui/label.go

31 lines
660 B
Go
Raw Normal View History

2018-08-03 06:46:10 +00:00
package ui
import (
"opslag.de/schobers/zntg/allg5"
"opslag.de/schobers/geom"
)
2018-08-03 06:46:10 +00:00
type Label struct {
ControlBase
Text string
HorizontalAlignment allg5.HorizontalAlignment
}
func (l *Label) DesiredSize(ctx Context) geom.PointF {
var fonts = ctx.Fonts()
var fnt = fonts.Get("default")
var _, _, w, h = fnt.TextDimensions(l.Text)
return geom.PtF(float64(w), float64(h))
2018-08-03 06:46:10 +00:00
}
func (l *Label) Render(ctx Context) {
var fonts = ctx.Fonts()
var min = l.Bounds.Min.To32()
var fnt = fonts.Get("default")
fnt.Draw(min.X, min.Y+fnt.Height()-fnt.Ascent(), ctx.Palette().Darkest(), l.HorizontalAlignment, l.Text)
2018-08-03 06:46:10 +00:00
l.ControlBase.Render(ctx)
}