func (s *ScrollArea) Draw(p *Painter) {
	p.Translate(-s.topLeft.X, -s.topLeft.Y)
	defer p.Restore()
	off := image.Point{s.topLeft.X, s.topLeft.Y}
	p.WithMask(image.Rectangle{Min: off, Max: s.Size().Add(off)}, func(p *Painter) {
		s.Widget.Draw(p)
	})
}
Draw draws the scroll area.
package tui
import (
	"image"
)
var _ Widget = &ScrollArea{}
type ScrollArea struct {
	WidgetBase
	Widget Widget
	topLeft    image.Point
	autoscroll bool
}
func NewScrollArea(w Widget) *ScrollArea {
	return &ScrollArea{
		Widget: w,
	}
}
func (s *ScrollArea) MinSizeHint() image.Point {
	return image.ZP
}
func (s *ScrollArea) SizeHint() image.Point {
	return image.Pt(15, 8)
}
func (s *ScrollArea) Scroll(dx, dy int) {
	s.topLeft.X += dx
	s.topLeft.Y += dy
}
func (s *ScrollArea) ScrollToBottom() {
	s.topLeft.Y = s.Widget.SizeHint().Y - s.Size().Y
}
func (s *ScrollArea) ScrollToTop() {
	s.topLeft.Y = 0
}
func (s *ScrollArea) SetAutoscrollToBottom(autoscroll bool) {
	s.autoscroll = autoscroll
}