func onReady() { systray.SetIcon(icon.Data) systray.SetTitle("Awesome App") systray.SetTooltip("Lantern") mQuit := systray.AddMenuItem("Quit", "Quit the whole app") go func() { <-mQuit.ClickedCh systray.Quit() fmt.Println("Quit now...") }() // We can manipulate the systray in other goroutines go func() { systray.SetIcon(icon.Data) systray.SetTitle("Awesome App") systray.SetTooltip("Pretty awesome棒棒嗒") mChange := systray.AddMenuItem("Change Me", "Change Me") mChecked := systray.AddMenuItem("Unchecked", "Check Me") mEnabled := systray.AddMenuItem("Enabled", "Enabled") systray.AddMenuItem("Ignored", "Ignored") mUrl := systray.AddMenuItem("Open Lantern.org", "my home") mQuit := systray.AddMenuItem("退出", "Quit the whole app") for { select { case <-mChange.ClickedCh: mChange.SetTitle("I've Changed") case <-mChecked.ClickedCh: if mChecked.Checked() { mChecked.Uncheck() mChecked.SetTitle("Unchecked") } else { mChecked.Check() mChecked.SetTitle("Checked") } case <-mEnabled.ClickedCh: mEnabled.SetTitle("Disabled") mEnabled.Disable() case <-mUrl.ClickedCh: open.Run("https://www.getlantern.org") case <-mQuit.ClickedCh: systray.Quit() fmt.Println("Quit2 now...") return } } }() }
func (c *fireflyClient) configureSystray() { icon, err := c.fs.Get("icons/24.ico") if err != nil { log.Fatalf("Unable to load icon for system tray: %s", err) } systray.SetIcon(icon) systray.SetTooltip("Firefly") c.systrayItems = fireflyMenu{ settings: systray.AddMenuItem(i18n.T("TRAY_SETTINGS"), ""), quit: systray.AddMenuItem(i18n.T("TRAY_QUIT"), ""), } go func() { for { select { case <-c.systrayItems.settings.ClickedCh: c.ui.show() case <-c.systrayItems.quit.ClickedCh: c.exit(nil) return } } }() }
func configureSystemTray() error { icon, err := Asset("icons/16on.ico") if err != nil { return fmt.Errorf("Unable to load icon for system tray: %v", err) } systray.SetIcon(icon) systray.SetTooltip("Lantern") show := systray.AddMenuItem(i18n.T("TRAY_SHOW_LANTERN"), i18n.T("SHOW")) quit := systray.AddMenuItem(i18n.T("TRAY_QUIT"), i18n.T("QUIT")) go func() { for { select { case <-show.ClickedCh: ui.Show() case <-quit.ClickedCh: exit(nil) return } } }() return nil }