mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Stories
This commit is contained in:
@@ -64,6 +64,7 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
private let titleLabelNode: ImmediateTextNode
|
||||
private let subtitleNode: ImmediateTextNode
|
||||
private let iconNode: ASImageNode
|
||||
private let additionalIconNode: ASImageNode
|
||||
private var badgeIconNode: ASImageNode?
|
||||
private var animationNode: AnimationNode?
|
||||
|
||||
@@ -99,6 +100,10 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
self.iconNode = ASImageNode()
|
||||
self.iconNode.isAccessibilityElement = false
|
||||
self.iconNode.isUserInteractionEnabled = false
|
||||
|
||||
self.additionalIconNode = ASImageNode()
|
||||
self.additionalIconNode.isAccessibilityElement = false
|
||||
self.additionalIconNode.isUserInteractionEnabled = false
|
||||
|
||||
super.init()
|
||||
|
||||
@@ -110,6 +115,7 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
self.addSubnode(self.titleLabelNode)
|
||||
self.addSubnode(self.subtitleNode)
|
||||
self.addSubnode(self.iconNode)
|
||||
self.addSubnode(self.additionalIconNode)
|
||||
|
||||
self.isEnabled = self.canBeHighlighted()
|
||||
|
||||
@@ -305,6 +311,14 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
iconSize = iconImage?.size
|
||||
}
|
||||
|
||||
let additionalIcon = self.item.additionalLeftIcon?(presentationData.theme)
|
||||
var additionalIconSize: CGSize?
|
||||
self.additionalIconNode.image = additionalIcon
|
||||
|
||||
if let additionalIcon {
|
||||
additionalIconSize = additionalIcon.size
|
||||
}
|
||||
|
||||
let badgeSize: CGSize?
|
||||
if let badge = self.item.badge {
|
||||
var badgeImage: UIImage?
|
||||
@@ -422,7 +436,10 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
titleFrame = titleFrame.offsetBy(dx: 0.0, dy: titleVerticalOffset)
|
||||
}
|
||||
var subtitleFrame = CGRect(origin: CGPoint(x: sideInset, y: titleFrame.maxY + titleSubtitleSpacing), size: subtitleSize)
|
||||
if self.item.iconPosition == .left {
|
||||
if self.item.additionalLeftIcon != nil {
|
||||
titleFrame = titleFrame.offsetBy(dx: 26.0, dy: 0.0)
|
||||
subtitleFrame = subtitleFrame.offsetBy(dx: 26.0, dy: 0.0)
|
||||
} else if self.item.iconPosition == .left {
|
||||
titleFrame = titleFrame.offsetBy(dx: 36.0, dy: 0.0)
|
||||
subtitleFrame = subtitleFrame.offsetBy(dx: 36.0, dy: 0.0)
|
||||
}
|
||||
@@ -444,12 +461,24 @@ private final class ContextControllerActionsListActionItemNode: HighlightTrackin
|
||||
x: self.item.iconPosition == .left ? iconSideInset : size.width - iconSideInset - iconWidth + floor((iconWidth - iconSize.width) / 2.0),
|
||||
y: floor((size.height - iconSize.height) / 2.0)
|
||||
),
|
||||
size: iconSize)
|
||||
size: iconSize
|
||||
)
|
||||
transition.updateFrame(node: self.iconNode, frame: iconFrame, beginWithCurrentState: true)
|
||||
if let animationNode = self.animationNode {
|
||||
transition.updateFrame(node: animationNode, frame: iconFrame, beginWithCurrentState: true)
|
||||
}
|
||||
}
|
||||
|
||||
if let additionalIconSize {
|
||||
let iconFrame = CGRect(
|
||||
origin: CGPoint(
|
||||
x: 10.0,
|
||||
y: floor((size.height - additionalIconSize.height) / 2.0)
|
||||
),
|
||||
size: additionalIconSize
|
||||
)
|
||||
transition.updateFrame(node: self.additionalIconNode, frame: iconFrame, beginWithCurrentState: true)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user