From 97df7c742a6f60a0c9e60f0fb93606279e63ee75 Mon Sep 17 00:00:00 2001 From: Yufan Lou Date: Fri, 6 May 2016 05:04:04 +0800 Subject: [PATCH] Add default mainLoop with syscall --- mainloop.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mainloop.go 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) + } + } +}