1// Copyright 2013 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_SHELF_SHELF_LAYOUT_MANAGER_OBSERVER_H_
6#define ASH_SHELF_SHELF_LAYOUT_MANAGER_OBSERVER_H_
7
8#include "ash/ash_export.h"
9#include "ash/shelf/background_animator.h"
10#include "ash/shelf/shelf_types.h"
11
12namespace aura {
13class Window;
14}
15
16namespace ash {
17
18class ASH_EXPORT ShelfLayoutManagerObserver {
19 public:
20  virtual ~ShelfLayoutManagerObserver() {}
21
22  // Called when the target ShelfLayoutManager will be deleted.
23  virtual void WillDeleteShelf() {}
24
25  // Called when the visibility change is scheduled.
26  virtual void WillChangeVisibilityState(ShelfVisibilityState new_state) {}
27
28  // Called when the auto hide state is changed.
29  virtual void OnAutoHideStateChanged(ShelfAutoHideState new_state) {}
30
31  // Called when the auto hide behavior is changed.
32  virtual void OnAutoHideBehaviorChanged(aura::Window* root_window,
33                                         ShelfAutoHideBehavior new_behavior) {}
34
35  // Called when shelf background animation is started.
36  virtual void OnBackgroundUpdated(
37      ShelfBackgroundType background_type,
38      BackgroundAnimatorChangeType change_type) {}
39};
40
41}  // namespace ash
42
43#endif  // ASH_SHELF_SHELF_LAYOUT_MANAGER_OBSERVER_H_
44