5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 07:29:56 +08:00
wails/v3/examples/contextmenus/main.go
2025-01-25 09:23:12 +11:00

53 lines
1.3 KiB
Go

package main
import (
"embed"
_ "embed"
"log"
"github.com/wailsapp/wails/v3/pkg/application"
)
//go:embed assets
var assets embed.FS
func main() {
app := application.New(application.Options{
Name: "Context Menu Demo",
Description: "A demo of the Context Menu API",
Assets: application.AssetOptions{
Handler: application.BundledAssetFileServer(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
})
app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Title: "Context Menu Demo",
Width: 1024,
Height: 1024,
Mac: application.MacWindow{
Backdrop: application.MacBackdropTranslucent,
TitleBar: application.MacTitleBarHiddenInsetUnified,
InvisibleTitleBarHeight: 50,
},
})
contextMenu := application.NewContextMenu("test")
clickMe := contextMenu.Add("Click to set Menuitem label to Context Data")
contextDataMenuItem := contextMenu.Add("Current context data: No Context Data")
clickMe.OnClick(func(data *application.Context) {
app.Logger.Info("Context menu", "context data", data.ContextMenuData())
contextDataMenuItem.SetLabel("Current context data: " + data.ContextMenuData())
contextMenu.Update()
})
err := app.Run()
if err != nil {
log.Fatal(err.Error())
}
}