Copy over all Phase 2 files

This commit is contained in:
2025-04-28 09:58:27 +02:00
commit 2e93b3e2f3
16 changed files with 4243 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
// The Swift Programming Language
// https://docs.swift.org/swift-book
import Adwaita
@main
struct AdwaitaTemplate: App {
let app = AdwaitaApp(id: "io.github.AparokshaUI.AdwaitaTemplate")
var scene: Scene {
Window(id: "main") { window in
VStack(spacing: 8) {
Text("Calculations here...")
.selectable(false)
VStack(spacing: 8) {
HStack(spacing: 8) {
Button("AC") {}
.keyboardShortcut("c", app: app)
.hexpand()
.destructive()
Button("") {}
.hexpand()
.flat()
Button("%") {}
.keyboardShortcut("percent", app: app)
.hexpand()
Button("/") {}
.keyboardShortcut("slash", app: app)
.hexpand()
}
.vexpand()
HStack(spacing: 8) {
Button("7") {}
.keyboardShortcut("7", app: app)
.hexpand()
Button("8") {}
.keyboardShortcut("8", app: app)
.hexpand()
Button("9") {}
.keyboardShortcut("9", app: app)
.hexpand()
Button("*") {}
.keyboardShortcut("asterisk", app: app)
.hexpand()
}
.vexpand()
HStack(spacing: 8) {
Button("4") {}
.keyboardShortcut("4", app: app)
.hexpand()
Button("5") {}
.keyboardShortcut("5", app: app)
.hexpand()
Button("6") {}
.keyboardShortcut("6", app: app)
.hexpand()
Button("-") {}
.keyboardShortcut("minus", app: app)
.hexpand()
}
.vexpand()
HStack(spacing: 8) {
Button("1") {}
.keyboardShortcut("1", app: app)
.hexpand()
Button("2") {}
.keyboardShortcut("2", app: app)
.hexpand()
Button("3") {}
.keyboardShortcut("3", app: app)
.hexpand()
Button("+") {}
.keyboardShortcut("plus", app: app)
.hexpand()
}
.vexpand()
HStack(spacing: 8) {
Button("0") {}
.keyboardShortcut("0", app: app)
.hexpand()
Button("") {}
.hexpand()
.flat()
Button(",") {}
.keyboardShortcut("comma", app: app)
.hexpand()
Button("=") {}
.keyboardShortcut("equal", app: app)
.hexpand()
}
.vexpand()
}
}
.padding()
.topToolbar {
ToolbarView(app: app, window: window)
}
}
}
}

21
Sources/Localized.yml Normal file
View File

@@ -0,0 +1,21 @@
default: en
helloWorld:
en: Hello, world!
de: Hallo, Welt!
newWindow:
en: New Window
de: Neues Fenster
closeWindow:
en: Close Window
de: Fenster schliessen
about:
en: About AdwaitaTemplate
de: Info zu AdwaitaTemplate
mainMenu:
en: Main Menu
de: Hauptmenü

40
Sources/ToolbarView.swift Normal file
View File

@@ -0,0 +1,40 @@
import Adwaita
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(Loc.newWindow, window: false) {
app.addWindow("main")
}
.keyboardShortcut("n".ctrl())
MenuButton(Loc.closeWindow) {
window.close()
}
.keyboardShortcut("w".ctrl())
MenuSection {
MenuButton(Loc.about, window: false) {
about = true
}
}
}
.primary()
.tooltip(Loc.mainMenu)
.aboutDialog(
visible: $about,
app: "AdwaitaTemplate",
developer: "david-swift",
version: "dev",
icon: .custom(name: "io.github.AparokshaUI.AdwaitaTemplate"),
website: .init(string: "https://git.aparoksha.dev/aparoksha/adwaita-template")!,
issues: .init(string: "https://git.aparoksha.dev/aparoksha/adwaita-template/issues")!
)
}
}
}