| 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" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 Profile* profile, | 37 Profile* profile, |
| 38 HtmlDialogUIDelegate* delegate, | 38 HtmlDialogUIDelegate* delegate, |
| 39 BrowserView* parent_view) | 39 BrowserView* parent_view) |
| 40 : HtmlDialogView(profile, delegate), | 40 : HtmlDialogView(profile, delegate), |
| 41 parent_view_(parent_view) { | 41 parent_view_(parent_view) { |
| 42 } | 42 } |
| 43 | 43 |
| 44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { | 44 KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { |
| 45 } | 45 } |
| 46 | 46 |
| 47 void KeyboardOverlayDialogView::InitDialog() { | 47 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) { | 48 for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { |
| 58 views::Accelerator accelerator(kCloseAccelerators[i].keycode, | 49 views::Accelerator accelerator(kCloseAccelerators[i].keycode, |
| 59 kCloseAccelerators[i].shift_pressed, | 50 kCloseAccelerators[i].shift_pressed, |
| 60 kCloseAccelerators[i].ctrl_pressed, | 51 kCloseAccelerators[i].ctrl_pressed, |
| 61 kCloseAccelerators[i].alt_pressed); | 52 kCloseAccelerators[i].alt_pressed); |
| 62 close_accelerators_.insert(accelerator); | 53 close_accelerators_.insert(accelerator); |
| 63 AddAccelerator(accelerator); | 54 AddAccelerator(accelerator); |
| 64 } | 55 } |
| 65 | 56 |
| 66 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { | 57 for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { |
| 67 views::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, | 58 views::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, |
| 68 browser::kAcceleratorMap[i].shift_pressed, | 59 browser::kAcceleratorMap[i].shift_pressed, |
| 69 browser::kAcceleratorMap[i].ctrl_pressed, | 60 browser::kAcceleratorMap[i].ctrl_pressed, |
| 70 browser::kAcceleratorMap[i].alt_pressed); | 61 browser::kAcceleratorMap[i].alt_pressed); |
| 71 // Skip a sole ALT key since it's handled on the keyboard overlay. | 62 // Skip a sole ALT key since it's handled on the keyboard overlay. |
| 72 if (views::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { | 63 if (views::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { |
| 73 continue; | 64 continue; |
| 74 } | 65 } |
| 75 // Skip accelerators for closing the dialog since they are already added. | 66 // Skip accelerators for closing the dialog since they are already added. |
| 76 if (IsCloseAccelerator(accelerator)) { | 67 if (IsCloseAccelerator(accelerator)) { |
| 77 continue; | 68 continue; |
| 78 } | 69 } |
| 79 AddAccelerator(accelerator); | 70 AddAccelerator(accelerator); |
| 80 } | 71 } |
| 81 | |
| 82 DOMView::LoadURL(GetDialogContentURL()); | |
| 83 } | 72 } |
| 84 | 73 |
| 85 bool KeyboardOverlayDialogView::AcceleratorPressed( | 74 bool KeyboardOverlayDialogView::AcceleratorPressed( |
| 86 const views::Accelerator& accelerator) { | 75 const views::Accelerator& accelerator) { |
| 87 if (!IsCloseAccelerator(accelerator)) { | 76 if (!IsCloseAccelerator(accelerator)) { |
| 88 parent_view_->AcceleratorPressed(accelerator); | 77 parent_view_->AcceleratorPressed(accelerator); |
| 89 } | 78 } |
| 90 OnDialogClosed(std::string()); | 79 OnDialogClosed(std::string()); |
| 91 return true; | 80 return true; |
| 92 } | 81 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 105 gfx::Rect(), | 94 gfx::Rect(), |
| 106 chromeos::BubbleWindow::STYLE_XSHAPE, | 95 chromeos::BubbleWindow::STYLE_XSHAPE, |
| 107 html_view); | 96 html_view); |
| 108 html_view->window()->Show(); | 97 html_view->window()->Show(); |
| 109 } | 98 } |
| 110 | 99 |
| 111 bool KeyboardOverlayDialogView::IsCloseAccelerator( | 100 bool KeyboardOverlayDialogView::IsCloseAccelerator( |
| 112 const views::Accelerator& accelerator) { | 101 const views::Accelerator& accelerator) { |
| 113 return close_accelerators_.find(accelerator) != close_accelerators_.end(); | 102 return close_accelerators_.find(accelerator) != close_accelerators_.end(); |
| 114 } | 103 } |
| OLD | NEW |