diff options
Diffstat (limited to 'chromium/ash/wm/workspace_controller.h')
-rw-r--r-- | chromium/ash/wm/workspace_controller.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/chromium/ash/wm/workspace_controller.h b/chromium/ash/wm/workspace_controller.h new file mode 100644 index 00000000000..84df41c91d3 --- /dev/null +++ b/chromium/ash/wm/workspace_controller.h @@ -0,0 +1,55 @@ +// Copyright (c) 2012 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 ASH_WM_WORKSPACE_CONTROLLER_H_ +#define ASH_WM_WORKSPACE_CONTROLLER_H_ + +#include "ash/ash_export.h" +#include "ash/wm/workspace/workspace_types.h" +#include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" + +namespace aura { +class Window; +} + +namespace ash { +namespace internal { + +class ShelfLayoutManager; +class WorkspaceControllerTestHelper; +class WorkspaceEventHandler; +class WorkspaceLayoutManager; + +// WorkspaceController acts as a central place that ties together all the +// various workspace pieces. +class ASH_EXPORT WorkspaceController { + public: + explicit WorkspaceController(aura::Window* viewport); + virtual ~WorkspaceController(); + + // Returns the current window state. + WorkspaceWindowState GetWindowState() const; + + void SetShelf(ShelfLayoutManager* shelf); + + // Starts the animation that occurs on first login. + void DoInitialAnimation(); + + private: + friend class WorkspaceControllerTestHelper; + + aura::Window* viewport_; + + internal::ShelfLayoutManager* shelf_; + scoped_ptr<internal::WorkspaceEventHandler> event_handler_; + internal::WorkspaceLayoutManager* layout_manager_; + + DISALLOW_COPY_AND_ASSIGN(WorkspaceController); +}; + +} // namespace internal +} // namespace ash + +#endif // ASH_WM_WORKSPACE_CONTROLLER_H_ |