Index: ui/touch_selection/touch_selection_menu_runner.h |
diff --git a/ui/touch_selection/touch_selection_menu_runner.h b/ui/touch_selection/touch_selection_menu_runner.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..739bcd358011d004f30e5b1e486dd40c51f8d51e |
--- /dev/null |
+++ b/ui/touch_selection/touch_selection_menu_runner.h |
@@ -0,0 +1,57 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef UI_TOUCH_SELECTION_TOUCH_SELECTION_MENU_RUNNER_H_ |
+#define UI_TOUCH_SELECTION_TOUCH_SELECTION_MENU_RUNNER_H_ |
+ |
+#include "base/logging.h" |
+#include "base/macros.h" |
+#include "ui/touch_selection/ui_touch_selection_export.h" |
+ |
+namespace aura { |
+class Window; |
+} |
+ |
+namespace gfx { |
+class Rect; |
+class Size; |
+} |
+ |
+namespace ui { |
+ |
+// Client interface for TouchSelectionMenuRunner. |
+class UI_TOUCH_SELECTION_EXPORT TouchSelectionMenuClient { |
+ public: |
+ virtual ~TouchSelectionMenuClient() {} |
+ |
+ virtual bool IsCommandIdEnabled(int command_id) const = 0; |
+ virtual void ExecuteCommand(int command_id, int event_flags) = 0; |
+ virtual void OpenContextMenu() = 0; |
+}; |
+ |
+// An interface for the singleton object responsible for running touch selection |
+// quick menu. |
+class UI_TOUCH_SELECTION_EXPORT TouchSelectionMenuRunner { |
+ public: |
+ virtual ~TouchSelectionMenuRunner(); |
+ |
+ static TouchSelectionMenuRunner* GetInstance(); |
+ |
+ virtual void RunMenu(TouchSelectionMenuClient* client, |
+ const gfx::Rect& anchor_rect, |
+ const gfx::Size& handle_image_size, |
+ aura::Window* context) = 0; |
+ virtual void CloseMenu() = 0; |
+ virtual bool IsRunning() const = 0; |
+ |
+ protected: |
+ TouchSelectionMenuRunner(); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(TouchSelectionMenuRunner); |
+}; |
+ |
+} // namespace ui |
+ |
+#endif // UI_TOUCH_SELECTION_TOUCH_SELECTION_MENU_RUNNER_H_ |