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 UI_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_OBSERVER_H_
6#define UI_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_OBSERVER_H_
7
8#include "ash/ash_export.h"
9
10namespace gfx {
11class Rect;
12}
13
14namespace ash {
15
16// Observers to the DockedWindowLayoutManager are notified of significant
17// events that occur with the docked windows, such as the bounds change.
18class ASH_EXPORT DockedWindowLayoutManagerObserver {
19 public:
20  // Reason for notification. Allows selectively ignoring notifications to
21  // prevent a notification loop.
22  enum Reason {
23    CHILD_CHANGED,
24    DISPLAY_RESIZED,
25    DISPLAY_INSETS_CHANGED,
26    SHELF_ALIGNMENT_CHANGED,
27    KEYBOARD_BOUNDS_CHANGING
28  };
29  // Called after the dock bounds are changed.
30  virtual void OnDockBoundsChanging(const gfx::Rect& new_bounds,
31                                    Reason reason) = 0;
32
33 protected:
34  virtual ~DockedWindowLayoutManagerObserver() {}
35};
36
37}  // namespace ash
38
39#endif  // UI_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_OBSERVER_H_
40