mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
87 lines
2.7 KiB
Swift
87 lines
2.7 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, .file:
|
|
return false
|
|
case .color:
|
|
return true
|
|
}
|
|
}
|
|
var isBuiltin: Bool {
|
|
switch self {
|
|
case .builtin:
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
|
|
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 dateTimeFormat: PresentationDateTimeFormat
|
|
let nameDisplayOrder: PresentationPersonNameOrder
|
|
let disableAnimations: Bool
|
|
|
|
let messageFont: UIFont
|
|
let messageBoldFont: UIFont
|
|
let messageItalicFont: UIFont
|
|
let messageFixedFont: UIFont
|
|
|
|
init(theme: ChatPresentationThemeData, fontSize: PresentationFontSize, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
|
self.theme = theme
|
|
self.fontSize = fontSize
|
|
self.strings = strings
|
|
self.dateTimeFormat = dateTimeFormat
|
|
self.nameDisplayOrder = nameDisplayOrder
|
|
self.disableAnimations = disableAnimations
|
|
|
|
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)
|
|
}
|
|
}
|