mirror of
https://github.com/rivo/tview.git
synced 2025-04-28 13:48:53 +08:00
Allowing the use of arrow keys in modal buttons, too. Resolves #167
This commit is contained in:
parent
29458dad3e
commit
a677b985cc
12
form.go
12
form.go
@ -218,6 +218,13 @@ func (f *Form) AddButton(label string, selected func()) *Form {
|
|||||||
return f
|
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
|
// RemoveButton removes the button at the specified position, starting with 0
|
||||||
// for the button that was added first.
|
// for the button that was added first.
|
||||||
func (f *Form) RemoveButton(index int) *Form {
|
func (f *Form) RemoveButton(index int) *Form {
|
||||||
@ -225,6 +232,11 @@ func (f *Form) RemoveButton(index int) *Form {
|
|||||||
return f
|
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
|
// 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
|
// with 0 for the button that was added first. If no such label was found, -1
|
||||||
// is returned.
|
// is returned.
|
||||||
|
10
modal.go
10
modal.go
@ -86,6 +86,16 @@ func (m *Modal) AddButtons(labels []string) *Modal {
|
|||||||
m.done(i, l)
|
m.done(i, l)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
button := m.form.GetButton(m.form.GetButtonCount() - 1)
|
||||||
|
button.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
|
||||||
|
switch event.Key() {
|
||||||
|
case tcell.KeyDown, tcell.KeyRight:
|
||||||
|
return tcell.NewEventKey(tcell.KeyTab, 0, tcell.ModNone)
|
||||||
|
case tcell.KeyUp, tcell.KeyLeft:
|
||||||
|
return tcell.NewEventKey(tcell.KeyBacktab, 0, tcell.ModNone)
|
||||||
|
}
|
||||||
|
return event
|
||||||
|
})
|
||||||
}(index, label)
|
}(index, label)
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
|
Loading…
x
Reference in New Issue
Block a user