aboutsummaryrefslogtreecommitdiff
path: root/vendor/maunium.net/go/tview/form.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/maunium.net/go/tview/form.go')
-rw-r--r--vendor/maunium.net/go/tview/form.go53
1 files changed, 52 insertions, 1 deletions
diff --git a/vendor/maunium.net/go/tview/form.go b/vendor/maunium.net/go/tview/form.go
index fe0e980..e960a52 100644
--- a/vendor/maunium.net/go/tview/form.go
+++ b/vendor/maunium.net/go/tview/form.go
@@ -26,7 +26,7 @@ type FormItem interface {
// required.
GetFieldWidth() int
- // SetEnteredFunc sets the handler function for when the user finished
+ // SetFinishedFunc sets the handler function for when the user finished
// entering data into the item. The handler may receive events for the
// Enter key (we're done), the Escape key (cancel input), the Tab key (move to
// next field), and the Backtab key (move to previous field).
@@ -218,6 +218,37 @@ func (f *Form) AddButton(label string, selected func()) *Form {
return f
}
+// GetButton returns the button at the specified 0-based index. Note that
+// buttons have been specially prepared for this form and modifying some of
+// their attributes may have unintended side effects.
+func (f *Form) GetButton(index int) *Button {
+ return f.buttons[index]
+}
+
+// RemoveButton removes the button at the specified position, starting with 0
+// for the button that was added first.
+func (f *Form) RemoveButton(index int) *Form {
+ f.buttons = append(f.buttons[:index], f.buttons[index+1:]...)
+ return f
+}
+
+// GetButtonCount returns the number of buttons in this form.
+func (f *Form) GetButtonCount() int {
+ return len(f.buttons)
+}
+
+// GetButtonIndex returns the index of the button with the given label, starting
+// with 0 for the button that was added first. If no such label was found, -1
+// is returned.
+func (f *Form) GetButtonIndex(label string) int {
+ for index, button := range f.buttons {
+ if button.GetLabel() == label {
+ return index
+ }
+ }
+ return -1
+}
+
// Clear removes all input elements from the form, including the buttons if
// specified.
func (f *Form) Clear(includeButtons bool) *Form {
@@ -251,6 +282,14 @@ func (f *Form) GetFormItem(index int) FormItem {
return f.items[index]
}
+// RemoveFormItem removes the form element at the given position, starting with
+// index 0. Elements are referenced in the order they were added. Buttons are
+// not included.
+func (f *Form) RemoveFormItem(index int) *Form {
+ f.items = append(f.items[:index], f.items[index+1:]...)
+ return f
+}
+
// GetFormItemByLabel returns the first form element with the given label. If
// no such element is found, nil is returned. Buttons are not searched and will
// therefore not be returned.
@@ -263,6 +302,18 @@ func (f *Form) GetFormItemByLabel(label string) FormItem {
return nil
}
+// GetFormItemIndex returns the index of the first form element with the given
+// label. If no such element is found, -1 is returned. Buttons are not searched
+// and will therefore not be returned.
+func (f *Form) GetFormItemIndex(label string) int {
+ for index, item := range f.items {
+ if item.GetLabel() == label {
+ return index
+ }
+ }
+ return -1
+}
+
// SetCancelFunc sets a handler which is called when the user hits the Escape
// key.
func (f *Form) SetCancelFunc(callback func()) *Form {