Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / ash / wm / overview / window_selector_window.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef ASH_WM_OVERVIEW_WINDOW_SELECTOR_WINDOW_H_
6 #define ASH_WM_OVERVIEW_WINDOW_SELECTOR_WINDOW_H_
7
8 #include "ash/wm/overview/scoped_transform_overview_window.h"
9 #include "ash/wm/overview/window_selector_item.h"
10 #include "base/compiler_specific.h"
11 #include "ui/gfx/rect.h"
12
13 namespace aura {
14 class Window;
15 }
16
17 namespace views {
18 class Widget;
19 }
20
21 namespace ash {
22
23 // This implements a window overview item with a single window which can be
24 // selected.
25 class WindowSelectorWindow : public WindowSelectorItem {
26  public:
27   explicit WindowSelectorWindow(aura::Window* window);
28   ~WindowSelectorWindow() override;
29
30   // WindowSelectorItem:
31   aura::Window* GetRootWindow() override;
32   bool HasSelectableWindow(const aura::Window* window) override;
33   bool Contains(const aura::Window* target) override;
34   void RestoreWindowOnExit(aura::Window* window) override;
35   aura::Window* SelectionWindow() override;
36   void RemoveWindow(const aura::Window* window) override;
37   bool empty() const override;
38   void PrepareForOverview() override;
39   void SetItemBounds(aura::Window* root_window,
40                      const gfx::Rect& target_bounds,
41                      bool animate) override;
42   void SetOpacity(float opacity) override;
43
44  private:
45   // The window with a scoped transform represented by this selector item.
46   ScopedTransformOverviewWindow transform_window_;
47
48   DISALLOW_COPY_AND_ASSIGN(WindowSelectorWindow);
49 };
50
51 }  // namespace ash
52
53 #endif  // ASH_WM_OVERVIEW_WINDOW_SELECTOR_WINDOW_H_