package main import ( "fmt" "github.com/trevex/tray" "github.com/trevex/tray/example/icon" ) func main() { t := tray.Tray{ Icon: icon.Data, Menu: []*tray.Menu{ { Text: "Hello", Callback: func(t *tray.Tray, m *tray.Menu) { fmt.Println("Hello, tray!") }, }, tray.Seperator, { Text: "Checked", Checked: true, Callback: func(t *tray.Tray, m *tray.Menu) { m.Checked = !m.Checked t.Update() }, }, { Text: "Disabled", Disabled: true, }, { Text: "Sub1", SubMenu: []*tray.Menu{ { Text: "Baz1", }, { Text: "Bar1", }, }, }, { Text: "Sub2", SubMenu: []*tray.Menu{ { Text: "Baz2", }, { Text: "Bar2", }, }, }, tray.Seperator, { Text: "Add", Callback: func(t *tray.Tray, m *tray.Menu) { t.Menu = tray.Insert(t.Menu, len(t.Menu)-2, &tray.Menu{Text: "Bizzbuzz"}) t.Update() }, }, { Text: "Remove", Callback: func(t *tray.Tray, m *tray.Menu) { if len(t.Menu) > 9 { t.Menu = tray.Remove(t.Menu, len(t.Menu)-2) t.Update() } }, }, tray.Seperator, { Text: "Quit", Callback: func(t *tray.Tray, m *tray.Menu) { t.Quit() }, }, }, } t.Run() }