5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-05 07:31:15 +08:00
wails/v3/examples/hide-window/main.go
Lea Anthony 5cde12b42a
Refactored Events (#3731)
Experimental rename
2024-09-07 16:39:02 +10:00

71 lines
1.5 KiB
Go

package main
import (
_ "embed"
"log"
"runtime"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
"github.com/wailsapp/wails/v3/pkg/icons"
)
func main() {
app := application.New(application.Options{
Name: "Hide Window Demo",
Description: "A test of Hidden window and display it",
Assets: application.AlphaAssets,
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: false,
},
})
systemTray := app.NewSystemTray()
window := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Width: 500,
Height: 800,
Frameless: false,
AlwaysOnTop: false,
Hidden: false,
DisableResize: false,
ShouldClose: func(window *application.WebviewWindow) bool {
println("close")
window.Hide()
return false
},
Windows: application.WindowsWindow{
HiddenOnTaskbar: true,
},
})
if runtime.GOOS == "darwin" {
systemTray.SetTemplateIcon(icons.SystrayMacTemplate)
}
// Click Dock icon tigger application show
app.OnApplicationEvent(events.Mac.ApplicationShouldHandleReopen, func(event *application.ApplicationEvent) {
println("reopen")
window.Show()
})
myMenu := app.NewMenu()
myMenu.Add("Show").OnClick(func(ctx *application.Context) {
window.Show()
})
myMenu.Add("Quit").OnClick(func(ctx *application.Context) {
app.Quit()
})
systemTray.SetMenu(myMenu)
systemTray.OnClick(func() {
window.Show()
})
err := app.Run()
if err != nil {
log.Fatal(err)
}
}