mirror of
https://github.com/yattee/yattee.git
synced 2024-12-26 07:23:41 +00:00
249 lines
4.7 KiB
Swift
249 lines
4.7 KiB
Swift
import Defaults
|
|
import Foundation
|
|
|
|
enum PlayerControlsLayout: String, CaseIterable, Defaults.Serializable {
|
|
case veryLarge
|
|
case large
|
|
case medium
|
|
case small
|
|
case smaller
|
|
|
|
var description: String {
|
|
switch self {
|
|
case .veryLarge:
|
|
return "Very Large"
|
|
default:
|
|
return rawValue.capitalized
|
|
}
|
|
}
|
|
|
|
var buttonsSpacing: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 40
|
|
case .large:
|
|
return 30
|
|
case .medium:
|
|
return 25
|
|
case .small:
|
|
return 20
|
|
case .smaller:
|
|
return 20
|
|
}
|
|
}
|
|
|
|
var buttonFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 35
|
|
case .large:
|
|
return 28
|
|
case .medium:
|
|
return 22
|
|
case .small:
|
|
return 18
|
|
case .smaller:
|
|
return 15
|
|
}
|
|
}
|
|
|
|
var bigButtonFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 55
|
|
case .large:
|
|
return 45
|
|
case .medium:
|
|
return 35
|
|
case .small:
|
|
return 30
|
|
case .smaller:
|
|
return 25
|
|
}
|
|
}
|
|
|
|
var buttonSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 60
|
|
case .large:
|
|
return 45
|
|
case .medium:
|
|
return 35
|
|
case .small:
|
|
return 30
|
|
case .smaller:
|
|
return 25
|
|
}
|
|
}
|
|
|
|
var bigButtonSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 85
|
|
case .large:
|
|
return 70
|
|
case .medium:
|
|
return 60
|
|
case .small:
|
|
return 60
|
|
case .smaller:
|
|
return 60
|
|
}
|
|
}
|
|
|
|
var segmentFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 16
|
|
case .large:
|
|
return 12
|
|
case .medium:
|
|
return 10
|
|
case .small:
|
|
return 9
|
|
case .smaller:
|
|
return 9
|
|
}
|
|
}
|
|
|
|
var chapterFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 20
|
|
case .large:
|
|
return 16
|
|
case .medium:
|
|
return 12
|
|
case .small:
|
|
return 10
|
|
case .smaller:
|
|
return 10
|
|
}
|
|
}
|
|
|
|
var projectedTimeFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 25
|
|
case .large:
|
|
return 20
|
|
case .medium:
|
|
return 15
|
|
case .small:
|
|
return 13
|
|
case .smaller:
|
|
return 11
|
|
}
|
|
}
|
|
|
|
var thumbSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 35
|
|
case .large:
|
|
return 30
|
|
case .medium:
|
|
return 20
|
|
case .small:
|
|
return 15
|
|
case .smaller:
|
|
return 13
|
|
}
|
|
}
|
|
|
|
var timeFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 35
|
|
case .large:
|
|
return 28
|
|
case .medium:
|
|
return 17
|
|
case .small:
|
|
return 13
|
|
case .smaller:
|
|
return 9
|
|
}
|
|
}
|
|
|
|
var bufferingStateFontSize: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 30
|
|
case .large:
|
|
return 24
|
|
case .medium:
|
|
return 14
|
|
case .small:
|
|
return 10
|
|
case .smaller:
|
|
return 7
|
|
}
|
|
}
|
|
|
|
var timeLeadingEdgePadding: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 5
|
|
case .large:
|
|
return 5
|
|
case .medium:
|
|
return 5
|
|
case .small:
|
|
return 3
|
|
case .smaller:
|
|
return 3
|
|
}
|
|
}
|
|
|
|
var timeTrailingEdgePadding: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 16
|
|
case .large:
|
|
return 14
|
|
case .medium:
|
|
return 9
|
|
case .small:
|
|
return 6
|
|
case .smaller:
|
|
return 2
|
|
}
|
|
}
|
|
|
|
var timelineHeight: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 40
|
|
case .large:
|
|
return 35
|
|
case .medium:
|
|
return 30
|
|
case .small:
|
|
return 25
|
|
case .smaller:
|
|
return 20
|
|
}
|
|
}
|
|
|
|
var seekOSDWidth: Double {
|
|
switch self {
|
|
case .veryLarge:
|
|
return 240
|
|
case .large:
|
|
return 200
|
|
case .medium:
|
|
return 180
|
|
case .small:
|
|
return 140
|
|
case .smaller:
|
|
return 120
|
|
}
|
|
}
|
|
|
|
var osdVerticalOffset: Double {
|
|
buttonSize
|
|
}
|
|
}
|