adwaita-swift/Tests/Page.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