1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/todo/keyboard.go
Chris Cummer 5337656c58 Remove the need for every module to define a widget.ShowHelp keyboard control
This common functionality is moved up to KeyboardWidget. Modules now
include widget.InitializeCommonControls() instead.
2019-08-23 21:18:51 -07:00

74 lines
1.9 KiB
Go

package todo
import (
"fmt"
"github.com/gdamore/tcell"
"github.com/wtfutil/wtf/cfg"
"github.com/wtfutil/wtf/utils"
)
func (widget *Widget) initializeKeyboardControls() {
widget.InitializeCommonControls()
widget.SetKeyboardChar("r", widget.Refresh, "Refresh widget")
widget.SetKeyboardChar("j", widget.displayNext, "Select next item")
widget.SetKeyboardChar("k", widget.displayPrev, "Select previous item")
widget.SetKeyboardChar(" ", widget.toggleChecked, "Toggle checkmark")
widget.SetKeyboardChar("n", widget.newItem, "Create new item")
widget.SetKeyboardChar("o", widget.openFile, "Open file")
widget.SetKeyboardKey(tcell.KeyDown, widget.displayNext, "Select next item")
widget.SetKeyboardKey(tcell.KeyUp, widget.displayPrev, "Select previous item")
widget.SetKeyboardKey(tcell.KeyEsc, widget.unselect, "Clear selection")
widget.SetKeyboardKey(tcell.KeyCtrlD, widget.deleteSelected, "Delete item")
widget.SetKeyboardKey(tcell.KeyCtrlJ, widget.demoteSelected, "Demote item")
widget.SetKeyboardKey(tcell.KeyCtrlK, widget.promoteSelected, "Promote item")
widget.SetKeyboardKey(tcell.KeyEnter, widget.editSelected, "Edit item")
}
func (widget *Widget) deleteSelected() {
widget.list.Delete()
widget.persist()
widget.display()
}
func (widget *Widget) demoteSelected() {
widget.list.Demote()
widget.persist()
widget.display()
}
func (widget *Widget) displayNext() {
widget.list.Next()
widget.display()
}
func (widget *Widget) displayPrev() {
widget.list.Prev()
widget.display()
}
func (widget *Widget) openFile() {
confDir, _ := cfg.WtfConfigDir()
utils.OpenFile(fmt.Sprintf("%s/%s", confDir, widget.filePath))
}
func (widget *Widget) promoteSelected() {
widget.list.Promote()
widget.persist()
widget.display()
}
func (widget *Widget) toggleChecked() {
widget.list.Toggle()
widget.persist()
widget.display()
}
func (widget *Widget) unselect() {
widget.list.Unselect()
widget.display()
}