| 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_RUNNER_H_ | 5 #ifndef UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_H_ |
| 6 #define UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_H_ | 6 #define UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include <stdint.h> |
| 9 |
| 9 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/macros.h" |
| 10 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 11 #include "ui/base/ui_base_types.h" | 13 #include "ui/base/ui_base_types.h" |
| 12 #include "ui/views/controls/menu/menu_types.h" | 14 #include "ui/views/controls/menu/menu_types.h" |
| 13 #include "ui/views/views_export.h" | 15 #include "ui/views/views_export.h" |
| 14 | 16 |
| 15 namespace base { | 17 namespace base { |
| 16 class TimeDelta; | 18 class TimeDelta; |
| 17 } | 19 } |
| 18 | 20 |
| 19 namespace gfx { | 21 namespace gfx { |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 enum RunResult { | 99 enum RunResult { |
| 98 // Indicates RunMenuAt is returning because the MenuRunner was deleted. | 100 // Indicates RunMenuAt is returning because the MenuRunner was deleted. |
| 99 MENU_DELETED, | 101 MENU_DELETED, |
| 100 | 102 |
| 101 // Indicates RunMenuAt returned and MenuRunner was not deleted. | 103 // Indicates RunMenuAt returned and MenuRunner was not deleted. |
| 102 NORMAL_EXIT | 104 NORMAL_EXIT |
| 103 }; | 105 }; |
| 104 | 106 |
| 105 // Creates a new MenuRunner. | 107 // Creates a new MenuRunner. |
| 106 // |run_types| is a bitmask of RunTypes. | 108 // |run_types| is a bitmask of RunTypes. |
| 107 MenuRunner(ui::MenuModel* menu_model, int32 run_types); | 109 MenuRunner(ui::MenuModel* menu_model, int32_t run_types); |
| 108 MenuRunner(MenuItemView* menu, int32 run_types); | 110 MenuRunner(MenuItemView* menu, int32_t run_types); |
| 109 ~MenuRunner(); | 111 ~MenuRunner(); |
| 110 | 112 |
| 111 // Runs the menu. If this returns MENU_DELETED the method is returning | 113 // Runs the menu. If this returns MENU_DELETED the method is returning |
| 112 // because the MenuRunner was deleted. | 114 // because the MenuRunner was deleted. |
| 113 // Typically callers should NOT do any processing if this returns | 115 // Typically callers should NOT do any processing if this returns |
| 114 // MENU_DELETED. | 116 // MENU_DELETED. |
| 115 // If |anchor| uses a |BUBBLE_..| type, the bounds will get determined by | 117 // If |anchor| uses a |BUBBLE_..| type, the bounds will get determined by |
| 116 // using |bounds| as the thing to point at in screen coordinates. | 118 // using |bounds| as the thing to point at in screen coordinates. |
| 117 RunResult RunMenuAt(Widget* parent, | 119 RunResult RunMenuAt(Widget* parent, |
| 118 MenuButton* button, | 120 MenuButton* button, |
| 119 const gfx::Rect& bounds, | 121 const gfx::Rect& bounds, |
| 120 MenuAnchorPosition anchor, | 122 MenuAnchorPosition anchor, |
| 121 ui::MenuSourceType source_type) WARN_UNUSED_RESULT; | 123 ui::MenuSourceType source_type) WARN_UNUSED_RESULT; |
| 122 | 124 |
| 123 // Returns true if we're in a nested message loop running the menu. | 125 // Returns true if we're in a nested message loop running the menu. |
| 124 bool IsRunning() const; | 126 bool IsRunning() const; |
| 125 | 127 |
| 126 // Hides and cancels the menu. This does nothing if the menu is not open. | 128 // Hides and cancels the menu. This does nothing if the menu is not open. |
| 127 void Cancel(); | 129 void Cancel(); |
| 128 | 130 |
| 129 // Returns the time from the event which closed the menu - or 0. | 131 // Returns the time from the event which closed the menu - or 0. |
| 130 base::TimeDelta closing_event_time() const; | 132 base::TimeDelta closing_event_time() const; |
| 131 | 133 |
| 132 private: | 134 private: |
| 133 friend class test::MenuRunnerTestAPI; | 135 friend class test::MenuRunnerTestAPI; |
| 134 | 136 |
| 135 // Sets an implementation of RunMenuAt. This is intended to be used at test. | 137 // Sets an implementation of RunMenuAt. This is intended to be used at test. |
| 136 void SetRunnerHandler(scoped_ptr<MenuRunnerHandler> runner_handler); | 138 void SetRunnerHandler(scoped_ptr<MenuRunnerHandler> runner_handler); |
| 137 | 139 |
| 138 const int32 run_types_; | 140 const int32_t run_types_; |
| 139 | 141 |
| 140 // We own this. No scoped_ptr because it is destroyed by calling Release(). | 142 // We own this. No scoped_ptr because it is destroyed by calling Release(). |
| 141 internal::MenuRunnerImplInterface* impl_; | 143 internal::MenuRunnerImplInterface* impl_; |
| 142 | 144 |
| 143 // An implementation of RunMenuAt. This is usually NULL and ignored. If this | 145 // An implementation of RunMenuAt. This is usually NULL and ignored. If this |
| 144 // is not NULL, this implementation will be used. | 146 // is not NULL, this implementation will be used. |
| 145 scoped_ptr<MenuRunnerHandler> runner_handler_; | 147 scoped_ptr<MenuRunnerHandler> runner_handler_; |
| 146 | 148 |
| 147 scoped_ptr<internal::DisplayChangeListener> display_change_listener_; | 149 scoped_ptr<internal::DisplayChangeListener> display_change_listener_; |
| 148 | 150 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 165 | 167 |
| 166 protected: | 168 protected: |
| 167 DisplayChangeListener() {} | 169 DisplayChangeListener() {} |
| 168 }; | 170 }; |
| 169 | 171 |
| 170 } // namespace internal | 172 } // namespace internal |
| 171 | 173 |
| 172 } // namespace views | 174 } // namespace views |
| 173 | 175 |
| 174 #endif // UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_H_ | 176 #endif // UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_H_ |
| OLD | NEW |