use objc2_app_kit::NSEvent;
use crate::keynav::NavKey;
const KEY_RETURN: u16 = 36;
const KEY_KEYPAD_ENTER: u16 = 76;
const KEY_SPACE: u16 = 49;
const KEY_ESCAPE: u16 = 53;
const KEY_LEFT: u16 = 123;
const KEY_RIGHT: u16 = 124;
const KEY_DOWN: u16 = 125;
const KEY_UP: u16 = 126;
const KEY_HOME: u16 = 115;
const KEY_END: u16 = 119;
pub(super) fn translate_ns_key(event: &NSEvent) -> Option<NavKey> {
match event.keyCode() {
KEY_DOWN => Some(NavKey::Down),
KEY_UP => Some(NavKey::Up),
KEY_RIGHT => Some(NavKey::Right),
KEY_LEFT => Some(NavKey::Left),
KEY_RETURN | KEY_KEYPAD_ENTER | KEY_SPACE => Some(NavKey::Activate),
KEY_ESCAPE => Some(NavKey::Escape),
KEY_HOME => Some(NavKey::Home),
KEY_END => Some(NavKey::End),
_ => {
let chars = event.charactersIgnoringModifiers()?;
chars
.to_string()
.chars()
.next()
.filter(|c| !c.is_control())
.map(NavKey::Char)
}
}
}