blob: cdc76c21eca8d3c7960a7ba7f7b5936dc4b6840b [file] [log] [blame]
// Copyright 2014 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_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
#define ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
#include "ash/wm/wm_types.h"
namespace aura {
class Window;
}
namespace ash {
namespace wm {
class WindowState;
}
// A delegate which can be set to create and control a backdrop which gets
// placed below the top level window.
class WorkspaceLayoutManagerDelegate {
public:
WorkspaceLayoutManagerDelegate() {}
virtual ~WorkspaceLayoutManagerDelegate() {}
// A window got added to the layout.
virtual void OnWindowAddedToLayout(aura::Window* child) = 0;
// A window got removed from the layout.
virtual void OnWindowRemovedFromLayout(aura::Window* child) = 0;
// The visibility of a window has changed.
virtual void OnChildWindowVisibilityChanged(aura::Window* child,
bool visible) = 0;
// The stacking order of a window has changed.
virtual void OnWindowStackingChanged(aura::Window* window) = 0;
// A window state type has changed.
virtual void OnPostWindowStateTypeChange(wm::WindowState* window_state,
wm::WindowStateType old_type) = 0;
// The work area insets have changed, altering the total available space.
virtual void OnDisplayWorkAreaInsetsChanged() = 0;
};
} // namespace ash
#endif // ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_