func main() { app := walk.App() // These specify the app data sub directory for the settings file. app.SetOrganizationName("The Walk Authors") app.SetProductName("Walk Settings Example") // Settings file name. settings := walk.NewIniFileSettings("settings.ini") // All settings marked as expiring will expire after this duration w/o use. // This applies to all widgets settings. settings.SetExpireDuration(time.Hour * 24 * 30 * 3) if err := settings.Load(); err != nil { log.Fatal(err) } app.SetSettings(settings) if err := RunMainWindow(); err != nil { log.Fatal(err) } if err := settings.Save(); err != nil { log.Fatal(err) } }
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() }