Chromium Code Reviews| Index: ui/views/controls/menu/menu_runner.h |
| diff --git a/ui/views/controls/menu/menu_runner.h b/ui/views/controls/menu/menu_runner.h |
| index 277ffd5334a41005ec75d84762cc579fadb4c6d5..04b8f64bcb75de9910a5fe745d53131dde218fcd 100644 |
| --- a/ui/views/controls/menu/menu_runner.h |
| +++ b/ui/views/controls/menu/menu_runner.h |
| @@ -18,6 +18,7 @@ namespace views { |
| class MenuButton; |
| class MenuModelAdapter; |
| +class MenuRunnerHandler; |
| class Widget; |
| namespace internal { |
| @@ -25,6 +26,10 @@ class DisplayChangeListener; |
| class MenuRunnerImpl; |
| } |
| +namespace test { |
| +class MenuRunnerTestAPI; |
| +} |
| + |
| // MenuRunner is responsible for showing (running) the menu and additionally |
| // owning the MenuItemView. RunMenuAt() runs a nested message loop. It is safe |
| // to delete MenuRunner at any point, but MenuRunner internally only deletes the |
| @@ -112,10 +117,20 @@ class VIEWS_EXPORT MenuRunner { |
| base::TimeDelta closing_event_time() const; |
| private: |
| + friend class test::MenuRunnerTestAPI; |
| + |
| + // Sets an implementation of RunMenuAt. This takes the ownership of |
| + // |runner_handler|. This is intended to be used at test. |
| + void SetRunnerHandler(MenuRunnerHandler* runner_handler); |
|
sky
2013/12/10 16:56:06
scoped_ptr
hajimehoshi
2013/12/11 04:07:04
Done.
|
| + |
| scoped_ptr<MenuModelAdapter> menu_model_adapter_; |
| internal::MenuRunnerImpl* holder_; |
| + // An implementation of RunMenuAt. This is usually NULL and ignored. If this |
| + // is not NULL, this implementation will be used. |
| + scoped_ptr<MenuRunnerHandler> runner_handler_; |
| + |
| scoped_ptr<internal::DisplayChangeListener> display_change_listener_; |
| DISALLOW_COPY_AND_ASSIGN(MenuRunner); |