mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
Swift
54 lines
1.3 KiB
Swift
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
|
|
|
import UIKit
|
|
import SessionUIKit
|
|
|
|
public class OWSButton: UIButton {
|
|
var block: () -> Void = { }
|
|
|
|
// MARK: -
|
|
|
|
public init(block: @escaping () -> Void = { }) {
|
|
super.init(frame: .zero)
|
|
|
|
self.block = block
|
|
addTarget(self, action: #selector(didTap), for: .touchUpInside)
|
|
}
|
|
|
|
public init(title: String, block: @escaping () -> Void = { }) {
|
|
super.init(frame: .zero)
|
|
|
|
self.block = block
|
|
addTarget(self, action: #selector(didTap), for: .touchUpInside)
|
|
setTitle(title, for: .normal)
|
|
}
|
|
|
|
public init(imageName: String, tintColor: ThemeValue?, block: @escaping () -> Void = { }) {
|
|
super.init(frame: .zero)
|
|
|
|
self.block = block
|
|
addTarget(self, action: #selector(didTap), for: .touchUpInside)
|
|
|
|
setImage(imageName: imageName)
|
|
self.themeTintColor = tintColor
|
|
}
|
|
|
|
public func setImage(imageName: String) {
|
|
setImage(
|
|
UIImage(named: imageName)?
|
|
.withRenderingMode(.alwaysTemplate),
|
|
for: .normal
|
|
)
|
|
}
|
|
|
|
public required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
// MARK: -
|
|
|
|
@objc func didTap() {
|
|
block()
|
|
}
|
|
}
|