diff --git a/mainloop.go b/mainloop.go new file mode 100644 index 0000000..b0a0ba1 --- /dev/null +++ b/mainloop.go @@ -0,0 +1,37 @@ +// +build !windows + +package main + +import ( + "os" + "syscall" + + "github.com/nsf/termbox-go" +) + +func mainLoop(memBolt *BoltDB, style Style) { + screens := defaultScreensForData(memBolt) + displayScreen := screens[BrowserScreenIndex] + layoutAndDrawScreen(displayScreen, style) + for { + event := termbox.PollEvent() + if event.Type == termbox.EventKey { + if event.Key == termbox.KeyCtrlZ { + process, _ := os.FindProcess(os.Getpid()) + termbox.Close() + process.Signal(syscall.SIGSTOP) + termbox.Init() + } + newScreenIndex := displayScreen.handleKeyEvent(event) + if newScreenIndex < len(screens) { + displayScreen = screens[newScreenIndex] + layoutAndDrawScreen(displayScreen, style) + } else { + break + } + } + if event.Type == termbox.EventResize { + layoutAndDrawScreen(displayScreen, style) + } + } +}