Home | History | Annotate | Download | only in public
      1 // Copyright 2014 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 ATHENA_SCREEN_PUBLIC_WINDOW_MANAGER_H_
      6 #define ATHENA_SCREEN_PUBLIC_WINDOW_MANAGER_H_
      7 
      8 #include "athena/athena_export.h"
      9 
     10 namespace athena {
     11 
     12 class WindowListProvider;
     13 class WindowManagerObserver;
     14 
     15 // Manages the application, web windows.
     16 class ATHENA_EXPORT WindowManager {
     17  public:
     18   // Creates and deletes the singleton object of the WindowManager
     19   // implementation.
     20   static WindowManager* Create();
     21   static void Shutdown();
     22   static WindowManager* Get();
     23 
     24   virtual ~WindowManager() {}
     25 
     26   virtual void ToggleOverview() = 0;
     27 
     28   virtual bool IsOverviewModeActive() = 0;
     29 
     30   virtual void AddObserver(WindowManagerObserver* observer) = 0;
     31   virtual void RemoveObserver(WindowManagerObserver* observer) = 0;
     32 
     33   virtual void ToggleSplitViewForTest() = 0;
     34 
     35   // This returns the window list provider of the current MRU order of windows.
     36   // The ownership remains with the WindowManager.
     37   virtual WindowListProvider* GetWindowListProvider() = 0;
     38 };
     39 
     40 }  // namespace athena
     41 
     42 #endif  // ATHENA_SCREEN_PUBLIC_WINDOW_MANAGER_H_
     43