func NewTextButton(label string) *TextButton {
	btn := NewTextButtonWithColours(label, color.White, color.Black)
	return btn
}
NewTextButton creates a new TextButton with the specified text on it, in white on a black
background.  The text will be set on a single line, and auto-sized to fill the button as best
as possible.
package buttons
import (
	"image"
	"image/color"
	"image/draw"
	"golang.org/x/image/font/gofont/gomedium"
	"github.com/golang/freetype"
	"github.com/golang/freetype/truetype"
	streamdeck "github.com/magicmonkey/go-streamdeck"
)
type TextButton struct {
	label            string
	textColour       color.Color
	backgroundColour color.Color
	updateHandler    func(streamdeck.Button)
	btnIndex         int
	actionHandler    streamdeck.ButtonActionHandler
}
func (btn *TextButton) GetImageForButton(btnSize int) image.Image {
	img := getImageWithText(btn.label, btn.textColour, btn.backgroundColour, btnSize)
	return img
}
func (btn *TextButton) SetButtonIndex(btnIndex int) {
	btn.btnIndex = btnIndex
}
func (btn *TextButton) GetButtonIndex() int {
	return btn.btnIndex
}
func (btn *TextButton) SetText(label string) {
	btn.label = label
	btn.updateHandler(btn)
}
func (btn *TextButton) SetTextColour(textColour color.Color) {
	btn.textColour = textColour
	btn.updateHandler(btn)
}
func (btn *TextButton) SetBackgroundColor(backgroundColour color.Color) {
	btn.backgroundColour = backgroundColour
	btn.updateHandler(btn)
}
func (btn *TextButton) RegisterUpdateHandler(f func(streamdeck.Button)) {
	btn.updateHandler = f
}
func (btn *TextButton) SetActionHandler(a streamdeck.ButtonActionHandler) {
	btn.actionHandler = a
}
func (btn *TextButton) Pressed() {
	if btn.actionHandler != nil {
		btn.actionHandler.Pressed(btn)
	}
}