Files
yattee/Yattee/Models/PlayerControls/Gestures/TapZonePosition.swift
2026-02-08 18:33:56 +01:00

66 lines
1.9 KiB
Swift

//
// TapZonePosition.swift
// Yattee
//
// Defines the position identifiers for tap zones.
//
import Foundation
/// Position identifier for a tap zone within a layout.
enum TapZonePosition: String, Codable, CaseIterable, Sendable, Identifiable {
// Single layout
case full
// Horizontal split (2x1)
case left
case right
// Vertical split (1x2)
case top
case bottom
// Three columns (1x3)
case leftThird
case center
case rightThird
// Quadrants (2x2)
case topLeft
case topRight
case bottomLeft
case bottomRight
var id: String { rawValue }
/// Display name for the zone position.
var displayName: String {
switch self {
case .full:
String(localized: "gestures.zone.full", defaultValue: "Tap Zone")
case .left:
String(localized: "gestures.zone.left", defaultValue: "Left")
case .right:
String(localized: "gestures.zone.right", defaultValue: "Right")
case .top:
String(localized: "gestures.zone.top", defaultValue: "Top")
case .bottom:
String(localized: "gestures.zone.bottom", defaultValue: "Bottom")
case .leftThird:
String(localized: "gestures.zone.leftThird", defaultValue: "Left")
case .center:
String(localized: "gestures.zone.center", defaultValue: "Center")
case .rightThird:
String(localized: "gestures.zone.rightThird", defaultValue: "Right")
case .topLeft:
String(localized: "gestures.zone.topLeft", defaultValue: "Top-Left")
case .topRight:
String(localized: "gestures.zone.topRight", defaultValue: "Top-Right")
case .bottomLeft:
String(localized: "gestures.zone.bottomLeft", defaultValue: "Bottom-Left")
case .bottomRight:
String(localized: "gestures.zone.bottomRight", defaultValue: "Bottom-Right")
}
}
}