5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 15:30:37 +08:00
wails/v3/examples/windowjs/main.go
Lea Anthony 293d730708
[v3] Updated runtime to take window id into consideration
[v3] Ported most of the window functions for JS
2023-01-26 20:43:26 +11:00

65 lines
1.1 KiB
Go

package main
import (
"embed"
_ "embed"
"log"
"math/rand"
"strconv"
"github.com/wailsapp/wails/v3/pkg/options"
"github.com/wailsapp/wails/v3/pkg/application"
)
//go:embed assets
var assets embed.FS
func main() {
app := application.New(options.Application{
Name: "WebviewWindow Javascript Demo",
Description: "A demo of the WebviewWindow API from Javascript",
Icon: nil,
Mac: options.Mac{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
})
// Create a custom menu
menu := app.NewMenu()
menu.AddRole(application.AppMenu)
windowCounter := 1
newWindow := func() {
app.NewWebviewWindowWithOptions(&options.WebviewWindow{
Assets: options.Assets{
FS: assets,
},
}).
SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)).
SetPosition(rand.Intn(1000), rand.Intn(800)).
Show()
windowCounter++
}
// Let's make a "Demo" menu
myMenu := menu.AddSubmenu("New")
myMenu.Add("New WebviewWindow").
SetAccelerator("CmdOrCtrl+N").
OnClick(func(ctx *application.Context) {
newWindow()
})
newWindow()
app.SetMenu(menu)
err := app.Run()
if err != nil {
log.Fatal(err)
}
}