mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
60 lines
1.6 KiB
Swift
60 lines
1.6 KiB
Swift
import Foundation
|
|
import AsyncDisplayKit
|
|
|
|
public class StatusBarSurface {
|
|
var statusBars: [StatusBar] = []
|
|
|
|
func addStatusBar(statusBar: StatusBar) {
|
|
self.removeStatusBar(statusBar)
|
|
self.statusBars.append(statusBar)
|
|
}
|
|
|
|
func insertStatusBar(statusBar: StatusBar, atIndex index: Int) {
|
|
self.removeStatusBar(statusBar)
|
|
self.statusBars.insert(statusBar, atIndex: index)
|
|
}
|
|
|
|
func removeStatusBar(statusBar: StatusBar) {
|
|
for i in 0 ..< self.statusBars.count {
|
|
if self.statusBars[i] === statusBar {
|
|
self.statusBars.removeAtIndex(i)
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class StatusBar: ASDisplayNode {
|
|
public var style: StatusBarStyle = .Black
|
|
var proxyNode: StatusBarProxyNode?
|
|
|
|
override init() {
|
|
super.init()
|
|
|
|
self.clipsToBounds = true
|
|
self.userInteractionEnabled = false
|
|
}
|
|
|
|
func removeProxyNode() {
|
|
self.proxyNode?.hidden = true
|
|
self.proxyNode?.removeFromSupernode()
|
|
self.proxyNode = nil
|
|
}
|
|
|
|
func updateProxyNode() {
|
|
let origin = self.view.convertPoint(CGPoint(), toView: nil)
|
|
if let proxyNode = proxyNode {
|
|
proxyNode.style = self.style
|
|
} else {
|
|
self.proxyNode = StatusBarProxyNode(style: self.style)
|
|
self.proxyNode!.hidden = false
|
|
self.addSubnode(self.proxyNode!)
|
|
}
|
|
|
|
let frame = CGRect(origin: CGPoint(x: -origin.x, y: -origin.y), size: self.proxyNode!.frame.size)
|
|
self.proxyNode?.frame = frame
|
|
}
|
|
|
|
|
|
}
|