Swiftgram/TelegramUI/ChatPresentationData.swift
2018-08-31 04:26:44 +03:00

75 lines
2.2 KiB
Swift

import Foundation
import UIKit
import TelegramCore
extension PresentationFontSize {
var baseDisplaySize: CGFloat {
switch self {
case .extraSmall:
return 14.0
case .small:
return 15.0
case .medium:
return 16.0
case .regular:
return 17.0
case .large:
return 19.0
case .extraLarge:
return 23.0
case .extraLargeX2:
return 26.0
}
}
}
extension TelegramWallpaper {
var isEmpty: Bool {
switch self {
case .builtin, .image:
return false
case .color:
return true
}
}
}
public final class ChatPresentationThemeData: Equatable {
public let theme: PresentationTheme
public let wallpaper: TelegramWallpaper
public init(theme: PresentationTheme, wallpaper: TelegramWallpaper) {
self.theme = theme
self.wallpaper = wallpaper
}
public static func ==(lhs: ChatPresentationThemeData, rhs: ChatPresentationThemeData) -> Bool {
return lhs.theme === rhs.theme && lhs.wallpaper == rhs.wallpaper
}
}
public final class ChatPresentationData {
let theme: ChatPresentationThemeData
let fontSize: PresentationFontSize
let strings: PresentationStrings
let timeFormat: PresentationTimeFormat
let messageFont: UIFont
let messageBoldFont: UIFont
let messageItalicFont: UIFont
let messageFixedFont: UIFont
init(theme: ChatPresentationThemeData, fontSize: PresentationFontSize, strings: PresentationStrings, timeFormat: PresentationTimeFormat) {
self.theme = theme
self.fontSize = fontSize
self.strings = strings
self.timeFormat = timeFormat
let baseFontSize = fontSize.baseDisplaySize
self.messageFont = UIFont.systemFont(ofSize: baseFontSize)
self.messageBoldFont = UIFont.boldSystemFont(ofSize: baseFontSize)
self.messageItalicFont = UIFont.italicSystemFont(ofSize: baseFontSize)
self.messageFixedFont = UIFont(name: "Menlo-Regular", size: baseFontSize - 1.0) ?? UIFont.systemFont(ofSize: baseFontSize)
}
}