diff --git a/app/credits.go b/app/credits.go index 213c087..b85cd70 100644 --- a/app/credits.go +++ b/app/credits.go @@ -30,7 +30,7 @@ func (credits *Credits) Event(state *ui.State, event vaxis.Event) (processed boo switch key.String() { case "Ctrl+c", "Ctrl+d": close(ui.Quit) - case "Enter", "q": + case "Enter", "q", "h", "l", "Left", "Right": ui.ViewChange <- NewMainMenu() } processed = true diff --git a/app/management.go b/app/management.go new file mode 100644 index 0000000..1cb8c31 --- /dev/null +++ b/app/management.go @@ -0,0 +1,65 @@ +package app + +import ( + "git.sr.ht/~rockorager/vaxis" + "git.sr.ht/~rockorager/vaxis/widgets/list" + "git.tilde.town/nbsp/neofeels/ui" +) + +type Management struct { + title string + list list.List + help string +} + +func NewManagement() *Management { + return &Management{ + title, + list.New([]string{ + " read over feels ", // TODO + " modify feels publishing ", // TODO + " backup your feels ", // TODO + " import a feels backup ", // TODO + " bury some feels ", // TODO + " delete feels by day ", // TODO + " purge all feels ", // TODO + " wipe feels account ", // TODO + }), + "↑↓/kj move ↵ enter q return", + } +} + +func (management *Management) Event(state *ui.State, event vaxis.Event) (processed bool) { + if key, ok := event.(vaxis.Key); ok && key.EventType == vaxis.EventPress { + switch key.String() { + case "Ctrl+c", "Ctrl+d": + close(ui.Quit) + case "Down", "j": + management.list.Down() + case "Up", "k": + management.list.Up() + case "End", "Shift+g": + management.list.End() + case "Home", "g": + management.list.Home() + case "q", "h", "Left": + ui.ViewChange <- NewMainMenu() + case "Enter", "l", "Right": + switch management.list.Index() { + } + } + processed = true + } + win := state.Window() + win.New(win.Width/2-10, win.Height/2-8, 20, 5).Print(vaxis.Segment{Text: management.title}) + management.list.Draw(vaxis.Window{ + Vx: win.Vx, + Parent: nil, + Column: win.Width/2 - 14, + Row: win.Height/2 - 2, + Width: 28, + Height: 10, + }) + win.New(win.Width/2-14, win.Height/2+7, 28, 1).Print(vaxis.Segment{Text: management.help}) + return +} diff --git a/app/menu.go b/app/menu.go index 1bcd409..3f5e778 100644 --- a/app/menu.go +++ b/app/menu.go @@ -30,12 +30,12 @@ func NewMainMenu() *MainMenu { list.New([]string{ " record some feels ", " manage your feels ", - " check out your neighbors ", - " browse global feels ", - " visit your subscriptions ", - " scribble some graffiti ", - " change your settings ", - " send some feedback ", + " check out your neighbors ", // TODO + " browse global feels ", // TODO + " visit your subscriptions ", // TODO + " scribble some graffiti ", // TODO + " change your settings ", // TODO + " send some feedback ", // TODO " see credits ", " read documentation ", }), @@ -52,14 +52,16 @@ func (menu *MainMenu) Event(state *ui.State, event vaxis.Event) (processed bool) menu.list.Down() case "Up", "k": menu.list.Up() - case "End": + case "End", "Shift+g": menu.list.End() - case "Home": + case "Home", "g": menu.list.Home() - case "Enter": + case "Enter", "l", "Right": switch menu.list.Index() { case 0: newFeels(state) + case 1: + ui.ViewChange <- NewManagement() case 8: ui.ViewChange <- NewCredits() case 9: diff --git a/app/posted.go b/app/posted.go index c8f3788..fe11979 100644 --- a/app/posted.go +++ b/app/posted.go @@ -37,7 +37,7 @@ func (posted *Posted) Event(state *ui.State, event vaxis.Event) (processed bool) switch key.String() { case "Ctrl+c", "Ctrl+d": close(ui.Quit) - case "Enter", "q": + case "Enter", "q", "h", "l", "Left", "Right": ui.ViewChange <- NewMainMenu() } processed = true