| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ | 5 #ifndef UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ |
| 6 #define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ | 6 #define UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ |
| 7 | 7 |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 | 9 |
| 10 #include <list> | 10 #include <list> |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 | 71 |
| 72 // Runs the menu at the specified location. If the menu was configured to | 72 // Runs the menu at the specified location. If the menu was configured to |
| 73 // block, the selected item is returned. If the menu does not block this | 73 // block, the selected item is returned. If the menu does not block this |
| 74 // returns NULL immediately. | 74 // returns NULL immediately. |
| 75 MenuItemView* Run(Widget* parent, | 75 MenuItemView* Run(Widget* parent, |
| 76 MenuButton* button, | 76 MenuButton* button, |
| 77 MenuItemView* root, | 77 MenuItemView* root, |
| 78 const gfx::Rect& bounds, | 78 const gfx::Rect& bounds, |
| 79 MenuItemView::AnchorPosition position, | 79 MenuItemView::AnchorPosition position, |
| 80 bool context_menu, | 80 bool context_menu, |
| 81 int* mouse_event_flags); | 81 int* event_flags); |
| 82 | 82 |
| 83 // Whether or not Run blocks. | 83 // Whether or not Run blocks. |
| 84 bool IsBlockingRun() const { return blocking_run_; } | 84 bool IsBlockingRun() const { return blocking_run_; } |
| 85 | 85 |
| 86 // Whether or not drag operation is in progress. | 86 // Whether or not drag operation is in progress. |
| 87 bool drag_in_progress() const { return drag_in_progress_; } | 87 bool drag_in_progress() const { return drag_in_progress_; } |
| 88 | 88 |
| 89 // Cancels the current Run. See ExitType for a description of what happens | 89 // Cancels the current Run. See ExitType for a description of what happens |
| 90 // with the various parameters. | 90 // with the various parameters. |
| 91 void Cancel(ExitType type); | 91 void Cancel(ExitType type); |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 | 268 |
| 269 // AcceleratorPressed is invoked on the hot tracked view if it exists. | 269 // AcceleratorPressed is invoked on the hot tracked view if it exists. |
| 270 SendAcceleratorResultType SendAcceleratorToHotTrackedView(); | 270 SendAcceleratorResultType SendAcceleratorToHotTrackedView(); |
| 271 | 271 |
| 272 void UpdateInitialLocation(const gfx::Rect& bounds, | 272 void UpdateInitialLocation(const gfx::Rect& bounds, |
| 273 MenuItemView::AnchorPosition position, | 273 MenuItemView::AnchorPosition position, |
| 274 bool context_menu); | 274 bool context_menu); |
| 275 | 275 |
| 276 // Invoked when the user accepts the selected item. This is only used | 276 // Invoked when the user accepts the selected item. This is only used |
| 277 // when blocking. This schedules the loop to quit. | 277 // when blocking. This schedules the loop to quit. |
| 278 void Accept(MenuItemView* item, int mouse_event_flags); | 278 void Accept(MenuItemView* item, int event_flags); |
| 279 | 279 |
| 280 bool ShowSiblingMenu(SubmenuView* source, const gfx::Point& mouse_location); | 280 bool ShowSiblingMenu(SubmenuView* source, const gfx::Point& mouse_location); |
| 281 | 281 |
| 282 // Shows a context menu for |menu_item| as a result of a located event if | 282 // Shows a context menu for |menu_item| as a result of a located event if |
| 283 // appropriate. This is invoked on long press and releasing the right mouse | 283 // appropriate. This is invoked on long press and releasing the right mouse |
| 284 // button. Returns whether a context menu was shown. | 284 // button. Returns whether a context menu was shown. |
| 285 bool ShowContextMenu(MenuItemView* menu_item, | 285 bool ShowContextMenu(MenuItemView* menu_item, |
| 286 SubmenuView* source, | 286 SubmenuView* source, |
| 287 const ui::LocatedEvent& event); | 287 const ui::LocatedEvent& event); |
| 288 | 288 |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 // pending_state_ is committed to state_, potentially resulting in | 483 // pending_state_ is committed to state_, potentially resulting in |
| 484 // opening or closing submenus. This gives a slight delayed effect to | 484 // opening or closing submenus. This gives a slight delayed effect to |
| 485 // submenus as the user moves the mouse around. This is done so that as the | 485 // submenus as the user moves the mouse around. This is done so that as the |
| 486 // user moves the mouse all submenus don't immediately pop. | 486 // user moves the mouse all submenus don't immediately pop. |
| 487 State pending_state_; | 487 State pending_state_; |
| 488 State state_; | 488 State state_; |
| 489 | 489 |
| 490 // If the user accepted the selection, this is the result. | 490 // If the user accepted the selection, this is the result. |
| 491 MenuItemView* result_; | 491 MenuItemView* result_; |
| 492 | 492 |
| 493 // The mouse event flags when the user clicked on a menu. Is 0 if the | 493 // The event flags when the user selected the menu. |
| 494 // user did not use the mouse to select the menu. | 494 int accept_event_flags_; |
| 495 int result_mouse_event_flags_; | |
| 496 | 495 |
| 497 // If not empty, it means we're nested. When Run is invoked from within | 496 // If not empty, it means we're nested. When Run is invoked from within |
| 498 // Run, the current state (state_) is pushed onto menu_stack_. This allows | 497 // Run, the current state (state_) is pushed onto menu_stack_. This allows |
| 499 // MenuController to restore the state when the nested run returns. | 498 // MenuController to restore the state when the nested run returns. |
| 500 std::list<State> menu_stack_; | 499 std::list<State> menu_stack_; |
| 501 | 500 |
| 502 // As the mouse moves around submenus are not opened immediately. Instead | 501 // As the mouse moves around submenus are not opened immediately. Instead |
| 503 // they open after this timer fires. | 502 // they open after this timer fires. |
| 504 base::OneShotTimer<MenuController> show_timer_; | 503 base::OneShotTimer<MenuController> show_timer_; |
| 505 | 504 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 int message_loop_depth_; | 551 int message_loop_depth_; |
| 553 | 552 |
| 554 views::MenuConfig menu_config_; | 553 views::MenuConfig menu_config_; |
| 555 | 554 |
| 556 DISALLOW_COPY_AND_ASSIGN(MenuController); | 555 DISALLOW_COPY_AND_ASSIGN(MenuController); |
| 557 }; | 556 }; |
| 558 | 557 |
| 559 } // namespace views | 558 } // namespace views |
| 560 | 559 |
| 561 #endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ | 560 #endif // UI_VIEWS_CONTROLS_MENU_MENU_CONTROLLER_H_ |
| OLD | NEW |