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

Side by Side Diff: chrome/browser/ui/views/keyboard_overlay_dialog_view.cc

Issue 10382178: Use single "modifiers" field rather than boolean fields. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
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 "chrome/browser/ui/views/keyboard_overlay_dialog_view.h" 5 #include "chrome/browser/ui/views/keyboard_overlay_dialog_view.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/chromeos/input_method/input_method_manager.h" 8 #include "chrome/browser/chromeos/input_method/input_method_manager.h"
9 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/profiles/profile_manager.h"
10 #include "chrome/browser/ui/browser_dialogs.h" 10 #include "chrome/browser/ui/browser_dialogs.h"
11 #include "chrome/browser/ui/views/accelerator_table.h" 11 #include "chrome/browser/ui/views/accelerator_table.h"
12 #include "chrome/browser/ui/views/keyboard_overlay_delegate.h" 12 #include "chrome/browser/ui/views/keyboard_overlay_delegate.h"
13 #include "content/public/browser/native_web_keyboard_event.h" 13 #include "content/public/browser/native_web_keyboard_event.h"
14 #include "grit/generated_resources.h" 14 #include "grit/generated_resources.h"
15 #include "ui/base/events.h"
15 #include "ui/base/keycodes/keyboard_codes.h" 16 #include "ui/base/keycodes/keyboard_codes.h"
16 #include "ui/base/l10n/l10n_util.h" 17 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/gfx/screen.h" 18 #include "ui/gfx/screen.h"
18 #include "ui/views/events/event.h" 19 #include "ui/views/events/event.h"
19 #include "ui/views/widget/root_view.h" 20 #include "ui/views/widget/root_view.h"
20 #include "ui/views/widget/widget.h" 21 #include "ui/views/widget/widget.h"
21 22
22 namespace { 23 namespace {
23 struct Accelerator { 24 struct Accelerator {
24 ui::KeyboardCode keycode; 25 ui::KeyboardCode keycode;
25 bool shift_pressed; 26 int modifiers;
26 bool ctrl_pressed; 27 } const kCloseAccelerators[] = {
27 bool alt_pressed; 28 {ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN},
28 } kCloseAccelerators[] = { 29 {ui::VKEY_OEM_2, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN},
29 {ui::VKEY_OEM_2, false, true, true}, 30 {ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN},
30 {ui::VKEY_OEM_2, true, true, true},
31 {ui::VKEY_ESCAPE, true, false, false},
32 }; 31 };
33 } // namespace 32 } // namespace
34 33
35 KeyboardOverlayDialogView::KeyboardOverlayDialogView( 34 KeyboardOverlayDialogView::KeyboardOverlayDialogView(
36 Profile* profile, 35 Profile* profile,
37 WebDialogDelegate* delegate, 36 WebDialogDelegate* delegate,
38 AcceleratorTarget* target) 37 AcceleratorTarget* target)
39 : WebDialogView(profile, NULL, delegate), 38 : WebDialogView(profile, NULL, delegate),
40 target_(target) { 39 target_(target) {
41 RegisterDialogAccelerators(); 40 RegisterDialogAccelerators();
42 } 41 }
43 42
44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { 43 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() {
45 } 44 }
46 45
47 void KeyboardOverlayDialogView::RegisterDialogAccelerators() { 46 void KeyboardOverlayDialogView::RegisterDialogAccelerators() {
48 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { 47 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) {
49 ui::Accelerator accelerator(kCloseAccelerators[i].keycode, 48 ui::Accelerator accelerator(kCloseAccelerators[i].keycode,
50 kCloseAccelerators[i].shift_pressed, 49 kCloseAccelerators[i].modifiers);
51 kCloseAccelerators[i].ctrl_pressed,
52 kCloseAccelerators[i].alt_pressed);
53 close_accelerators_.insert(accelerator); 50 close_accelerators_.insert(accelerator);
54 AddAccelerator(accelerator); 51 AddAccelerator(accelerator);
55 } 52 }
56 53
57 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { 54 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) {
58 ui::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, 55 ui::Accelerator accelerator(browser::kAcceleratorMap[i].keycode,
59 browser::kAcceleratorMap[i].shift_pressed, 56 browser::kAcceleratorMap[i].modifiers);
60 browser::kAcceleratorMap[i].ctrl_pressed,
61 browser::kAcceleratorMap[i].alt_pressed);
62 // Skip a sole ALT key since it's handled on the keyboard overlay. 57 // Skip a sole ALT key since it's handled on the keyboard overlay.
63 if (ui::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { 58 if (ui::Accelerator(ui::VKEY_MENU, ui::EF_NONE) == accelerator) {
64 continue; 59 continue;
65 } 60 }
66 // Skip accelerators for closing the dialog since they are already added. 61 // Skip accelerators for closing the dialog since they are already added.
67 if (IsCloseAccelerator(accelerator)) { 62 if (IsCloseAccelerator(accelerator)) {
68 continue; 63 continue;
69 } 64 }
70 AddAccelerator(accelerator); 65 AddAccelerator(accelerator);
71 } 66 }
72 } 67 }
73 68
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 size.width(), 100 size.width(),
106 size.height()); 101 size.height());
107 view->GetWidget()->SetBounds(bounds); 102 view->GetWidget()->SetBounds(bounds);
108 view->GetWidget()->Show(); 103 view->GetWidget()->Show();
109 } 104 }
110 105
111 bool KeyboardOverlayDialogView::IsCloseAccelerator( 106 bool KeyboardOverlayDialogView::IsCloseAccelerator(
112 const ui::Accelerator& accelerator) { 107 const ui::Accelerator& accelerator) {
113 return close_accelerators_.find(accelerator) != close_accelerators_.end(); 108 return close_accelerators_.find(accelerator) != close_accelerators_.end();
114 } 109 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698