mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-08 20:33:01 +02:00
71 lines
1.3 KiB
Swift
71 lines
1.3 KiB
Swift
import AppKit
|
|
import Carbon
|
|
|
|
extension NSEvent.ModifierFlags {
|
|
public var carbonFlags: UInt32 {
|
|
var carbonFlags: UInt32 = 0
|
|
|
|
if contains(.command) {
|
|
carbonFlags |= UInt32(cmdKey)
|
|
}
|
|
|
|
if contains(.option) {
|
|
carbonFlags |= UInt32(optionKey)
|
|
}
|
|
|
|
if contains(.control) {
|
|
carbonFlags |= UInt32(controlKey)
|
|
}
|
|
|
|
if contains(.shift) {
|
|
carbonFlags |= UInt32(shiftKey)
|
|
}
|
|
|
|
return carbonFlags
|
|
}
|
|
|
|
public init(carbonFlags: UInt32) {
|
|
self.init()
|
|
|
|
if carbonFlags & UInt32(cmdKey) == UInt32(cmdKey) {
|
|
insert(.command)
|
|
}
|
|
|
|
if carbonFlags & UInt32(optionKey) == UInt32(optionKey) {
|
|
insert(.option)
|
|
}
|
|
|
|
if carbonFlags & UInt32(controlKey) == UInt32(controlKey) {
|
|
insert(.control)
|
|
}
|
|
|
|
if carbonFlags & UInt32(shiftKey) == UInt32(shiftKey) {
|
|
insert(.shift)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension NSEvent.ModifierFlags: CustomStringConvertible {
|
|
public var description: String {
|
|
var output = ""
|
|
|
|
if contains(.control) {
|
|
output += Key.control.description
|
|
}
|
|
|
|
if contains(.option) {
|
|
output += Key.option.description
|
|
}
|
|
|
|
if contains(.shift) {
|
|
output += Key.shift.description
|
|
}
|
|
|
|
if contains(.command) {
|
|
output += Key.command.description
|
|
}
|
|
|
|
return output
|
|
}
|
|
}
|