From e3b43d99c406bd35bdbb799cb7ca1bd2ad008c37 Mon Sep 17 00:00:00 2001 From: Mitchell Gerber Date: Wed, 11 Jul 2018 10:49:10 -0500 Subject: [PATCH] init --- main.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 main.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..4bce149 --- /dev/null +++ b/main.go @@ -0,0 +1,66 @@ +package main + +import ( + "fmt" + "github.com/getlantern/systray" + "github.com/kbinani/screenshot" + "image/png" + "os" +) + +var window *ui.Window + +func main() { + go func() { + systray.Run(onReady, onExit) + }() + + <-make(chan struct{}) +} + +func onReady() { + systray.SetTitle("Awesome App") + systray.SetTooltip("Pretty awesome超级棒") + screenshot := systray.AddMenuItem("Screenshot", "Take a screenshot") + config := systray.AddMenuItem("Config", "Configuration") + quit := systray.AddMenuItem("Quit", "Quit the whole app") + + go func() { + <-quit.ClickedCh + systray.Quit() + }() + + go func() { + for { + select { + case <-screenshot.ClickedCh: + takeScreenShot() + case <-config.ClickedCh: + go showConfig() + } + } + }() +} + +func onExit() { + fmt.Println("exit") +} + +func takeScreenShot() { + n := screenshot.NumActiveDisplays() + + for i := 0; i < n; i++ { + bounds := screenshot.GetDisplayBounds(i) + + img, err := screenshot.CaptureRect(bounds) + if err != nil { + panic(err) + } + fileName := fmt.Sprintf("%d_%dx%d.png", i, bounds.Dx(), bounds.Dy()) + file, _ := os.Create(fileName) + defer file.Close() + png.Encode(file, img) + + fmt.Printf("#%d : %v \"%s\"\n", i, bounds, fileName) + } +}