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_button.h" | 5 #include "chrome/browser/ui/views/toolbar/toolbar_button.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" | 8 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
9 #include "grit/theme_resources.h" | 9 #include "grit/theme_resources.h" |
10 #include "grit/ui_strings.h" | 10 #include "grit/ui_strings.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 SetState(STATE_PRESSED); | 192 SetState(STATE_PRESSED); |
193 | 193 |
194 menu_showing_ = true; | 194 menu_showing_ = true; |
195 | 195 |
196 // Create and run menu. Display an empty menu if model is NULL. | 196 // Create and run menu. Display an empty menu if model is NULL. |
197 if (model_.get()) { | 197 if (model_.get()) { |
198 views::MenuModelAdapter menu_delegate(model_.get()); | 198 views::MenuModelAdapter menu_delegate(model_.get()); |
199 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); | 199 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); |
200 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu())); | 200 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu())); |
201 views::MenuRunner::RunResult result = | 201 views::MenuRunner::RunResult result = |
202 menu_runner_->RunMenuAt(GetWidget(), NULL, | 202 menu_runner_->RunMenuAt(GetWidget(), |
| 203 NULL, |
203 gfx::Rect(menu_position, gfx::Size(0, 0)), | 204 gfx::Rect(menu_position, gfx::Size(0, 0)), |
204 views::MenuItemView::TOPLEFT, | 205 views::MENU_ANCHOR_TOPLEFT, |
205 source_type, | 206 source_type, |
206 views::MenuRunner::HAS_MNEMONICS); | 207 views::MenuRunner::HAS_MNEMONICS); |
207 if (result == views::MenuRunner::MENU_DELETED) | 208 if (result == views::MenuRunner::MENU_DELETED) |
208 return; | 209 return; |
209 } else { | 210 } else { |
210 views::MenuDelegate menu_delegate; | 211 views::MenuDelegate menu_delegate; |
211 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); | 212 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); |
212 menu_runner_.reset(new views::MenuRunner(menu)); | 213 menu_runner_.reset(new views::MenuRunner(menu)); |
213 views::MenuRunner::RunResult result = | 214 views::MenuRunner::RunResult result = |
214 menu_runner_->RunMenuAt(GetWidget(), NULL, | 215 menu_runner_->RunMenuAt(GetWidget(), |
| 216 NULL, |
215 gfx::Rect(menu_position, gfx::Size(0, 0)), | 217 gfx::Rect(menu_position, gfx::Size(0, 0)), |
216 views::MenuItemView::TOPLEFT, | 218 views::MENU_ANCHOR_TOPLEFT, |
217 source_type, | 219 source_type, |
218 views::MenuRunner::HAS_MNEMONICS); | 220 views::MenuRunner::HAS_MNEMONICS); |
219 if (result == views::MenuRunner::MENU_DELETED) | 221 if (result == views::MenuRunner::MENU_DELETED) |
220 return; | 222 return; |
221 } | 223 } |
222 | 224 |
223 menu_showing_ = false; | 225 menu_showing_ = false; |
224 | 226 |
225 // Need to explicitly clear mouse handler so that events get sent | 227 // Need to explicitly clear mouse handler so that events get sent |
226 // properly after the menu finishes running. If we don't do this, then | 228 // properly after the menu finishes running. If we don't do this, then |
227 // the first click to other parts of the UI is eaten. | 229 // the first click to other parts of the UI is eaten. |
228 SetMouseHandler(NULL); | 230 SetMouseHandler(NULL); |
229 | 231 |
230 // Set the state back to normal after the drop down menu is closed. | 232 // Set the state back to normal after the drop down menu is closed. |
231 if (state_ != STATE_DISABLED) | 233 if (state_ != STATE_DISABLED) |
232 SetState(STATE_NORMAL); | 234 SetState(STATE_NORMAL); |
233 } | 235 } |
OLD | NEW |