| 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_
|
|
|