Home | History | Annotate | Download | only in workspace
      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 ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
      6 #define ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
      7 
      8 #include "ash/wm/wm_types.h"
      9 
     10 namespace aura {
     11 class Window;
     12 }
     13 
     14 namespace ash {
     15 namespace wm {
     16 class WindowState;
     17 }
     18 
     19 // A delegate which can be set to create and control a backdrop which gets
     20 // placed below the top level window.
     21 class WorkspaceLayoutManagerDelegate {
     22  public:
     23   WorkspaceLayoutManagerDelegate() {}
     24   virtual ~WorkspaceLayoutManagerDelegate() {}
     25 
     26   // A window got added to the layout.
     27   virtual void OnWindowAddedToLayout(aura::Window* child) = 0;
     28 
     29   // A window got removed from the layout.
     30   virtual void OnWindowRemovedFromLayout(aura::Window* child) = 0;
     31 
     32   // The visibility of a window has changed.
     33   virtual void OnChildWindowVisibilityChanged(aura::Window* child,
     34                                               bool visible) = 0;
     35 
     36   // The stacking order of a window has changed.
     37   virtual void OnWindowStackingChanged(aura::Window* window) = 0;
     38 
     39   // A window state type has changed.
     40   virtual void OnPostWindowStateTypeChange(wm::WindowState* window_state,
     41                                            wm::WindowStateType old_type) = 0;
     42 
     43   // The work area insets have changed, altering the total available space.
     44   virtual void OnDisplayWorkAreaInsetsChanged() = 0;
     45 };
     46 
     47 }  // namespace ash
     48 
     49 #endif  // ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
     50