Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / ash / wm / overview / window_selector_panels.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_PANELS_H_
6 #define ASH_WM_OVERVIEW_WINDOW_SELECTOR_PANELS_H_
7
8 #include "ash/wm/overview/window_selector_item.h"
9 #include "base/compiler_specific.h"
10 #include "base/memory/scoped_vector.h"
11 #include "ui/gfx/rect.h"
12
13 namespace ash {
14
15 class ScopedTransformOverviewWindow;
16
17 // This class implements a window selector item containing one or more attached
18 // panel windows. These panels are grouped into a single overview item in
19 // overview mode and the callout arrows are hidden at this point.
20 class WindowSelectorPanels : public WindowSelectorItem {
21  public:
22   WindowSelectorPanels();
23   virtual ~WindowSelectorPanels();
24
25   // Adds |window| to the selector item. This window should be an attached
26   // panel window.
27   void AddWindow(aura::Window* window);
28
29   // WindowSelectorItem:
30   virtual aura::Window* GetRootWindow() OVERRIDE;
31   virtual bool HasSelectableWindow(const aura::Window* window) OVERRIDE;
32   virtual aura::Window* TargetedWindow(const aura::Window* target) OVERRIDE;
33   virtual void RestoreWindowOnExit(aura::Window* window) OVERRIDE;
34   virtual aura::Window* SelectionWindow() OVERRIDE;
35   virtual void RemoveWindow(const aura::Window* window) OVERRIDE;
36   virtual bool empty() const OVERRIDE;
37   virtual void PrepareForOverview() OVERRIDE;
38   virtual void SetItemBounds(aura::Window* root_window,
39                              const gfx::Rect& target_bounds,
40                              bool animate) OVERRIDE;
41
42  private:
43   typedef ScopedVector<ScopedTransformOverviewWindow> WindowList;
44   WindowList transform_windows_;
45
46   DISALLOW_COPY_AND_ASSIGN(WindowSelectorPanels);
47 };
48
49 }  // namespace ash
50
51 #endif  // ASH_WM_OVERVIEW_WINDOW_SELECTOR_PANELS_H_