summaryrefslogtreecommitdiff
path: root/macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift
diff options
context:
space:
mode:
Diffstat (limited to 'macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift')
-rw-r--r--macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift27
1 files changed, 27 insertions, 0 deletions
diff --git a/macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift b/macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift
new file mode 100644
index 000000000..8d379bd99
--- /dev/null
+++ b/macos/Sources/Helpers/Extensions/EventModifiers+Extension.swift
@@ -0,0 +1,27 @@
+import SwiftUI
+
+// MARK: EventModifiers to NSEvent and Back
+
+extension EventModifiers {
+ init(nsFlags: NSEvent.ModifierFlags) {
+ var result: SwiftUI.EventModifiers = []
+ if nsFlags.contains(.shift) { result.insert(.shift) }
+ if nsFlags.contains(.control) { result.insert(.control) }
+ if nsFlags.contains(.option) { result.insert(.option) }
+ if nsFlags.contains(.command) { result.insert(.command) }
+ if nsFlags.contains(.capsLock) { result.insert(.capsLock) }
+ self = result
+ }
+}
+
+extension NSEvent.ModifierFlags {
+ init(swiftUIFlags: SwiftUI.EventModifiers) {
+ var result: NSEvent.ModifierFlags = []
+ if swiftUIFlags.contains(.shift) { result.insert(.shift) }
+ if swiftUIFlags.contains(.control) { result.insert(.control) }
+ if swiftUIFlags.contains(.option) { result.insert(.option) }
+ if swiftUIFlags.contains(.command) { result.insert(.command) }
+ if swiftUIFlags.contains(.capsLock) { result.insert(.capsLock) }
+ self = result
+ }
+}