87 lines
1.9 KiB
Swift
87 lines
1.9 KiB
Swift
//
|
|
// Page.swift
|
|
// Adwaita
|
|
//
|
|
// Created by david-swift on 25.09.23.
|
|
//
|
|
|
|
// swiftlint:disable missing_docs implicitly_unwrapped_optional
|
|
|
|
import Adwaita
|
|
import Libadwaita
|
|
|
|
enum Page: String, Identifiable, CaseIterable {
|
|
|
|
case welcome
|
|
case counter
|
|
case windows
|
|
case toolbar
|
|
case transition
|
|
case dice
|
|
case overlayWindow
|
|
|
|
var id: Self {
|
|
self
|
|
}
|
|
|
|
var label: String {
|
|
switch self {
|
|
case .overlayWindow:
|
|
return "Overlay Window"
|
|
default:
|
|
return rawValue.capitalized
|
|
}
|
|
}
|
|
|
|
var icon: Libadwaita.Icon? {
|
|
switch self {
|
|
case .welcome:
|
|
return .default(icon: .gnomeAdwaita1Demo)
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
var description: String {
|
|
switch self {
|
|
case .welcome:
|
|
return "This is a collection of examples for the Swift Adwaita package."
|
|
case .counter:
|
|
return "A simple sample view."
|
|
case .windows:
|
|
return "Showcase window management."
|
|
case .toolbar:
|
|
return "Toggle the bottom toolbar."
|
|
case .transition:
|
|
return "A slide transition between two views."
|
|
case .dice:
|
|
return "Roll the dice."
|
|
case .overlayWindow:
|
|
return "A window on top of another window."
|
|
}
|
|
}
|
|
|
|
@ViewBuilder
|
|
func view(app: GTUIApp!) -> Body {
|
|
switch self {
|
|
case .welcome:
|
|
[]
|
|
case .counter:
|
|
CounterDemo()
|
|
case .windows:
|
|
WindowsDemo(app: app)
|
|
case .toolbar:
|
|
ToolbarDemo(app: app)
|
|
case .transition:
|
|
TransitionDemo()
|
|
case .dice:
|
|
DiceDemo()
|
|
case .overlayWindow:
|
|
OverlayWindowDemo(app: app)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// swiftlint:enable missing_docs implicitly_unwrapped_optional
|