| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/toolbar/toolbar_action_view.h" | 5 #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 SetFocusable(true); | 101 SetFocusable(true); |
| 102 } | 102 } |
| 103 | 103 |
| 104 UpdateState(); | 104 UpdateState(); |
| 105 } | 105 } |
| 106 | 106 |
| 107 ToolbarActionView::~ToolbarActionView() { | 107 ToolbarActionView::~ToolbarActionView() { |
| 108 if (context_menu_owner == this) | 108 if (context_menu_owner == this) |
| 109 context_menu_owner = nullptr; | 109 context_menu_owner = nullptr; |
| 110 view_controller_->SetDelegate(nullptr); | 110 view_controller_->SetDelegate(nullptr); |
| 111 set_ink_drop_delegate(nullptr); |
| 111 ink_drop_delegate_.reset(); | 112 ink_drop_delegate_.reset(); |
| 112 set_ink_drop_delegate(nullptr); | |
| 113 } | 113 } |
| 114 | 114 |
| 115 void ToolbarActionView::GetAccessibleState(ui::AXViewState* state) { | 115 void ToolbarActionView::GetAccessibleState(ui::AXViewState* state) { |
| 116 views::MenuButton::GetAccessibleState(state); | 116 views::MenuButton::GetAccessibleState(state); |
| 117 state->role = ui::AX_ROLE_BUTTON; | 117 state->role = ui::AX_ROLE_BUTTON; |
| 118 } | 118 } |
| 119 | 119 |
| 120 scoped_ptr<LabelButtonBorder> ToolbarActionView::CreateDefaultBorder() const { | 120 scoped_ptr<LabelButtonBorder> ToolbarActionView::CreateDefaultBorder() const { |
| 121 scoped_ptr<LabelButtonBorder> border = LabelButton::CreateDefaultBorder(); | 121 scoped_ptr<LabelButtonBorder> border = LabelButton::CreateDefaultBorder(); |
| 122 border->set_insets(gfx::Insets(kBorderInset, kBorderInset, | 122 border->set_insets(gfx::Insets(kBorderInset, kBorderInset, |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 context_menu_callback = callback; | 219 context_menu_callback = callback; |
| 220 } | 220 } |
| 221 | 221 |
| 222 gfx::Size ToolbarActionView::GetPreferredSize() const { | 222 gfx::Size ToolbarActionView::GetPreferredSize() const { |
| 223 return gfx::Size(ToolbarActionsBar::IconWidth(false), | 223 return gfx::Size(ToolbarActionsBar::IconWidth(false), |
| 224 ToolbarActionsBar::IconHeight()); | 224 ToolbarActionsBar::IconHeight()); |
| 225 } | 225 } |
| 226 | 226 |
| 227 bool ToolbarActionView::OnMousePressed(const ui::MouseEvent& event) { | 227 bool ToolbarActionView::OnMousePressed(const ui::MouseEvent& event) { |
| 228 // views::MenuButton actions are only triggered by left mouse clicks. | 228 // views::MenuButton actions are only triggered by left mouse clicks. |
| 229 if (event.IsOnlyLeftMouseButton()) | 229 if (event.IsOnlyLeftMouseButton()) { |
| 230 // TODO(bruthig): The ACTION_PENDING triggering logic should be in |
| 231 // MenuButton::OnPressed() however there is a bug with the pressed state |
| 232 // logic in MenuButton. See http://crbug.com/567252. |
| 230 ink_drop_delegate()->OnAction(views::InkDropState::ACTION_PENDING); | 233 ink_drop_delegate()->OnAction(views::InkDropState::ACTION_PENDING); |
| 234 } |
| 231 return MenuButton::OnMousePressed(event); | 235 return MenuButton::OnMousePressed(event); |
| 232 } | 236 } |
| 233 | 237 |
| 234 void ToolbarActionView::OnGestureEvent(ui::GestureEvent* event) { | 238 void ToolbarActionView::OnGestureEvent(ui::GestureEvent* event) { |
| 235 // While the dropdown menu is showing, the button should not handle gestures. | 239 // While the dropdown menu is showing, the button should not handle gestures. |
| 236 if (menu_) | 240 if (menu_) |
| 237 event->StopPropagation(); | 241 event->StopPropagation(); |
| 238 else | 242 else |
| 239 MenuButton::OnGestureEvent(event); | 243 MenuButton::OnGestureEvent(event); |
| 240 } | 244 } |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 if (menu_controller->in_nested_run()) { | 390 if (menu_controller->in_nested_run()) { |
| 387 // There is another menu showing. Close the outermost menu (since we are | 391 // There is another menu showing. Close the outermost menu (since we are |
| 388 // shown in the same menu, we don't want to close the whole thing). | 392 // shown in the same menu, we don't want to close the whole thing). |
| 389 menu_controller->Cancel(views::MenuController::EXIT_OUTERMOST); | 393 menu_controller->Cancel(views::MenuController::EXIT_OUTERMOST); |
| 390 return true; | 394 return true; |
| 391 } | 395 } |
| 392 } | 396 } |
| 393 | 397 |
| 394 return false; | 398 return false; |
| 395 } | 399 } |
| OLD | NEW |