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

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

Issue 10377114: Remove some more OS_CHROMEOS from browser. (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
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/ui/browser_dialogs.h" 10 #include "chrome/browser/ui/browser_dialogs.h"
10 #include "chrome/browser/ui/views/accelerator_table.h" 11 #include "chrome/browser/ui/views/accelerator_table.h"
11 #include "chrome/browser/ui/views/frame/browser_view.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/keycodes/keyboard_codes.h" 15 #include "ui/base/keycodes/keyboard_codes.h"
16 #include "ui/base/l10n/l10n_util.h" 16 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/gfx/screen.h" 17 #include "ui/gfx/screen.h"
18 #include "ui/views/events/event.h" 18 #include "ui/views/events/event.h"
19 #include "ui/views/widget/root_view.h" 19 #include "ui/views/widget/root_view.h"
20 #include "ui/views/widget/widget.h" 20 #include "ui/views/widget/widget.h"
21 21
22 namespace { 22 namespace {
23 struct Accelerator { 23 struct Accelerator {
24 ui::KeyboardCode keycode; 24 ui::KeyboardCode keycode;
25 bool shift_pressed; 25 bool shift_pressed;
26 bool ctrl_pressed; 26 bool ctrl_pressed;
27 bool alt_pressed; 27 bool alt_pressed;
28 } kCloseAccelerators[] = { 28 } kCloseAccelerators[] = {
29 {ui::VKEY_OEM_2, false, true, true}, 29 {ui::VKEY_OEM_2, false, true, true},
30 {ui::VKEY_OEM_2, true, true, true}, 30 {ui::VKEY_OEM_2, true, true, true},
31 {ui::VKEY_ESCAPE, true, false, false}, 31 {ui::VKEY_ESCAPE, true, false, false},
32 }; 32 };
33 } // namespace 33 } // namespace
34 34
35 KeyboardOverlayDialogView::KeyboardOverlayDialogView( 35 KeyboardOverlayDialogView::KeyboardOverlayDialogView(
36 Profile* profile, 36 Profile* profile,
37 WebDialogDelegate* delegate, 37 WebDialogDelegate* delegate,
38 BrowserView* parent_view) 38 AcceleratorTarget* target)
39 : WebDialogView(profile, parent_view->browser(), delegate), 39 : WebDialogView(profile, NULL, delegate),
40 parent_view_(parent_view) { 40 target_(target) {
41 RegisterDialogAccelerators(); 41 RegisterDialogAccelerators();
42 } 42 }
43 43
44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { 44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() {
45 } 45 }
46 46
47 void KeyboardOverlayDialogView::RegisterDialogAccelerators() { 47 void KeyboardOverlayDialogView::RegisterDialogAccelerators() {
48 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { 48 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) {
49 ui::Accelerator accelerator(kCloseAccelerators[i].keycode, 49 ui::Accelerator accelerator(kCloseAccelerators[i].keycode,
50 kCloseAccelerators[i].shift_pressed, 50 kCloseAccelerators[i].shift_pressed,
(...skipping 15 matching lines...) Expand all
66 // Skip accelerators for closing the dialog since they are already added. 66 // Skip accelerators for closing the dialog since they are already added.
67 if (IsCloseAccelerator(accelerator)) { 67 if (IsCloseAccelerator(accelerator)) {
68 continue; 68 continue;
69 } 69 }
70 AddAccelerator(accelerator); 70 AddAccelerator(accelerator);
71 } 71 }
72 } 72 }
73 73
74 bool KeyboardOverlayDialogView::AcceleratorPressed( 74 bool KeyboardOverlayDialogView::AcceleratorPressed(
75 const ui::Accelerator& accelerator) { 75 const ui::Accelerator& accelerator) {
76 if (!IsCloseAccelerator(accelerator)) { 76 if (!IsCloseAccelerator(accelerator))
77 parent_view_->AcceleratorPressed(accelerator); 77 target_->AcceleratorPressed(accelerator);
mazda 2012/05/15 18:36:44 This line is supposed to handle browser accelerato
78 }
79 OnDialogClosed(std::string()); 78 OnDialogClosed(std::string());
80 return true; 79 return true;
81 } 80 }
82 81
83 void KeyboardOverlayDialogView::ShowDialog(gfx::NativeWindow owning_window, 82 void KeyboardOverlayDialogView::ShowDialog(ui::AcceleratorTarget* target) {
84 BrowserView* parent_view) {
85 // Temporarily disable Shift+Alt. crosbug.com/17208. 83 // Temporarily disable Shift+Alt. crosbug.com/17208.
86 chromeos::input_method::InputMethodManager::GetInstance()->DisableHotkeys(); 84 chromeos::input_method::InputMethodManager::GetInstance()->DisableHotkeys();
87 85
88 KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate( 86 KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate(
89 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE)); 87 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE));
90 KeyboardOverlayDialogView* view = new KeyboardOverlayDialogView( 88 KeyboardOverlayDialogView* view = new KeyboardOverlayDialogView(
91 parent_view->browser()->profile(), delegate, parent_view); 89 ProfileManager::GetDefaultProfile(), delegate, target);
92 delegate->set_view(view); 90 delegate->set_view(view);
93 91
94 views::Widget* widget = new views::Widget; 92 views::Widget* widget = new views::Widget;
95 views::Widget::InitParams params( 93 views::Widget::InitParams params(
96 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 94 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
97 params.delegate = view; 95 params.delegate = view;
98 params.parent = owning_window;
99 widget->Init(params); 96 widget->Init(params);
100 97
101 // Show the widget at the bottom of the work area. 98 // Show the widget at the bottom of the work area.
102 gfx::Size size; 99 gfx::Size size;
103 delegate->GetDialogSize(&size); 100 delegate->GetDialogSize(&size);
104 gfx::Rect rect = gfx::Screen::GetMonitorNearestWindow( 101 gfx::Rect rect = gfx::Screen::GetMonitorNearestWindow(
105 view->GetWidget()->GetNativeView()).work_area(); 102 view->GetWidget()->GetNativeView()).work_area();
106 gfx::Rect bounds((rect.width() - size.width()) / 2, 103 gfx::Rect bounds((rect.width() - size.width()) / 2,
107 rect.height() - size.height(), 104 rect.height() - size.height(),
108 size.width(), 105 size.width(),
109 size.height()); 106 size.height());
110 view->GetWidget()->SetBounds(bounds); 107 view->GetWidget()->SetBounds(bounds);
111 view->GetWidget()->Show(); 108 view->GetWidget()->Show();
112 } 109 }
113 110
114 bool KeyboardOverlayDialogView::IsCloseAccelerator( 111 bool KeyboardOverlayDialogView::IsCloseAccelerator(
115 const ui::Accelerator& accelerator) { 112 const ui::Accelerator& accelerator) {
116 return close_accelerators_.find(accelerator) != close_accelerators_.end(); 113 return close_accelerators_.find(accelerator) != close_accelerators_.end();
117 } 114 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/keyboard_overlay_dialog_view.h ('k') | chrome/browser/ui/views/page_info_bubble_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698