- 拆分 ContentDelegates/TextContentView 为独立协调器(InteractionCoordinator、LocationResolution、ExternalLinks、AttachmentTooltip) - 新增 RDEPUBAttachmentTooltipView/OverlayView 附件气泡提示 - 新增 RDEPUBDarkImageAdjuster 暗色模式图片亮度适配 - 新增 RDEPUBSelectionLoupeView 选区放大镜 - 新增 MetadataParseWorker/CancellationController 元数据解析取消机制 - 重构 PresentationRuntime/PaginationCoordinator 精简职责 - 优化 ChapterLoader/WarmupOrchestrator 异步章节加载 - CFI 模块微调与 NoteModels 更新 - 清理冗余文档,更新架构/UML/业务逻辑文档 Co-Authored-By: Claude <noreply@anthropic.com>
97 lines
3.5 KiB
Swift
97 lines
3.5 KiB
Swift
import UIKit
|
|
|
|
public struct RDEPUBReaderTheme: Equatable {
|
|
|
|
public var contentBackgroundColor: UIColor
|
|
|
|
public var contentTextColor: UIColor
|
|
|
|
public var toolBackgroundColor: UIColor
|
|
|
|
public var toolControlTextColor: UIColor
|
|
|
|
public var toolControlBorderUnselectColor: UIColor
|
|
|
|
public var toolLineColor: UIColor
|
|
|
|
public init(
|
|
contentBackgroundColor: UIColor,
|
|
contentTextColor: UIColor,
|
|
toolBackgroundColor: UIColor,
|
|
toolControlTextColor: UIColor,
|
|
toolControlBorderUnselectColor: UIColor,
|
|
toolLineColor: UIColor
|
|
) {
|
|
self.contentBackgroundColor = contentBackgroundColor
|
|
self.contentTextColor = contentTextColor
|
|
self.toolBackgroundColor = toolBackgroundColor
|
|
self.toolControlTextColor = toolControlTextColor
|
|
self.toolControlBorderUnselectColor = toolControlBorderUnselectColor
|
|
self.toolLineColor = toolLineColor
|
|
}
|
|
|
|
public static let light = RDEPUBReaderTheme(
|
|
contentBackgroundColor: .white,
|
|
contentTextColor: .black,
|
|
toolBackgroundColor: .white,
|
|
toolControlTextColor: .black,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
|
|
public static let dark = RDEPUBReaderTheme(
|
|
contentBackgroundColor: .black,
|
|
contentTextColor: .white,
|
|
toolBackgroundColor: .black,
|
|
toolControlTextColor: .white,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
|
|
public static let yellow = RDEPUBReaderTheme(
|
|
contentBackgroundColor: UIColor(red: 0.89, green: 0.87, blue: 0.79, alpha: 1),
|
|
contentTextColor: .black,
|
|
toolBackgroundColor: UIColor(red: 0.89, green: 0.87, blue: 0.79, alpha: 1),
|
|
toolControlTextColor: .black,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
|
|
public static let green = RDEPUBReaderTheme(
|
|
contentBackgroundColor: UIColor(red: 0.87, green: 0.91, blue: 0.82, alpha: 1),
|
|
contentTextColor: .black,
|
|
toolBackgroundColor: UIColor(red: 0.87, green: 0.91, blue: 0.82, alpha: 1),
|
|
toolControlTextColor: .black,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
|
|
public static let pink = RDEPUBReaderTheme(
|
|
contentBackgroundColor: UIColor(red: 1, green: 0.89, blue: 0.91, alpha: 1),
|
|
contentTextColor: .black,
|
|
toolBackgroundColor: UIColor(red: 1, green: 0.89, blue: 0.91, alpha: 1),
|
|
toolControlTextColor: .black,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
|
|
public static let blue = RDEPUBReaderTheme(
|
|
contentBackgroundColor: UIColor(red: 0.8, green: 0.84, blue: 0.89, alpha: 1),
|
|
contentTextColor: .black,
|
|
toolBackgroundColor: UIColor(red: 0.8, green: 0.84, blue: 0.89, alpha: 1),
|
|
toolControlTextColor: .black,
|
|
toolControlBorderUnselectColor: UIColor.lightGray.withAlphaComponent(0.5),
|
|
toolLineColor: UIColor.lightGray.withAlphaComponent(0.5)
|
|
)
|
|
}
|
|
|
|
extension RDEPUBReaderTheme {
|
|
|
|
var themeBackgroundColorCSS: String {
|
|
contentBackgroundColor.rd_cssString
|
|
}
|
|
|
|
var themeTextColorCSS: String {
|
|
contentTextColor.rd_cssString
|
|
}
|
|
} |