OLD | NEW |
---|---|
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
Bons
2010/11/19 22:16:24
2010
| |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <AppKit/NSEvent.h> | 5 #include <AppKit/NSEvent.h> |
6 #include <Carbon/Carbon.h> | 6 #include <Carbon/Carbon.h> |
7 | 7 |
8 #include "chrome/browser/global_keyboard_shortcuts_mac.h" | 8 #include "chrome/browser/global_keyboard_shortcuts_mac.h" |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "chrome/app/chrome_command_ids.h" | 12 #include "chrome/app/chrome_command_ids.h" |
13 | 13 |
14 // Basically, there are two kinds of keyboard shortcuts: Ones that should work | 14 // Basically, there are two kinds of keyboard shortcuts: Ones that should work |
15 // only if the tab contents is focused (BrowserKeyboardShortcut), and ones that | 15 // only if the tab contents is focused (BrowserKeyboardShortcut), and ones that |
16 // should work in all other cases (WindowKeyboardShortcut). In the latter case, | 16 // should work in all other cases (WindowKeyboardShortcut). In the latter case, |
17 // we differentiate between shortcuts that are checked before any other view | 17 // we differentiate between shortcuts that are checked before any other view |
18 // gets the chance to handle them (WindowKeyboardShortcut) or after all views | 18 // gets the chance to handle them (WindowKeyboardShortcut) or after all views |
19 // had a chance but did not handle the keypress event | 19 // had a chance but did not handle the keypress event |
20 // (DelayedWindowKeyboardShortcut) | 20 // (DelayedWindowKeyboardShortcut). |
21 | 21 |
22 const KeyboardShortcutData* GetWindowKeyboardShortcutTable | 22 const KeyboardShortcutData* GetWindowKeyboardShortcutTable( |
23 (size_t* num_entries) { | 23 size_t* num_entries) { |
24 static const KeyboardShortcutData keyboard_shortcuts[] = { | 24 static const KeyboardShortcutData keyboard_shortcuts[] = { |
25 //cmd shift cntrl option | |
26 //--- ----- ----- ------ | |
25 // '{' / '}' characters should be matched earlier than virtual key code | 27 // '{' / '}' characters should be matched earlier than virtual key code |
26 // (therefore we can match alt-8 as '{' on german keyboards). | 28 // (therefore we can match alt-8 as '{' on german keyboards). |
27 {true, false, false, false, 0, '}', IDC_SELECT_NEXT_TAB}, | 29 {true, false, false, false, 0, '}', IDC_SELECT_NEXT_TAB}, |
28 {true, false, false, false, 0, '{', IDC_SELECT_PREVIOUS_TAB}, | 30 {true, false, false, false, 0, '{', IDC_SELECT_PREVIOUS_TAB}, |
29 {false, false, true, false, kVK_PageDown, 0, IDC_SELECT_NEXT_TAB}, | 31 {false, false, true, false, kVK_PageDown, 0, IDC_SELECT_NEXT_TAB}, |
30 {false, false, true, false, kVK_Tab, 0, IDC_SELECT_NEXT_TAB}, | 32 {false, false, true, false, kVK_Tab, 0, IDC_SELECT_NEXT_TAB}, |
31 {false, false, true, false, kVK_PageUp, 0, IDC_SELECT_PREVIOUS_TAB}, | 33 {false, false, true, false, kVK_PageUp, 0, IDC_SELECT_PREVIOUS_TAB}, |
32 {false, true, true, false, kVK_Tab, 0, IDC_SELECT_PREVIOUS_TAB}, | 34 {false, true, true, false, kVK_Tab, 0, IDC_SELECT_PREVIOUS_TAB}, |
33 // Cmd-0..8 select the Nth tab, with cmd-9 being "last tab". | 35 // Cmd-0..8 select the Nth tab, with cmd-9 being "last tab". |
34 {true, false, false, false, kVK_ANSI_1, 0, IDC_SELECT_TAB_0}, | 36 {true, false, false, false, kVK_ANSI_1, 0, IDC_SELECT_TAB_0}, |
(...skipping 14 matching lines...) Expand all Loading... | |
49 {true, false, false, false, kVK_ANSI_Keypad8, 0, IDC_SELECT_TAB_7}, | 51 {true, false, false, false, kVK_ANSI_Keypad8, 0, IDC_SELECT_TAB_7}, |
50 {true, false, false, false, kVK_ANSI_9, 0, IDC_SELECT_LAST_TAB}, | 52 {true, false, false, false, kVK_ANSI_9, 0, IDC_SELECT_LAST_TAB}, |
51 {true, false, false, false, kVK_ANSI_Keypad9, 0, IDC_SELECT_LAST_TAB}, | 53 {true, false, false, false, kVK_ANSI_Keypad9, 0, IDC_SELECT_LAST_TAB}, |
52 }; | 54 }; |
53 | 55 |
54 *num_entries = arraysize(keyboard_shortcuts); | 56 *num_entries = arraysize(keyboard_shortcuts); |
55 | 57 |
56 return keyboard_shortcuts; | 58 return keyboard_shortcuts; |
57 } | 59 } |
58 | 60 |
59 const KeyboardShortcutData* GetDelayedWindowKeyboardShortcutTable | 61 const KeyboardShortcutData* GetDelayedWindowKeyboardShortcutTable( |
60 (size_t* num_entries) { | 62 size_t* num_entries) { |
61 static const KeyboardShortcutData keyboard_shortcuts[] = { | 63 static const KeyboardShortcutData keyboard_shortcuts[] = { |
64 //cmd shift cntrl option | |
65 //--- ----- ----- ------ | |
62 {false, false, false, false, kVK_Escape, 0, IDC_STOP}, | 66 {false, false, false, false, kVK_Escape, 0, IDC_STOP}, |
63 }; | 67 }; |
64 | 68 |
65 *num_entries = arraysize(keyboard_shortcuts); | 69 *num_entries = arraysize(keyboard_shortcuts); |
66 | 70 |
67 return keyboard_shortcuts; | 71 return keyboard_shortcuts; |
68 } | 72 } |
69 | 73 |
70 const KeyboardShortcutData* GetBrowserKeyboardShortcutTable | 74 const KeyboardShortcutData* GetBrowserKeyboardShortcutTable( |
71 (size_t* num_entries) { | 75 size_t* num_entries) { |
72 static const KeyboardShortcutData keyboard_shortcuts[] = { | 76 static const KeyboardShortcutData keyboard_shortcuts[] = { |
77 //cmd shift cntrl option | |
78 //--- ----- ----- ------ | |
73 {true, false, false, false, kVK_LeftArrow, 0, IDC_BACK}, | 79 {true, false, false, false, kVK_LeftArrow, 0, IDC_BACK}, |
74 {true, false, false, false, kVK_RightArrow, 0, IDC_FORWARD}, | 80 {true, false, false, false, kVK_RightArrow, 0, IDC_FORWARD}, |
75 {false, false, false, false, kVK_Delete, 0, IDC_BACK}, | 81 {false, false, false, false, kVK_Delete, 0, IDC_BACK}, |
76 {false, true, false, false, kVK_Delete, 0, IDC_FORWARD}, | 82 {false, true, false, false, kVK_Delete, 0, IDC_FORWARD}, |
77 {true, true, false, false, 0, 'c', IDC_DEV_TOOLS_INSPECT}, | 83 {true, true, false, false, 0, 'c', IDC_DEV_TOOLS_INSPECT}, |
78 }; | 84 }; |
79 | 85 |
80 *num_entries = arraysize(keyboard_shortcuts); | 86 *num_entries = arraysize(keyboard_shortcuts); |
81 | 87 |
82 return keyboard_shortcuts; | 88 return keyboard_shortcuts; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
206 return rawChar; | 212 return rawChar; |
207 } | 213 } |
208 | 214 |
209 // opt/alt modifier is set (e.g. on german layout we want '{' for opt-8). | 215 // opt/alt modifier is set (e.g. on german layout we want '{' for opt-8). |
210 if ([event modifierFlags] & NSAlternateKeyMask) | 216 if ([event modifierFlags] & NSAlternateKeyMask) |
211 return [characters characterAtIndex:0]; | 217 return [characters characterAtIndex:0]; |
212 } | 218 } |
213 | 219 |
214 return [eventString characterAtIndex:0]; | 220 return [eventString characterAtIndex:0]; |
215 } | 221 } |
OLD | NEW |