mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
50 lines
2.0 KiB
Swift
50 lines
2.0 KiB
Swift
import Foundation
|
|
import AsyncDisplayKit
|
|
import Display
|
|
|
|
public final class ContextExtractedContentContainingNode: ASDisplayNode {
|
|
public let contentNode: ContextExtractedContentNode
|
|
public var contentRect: CGRect = CGRect()
|
|
public var isExtractedToContextPreview: Bool = false
|
|
public var willUpdateIsExtractedToContextPreview: ((Bool) -> Void)?
|
|
public var isExtractedToContextPreviewUpdated: ((Bool) -> Void)?
|
|
public var updateAbsoluteRect: ((CGRect, CGSize) -> Void)?
|
|
public var applyAbsoluteOffset: ((CGFloat, ContainedViewLayoutTransitionCurve, Double) -> Void)?
|
|
public var applyAbsoluteOffsetSpring: ((CGFloat, Double, CGFloat) -> Void)?
|
|
public var layoutUpdated: ((CGSize) -> Void)?
|
|
public var updateDistractionFreeMode: ((Bool) -> Void)?
|
|
|
|
public override init() {
|
|
self.contentNode = ContextExtractedContentNode()
|
|
|
|
super.init()
|
|
|
|
self.addSubnode(self.contentNode)
|
|
}
|
|
}
|
|
|
|
public final class ContextExtractedContentNode: ASDisplayNode {
|
|
}
|
|
|
|
final class ContextControllerContentNode: ASDisplayNode {
|
|
let controller: ViewController
|
|
|
|
init(controller: ViewController) {
|
|
self.controller = controller
|
|
|
|
super.init()
|
|
|
|
self.addSubnode(controller.displayNode)
|
|
}
|
|
|
|
func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
|
|
transition.updateFrame(node: self.controller.displayNode, frame: CGRect(origin: CGPoint(), size: size))
|
|
self.controller.containerLayoutUpdated(ContainerViewLayout(size: size, metrics: LayoutMetrics(widthClass: .compact, heightClass: .compact), deviceMetrics: .iPhoneX, intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: transition)
|
|
}
|
|
}
|
|
|
|
enum ContextContentNode {
|
|
case extracted(ContextExtractedContentContainingNode)
|
|
case controller(ContextControllerContentNode)
|
|
}
|