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