mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
87 lines
3.4 KiB
Swift
87 lines
3.4 KiB
Swift
import Foundation
|
|
import AsyncDisplayKit
|
|
import Display
|
|
import Postbox
|
|
import TelegramCore
|
|
|
|
final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode {
|
|
private let deleteButton: UIButton
|
|
private let forwardButton: UIButton
|
|
|
|
override var peer: Peer? {
|
|
didSet {
|
|
var canDelete = false
|
|
if let channel = self.peer as? TelegramChannel {
|
|
switch channel.info {
|
|
case .broadcast:
|
|
switch channel.role {
|
|
case .creator, .editor, .moderator:
|
|
canDelete = true
|
|
case .member:
|
|
canDelete = false
|
|
}
|
|
case .group:
|
|
switch channel.role {
|
|
case .creator, .editor, .moderator:
|
|
canDelete = true
|
|
case .member:
|
|
canDelete = false
|
|
}
|
|
}
|
|
} else {
|
|
canDelete = true
|
|
}
|
|
self.deleteButton.isHidden = !canDelete
|
|
}
|
|
}
|
|
|
|
var selectedMessageCount: Int = 0 {
|
|
didSet {
|
|
self.deleteButton.isEnabled = self.selectedMessageCount != 0
|
|
self.forwardButton.isEnabled = self.selectedMessageCount != 0
|
|
}
|
|
}
|
|
|
|
override init() {
|
|
self.deleteButton = UIButton()
|
|
self.forwardButton = UIButton()
|
|
|
|
self.deleteButton.setImage(generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Acessory Panels/MessageSelectionThrash"), color: UIColor(0x1195f2)), for: [.normal])
|
|
self.deleteButton.setImage(generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Acessory Panels/MessageSelectionThrash"), color: UIColor(0xdededf)), for: [.disabled])
|
|
self.forwardButton.setImage(generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Acessory Panels/MessageSelectionForward"), color: UIColor(0x1195f2)), for: [.normal])
|
|
self.forwardButton.setImage(generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Acessory Panels/MessageSelectionForward"), color: UIColor(0xdededf)), for: [.disabled])
|
|
|
|
super.init()
|
|
|
|
self.view.addSubview(self.deleteButton)
|
|
self.view.addSubview(self.forwardButton)
|
|
|
|
self.forwardButton.isEnabled = false
|
|
self.deleteButton.isEnabled = false
|
|
|
|
self.deleteButton.addTarget(self, action: #selector(self.deleteButtonPressed), for: [.touchUpInside])
|
|
self.forwardButton.addTarget(self, action: #selector(self.forwardButtonPressed), for: [.touchUpInside])
|
|
}
|
|
|
|
override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
|
return CGSize(width: constrainedSize.width, height: 45.0)
|
|
}
|
|
|
|
override func layout() {
|
|
super.layout()
|
|
|
|
let bounds = self.bounds
|
|
|
|
self.deleteButton.frame = CGRect(origin: CGPoint(), size: CGSize(width: 53.0, height: 45.0))
|
|
self.forwardButton.frame = CGRect(origin: CGPoint(x: bounds.size.width - 57.0, y: 0.0), size: CGSize(width: 57.0, height: 45.0))
|
|
}
|
|
|
|
@objc func deleteButtonPressed() {
|
|
self.interfaceInteraction?.deleteSelectedMessages()
|
|
}
|
|
|
|
@objc func forwardButtonPressed() {
|
|
self.interfaceInteraction?.forwardSelectedMessages()
|
|
}
|
|
}
|