-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.swift
64 lines (56 loc) · 1.76 KB
/
main.swift
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
import Adwaita
import WebView
@main
struct Test: App {
let id = "xyz.zaph.webview"
var app: AdwaitaApp!
@State private var url: String = "https://github.com/AparokshaUI/adwaita-swift"
var scene: Scene {
Window(id: "main") { window in
WebView(url: $url)
.setSize(width: 800, height: 600)
.topToolbar {
ToolbarView(app: app, window: window)
}
}
}
}
struct ToolbarView: View {
@State private var about = false
var app: AdwaitaApp
var window: AdwaitaWindow
var view: Body {
HeaderBar.end {
Menu(icon: .default(icon: .openMenu)) {
MenuButton("New Window", window: false) {
app.addWindow("main")
}
.keyboardShortcut("n".ctrl())
MenuButton("Close Window") {
window.close()
}
.keyboardShortcut("w".ctrl())
MenuButton("Close App") {
app.quit()
}
.keyboardShortcut("q".ctrl())
MenuSection {
MenuButton("About Me", window: false) {
about = true
}
}
}
.primary()
.tooltip("Main Menu")
.aboutDialog(
visible: $about,
app: "WebViewAdwaita",
developer: "zaph",
version: "dev",
icon: .custom(name: "xyz.zaph.webview"),
website: .init(string: "https://github.com/Zaphik/AdwaitaWebViewSwift")!,
issues: .init(string: "https://github.com/Zaphik/AdwaitaWebViewSwift")!
)
}
}
}