OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/chromeos/frame/bubble_window.h" | 7 #include "chrome/browser/chromeos/frame/bubble_window.h" |
8 #include "chrome/browser/ui/browser_dialogs.h" | 8 #include "chrome/browser/ui/browser_dialogs.h" |
9 #include "chrome/browser/ui/views/accelerator_table_gtk.h" | 9 #include "chrome/browser/ui/views/accelerator_table_gtk.h" |
10 #include "chrome/browser/ui/views/frame/browser_view.h" | 10 #include "chrome/browser/ui/views/frame/browser_view.h" |
11 #include "chrome/browser/ui/views/keyboard_overlay_delegate.h" | 11 #include "chrome/browser/ui/views/keyboard_overlay_delegate.h" |
12 #include "chrome/browser/ui/views/window.h" | 12 #include "chrome/browser/ui/views/window.h" |
13 #include "content/browser/tab_contents/tab_contents.h" | 13 #include "content/browser/tab_contents/tab_contents.h" |
14 #include "content/common/native_web_keyboard_event.h" | 14 #include "content/common/native_web_keyboard_event.h" |
15 #include "content/common/notification_source.h" | |
mazda
2011/06/07 03:26:58
Is this necessary?
oshima
2011/06/07 19:08:58
Done.
| |
15 #include "grit/generated_resources.h" | 16 #include "grit/generated_resources.h" |
16 #include "ui/base/keycodes/keyboard_codes.h" | 17 #include "ui/base/keycodes/keyboard_codes.h" |
17 #include "ui/base/l10n/l10n_util.h" | 18 #include "ui/base/l10n/l10n_util.h" |
18 #include "views/events/event.h" | 19 #include "views/events/event.h" |
19 #include "views/widget/root_view.h" | 20 #include "views/widget/root_view.h" |
20 #include "views/widget/widget.h" | 21 #include "views/widget/widget.h" |
21 #include "views/window/window.h" | 22 #include "views/window/window.h" |
22 | 23 |
23 namespace { | 24 namespace { |
24 struct Accelerator { | 25 struct Accelerator { |
(...skipping 12 matching lines...) Expand all Loading... | |
37 Profile* profile, | 38 Profile* profile, |
38 HtmlDialogUIDelegate* delegate, | 39 HtmlDialogUIDelegate* delegate, |
39 BrowserView* parent_view) | 40 BrowserView* parent_view) |
40 : HtmlDialogView(profile, delegate), | 41 : HtmlDialogView(profile, delegate), |
41 parent_view_(parent_view) { | 42 parent_view_(parent_view) { |
42 } | 43 } |
43 | 44 |
44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { | 45 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { |
45 } | 46 } |
46 | 47 |
47 void KeyboardOverlayDialogView::InitDialog() { | 48 void KeyboardOverlayDialogView::RegisterDialogAccelerators() { |
48 DOMView::Init(profile(), NULL); | |
49 | |
50 tab_contents_->set_delegate(this); | |
51 | |
52 // Set the delegate. This must be done before loading the page. See | |
53 // the comment above HtmlDialogUI in its header file for why. | |
54 HtmlDialogUI::GetPropertyAccessor().SetProperty(tab_contents_->property_bag(), | |
55 this); | |
56 | |
57 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { | 49 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { |
58 views::Accelerator accelerator(kCloseAccelerators[i].keycode, | 50 views::Accelerator accelerator(kCloseAccelerators[i].keycode, |
59 kCloseAccelerators[i].shift_pressed, | 51 kCloseAccelerators[i].shift_pressed, |
60 kCloseAccelerators[i].ctrl_pressed, | 52 kCloseAccelerators[i].ctrl_pressed, |
61 kCloseAccelerators[i].alt_pressed); | 53 kCloseAccelerators[i].alt_pressed); |
62 close_accelerators_.insert(accelerator); | 54 close_accelerators_.insert(accelerator); |
63 AddAccelerator(accelerator); | 55 AddAccelerator(accelerator); |
64 } | 56 } |
65 | 57 |
66 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { | 58 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { |
67 views::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, | 59 views::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, |
68 browser::kAcceleratorMap[i].shift_pressed, | 60 browser::kAcceleratorMap[i].shift_pressed, |
69 browser::kAcceleratorMap[i].ctrl_pressed, | 61 browser::kAcceleratorMap[i].ctrl_pressed, |
70 browser::kAcceleratorMap[i].alt_pressed); | 62 browser::kAcceleratorMap[i].alt_pressed); |
71 // Skip a sole ALT key since it's handled on the keyboard overlay. | 63 // Skip a sole ALT key since it's handled on the keyboard overlay. |
72 if (views::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { | 64 if (views::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { |
73 continue; | 65 continue; |
74 } | 66 } |
75 // Skip accelerators for closing the dialog since they are already added. | 67 // Skip accelerators for closing the dialog since they are already added. |
76 if (IsCloseAccelerator(accelerator)) { | 68 if (IsCloseAccelerator(accelerator)) { |
77 continue; | 69 continue; |
78 } | 70 } |
79 AddAccelerator(accelerator); | 71 AddAccelerator(accelerator); |
80 } | 72 } |
81 | |
82 DOMView::LoadURL(GetDialogContentURL()); | |
83 } | 73 } |
84 | 74 |
85 bool KeyboardOverlayDialogView::AcceleratorPressed( | 75 bool KeyboardOverlayDialogView::AcceleratorPressed( |
86 const views::Accelerator& accelerator) { | 76 const views::Accelerator& accelerator) { |
87 if (!IsCloseAccelerator(accelerator)) { | 77 if (!IsCloseAccelerator(accelerator)) { |
88 parent_view_->AcceleratorPressed(accelerator); | 78 parent_view_->AcceleratorPressed(accelerator); |
89 } | 79 } |
90 OnDialogClosed(std::string()); | 80 OnDialogClosed(std::string()); |
91 return true; | 81 return true; |
92 } | 82 } |
(...skipping 12 matching lines...) Expand all Loading... | |
105 gfx::Rect(), | 95 gfx::Rect(), |
106 chromeos::BubbleWindow::STYLE_XSHAPE, | 96 chromeos::BubbleWindow::STYLE_XSHAPE, |
107 html_view); | 97 html_view); |
108 html_view->window()->Show(); | 98 html_view->window()->Show(); |
109 } | 99 } |
110 | 100 |
111 bool KeyboardOverlayDialogView::IsCloseAccelerator( | 101 bool KeyboardOverlayDialogView::IsCloseAccelerator( |
112 const views::Accelerator& accelerator) { | 102 const views::Accelerator& accelerator) { |
113 return close_accelerators_.find(accelerator) != close_accelerators_.end(); | 103 return close_accelerators_.find(accelerator) != close_accelerators_.end(); |
114 } | 104 } |
OLD | NEW |