mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 16:35:33 +00:00
63 lines
1.8 KiB
Swift
63 lines
1.8 KiB
Swift
//
|
|
// KeyboardPickerButton.swift
|
|
// KeymanEngine
|
|
//
|
|
// Created by Gabriel Wong on 2017-09-12.
|
|
// Copyright © 2017 SIL International. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import QuartzCore
|
|
|
|
public class KeyboardPickerButton: UIButton {
|
|
weak var presentingVC: UIViewController?
|
|
|
|
public init(presentingVC: UIViewController) {
|
|
super.init(frame: .zero)
|
|
self.presentingVC = presentingVC
|
|
|
|
layer.cornerRadius = 8.0
|
|
clipsToBounds = true
|
|
setColor(UIColor(red: 0.62, green: 0.68, blue: 0.76, alpha: 1.0))
|
|
addTarget(self, action: #selector(self.displayKeyboardPicker), for: .touchUpInside)
|
|
|
|
setImage(UIImage(named: "keyboard_icon", in: Resources.bundle, compatibleWith: nil), for: .normal)
|
|
sizeToFit()
|
|
frame = frame.insetBy(dx: -15.0, dy: -3.0)
|
|
}
|
|
|
|
public required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
deinit {
|
|
presentingVC = nil
|
|
}
|
|
|
|
@objc func displayKeyboardPicker() {
|
|
if let presentingVC = presentingVC {
|
|
Manager.shared.showKeyboardPicker(in: presentingVC, shouldAddKeyboard: false)
|
|
}
|
|
}
|
|
|
|
// Clear images if the developer sets a title
|
|
public override func setTitle(_ title: String?, for state: UIControl.State) {
|
|
setImage(nil, for: state)
|
|
super.setTitle(title, for: state)
|
|
}
|
|
|
|
func setColor(_ color: UIColor) {
|
|
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
|
|
UIGraphicsBeginImageContext(rect.size)
|
|
guard let context = UIGraphicsGetCurrentContext() else {
|
|
return
|
|
}
|
|
UIGraphicsPushContext(context)
|
|
context.setFillColor(color.cgColor)
|
|
context.fill(rect)
|
|
let bgImg = UIGraphicsGetImageFromCurrentImageContext()
|
|
UIGraphicsPopContext()
|
|
UIGraphicsEndImageContext()
|
|
setBackgroundImage(bgImg, for: .normal)
|
|
}
|
|
}
|