76 lines
2.7 KiB
Swift
76 lines
2.7 KiB
Swift
import UIKit
|
|
|
|
/// 顶部工具栏协议:宿主可提供自定义顶栏,只需实现以下回调与状态方法。
|
|
/// 内置 `RDEPUBReaderTopToolView` 已实现本协议。
|
|
/// 通过 `RDEPUBReaderDependencies.makeTopToolView` 工厂注入自定义实现。
|
|
public protocol RDEPUBReaderTopToolViewProtocol: AnyObject {
|
|
|
|
/// 返回 / 关闭
|
|
var onBack: (() -> Void)? { get set }
|
|
|
|
/// 搜索
|
|
var onSearch: (() -> Void)? { get set }
|
|
|
|
/// 切换书签
|
|
var onToggleBookmark: (() -> Void)? { get set }
|
|
|
|
/// 应用主题
|
|
func apply(theme: RDEPUBReaderTheme)
|
|
|
|
/// 设置标题
|
|
func setTitle(_ title: String?)
|
|
|
|
/// 书签按钮是否可用
|
|
func setBookmarkEnabled(_ isEnabled: Bool)
|
|
|
|
/// 书签按钮选中态(当前页是否已加书签)
|
|
func setBookmarkSelected(_ isSelected: Bool)
|
|
}
|
|
|
|
/// 底部工具栏协议:宿主可提供自定义底栏。内置 `RDEPUBReaderBottomToolView` 已实现本协议。
|
|
/// 通过 `RDEPUBReaderDependencies.makeBottomToolView` 工厂注入自定义实现。
|
|
public protocol RDEPUBReaderBottomToolViewProtocol: AnyObject {
|
|
|
|
/// 目录
|
|
var onShowTableOfContents: (() -> Void)? { get set }
|
|
|
|
/// 书签列表
|
|
var onShowBookmarks: (() -> Void)? { get set }
|
|
|
|
/// 标注列表(已有划线 / 注释)
|
|
var onShowHighlights: (() -> Void)? { get set }
|
|
|
|
/// 新增高亮 / 标注。
|
|
///
|
|
/// 保留以兼容既有的自定义底部工具栏;内置工具栏不再提供对应入口。
|
|
@available(*, deprecated, message: "Use the text selection menu to create annotations.")
|
|
var onAddHighlight: (() -> Void)? { get set }
|
|
|
|
/// 设置面板
|
|
var onShowSettings: (() -> Void)? { get set }
|
|
|
|
/// 应用主题
|
|
func apply(theme: RDEPUBReaderTheme)
|
|
|
|
/// 按配置更新各入口可见性
|
|
func updateVisibility(showsTableOfContents: Bool, allowsHighlights: Bool, showsSettingsPanel: Bool)
|
|
|
|
/// 书签列表按钮是否可用
|
|
func setBookmarksEnabled(_ isEnabled: Bool)
|
|
|
|
/// 新增高亮按钮是否可用。
|
|
///
|
|
/// 保留以兼容既有的自定义底部工具栏;内置工具栏不再提供对应入口。
|
|
@available(*, deprecated, message: "Use the text selection menu to create annotations.")
|
|
func setAddHighlightEnabled(_ isEnabled: Bool)
|
|
|
|
/// 标注列表按钮是否可用
|
|
func setHighlightsEnabled(_ isEnabled: Bool)
|
|
}
|
|
|
|
/// 顶部工具栏具体类型:UIView 且实现顶栏协议
|
|
public typealias RDEPUBReaderTopToolViewProviding = UIView & RDEPUBReaderTopToolViewProtocol
|
|
|
|
/// 底部工具栏具体类型:UIView 且实现底栏协议
|
|
public typealias RDEPUBReaderBottomToolViewProviding = UIView & RDEPUBReaderBottomToolViewProtocol
|