5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 18:01:17 +08:00
wails/v3/examples/systray-custom/main.go
Lea Anthony beacf06c7d
Fix macOS systray DPI scaling and offset.
Added new systray examples.
2024-12-13 23:46:27 +11:00

69 lines
1.4 KiB
Go

package main
import (
_ "embed"
"log"
"runtime"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/icons"
)
func main() {
app := application.New(application.Options{
Name: "Systray Demo",
Description: "A demo of the Systray API",
Assets: application.AlphaAssets,
Mac: application.MacOptions{
ActivationPolicy: application.ActivationPolicyAccessory,
},
})
systemTray := app.NewSystemTray()
window := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Width: 500,
Height: 500,
Name: "Systray Demo Window",
Frameless: true,
AlwaysOnTop: true,
Hidden: true,
DisableResize: true,
ShouldClose: func(window *application.WebviewWindow) bool {
window.Hide()
return false
},
Windows: application.WindowsWindow{
HiddenOnTaskbar: true,
},
})
if runtime.GOOS == "darwin" {
systemTray.SetTemplateIcon(icons.SystrayMacTemplate)
}
systemTray.OnClick(func() {
println("System tray clicked!")
if window.IsVisible() {
window.Hide()
} else {
window.Show()
}
})
systemTray.OnDoubleClick(func() {
println("System tray double clicked!")
})
systemTray.OnRightClick(func() {
println("System tray right clicked!")
})
systemTray.AttachWindow(window).WindowOffset(5)
err := app.Run()
if err != nil {
log.Fatal(err)
}
}