@@ 2,20 2,20 @@ package main
import (
"log"
- "strings"
"strconv"
+ "strings"
"github.com/gdamore/tcell"
"github.com/rivo/tview"
)
var (
- app *tview.Application
- pages *tview.Pages
- folderList *tview.List
- messageList *tview.List
- emailHeader *tview.Box
- emailBody *tview.TextView
+ app *tview.Application
+ pages *tview.Pages
+ folderList *tview.List
+ messageList *tview.List
+ emailHeader *tview.Box
+ emailBody *tview.TextView
)
func eventHandler(ev *tcell.EventKey) *tcell.EventKey {
@@ 26,48 26,48 @@ func eventHandler(ev *tcell.EventKey) *tcell.EventKey {
return nil
}
- frontPage,_ := pages.GetFrontPage()
+ frontPage, _ := pages.GetFrontPage()
switch frontPage {
- case "index":
- switch {
- case ev.Rune() == 'q':
- app.Stop()
- case ev.Rune() == '?':
- pages.ShowPage("help")
-
- // List navigation
- case ev.Rune() == 'g':
- app.GetFocus().(*tview.List).SetCurrentItem(0)
- case ev.Rune() == 'G':
- app.GetFocus().(*tview.List).SetCurrentItem(-1)
- case ev.Rune() == 'j':
- app.GetFocus().(*tview.List).SetCurrentItem(app.GetFocus().(*tview.List).GetCurrentItem() + 1)
- case ev.Rune() == 'k':
- app.GetFocus().(*tview.List).SetCurrentItem(app.GetFocus().(*tview.List).GetCurrentItem() - 1)
-
- case ev.Rune() == 'h':
- app.SetFocus(folderList)
- case ev.Rune() == 'l':
- app.SetFocus(messageList)
-
- case ev.Rune() == 'o':
- emailHeader.SetTitle(strconv.Itoa(messageList.GetCurrentItem()) + "/" + strconv.Itoa(messageList.GetItemCount()))
- body,_ := messageList.GetItemText(0)
- emailBody.SetText(body)
- pages.ShowPage("email")
- }
- case "email":
- switch {
- case ev.Key() == tcell.KeyEsc:
- pages.HidePage("email")
- case ev.Rune() == '?':
- pages.ShowPage("help")
- }
- case "help":
- switch {
- case ev.Key() == tcell.KeyEsc:
- pages.HidePage("help")
- }
+ case "index":
+ switch {
+ case ev.Rune() == 'q':
+ app.Stop()
+ case ev.Rune() == '?':
+ pages.ShowPage("help")
+
+ // List navigation
+ case ev.Rune() == 'g':
+ app.GetFocus().(*tview.List).SetCurrentItem(0)
+ case ev.Rune() == 'G':
+ app.GetFocus().(*tview.List).SetCurrentItem(-1)
+ case ev.Rune() == 'j':
+ app.GetFocus().(*tview.List).SetCurrentItem(app.GetFocus().(*tview.List).GetCurrentItem() + 1)
+ case ev.Rune() == 'k':
+ app.GetFocus().(*tview.List).SetCurrentItem(app.GetFocus().(*tview.List).GetCurrentItem() - 1)
+
+ case ev.Rune() == 'h':
+ app.SetFocus(folderList)
+ case ev.Rune() == 'l':
+ app.SetFocus(messageList)
+
+ case ev.Rune() == 'o':
+ emailHeader.SetTitle(strconv.Itoa(messageList.GetCurrentItem()) + "/" + strconv.Itoa(messageList.GetItemCount()))
+ body, _ := messageList.GetItemText(0)
+ emailBody.SetText(body)
+ pages.ShowPage("email")
+ }
+ case "email":
+ switch {
+ case ev.Key() == tcell.KeyEsc:
+ pages.HidePage("email")
+ case ev.Rune() == '?':
+ pages.ShowPage("help")
+ }
+ case "help":
+ switch {
+ case ev.Key() == tcell.KeyEsc:
+ pages.HidePage("help")
+ }
}
return nil
@@ 93,7 93,7 @@ func main() {
SetHighlightFullLine(true).
SetWrapAround(false)
grid.AddItem(folderList, 0, 0, 1, 1, 0, 0, false)
- for _,folder := range folders {
+ for _, folder := range folders {
folderList.AddItem(folder, "", 0, nil)
}
@@ 103,7 103,7 @@ func main() {
SetWrapAround(false)
grid.AddItem(messageList, 0, 1, 1, 1, 0, 0, true)
for i := 0; i < 50; i++ {
- messageList.AddItem(strconv.Itoa(i) + " " + ipsum, "", 0, nil)
+ messageList.AddItem(strconv.Itoa(i)+" "+ipsum, "", 0, nil)
}
// Email view