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