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 |