1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-08 20:33:01 +02:00
Files
app/phpmon/Vendor/HotKey/ModifierFlagsExtension.swift
2022-03-18 18:21:55 +01:00

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
}
}