From e48933385e402e80238ff55a37faee8fd937aaee Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Sun, 25 Aug 2024 18:55:43 -0400 Subject: [PATCH] You get an OnDotChange! Everypony gets an OnDotChange! --- label.go | 10 +++++----- textinput.go | 8 ++++++++ textview.go | 6 ++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/label.go b/label.go index 636743f..6324ac1 100644 --- a/label.go +++ b/label.go @@ -48,13 +48,13 @@ func (this *Label) Dot () text.Dot { return this.box.Dot() } -// SetAlign sets the X and Y alignment of the label. -func (this *Label) SetAlign (x, y tomo.Align) { - this.box.SetAttr(tomo.AAlign(x, y)) -} - // OnDotChange specifies a function to be called when the text cursor or // selection changes. func (this *Label) OnDotChange (callback func ()) event.Cookie { return this.box.OnDotChange(callback) } + +// SetAlign sets the X and Y alignment of the label. +func (this *Label) SetAlign (x, y tomo.Align) { + this.box.SetAttr(tomo.AAlign(x, y)) +} diff --git a/textinput.go b/textinput.go index 2b9ee14..f22b90a 100644 --- a/textinput.go +++ b/textinput.go @@ -76,6 +76,12 @@ func (this *TextInput) Dot () text.Dot { return this.box.Dot() } +// OnDotChange specifies a function to be called when the text cursor or +// selection changes. +func (this *TextInput) OnDotChange (callback func ()) event.Cookie { + return this.box.OnDotChange(callback) +} + // SetAlign sets the X and Y alignment of the text input. func (this *TextInput) SetAlign (x, y tomo.Align) { this.box.SetAttr(tomo.AAlign(x, y)) @@ -130,6 +136,8 @@ func (this *TextInput) Type (char rune) { this.box.SetText(string(this.text)) } +// TODO: add up/down controls if this is a multiline input + func (this *TextInput) handleKeyDown (key input.Key, numpad bool) bool { dot := this.Dot() modifiers := this.box.Window().Modifiers() diff --git a/textview.go b/textview.go index ff92b11..b67d442 100644 --- a/textview.go +++ b/textview.go @@ -47,6 +47,12 @@ func (this *TextView) Dot () text.Dot { return this.box.Dot() } +// OnDotChange specifies a function to be called when the text cursor or +// selection changes. +func (this *TextView) OnDotChange (callback func ()) event.Cookie { + return this.box.OnDotChange(callback) +} + // SetAlign sets the X and Y alignment of the text view. func (this *TextView) SetAlign (x, y tomo.Align) { this.box.SetAttr(tomo.AAlign(x, y))