Skip to content

Commit

Permalink
Add missing keys to EventModifierFlag (#137)
Browse files Browse the repository at this point in the history
* add Shift to modifier flags

* Add Function keys support in modifer flags key event info

https://developer.apple.com/documentation/appkit/nseventmodifierflags/nseventmodifierflagfunction?language=objc

* Add numpad and help keys support in modifer flags key event info
  • Loading branch information
eugenesvk authored Dec 28, 2024
1 parent 6ba7e7d commit 94ab815
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/appkit/event/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -194,19 +194,27 @@ use crate::foundation::NSUInteger;
#[derive(Clone, Copy, Debug)]
pub enum EventModifierFlag {
CapsLock,
Shift,
Control,
Option,
Command,
Numpad,
Help,
Function,
DeviceIndependentFlagsMask
}

impl From<EventModifierFlag> for NSUInteger {
fn from(flag: EventModifierFlag) -> NSUInteger {
match flag {
EventModifierFlag::CapsLock => 1 << 16,
EventModifierFlag::Shift => 1 << 17,
EventModifierFlag::Control => 1 << 18,
EventModifierFlag::Option => 1 << 19,
EventModifierFlag::Command => 1 << 20,
EventModifierFlag::Numpad => 1 << 21,
EventModifierFlag::Help => 1 << 22,
EventModifierFlag::Function => 1 << 23,
EventModifierFlag::DeviceIndependentFlagsMask => 0xffff0000
}
}
Expand All @@ -216,9 +224,13 @@ impl From<&EventModifierFlag> for NSUInteger {
fn from(flag: &EventModifierFlag) -> NSUInteger {
match flag {
EventModifierFlag::CapsLock => 1 << 16,
EventModifierFlag::Shift => 1 << 17,
EventModifierFlag::Control => 1 << 18,
EventModifierFlag::Option => 1 << 19,
EventModifierFlag::Command => 1 << 20,
EventModifierFlag::Numpad => 1 << 21,
EventModifierFlag::Help => 1 << 22,
EventModifierFlag::Function => 1 << 23,
EventModifierFlag::DeviceIndependentFlagsMask => 0xffff0000
}
}
Expand Down
20 changes: 20 additions & 0 deletions src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ pub enum EventModifierFlag {
/// CapsLock (or shift... oddly named...) is held.
CapsLock,

/// Shift is held.
Shift,

/// Control is held.
Control,

Expand All @@ -18,6 +21,15 @@ pub enum EventModifierFlag {
/// Command (CMD) is held.
Command,

/// Nnumeric keypad or an arrow key has been pressed.
Numpad,

/// The Help key has been pressed
Help,

/// Function (🌐) is held or a function key has been pressed.
Function,

/// Device independent flags mask.
DeviceIndependentFlagsMask
}
Expand All @@ -26,9 +38,13 @@ impl From<EventModifierFlag> for NSUInteger {
fn from(flag: EventModifierFlag) -> NSUInteger {
match flag {
EventModifierFlag::CapsLock => 1 << 16,
EventModifierFlag::Shift => 1 << 17,
EventModifierFlag::Control => 1 << 18,
EventModifierFlag::Option => 1 << 19,
EventModifierFlag::Command => 1 << 20,
EventModifierFlag::Numpad => 1 << 21,
EventModifierFlag::Help => 1 << 22,
EventModifierFlag::Function => 1 << 23,
EventModifierFlag::DeviceIndependentFlagsMask => 0xffff0000
}
}
Expand All @@ -38,9 +54,13 @@ impl From<&EventModifierFlag> for NSUInteger {
fn from(flag: &EventModifierFlag) -> NSUInteger {
match flag {
EventModifierFlag::CapsLock => 1 << 16,
EventModifierFlag::Shift => 1 << 17,
EventModifierFlag::Control => 1 << 18,
EventModifierFlag::Option => 1 << 19,
EventModifierFlag::Command => 1 << 20,
EventModifierFlag::Numpad => 1 << 21,
EventModifierFlag::Help => 1 << 22,
EventModifierFlag::Function => 1 << 23,
EventModifierFlag::DeviceIndependentFlagsMask => 0xffff0000
}
}
Expand Down

0 comments on commit 94ab815

Please sign in to comment.