OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ASH_LAUNCHER_LAUNCHER_H_ | 5 #ifndef ASH_LAUNCHER_LAUNCHER_H_ |
6 #define ASH_LAUNCHER_LAUNCHER_H_ | 6 #define ASH_LAUNCHER_LAUNCHER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "ash/ash_export.h" | 11 #include "ash/ash_export.h" |
12 | 12 |
13 namespace aura { | 13 namespace aura { |
14 class Window; | 14 class Window; |
15 } | 15 } |
16 | 16 |
17 namespace views { | 17 namespace views { |
18 class Widget; | 18 class Widget; |
19 } | 19 } |
20 | 20 |
21 namespace ash { | 21 namespace ash { |
22 | 22 |
23 namespace internal { | 23 namespace internal { |
24 class FocusCycler; | 24 class FocusCycler; |
| 25 class LauncherView; |
25 } | 26 } |
26 | 27 |
27 class LauncherDelegate; | 28 class LauncherDelegate; |
28 class LauncherModel; | 29 class LauncherModel; |
29 | 30 |
30 class ASH_EXPORT Launcher { | 31 class ASH_EXPORT Launcher { |
31 public: | 32 public: |
32 explicit Launcher(aura::Window* window_container); | 33 explicit Launcher(aura::Window* window_container); |
33 ~Launcher(); | 34 ~Launcher(); |
34 | 35 |
35 // Sets the focus cycler. | 36 // Sets the focus cycler. |
36 void SetFocusCycler(const internal::FocusCycler* focus_cycler); | 37 void SetFocusCycler(const internal::FocusCycler* focus_cycler); |
37 | 38 |
38 // Sets the width of the status area. | 39 // Sets the width of the status area. |
39 void SetStatusWidth(int width); | 40 void SetStatusWidth(int width); |
40 int GetStatusWidth(); | 41 int GetStatusWidth(); |
41 | 42 |
| 43 // Only to be called for testing. Retrieves the LauncherView. |
| 44 internal::LauncherView* GetLauncherViewForTest(); |
| 45 |
42 LauncherDelegate* delegate() { return delegate_.get(); } | 46 LauncherDelegate* delegate() { return delegate_.get(); } |
43 | 47 |
44 LauncherModel* model() { return model_.get(); } | 48 LauncherModel* model() { return model_.get(); } |
45 views::Widget* widget() { return widget_.get(); } | 49 views::Widget* widget() { return widget_.get(); } |
46 | 50 |
47 aura::Window* window_container() { return window_container_; } | 51 aura::Window* window_container() { return window_container_; } |
48 | 52 |
49 private: | 53 private: |
50 class DelegateView; | 54 class DelegateView; |
51 | 55 |
52 // If necessary asks the delegate if an entry should be created in the | 56 // If necessary asks the delegate if an entry should be created in the |
53 // launcher for |window|. This only asks the delegate once for a window. | 57 // launcher for |window|. This only asks the delegate once for a window. |
54 void MaybeAdd(aura::Window* window); | 58 void MaybeAdd(aura::Window* window); |
55 | 59 |
56 scoped_ptr<LauncherModel> model_; | 60 scoped_ptr<LauncherModel> model_; |
57 | 61 |
58 // Widget hosting the view. | 62 // Widget hosting the view. |
59 scoped_ptr<views::Widget> widget_; | 63 scoped_ptr<views::Widget> widget_; |
60 | 64 |
61 aura::Window* window_container_; | 65 aura::Window* window_container_; |
62 | 66 |
63 // Contents view of the widget. Houses the LauncherView. | 67 // Contents view of the widget. Houses the LauncherView. |
64 DelegateView* delegate_view_; | 68 DelegateView* delegate_view_; |
65 | 69 |
| 70 // LauncherView used to display icons. |
| 71 internal::LauncherView* launcher_view_; |
| 72 |
66 scoped_ptr<LauncherDelegate> delegate_; | 73 scoped_ptr<LauncherDelegate> delegate_; |
67 | 74 |
68 DISALLOW_COPY_AND_ASSIGN(Launcher); | 75 DISALLOW_COPY_AND_ASSIGN(Launcher); |
69 }; | 76 }; |
70 | 77 |
71 } // namespace ash | 78 } // namespace ash |
72 | 79 |
73 #endif // ASH_LAUNCHER_LAUNCHER_H_ | 80 #endif // ASH_LAUNCHER_LAUNCHER_H_ |
OLD | NEW |