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 16 // Observers to the DockedWindowLayoutManager are notified of significant 17 // events that occur with the docked windows, such as the bounds change. 18 class 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: ~DockedWindowLayoutManagerObserver()34 virtual ~DockedWindowLayoutManagerObserver() {} 35 }; 36 37 } // namespace ash 38 39 #endif // UI_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_OBSERVER_H_ 40