zntg/ui/statusbar.go
Sander Schobers 239c24533d Some changes to UI elements.
- Added colors to palette and renamed white/black to lightest/darkest.
- Extracted drawing code.
- Restyled checkbox, spinner and scrollbar.
2018-08-07 10:13:05 +02:00

38 lines
850 B
Go

package ui
import (
"math"
"opslag.de/schobers/galleg/allegro5"
"opslag.de/schobers/geom"
)
var _ Control = &StatusBar{}
const statusBarHeight = 24
type StatusBar struct {
ControlBase
Text string
RightText string
}
func (b *StatusBar) DesiredSize(Context) geom.PointF {
return geom.PtF(math.NaN(), statusBarHeight)
}
func (b *StatusBar) Render(ctx Context) {
var fonts = ctx.Fonts()
var min = b.Bounds.Min.To32()
var max = b.Bounds.Max.To32()
allegro5.DrawFilledRectangle(min.X, min.Y, max.X, max.Y, ctx.Palette().Primary())
var fnt = fonts.Get("default")
var y = min.Y + float32(.5*b.Bounds.Dy()) - .67*fnt.Ascent()
fnt.Draw(min.X+leftMargin, y, ctx.Palette().Lightest(), allegro5.AlignLeft, b.Text)
fnt.Draw(max.X-leftMargin, y, ctx.Palette().Lightest(), allegro5.AlignRight, b.RightText)
b.ControlBase.Render(ctx)
}