| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/logging.h" | 5 #include "base/logging.h" |
| 6 #include "chrome/browser/view_ids.h" | 6 #include "chrome/browser/view_ids.h" |
| 7 #include "chrome/browser/views/frame/browser_view.h" | 7 #include "chrome/browser/views/frame/browser_view.h" |
| 8 #include "chrome/browser/views/location_bar/location_bar_view.h" | 8 #include "chrome/browser/views/location_bar/location_bar_view.h" |
| 9 #include "chrome/browser/views/accessible_toolbar_view.h" | 9 #include "chrome/browser/views/accessible_toolbar_view.h" |
| 10 #include "views/controls/button/menu_button.h" | 10 #include "views/controls/button/menu_button.h" |
| 11 #include "views/controls/native/native_view_host.h" | 11 #include "views/controls/native/native_view_host.h" |
| 12 #include "views/focus/focus_search.h" | 12 #include "views/focus/focus_search.h" |
| 13 #include "views/focus/view_storage.h" | 13 #include "views/focus/view_storage.h" |
| 14 #include "views/widget/tooltip_manager.h" | 14 #include "views/widget/tooltip_manager.h" |
| 15 #include "views/widget/widget.h" | 15 #include "views/widget/widget.h" |
| 16 | 16 |
| 17 AccessibleToolbarView::AccessibleToolbarView() | 17 AccessibleToolbarView::AccessibleToolbarView() |
| 18 : toolbar_has_focus_(false), | 18 : toolbar_has_focus_(false), |
| 19 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), | 19 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), |
| 20 focus_manager_(NULL), | 20 focus_manager_(NULL), |
| 21 ALLOW_THIS_IN_INITIALIZER_LIST(focus_search_(this, true, true)), | |
| 22 home_key_(base::VKEY_HOME, false, false, false), | 21 home_key_(base::VKEY_HOME, false, false, false), |
| 23 end_key_(base::VKEY_END, false, false, false), | 22 end_key_(base::VKEY_END, false, false, false), |
| 24 escape_key_(base::VKEY_ESCAPE, false, false, false), | 23 escape_key_(base::VKEY_ESCAPE, false, false, false), |
| 25 left_key_(base::VKEY_LEFT, false, false, false), | 24 left_key_(base::VKEY_LEFT, false, false, false), |
| 26 right_key_(base::VKEY_RIGHT, false, false, false), | 25 right_key_(base::VKEY_RIGHT, false, false, false), |
| 27 last_focused_view_storage_id_(-1) { | 26 last_focused_view_storage_id_(-1) { |
| 27 focus_search_.reset(new views::FocusSearch(this, true, true)); |
| 28 } | 28 } |
| 29 | 29 |
| 30 AccessibleToolbarView::~AccessibleToolbarView() { | 30 AccessibleToolbarView::~AccessibleToolbarView() { |
| 31 if (toolbar_has_focus_) { | 31 if (toolbar_has_focus_) { |
| 32 focus_manager_->RemoveFocusChangeListener(this); | 32 focus_manager_->RemoveFocusChangeListener(this); |
| 33 } | 33 } |
| 34 } | 34 } |
| 35 | 35 |
| 36 bool AccessibleToolbarView::SetToolbarFocus(int view_storage_id, | 36 bool AccessibleToolbarView::SetToolbarFocus(int view_storage_id, |
| 37 views::View* initial_focus) { | 37 views::View* initial_focus) { |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 if (view) { | 111 if (view) { |
| 112 BrowserView* browser_view = static_cast<BrowserView*>(view); | 112 BrowserView* browser_view = static_cast<BrowserView*>(view); |
| 113 browser_view->SetFocusToLocationBar(false); | 113 browser_view->SetFocusToLocationBar(false); |
| 114 } | 114 } |
| 115 } | 115 } |
| 116 } | 116 } |
| 117 | 117 |
| 118 views::View* AccessibleToolbarView::GetFirstFocusableChild() { | 118 views::View* AccessibleToolbarView::GetFirstFocusableChild() { |
| 119 FocusTraversable* dummy_focus_traversable; | 119 FocusTraversable* dummy_focus_traversable; |
| 120 views::View* dummy_focus_traversable_view; | 120 views::View* dummy_focus_traversable_view; |
| 121 return focus_search_.FindNextFocusableView( | 121 return focus_search_->FindNextFocusableView( |
| 122 NULL, false, views::FocusSearch::DOWN, false, | 122 NULL, false, views::FocusSearch::DOWN, false, |
| 123 &dummy_focus_traversable, &dummy_focus_traversable_view); | 123 &dummy_focus_traversable, &dummy_focus_traversable_view); |
| 124 } | 124 } |
| 125 | 125 |
| 126 views::View* AccessibleToolbarView::GetLastFocusableChild() { | 126 views::View* AccessibleToolbarView::GetLastFocusableChild() { |
| 127 FocusTraversable* dummy_focus_traversable; | 127 FocusTraversable* dummy_focus_traversable; |
| 128 views::View* dummy_focus_traversable_view; | 128 views::View* dummy_focus_traversable_view; |
| 129 return focus_search_.FindNextFocusableView( | 129 return focus_search_->FindNextFocusableView( |
| 130 this, true, views::FocusSearch::DOWN, false, | 130 this, true, views::FocusSearch::DOWN, false, |
| 131 &dummy_focus_traversable, &dummy_focus_traversable_view); | 131 &dummy_focus_traversable, &dummy_focus_traversable_view); |
| 132 } | 132 } |
| 133 | 133 |
| 134 //////////////////////////////////////////////////////////////////////////////// | 134 //////////////////////////////////////////////////////////////////////////////// |
| 135 // View overrides: | 135 // View overrides: |
| 136 | 136 |
| 137 views::FocusTraversable* AccessibleToolbarView::GetPaneFocusTraversable() { | 137 views::FocusTraversable* AccessibleToolbarView::GetPaneFocusTraversable() { |
| 138 if (toolbar_has_focus_) | 138 if (toolbar_has_focus_) |
| 139 return this; | 139 return this; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 FROM_HERE, method_factory_.NewRunnableMethod( | 216 FROM_HERE, method_factory_.NewRunnableMethod( |
| 217 &AccessibleToolbarView::RemoveToolbarFocus)); | 217 &AccessibleToolbarView::RemoveToolbarFocus)); |
| 218 } | 218 } |
| 219 } | 219 } |
| 220 | 220 |
| 221 //////////////////////////////////////////////////////////////////////////////// | 221 //////////////////////////////////////////////////////////////////////////////// |
| 222 // FocusTraversable overrides: | 222 // FocusTraversable overrides: |
| 223 | 223 |
| 224 views::FocusSearch* AccessibleToolbarView::GetFocusSearch() { | 224 views::FocusSearch* AccessibleToolbarView::GetFocusSearch() { |
| 225 DCHECK(toolbar_has_focus_); | 225 DCHECK(toolbar_has_focus_); |
| 226 return &focus_search_; | 226 return focus_search_.get(); |
| 227 } | 227 } |
| 228 | 228 |
| 229 views::FocusTraversable* AccessibleToolbarView::GetFocusTraversableParent() { | 229 views::FocusTraversable* AccessibleToolbarView::GetFocusTraversableParent() { |
| 230 DCHECK(toolbar_has_focus_); | 230 DCHECK(toolbar_has_focus_); |
| 231 return NULL; | 231 return NULL; |
| 232 } | 232 } |
| 233 | 233 |
| 234 views::View* AccessibleToolbarView::GetFocusTraversableParentView() { | 234 views::View* AccessibleToolbarView::GetFocusTraversableParentView() { |
| 235 DCHECK(toolbar_has_focus_); | 235 DCHECK(toolbar_has_focus_); |
| 236 return NULL; | 236 return NULL; |
| 237 } | 237 } |
| OLD | NEW |