Swiftgram/TelegramUI/ChatTextInputActionButtonsNode.swift
Peter Iakovlev b39986a1ee no message
2018-03-02 20:55:22 +04:00

41 lines
1.8 KiB
Swift

import Foundation
import AsyncDisplayKit
import Display
final class ChatTextInputActionButtonsNode: ASDisplayNode {
let micButton: ChatTextInputMediaRecordingButton
let sendButton: HighlightableButton
var sendButtonHasApplyIcon = false
var animatingSendButton = false
let expandMediaInputButton: HighlightableButtonNode
init(theme: PresentationTheme, presentController: @escaping (ViewController) -> Void) {
self.micButton = ChatTextInputMediaRecordingButton(theme: theme, presentController: presentController)
self.sendButton = HighlightableButton()
self.expandMediaInputButton = HighlightableButtonNode()
super.init()
self.view.addSubview(self.micButton)
self.view.addSubview(self.sendButton)
self.addSubnode(self.expandMediaInputButton)
}
func updateTheme(theme: PresentationTheme) {
self.micButton.updateTheme(theme: theme)
self.expandMediaInputButton.setImage(PresentationResourcesChat.chatInputPanelExpandButtonImage(theme), for: [])
}
func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition, interfaceState: ChatPresentationInterfaceState) {
transition.updateFrame(layer: self.micButton.layer, frame: CGRect(origin: CGPoint(), size: size))
self.micButton.layoutItems()
transition.updateFrame(layer: self.sendButton.layer, frame: CGRect(origin: CGPoint(), size: size))
transition.updateFrame(node: self.expandMediaInputButton, frame: CGRect(origin: CGPoint(), size: size))
var expanded = false
if case .media(_, true) = interfaceState.inputMode {
expanded = true
}
transition.updateSublayerTransformScale(node: self.expandMediaInputButton, scale: CGPoint(x: 1.0, y: expanded ? 1.0 : -1.0))
}
}