Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: chrome/browser/gtk/accelerators_gtk.cc

Issue 6251001: Move chrome/browser/gtk/ to chrome/browser/ui/gtk/... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/gtk/accelerators_gtk.h"
6
7 #include <gdk/gdk.h>
8 #include <gdk/gdkkeysyms.h>
9 #include <X11/XF86keysym.h>
10
11 #include "base/singleton.h"
12 #include "chrome/app/chrome_command_ids.h"
13
14 namespace {
15
16 // A mostly complete list of chrome's accelerators. When one command has
17 // multiple shortcuts, the first one in this list is considered "primary",
18 // meaning that it will be displayed in context menus.
19 const struct AcceleratorMapping {
20 guint keyval;
21 int command_id;
22 GdkModifierType modifier_type;
23 } kAcceleratorMap[] = {
24 // Focus.
25 { GDK_k, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
26 { GDK_e, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
27 { XF86XK_Search, IDC_FOCUS_SEARCH, GdkModifierType(0) },
28 { GDK_l, IDC_FOCUS_LOCATION, GDK_CONTROL_MASK },
29 { GDK_d, IDC_FOCUS_LOCATION, GDK_MOD1_MASK },
30 { GDK_F6, IDC_FOCUS_LOCATION, GdkModifierType(0) },
31 { XF86XK_OpenURL, IDC_FOCUS_LOCATION, GdkModifierType(0) },
32 { XF86XK_Go, IDC_FOCUS_LOCATION, GdkModifierType(0) },
33
34 // Tab/window controls.
35 { GDK_Page_Down, IDC_SELECT_NEXT_TAB, GDK_CONTROL_MASK },
36 { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK },
37 { GDK_Page_Down, IDC_MOVE_TAB_NEXT,
38 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
39 { GDK_Page_Up, IDC_MOVE_TAB_PREVIOUS,
40 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
41 { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK },
42 { GDK_w, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
43 { GDK_t, IDC_RESTORE_TAB,
44 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
45 { GDK_t, IDC_NEW_TAB, GDK_CONTROL_MASK },
46 { GDK_n, IDC_NEW_WINDOW, GDK_CONTROL_MASK },
47 { GDK_n, IDC_NEW_INCOGNITO_WINDOW,
48 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
49
50 { GDK_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK },
51 { GDK_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK },
52 { GDK_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK },
53 { GDK_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK },
54 { GDK_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK },
55 { GDK_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK },
56 { GDK_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK },
57 { GDK_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK },
58 { GDK_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK },
59
60 { GDK_1, IDC_SELECT_TAB_0, GDK_MOD1_MASK },
61 { GDK_2, IDC_SELECT_TAB_1, GDK_MOD1_MASK },
62 { GDK_3, IDC_SELECT_TAB_2, GDK_MOD1_MASK },
63 { GDK_4, IDC_SELECT_TAB_3, GDK_MOD1_MASK },
64 { GDK_5, IDC_SELECT_TAB_4, GDK_MOD1_MASK },
65 { GDK_6, IDC_SELECT_TAB_5, GDK_MOD1_MASK },
66 { GDK_7, IDC_SELECT_TAB_6, GDK_MOD1_MASK },
67 { GDK_8, IDC_SELECT_TAB_7, GDK_MOD1_MASK },
68 { GDK_9, IDC_SELECT_LAST_TAB, GDK_MOD1_MASK },
69
70 { GDK_KP_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK },
71 { GDK_KP_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK },
72 { GDK_KP_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK },
73 { GDK_KP_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK },
74 { GDK_KP_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK },
75 { GDK_KP_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK },
76 { GDK_KP_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK },
77 { GDK_KP_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK },
78 { GDK_KP_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK },
79
80 { GDK_KP_1, IDC_SELECT_TAB_0, GDK_MOD1_MASK },
81 { GDK_KP_2, IDC_SELECT_TAB_1, GDK_MOD1_MASK },
82 { GDK_KP_3, IDC_SELECT_TAB_2, GDK_MOD1_MASK },
83 { GDK_KP_4, IDC_SELECT_TAB_3, GDK_MOD1_MASK },
84 { GDK_KP_5, IDC_SELECT_TAB_4, GDK_MOD1_MASK },
85 { GDK_KP_6, IDC_SELECT_TAB_5, GDK_MOD1_MASK },
86 { GDK_KP_7, IDC_SELECT_TAB_6, GDK_MOD1_MASK },
87 { GDK_KP_8, IDC_SELECT_TAB_7, GDK_MOD1_MASK },
88 { GDK_KP_9, IDC_SELECT_LAST_TAB, GDK_MOD1_MASK },
89
90 { GDK_F4, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
91 { GDK_F4, IDC_CLOSE_WINDOW, GDK_MOD1_MASK },
92
93 // Zoom level.
94 { GDK_KP_Add, IDC_ZOOM_PLUS, GDK_CONTROL_MASK },
95 { GDK_plus, IDC_ZOOM_PLUS,
96 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
97 { GDK_equal, IDC_ZOOM_PLUS, GDK_CONTROL_MASK },
98 { XF86XK_ZoomIn, IDC_ZOOM_PLUS, GdkModifierType(0) },
99 { GDK_KP_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK },
100 { GDK_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK },
101 { GDK_KP_Subtract, IDC_ZOOM_MINUS, GDK_CONTROL_MASK },
102 { GDK_minus, IDC_ZOOM_MINUS, GDK_CONTROL_MASK },
103 { GDK_underscore, IDC_ZOOM_MINUS,
104 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
105 { XF86XK_ZoomOut, IDC_ZOOM_MINUS, GdkModifierType(0) },
106
107 // Find in page.
108 { GDK_g, IDC_FIND_NEXT, GDK_CONTROL_MASK },
109 { GDK_F3, IDC_FIND_NEXT, GdkModifierType(0) },
110 { GDK_g, IDC_FIND_PREVIOUS,
111 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
112 { GDK_F3, IDC_FIND_PREVIOUS, GDK_SHIFT_MASK },
113
114 // Navigation / toolbar buttons.
115 { GDK_Home, IDC_HOME, GDK_MOD1_MASK },
116 { XF86XK_HomePage, IDC_HOME, GdkModifierType(0) },
117 { GDK_Escape, IDC_STOP, GdkModifierType(0) },
118 { XF86XK_Stop, IDC_STOP, GdkModifierType(0) },
119 { GDK_Left, IDC_BACK, GDK_MOD1_MASK },
120 { XF86XK_Back, IDC_BACK, GdkModifierType(0) },
121 { GDK_Right, IDC_FORWARD, GDK_MOD1_MASK },
122 { XF86XK_Forward, IDC_FORWARD, GdkModifierType(0) },
123 { GDK_r, IDC_RELOAD, GDK_CONTROL_MASK },
124 { GDK_r, IDC_RELOAD_IGNORING_CACHE,
125 GdkModifierType(GDK_CONTROL_MASK|GDK_SHIFT_MASK) },
126 { GDK_F5, IDC_RELOAD, GdkModifierType(0) },
127 { GDK_F5, IDC_RELOAD_IGNORING_CACHE, GDK_CONTROL_MASK },
128 { GDK_F5, IDC_RELOAD_IGNORING_CACHE, GDK_SHIFT_MASK },
129 { XF86XK_Reload, IDC_RELOAD, GdkModifierType(0) },
130 { XF86XK_Refresh, IDC_RELOAD, GdkModifierType(0) },
131
132 // Dev tools.
133 { GDK_u, IDC_VIEW_SOURCE, GDK_CONTROL_MASK },
134 { GDK_i, IDC_DEV_TOOLS,
135 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
136 { GDK_j, IDC_DEV_TOOLS_CONSOLE,
137 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
138 { GDK_c, IDC_DEV_TOOLS_INSPECT,
139 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
140 { GDK_Escape, IDC_TASK_MANAGER, GDK_SHIFT_MASK },
141
142 // Editing.
143 { GDK_c, IDC_COPY, GDK_CONTROL_MASK },
144 { GDK_x, IDC_CUT, GDK_CONTROL_MASK },
145 { GDK_v, IDC_PASTE, GDK_CONTROL_MASK },
146
147 // AutoFill.
148 { GDK_a, IDC_AUTOFILL_DEFAULT,
149 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
150
151 // Miscellany.
152 { GDK_d, IDC_BOOKMARK_ALL_TABS,
153 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
154 { GDK_d, IDC_BOOKMARK_PAGE, GDK_CONTROL_MASK },
155 { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK },
156 { GDK_f, IDC_FIND, GDK_CONTROL_MASK },
157 { GDK_p, IDC_PRINT, GDK_CONTROL_MASK },
158 { GDK_b, IDC_SHOW_BOOKMARK_BAR,
159 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
160 { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) },
161 { GDK_Delete, IDC_CLEAR_BROWSING_DATA,
162 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
163 { GDK_h, IDC_SHOW_HISTORY, GDK_CONTROL_MASK },
164 { GDK_j, IDC_SHOW_DOWNLOADS, GDK_CONTROL_MASK },
165 { GDK_F1, IDC_HELP_PAGE, GdkModifierType(0) },
166 { XF86XK_AddFavorite, IDC_BOOKMARK_PAGE, GdkModifierType(0) },
167 { XF86XK_Favorites, IDC_SHOW_BOOKMARK_BAR, GdkModifierType(0) },
168 { XF86XK_History, IDC_SHOW_HISTORY, GdkModifierType(0) },
169 { GDK_q, IDC_EXIT, GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
170 { GDK_s, IDC_SAVE_PAGE, GDK_CONTROL_MASK },
171 { GDK_e, IDC_SHOW_APP_MENU, GDK_MOD1_MASK },
172 { GDK_f, IDC_SHOW_APP_MENU, GDK_MOD1_MASK },
173 };
174
175 } // namespace
176
177 AcceleratorsGtk::AcceleratorsGtk() {
178 for (size_t i = 0; i < arraysize(kAcceleratorMap); ++i) {
179 int command_id = kAcceleratorMap[i].command_id;
180 menus::AcceleratorGtk accelerator(kAcceleratorMap[i].keyval,
181 kAcceleratorMap[i].modifier_type);
182 all_accelerators_.push_back(
183 std::pair<int, menus::AcceleratorGtk>(command_id, accelerator));
184
185 if (primary_accelerators_.find(command_id) ==
186 primary_accelerators_.end()) {
187 primary_accelerators_[command_id] = accelerator;
188 }
189 }
190 }
191
192 AcceleratorsGtk::~AcceleratorsGtk() {}
193
194 // static
195 AcceleratorsGtk* AcceleratorsGtk::GetInstance() {
196 return Singleton<AcceleratorsGtk>::get();
197 }
198
199 const menus::AcceleratorGtk* AcceleratorsGtk::GetPrimaryAcceleratorForCommand(
200 int command_id) {
201 base::hash_map<int, menus::AcceleratorGtk>::const_iterator iter =
202 primary_accelerators_.find(command_id);
203
204 if (iter == primary_accelerators_.end())
205 return NULL;
206
207 return &iter->second;
208 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/accelerators_gtk.h ('k') | chrome/browser/gtk/accessibility_event_router_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698