5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 07:29:56 +08:00
wails/v3/examples/hide-window/main.go

70 lines
1.5 KiB
Go

package main
import (
_ "embed"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
"github.com/wailsapp/wails/v3/pkg/icons"
"log"
"runtime"
)
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,
Windows: application.WindowsWindow{
HiddenOnTaskbar: true,
},
})
window.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) {
window.Hide()
e.Cancel()
})
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)
}
}