| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 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 COMPONENTS_MUS_PUBLIC_CPP_WINDOW_OBSERVER_H_ | |
| 6 #define COMPONENTS_MUS_PUBLIC_CPP_WINDOW_OBSERVER_H_ | |
| 7 | |
| 8 #include <stdint.h> | |
| 9 | |
| 10 #include <vector> | |
| 11 | |
| 12 #include "components/mus/public/cpp/window.h" | |
| 13 | |
| 14 namespace mus { | |
| 15 | |
| 16 class Window; | |
| 17 | |
| 18 // A note on -ing and -ed suffixes: | |
| 19 // | |
| 20 // -ing methods are called before changes are applied to the local window model. | |
| 21 // -ed methods are called after changes are applied to the local window model. | |
| 22 // | |
| 23 // If the change originated from another connection to the window manager, it's | |
| 24 // possible that the change has already been applied to the service-side model | |
| 25 // prior to being called, so for example in the case of OnWindowDestroying(), | |
| 26 // it's possible the window has already been destroyed on the service side. | |
| 27 | |
| 28 class WindowObserver { | |
| 29 public: | |
| 30 struct TreeChangeParams { | |
| 31 TreeChangeParams(); | |
| 32 Window* target; | |
| 33 Window* old_parent; | |
| 34 Window* new_parent; | |
| 35 Window* receiver; | |
| 36 }; | |
| 37 | |
| 38 virtual void OnTreeChanging(const TreeChangeParams& params) {} | |
| 39 virtual void OnTreeChanged(const TreeChangeParams& params) {} | |
| 40 | |
| 41 virtual void OnWindowReordering(Window* window, | |
| 42 Window* relative_window, | |
| 43 mojom::OrderDirection direction) {} | |
| 44 virtual void OnWindowReordered(Window* window, | |
| 45 Window* relative_window, | |
| 46 mojom::OrderDirection direction) {} | |
| 47 | |
| 48 virtual void OnWindowDestroying(Window* window) {} | |
| 49 virtual void OnWindowDestroyed(Window* window) {} | |
| 50 | |
| 51 virtual void OnWindowBoundsChanging(Window* window, | |
| 52 const gfx::Rect& old_bounds, | |
| 53 const gfx::Rect& new_bounds) {} | |
| 54 virtual void OnWindowBoundsChanged(Window* window, | |
| 55 const gfx::Rect& old_bounds, | |
| 56 const gfx::Rect& new_bounds) {} | |
| 57 virtual void OnWindowLostCapture(Window* window) {} | |
| 58 virtual void OnWindowClientAreaChanged( | |
| 59 Window* window, | |
| 60 const gfx::Insets& old_client_area, | |
| 61 const std::vector<gfx::Rect>& old_additional_client_areas) {} | |
| 62 | |
| 63 virtual void OnWindowFocusChanged(Window* gained_focus, Window* lost_focus) {} | |
| 64 | |
| 65 virtual void OnWindowPredefinedCursorChanged(Window* window, | |
| 66 mojom::Cursor cursor) {} | |
| 67 virtual void OnWindowVisibilityChanging(Window* window) {} | |
| 68 virtual void OnWindowVisibilityChanged(Window* window) {} | |
| 69 virtual void OnWindowOpacityChanged(Window* window, | |
| 70 float old_opacity, | |
| 71 float new_opacity) {} | |
| 72 | |
| 73 // Invoked when this Window's shared properties have changed. This can either | |
| 74 // be caused by SetSharedProperty() being called locally, or by us receiving | |
| 75 // a mojo message that this property has changed. If this property has been | |
| 76 // added, |old_data| is null. If this property was removed, |new_data| is | |
| 77 // null. | |
| 78 virtual void OnWindowSharedPropertyChanged( | |
| 79 Window* window, | |
| 80 const std::string& name, | |
| 81 const std::vector<uint8_t>* old_data, | |
| 82 const std::vector<uint8_t>* new_data) {} | |
| 83 | |
| 84 // Invoked when SetProperty() or ClearProperty() is called on the window. | |
| 85 // |key| is either a WindowProperty<T>* (SetProperty, ClearProperty). Either | |
| 86 // way, it can simply be compared for equality with the property | |
| 87 // constant. |old| is the old property value, which must be cast to the | |
| 88 // appropriate type before use. | |
| 89 virtual void OnWindowLocalPropertyChanged(Window* window, | |
| 90 const void* key, | |
| 91 intptr_t old) {} | |
| 92 | |
| 93 virtual void OnWindowEmbeddedAppDisconnected(Window* window) {} | |
| 94 | |
| 95 // Sent when the drawn state changes. This is only sent for the root nodes | |
| 96 // when embedded. | |
| 97 virtual void OnWindowDrawnChanging(Window* window) {} | |
| 98 virtual void OnWindowDrawnChanged(Window* window) {} | |
| 99 | |
| 100 // The WindowManager has requested the window to close. If the observer | |
| 101 // allows the close it should destroy the window as appropriate. | |
| 102 virtual void OnRequestClose(Window* window) {} | |
| 103 | |
| 104 protected: | |
| 105 virtual ~WindowObserver() {} | |
| 106 }; | |
| 107 | |
| 108 } // namespace mus | |
| 109 | |
| 110 #endif // COMPONENTS_MUS_PUBLIC_CPP_WINDOW_OBSERVER_H_ | |
| OLD | NEW |