Index: athena/wm/overview_toolbar.h |
diff --git a/athena/wm/overview_toolbar.h b/athena/wm/overview_toolbar.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6fdb3b8415e1c59e84d249b7911b1b8d05a550e |
--- /dev/null |
+++ b/athena/wm/overview_toolbar.h |
@@ -0,0 +1,68 @@ |
+// Copyright 2014 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 ATHENA_WM_OVERVIEW_TOOLBAR_H_ |
+#define ATHENA_WM_OVERVIEW_TOOLBAR_H_ |
+ |
+#include "base/macros.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "ui/gfx/geometry/rect.h" |
+ |
+namespace aura { |
+class Window; |
+} |
+ |
+namespace gfx { |
+class Transform; |
+} |
+ |
+namespace ui { |
+class GestureEvent; |
+} |
+ |
+namespace athena { |
+ |
+class ActionButton; |
+ |
+// Responsible for showing action-buttons at the right edge of the screen during |
+// overview mode. |
+class OverviewToolbar { |
+ public: |
+ enum ActionType { |
+ ACTION_TYPE_NONE, |
+ ACTION_TYPE_CLOSE, |
+ ACTION_TYPE_SPLIT, |
+ }; |
+ |
+ explicit OverviewToolbar(aura::Window* container); |
+ virtual ~OverviewToolbar(); |
+ |
+ ActionType current_action() const { return current_action_; } |
+ |
+ // Returns the action the gesture-event is targeting. |
+ ActionType GetHighlightAction(const ui::GestureEvent& event) const; |
+ |
+ void SetHighlightAction(ActionType action); |
+ void ShowActionButtons(); |
+ void HideActionButtons(); |
+ |
+ private: |
+ void ToggleActionButtonsVisibility(); |
+ bool IsEventOverButton(ActionButton* button, |
+ const ui::GestureEvent& event) const; |
+ gfx::Transform ComputeTransformFor(ActionButton* button) const; |
+ void TransformButton(ActionButton* button); |
+ |
+ bool shown_; |
+ scoped_ptr<ActionButton> close_; |
+ scoped_ptr<ActionButton> split_; |
+ ActionType current_action_; |
+ const gfx::Rect container_bounds_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(OverviewToolbar); |
+}; |
+ |
+} // namespace athena |
+ |
+#endif // ATHENA_WM_OVERVIEW_TOOLBAR_H_ |