Chromium Code Reviews| 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 |