69 lines
2.7 KiB
Swift
69 lines
2.7 KiB
Swift
import UIKit
|
|
|
|
public enum RDEPUBTextRenderingEngine: Equatable {
|
|
case dtCoreText
|
|
}
|
|
|
|
public struct RDEPUBReaderConfiguration: Equatable {
|
|
public var fontSize: CGFloat
|
|
public var lineHeightMultiple: CGFloat
|
|
public var displayType: RDReaderView.DisplayType
|
|
public var landscapeDualPageEnabled: Bool
|
|
public var showsTableOfContents: Bool
|
|
public var allowsHighlights: Bool
|
|
public var showsSettingsPanel: Bool
|
|
public var reflowableContentInsets: UIEdgeInsets
|
|
public var fixedContentInset: UIEdgeInsets
|
|
public var theme: RDEPUBReaderTheme
|
|
public var fixedLayoutFit: RDEPUBFixedLayoutFit
|
|
public var fixedLayoutSpreadMode: RDEPUBFixedLayoutSpreadMode
|
|
public var textRenderingEngine: RDEPUBTextRenderingEngine
|
|
|
|
public init(
|
|
fontSize: CGFloat = 15,
|
|
lineHeightMultiple: CGFloat = 1.6,
|
|
displayType: RDReaderView.DisplayType = .pageCurl,
|
|
landscapeDualPageEnabled: Bool = true,
|
|
showsTableOfContents: Bool = true,
|
|
allowsHighlights: Bool = true,
|
|
showsSettingsPanel: Bool = true,
|
|
reflowableContentInsets: UIEdgeInsets = UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16),
|
|
fixedContentInset: UIEdgeInsets = .zero,
|
|
theme: RDEPUBReaderTheme = .light,
|
|
fixedLayoutFit: RDEPUBFixedLayoutFit = .page,
|
|
fixedLayoutSpreadMode: RDEPUBFixedLayoutSpreadMode = .automatic,
|
|
textRenderingEngine: RDEPUBTextRenderingEngine = .dtCoreText
|
|
) {
|
|
self.fontSize = fontSize
|
|
self.lineHeightMultiple = lineHeightMultiple
|
|
self.displayType = displayType
|
|
self.landscapeDualPageEnabled = landscapeDualPageEnabled
|
|
self.showsTableOfContents = showsTableOfContents
|
|
self.allowsHighlights = allowsHighlights
|
|
self.showsSettingsPanel = showsSettingsPanel
|
|
self.reflowableContentInsets = reflowableContentInsets
|
|
self.fixedContentInset = fixedContentInset
|
|
self.theme = theme
|
|
self.fixedLayoutFit = fixedLayoutFit
|
|
self.fixedLayoutSpreadMode = fixedLayoutSpreadMode
|
|
self.textRenderingEngine = textRenderingEngine
|
|
}
|
|
|
|
public static let `default` = RDEPUBReaderConfiguration()
|
|
}
|
|
|
|
extension RDEPUBReaderConfiguration {
|
|
func makePreferences() -> RDEPUBPreferences {
|
|
RDEPUBPreferences(
|
|
fontSize: fontSize,
|
|
lineHeightMultiple: lineHeightMultiple,
|
|
reflowableContentInsets: reflowableContentInsets,
|
|
fixedContentInset: fixedContentInset,
|
|
themeBackgroundColor: theme.themeBackgroundColorCSS,
|
|
themeTextColor: theme.themeTextColorCSS,
|
|
fixedBackgroundColor: theme.themeBackgroundColorCSS,
|
|
fixedLayoutFit: fixedLayoutFit,
|
|
fixedLayoutSpreadMode: fixedLayoutSpreadMode
|
|
)
|
|
}
|
|
} |