mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Various improvements
This commit is contained in:
@@ -1461,11 +1461,33 @@ public final class SolidRoundedButtonView: UIView {
|
||||
let spacingOffset: CGFloat = 9.0
|
||||
let verticalInset: CGFloat = self.subtitle == nil ? floor((buttonFrame.height - titleSize.height) / 2.0) : floor((buttonFrame.height - titleSize.height) / 2.0) - spacingOffset
|
||||
let iconSpacing: CGFloat = self.iconSpacing
|
||||
let badgeSpacing: CGFloat = 6.0
|
||||
|
||||
var contentWidth: CGFloat = titleSize.width
|
||||
if !iconSize.width.isZero {
|
||||
contentWidth += iconSize.width + iconSpacing
|
||||
}
|
||||
|
||||
var badgeSize: CGSize = .zero
|
||||
if let badge = self.badge {
|
||||
let badgeNode: BadgeNode
|
||||
if let current = self.badgeNode {
|
||||
badgeNode = current
|
||||
} else {
|
||||
badgeNode = BadgeNode(fillColor: self.theme.foregroundColor, strokeColor: .clear, textColor: self.theme.backgroundColor)
|
||||
badgeNode.alpha = self.titleNode.alpha == 0.0 ? 0.0 : 1.0
|
||||
self.badgeNode = badgeNode
|
||||
self.addSubnode(badgeNode)
|
||||
}
|
||||
badgeNode.text = badge
|
||||
badgeSize = badgeNode.update(CGSize(width: 100.0, height: 100.0))
|
||||
|
||||
contentWidth += badgeSize.width + badgeSpacing
|
||||
} else if let badgeNode = self.badgeNode {
|
||||
self.badgeNode = nil
|
||||
badgeNode.removeFromSupernode()
|
||||
}
|
||||
|
||||
var nextContentOrigin = floor((buttonFrame.width - contentWidth) / 2.0)
|
||||
|
||||
let iconFrame: CGRect
|
||||
@@ -1484,6 +1506,7 @@ public final class SolidRoundedButtonView: UIView {
|
||||
}
|
||||
iconFrame = CGRect(origin: CGPoint(x: buttonFrame.minX + nextContentOrigin, y: floor((buttonFrame.height - iconSize.height) / 2.0)), size: iconSize)
|
||||
}
|
||||
let badgeFrame = CGRect(origin: CGPoint(x: titleFrame.maxX + badgeSpacing, y: titleFrame.minY + floor((titleFrame.height - badgeSize.height) * 0.5)), size: badgeSize)
|
||||
|
||||
transition.updateFrame(view: self.iconNode, frame: iconFrame)
|
||||
if let animationNode = self.animationNode {
|
||||
@@ -1491,22 +1514,8 @@ public final class SolidRoundedButtonView: UIView {
|
||||
}
|
||||
transition.updateFrame(view: self.titleNode, frame: titleFrame)
|
||||
|
||||
if let badge = self.badge {
|
||||
let badgeNode: BadgeNode
|
||||
if let current = self.badgeNode {
|
||||
badgeNode = current
|
||||
} else {
|
||||
badgeNode = BadgeNode(fillColor: self.theme.foregroundColor, strokeColor: .clear, textColor: self.theme.backgroundColor)
|
||||
badgeNode.alpha = self.titleNode.alpha == 0.0 ? 0.0 : 1.0
|
||||
self.badgeNode = badgeNode
|
||||
self.addSubnode(badgeNode)
|
||||
}
|
||||
badgeNode.text = badge
|
||||
let badgeSize = badgeNode.update(CGSize(width: 100.0, height: 100.0))
|
||||
transition.updateFrame(node: badgeNode, frame: CGRect(origin: CGPoint(x: titleFrame.maxX + 4.0, y: titleFrame.minY + floor((titleFrame.height - badgeSize.height) * 0.5)), size: badgeSize))
|
||||
} else if let badgeNode = self.badgeNode {
|
||||
self.badgeNode = nil
|
||||
badgeNode.removeFromSupernode()
|
||||
if let badgeNode = self.badgeNode {
|
||||
transition.updateFrame(node: badgeNode, frame: badgeFrame)
|
||||
}
|
||||
|
||||
if self.subtitle != self.subtitleNode.attributedText?.string {
|
||||
|
||||
Reference in New Issue
Block a user