func NewFooModel() *FooModel { m := new(FooModel) m.evenBitmap, _ = walk.NewBitmapFromFile("../img/open.png") m.oddIcon, _ = walk.NewIconFromFile("../img/x.ico") m.ResetRows() return m }
func main() { // We need either a walk.MainWindow or a walk.Dialog for their message loop. // We will not make it visible in this example, though. mw, err := walk.NewMainWindow() if err != nil { log.Fatal(err) } // We load our icon from a file. icon, err := walk.NewIconFromFile("../img/x.ico") if err != nil { log.Fatal(err) } // Create the notify icon and make sure we clean it up on exit. ni, err := walk.NewNotifyIcon() if err != nil { log.Fatal(err) } defer ni.Dispose() // Set the icon and a tool tip text. if err := ni.SetIcon(icon); err != nil { log.Fatal(err) } if err := ni.SetToolTip("Click for info or use the context menu to exit."); err != nil { log.Fatal(err) } // When the left mouse button is pressed, bring up our balloon. ni.MouseDown().Attach(func(x, y int, button walk.MouseButton) { if button != walk.LeftButton { return } if err := ni.ShowCustom( "Walk NotifyIcon Example", "There are multiple ShowX methods sporting different icons."); err != nil { log.Fatal(err) } }) // We put an exit action into the context menu. exitAction := walk.NewAction() if err := exitAction.SetText("E&xit"); err != nil { log.Fatal(err) } exitAction.Triggered().Attach(func() { walk.App().Exit(0) }) if err := ni.ContextMenu().Actions().Add(exitAction); err != nil { log.Fatal(err) } // The notify icon is hidden initially, so we have to make it visible. if err := ni.SetVisible(true); err != nil { log.Fatal(err) } // Now that the icon is visible, we can bring up an info balloon. if err := ni.ShowInfo("Walk NotifyIcon Example", "Click the icon to show again."); err != nil { log.Fatal(err) } // Run the message loop. mw.Run() }