mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
41 lines
1.3 KiB
Swift
41 lines
1.3 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import AsyncDisplayKit
|
|
import Display
|
|
import TelegramPresentationData
|
|
|
|
private let textFont = Font.regular(14.0)
|
|
|
|
final class BotPaymentTextItemNode: BotPaymentItemNode {
|
|
private let text: String
|
|
private let textNode: ASTextNode
|
|
|
|
private var theme: PresentationTheme?
|
|
|
|
init(text: String) {
|
|
self.text = text
|
|
self.textNode = ASTextNode()
|
|
self.textNode.maximumNumberOfLines = 0
|
|
|
|
super.init(needsBackground: false)
|
|
|
|
self.addSubnode(self.textNode)
|
|
}
|
|
|
|
override func layoutContents(theme: PresentationTheme, width: CGFloat, sideInset: CGFloat, measuredInset: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat {
|
|
if self.theme !== theme {
|
|
self.theme = theme
|
|
self.textNode.attributedText = NSAttributedString(string: self.text, font: textFont, textColor: theme.list.sectionHeaderTextColor)
|
|
}
|
|
|
|
let leftInset: CGFloat = 16.0
|
|
|
|
let textSize = self.textNode.measure(CGSize(width: width - leftInset - 10.0 - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude))
|
|
|
|
transition.updateFrame(node: self.textNode, frame: CGRect(origin: CGPoint(x: leftInset + sideInset, y: 7.0), size: textSize))
|
|
|
|
return textSize.height + 7.0 + 7.0
|
|
}
|
|
|
|
}
|