69 lines
1.1 KiB
Go
69 lines
1.1 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"codeberg.org/danjones000/strip-beats/input/list"
|
|
)
|
|
|
|
func (st AppStep) Title() string {
|
|
mustpick := "You need to pick a file"
|
|
switch st {
|
|
case Pick:
|
|
return "Pick a new show"
|
|
case Watch:
|
|
if file == nil {
|
|
return mustpick
|
|
}
|
|
return fmt.Sprintf("Watch %s", file.ShortPath())
|
|
case Fade:
|
|
if file == nil {
|
|
return mustpick
|
|
}
|
|
return fmt.Sprintf("Trim and/or add fade to %s", file.ShortPath())
|
|
case Restart:
|
|
return "Forget current selection"
|
|
case Quit:
|
|
return "Quit"
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func (st AppStep) Text() string {
|
|
return ""
|
|
}
|
|
|
|
func (st AppStep) Rune() rune {
|
|
switch st {
|
|
case Pick:
|
|
return 'p'
|
|
case Watch:
|
|
return 'w'
|
|
case Fade:
|
|
return 'f'
|
|
case Restart:
|
|
return 'r'
|
|
case Quit:
|
|
return 'q'
|
|
default:
|
|
return '0'
|
|
}
|
|
}
|
|
|
|
func (st AppStep) Selected() func() {
|
|
return nil
|
|
}
|
|
|
|
func mainMenu() AppStep {
|
|
var steps []list.Option
|
|
if file == nil {
|
|
steps = []list.Option{Pick, Quit}
|
|
} else {
|
|
steps = []list.Option{Pick, Watch, Fade, Quit}
|
|
}
|
|
|
|
step := list.List("What would you like to do next?", steps, nil)
|
|
|
|
return step.(AppStep)
|
|
}
|