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