mirror of
https://github.com/rivo/tview.git
synced 2025-04-26 13:49:06 +08:00
Added form item removal functions and more ways to find items. Resolves #137
This commit is contained in:
parent
7338a21d35
commit
c33dd0cf8e
39
form.go
39
form.go
@ -218,6 +218,25 @@ func (f *Form) AddButton(label string, selected func()) *Form {
|
|||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
// Clear removes all input elements from the form, including the buttons if
|
||||||
// specified.
|
// specified.
|
||||||
func (f *Form) Clear(includeButtons bool) *Form {
|
func (f *Form) Clear(includeButtons bool) *Form {
|
||||||
@ -251,6 +270,14 @@ func (f *Form) GetFormItem(index int) FormItem {
|
|||||||
return f.items[index]
|
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
|
// 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
|
// no such element is found, nil is returned. Buttons are not searched and will
|
||||||
// therefore not be returned.
|
// therefore not be returned.
|
||||||
@ -263,6 +290,18 @@ func (f *Form) GetFormItemByLabel(label string) FormItem {
|
|||||||
return nil
|
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
|
// SetCancelFunc sets a handler which is called when the user hits the Escape
|
||||||
// key.
|
// key.
|
||||||
func (f *Form) SetCancelFunc(callback func()) *Form {
|
func (f *Form) SetCancelFunc(callback func()) *Form {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user