package views import ( "git.milar.in/milarin/gui" ) // TextView is a gui.View which prints text type TextView struct { gui.ViewTmpl Text string } var _ gui.View = &TextView{} func NewTextView(text string) *TextView { return &TextView{ Text: text, } } func (v *TextView) Layout(ctx gui.AppContext) (prefWidth, prefHeight int) { s := ctx.MeasureString(v.Text, v.FontFace(ctx)).Size() return s.X, s.Y } func (v *TextView) Draw(img *gui.Image, ctx gui.AppContext) { v.ViewTmpl.Draw(img, ctx) s := ctx.MeasureString(v.Text, v.FontFace(ctx)) img.DrawString(v.Text, v.FontFace(ctx), 0, -s.Min.Y, v.Foreground(ctx)) }