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
3 // found in the LICENSE file.
5 #ifndef ASH_WM_WORKSPACE_CONTROLLER_H_
6 #define ASH_WM_WORKSPACE_CONTROLLER_H_
8 #include "ash/ash_export.h"
9 #include "ash/wm/workspace/workspace_types.h"
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
20 class ShelfLayoutManager
;
21 class WorkspaceControllerTestHelper
;
22 class WorkspaceEventHandler
;
23 class WorkspaceLayoutManager
;
25 // WorkspaceController acts as a central place that ties together all the
26 // various workspace pieces.
27 class ASH_EXPORT WorkspaceController
{
29 explicit WorkspaceController(aura::Window
* viewport
);
30 virtual ~WorkspaceController();
32 // Returns the current window state.
33 WorkspaceWindowState
GetWindowState() const;
35 void SetShelf(ShelfLayoutManager
* shelf
);
37 // Starts the animation that occurs on first login.
38 void DoInitialAnimation();
41 friend class WorkspaceControllerTestHelper
;
43 aura::Window
* viewport_
;
45 internal::ShelfLayoutManager
* shelf_
;
46 scoped_ptr
<internal::WorkspaceEventHandler
> event_handler_
;
47 internal::WorkspaceLayoutManager
* layout_manager_
;
49 DISALLOW_COPY_AND_ASSIGN(WorkspaceController
);
52 } // namespace internal
55 #endif // ASH_WM_WORKSPACE_CONTROLLER_H_