Revision control
Copy as Markdown
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
import Foundation
import UIKit
public enum ReaderModeFontSize: Int {
case size1 = 1
case size2 = 2
case size3 = 3
case size4 = 4
case size5 = 5
case size6 = 6
case size7 = 7
case size8 = 8
case size9 = 9
case size10 = 10
case size11 = 11
case size12 = 12
case size13 = 13
public func isSmallest() -> Bool {
return self == ReaderModeFontSize.size1
}
public func smaller() -> ReaderModeFontSize {
if isSmallest() {
return self
} else {
return ReaderModeFontSize(rawValue: self.rawValue - 1)!
}
}
public func isLargest() -> Bool {
return self == ReaderModeFontSize.size13
}
public static var defaultSize: ReaderModeFontSize {
switch UIApplication.shared.preferredContentSizeCategory {
case .extraSmall:
return .size1
case .small:
return .size2
case .medium:
return .size3
case .large:
return .size5
case .extraLarge:
return .size7
case .extraExtraLarge:
return .size9
case .extraExtraExtraLarge:
return .size12
default:
return .size5
}
}
public func bigger() -> ReaderModeFontSize {
if isLargest() {
return self
} else {
return ReaderModeFontSize(rawValue: self.rawValue + 1)!
}
}
}