1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-10 00:58:37 +00:00

enable/disable multitouch gestures

This commit is contained in:
Serg 2019-10-18 23:09:30 +07:00
parent 0eef872f2b
commit c4928ee382
3 changed files with 33 additions and 3 deletions

View File

@ -92,6 +92,11 @@ class AppDelegate: NSObject, NSApplicationDelegate {
createMenu()
}
@objc func toggleMultitouch(_: Any?) {
TouchBarController.shared.multitouchGestures = !TouchBarController.shared.multitouchGestures
createMenu()
}
@objc func openPreset(_: Any?) {
let dialog = NSOpenPanel()
@ -129,6 +134,9 @@ class AppDelegate: NSObject, NSApplicationDelegate {
let hapticFeedback = NSMenuItem(title: "Haptic Feedback", action: #selector(toggleHapticFeedback(_:)), keyEquivalent: "H")
hapticFeedback.state = TouchBarController.shared.hapticFeedbackState ? .on : .off
let multitouchGestures = NSMenuItem(title: "Volume/Brightness gestures", action: #selector(toggleMultitouch(_:)), keyEquivalent: "")
multitouchGestures.state = TouchBarController.shared.multitouchGestures ? .on : .off
let settingSeparator = NSMenuItem(title: "Settings", action: nil, keyEquivalent: "")
settingSeparator.isEnabled = false
@ -142,6 +150,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
menu.addItem(hideControlStrip)
menu.addItem(toggleBlackList)
menu.addItem(startAtLogin)
menu.addItem(multitouchGestures)
menu.addItem(NSMenuItem.separator())
menu.addItem(withTitle: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")
statusItem.menu = menu

View File

@ -3,6 +3,8 @@ import Foundation
class ScrollViewItem: NSCustomTouchBarItem, NSGestureRecognizerDelegate {
var twofingersPrev: CGFloat = 0.0
var threefingersPrev: CGFloat = 0.0
var twofingers: NSPanGestureRecognizer!
var threefingers: NSPanGestureRecognizer!
init(identifier: NSTouchBarItem.Identifier, items: [NSTouchBarItem]) {
super.init(identifier: identifier)
@ -14,16 +16,23 @@ class ScrollViewItem: NSCustomTouchBarItem, NSGestureRecognizerDelegate {
scrollView.documentView = stackView
view = scrollView
let twofingers = NSPanGestureRecognizer(target: self, action: #selector(twofingersHandler(_:)))
twofingers = NSPanGestureRecognizer(target: self, action: #selector(twofingersHandler(_:)))
twofingers.allowedTouchTypes = .direct
twofingers.numberOfTouchesRequired = 2
view.addGestureRecognizer(twofingers)
let threefingers = NSPanGestureRecognizer(target: self, action: #selector(threefingersHandler(_:)))
threefingers = NSPanGestureRecognizer(target: self, action: #selector(threefingersHandler(_:)))
threefingers.allowedTouchTypes = .direct
threefingers.numberOfTouchesRequired = 3
view.addGestureRecognizer(threefingers)
}
var gesturesEnabled = true {
didSet {
twofingers.isEnabled = gesturesEnabled
threefingers.isEnabled = gesturesEnabled
}
}
required init?(coder _: NSCoder) {
fatalError("init(coder:) has not been implemented")

View File

@ -78,7 +78,7 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
var centerIdentifiers: [NSTouchBarItem.Identifier] = []
var centerItems: [NSTouchBarItem] = []
var rightIdentifiers: [NSTouchBarItem.Identifier] = []
var scrollArea: NSCustomTouchBarItem?
var scrollArea: ScrollViewItem?
var centerScrollArea = NSTouchBarItem.Identifier("com.toxblh.mtmr.scrollArea.".appending(UUID().uuidString))
var showControlStripState: Bool {
@ -98,6 +98,17 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
UserDefaults.standard.set(newValue, forKey: "com.toxblh.mtmr.settings.hapticFeedback")
}
}
var multitouchGestures: Bool {
get {
return UserDefaults.standard.bool(forKey: "com.toxblh.mtmr.settings.multitouchGestures")
}
set {
scrollArea?.gesturesEnabled = newValue
UserDefaults.standard.set(newValue, forKey: "com.toxblh.mtmr.settings.multitouchGestures")
UserDefaults.standard.synchronize()
}
}
var blacklistAppIdentifiers: [String] = []
var frontmostApplicationIdentifier: String? {
@ -147,6 +158,7 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
centerScrollArea = NSTouchBarItem.Identifier("com.toxblh.mtmr.scrollArea.".appending(UUID().uuidString))
scrollArea = ScrollViewItem(identifier: centerScrollArea, items: centerItems)
scrollArea?.gesturesEnabled = multitouchGestures
touchBar.delegate = self
touchBar.defaultItemIdentifiers = []