| | 213 | } |
|---|
| | 214 | |
|---|
| | 215 | |
|---|
| | 216 | /***************************************************************************** |
|---|
| | 217 | * hasDefinedShortcutKey: Check to see if the key press is a defined VLC |
|---|
| | 218 | * shortcut key. If it is, pass it off to VLC for handling and return YES, |
|---|
| | 219 | * otherwise ignore it and return NO (where it will get handled by Cocoa). |
|---|
| | 220 | *****************************************************************************/ |
|---|
| | 221 | - (BOOL)hasDefinedShortcutKey:(NSEvent *)o_event |
|---|
| | 222 | { |
|---|
| | 223 | unichar key = 0; |
|---|
| | 224 | vlc_value_t val; |
|---|
| | 225 | unsigned int i_pressed_modifiers = 0; |
|---|
| | 226 | struct hotkey *p_hotkeys; |
|---|
| | 227 | int i; |
|---|
| | 228 | |
|---|
| | 229 | val.i_int = 0; |
|---|
| | 230 | p_hotkeys = p_intf->p_vlc->p_hotkeys; |
|---|
| | 231 | |
|---|
| | 232 | i_pressed_modifiers = [o_event modifierFlags]; |
|---|
| | 233 | |
|---|
| | 234 | if( i_pressed_modifiers & NSShiftKeyMask ) |
|---|
| | 235 | val.i_int |= KEY_MODIFIER_SHIFT; |
|---|
| | 236 | if( i_pressed_modifiers & NSControlKeyMask ) |
|---|
| | 237 | val.i_int |= KEY_MODIFIER_CTRL; |
|---|
| | 238 | if( i_pressed_modifiers & NSAlternateKeyMask ) |
|---|
| | 239 | val.i_int |= KEY_MODIFIER_ALT; |
|---|
| | 240 | if( i_pressed_modifiers & NSCommandKeyMask ) |
|---|
| | 241 | val.i_int |= KEY_MODIFIER_COMMAND; |
|---|
| | 242 | |
|---|
| | 243 | key = [[o_event charactersIgnoringModifiers] characterAtIndex: 0]; |
|---|
| | 244 | |
|---|
| | 245 | val.i_int |= CocoaKeyToVLC( key ); |
|---|
| | 246 | |
|---|
| | 247 | for( i = 0; p_hotkeys[i].psz_action != NULL; i++ ) |
|---|
| | 248 | { |
|---|
| | 249 | if( p_hotkeys[i].i_key == val.i_int ) |
|---|
| | 250 | { |
|---|
| | 251 | var_Set( p_intf->p_vlc, "key-pressed", val ); |
|---|
| | 252 | return YES; |
|---|
| | 253 | } |
|---|
| | 254 | } |
|---|
| | 255 | |
|---|
| | 256 | return NO; |
|---|