-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathApplicationMenu.go
67 lines (52 loc) · 1.74 KB
/
ApplicationMenu.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package backend
import (
"context"
"github.com/wailsapp/wails/v2/pkg/menu"
"github.com/wailsapp/wails/v2/pkg/menu/keys"
"github.com/wailsapp/wails/v2/pkg/runtime"
goRuntime "runtime"
)
type ApplicationMenuBuilder struct {
Ctx context.Context
Menu *menu.Menu
AppSettings *ApplicationSettings
}
func NewApplicationMenuBuilder(
appSettings *ApplicationSettings,
) *ApplicationMenuBuilder {
return &ApplicationMenuBuilder{
AppSettings: appSettings,
Menu: menu.NewMenu(),
}
}
func (builder *ApplicationMenuBuilder) Build(app *App) *menu.Menu {
switch goRuntime.GOOS {
case "darwin":
builder.Menu.Append(menu.AppMenu())
builder.Menu.Append(menu.EditMenu())
break
}
//builder.Menu.AddSubmenu(builder.AppSettings.Title)
viewMenu := builder.Menu.AddSubmenu("View")
viewMenu.AddText("Zoom In", keys.Combo("+", keys.CmdOrCtrlKey, keys.ShiftKey), func(cb *menu.CallbackData) {
runtime.WindowExecJS(builder.Ctx, "window.zoomIn()")
})
viewMenu.AddText("Zoom Out", keys.CmdOrCtrl("-"), func(cb *menu.CallbackData) {
runtime.WindowExecJS(builder.Ctx, "window.zoomOut()")
})
viewMenu.AddText("Reset Zoom", keys.Combo("-", keys.CmdOrCtrlKey, keys.OptionOrAltKey), func(cb *menu.CallbackData) {
runtime.WindowExecJS(builder.Ctx, "window.resetZoom()")
})
viewMenu.AddSeparator()
viewMenu.AddText("Refresh", keys.CmdOrCtrl("r"), func(cb *menu.CallbackData) {
runtime.WindowExecJS(builder.Ctx, "window.location.reload()")
})
helpMenu := builder.Menu.AddSubmenu("Help")
helpMenu.AddText("Open App Data Directory", &keys.Accelerator{}, func(cb *menu.CallbackData) {
app.OpenAppDataPath()
})
helpMenu.AddText("Open Log File", &keys.Accelerator{}, func(cb *menu.CallbackData) {
app.OpenLogFile()
})
return builder.Menu
}