53 lines
1.6 KiB
Swift
53 lines
1.6 KiB
Swift
|
//
|
||
|
// Preferences.swift
|
||
|
// ScrollSwitcher
|
||
|
//
|
||
|
// Created by Shadowfacts on 9/12/21.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
struct Preferences {
|
||
|
|
||
|
private static let autoModeKey = "autoMode"
|
||
|
static var autoMode: AutoMode {
|
||
|
get {
|
||
|
AutoMode(rawValue: UserDefaults.standard.integer(forKey: autoModeKey)) ?? .disabled
|
||
|
}
|
||
|
set {
|
||
|
UserDefaults.standard.set(newValue.rawValue, forKey: autoModeKey)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
extension Preferences {
|
||
|
enum AutoMode: Int, Codable, CaseIterable, Equatable {
|
||
|
case disabled = 0
|
||
|
case normalWhenMousePresent = 1
|
||
|
case naturalWhenTrackpadPresent = 2
|
||
|
|
||
|
var displayName: String {
|
||
|
switch self {
|
||
|
case .disabled:
|
||
|
return "Disabled"
|
||
|
case .normalWhenMousePresent:
|
||
|
return "Normal when mouse present"
|
||
|
case .naturalWhenTrackpadPresent:
|
||
|
return "Natural when trackpad present"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var displayDescription: String {
|
||
|
switch self {
|
||
|
case .disabled:
|
||
|
return "Scroll direction is never changed automatically"
|
||
|
case .normalWhenMousePresent:
|
||
|
return "Scroll direction is changed to normal when at least 1 mouse is connected. Optimal for computers with built-in trackpads."
|
||
|
case .naturalWhenTrackpadPresent:
|
||
|
return "Scroll direction is changed to natural when at least 1 trackpad is connected. Optimal for computers with rarely-connected trackpads."
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|