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_VIEW_MANAGER_PUBLIC_CPP_VIEW_OBSERVER_H_ | |
6 #define COMPONENTS_VIEW_MANAGER_PUBLIC_CPP_VIEW_OBSERVER_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "components/view_manager/public/cpp/view.h" | |
11 #include "ui/mojo/events/input_events.mojom.h" | |
12 | |
13 namespace mojo { | |
14 | |
15 class View; | |
16 | |
17 // A note on -ing and -ed suffixes: | |
18 // | |
19 // -ing methods are called before changes are applied to the local view model. | |
20 // -ed methods are called after changes are applied to the local view model. | |
21 // | |
22 // If the change originated from another connection to the view manager, it's | |
23 // possible that the change has already been applied to the service-side model | |
24 // prior to being called, so for example in the case of OnViewDestroying(), it's | |
25 // possible the view has already been destroyed on the service side. | |
26 | |
27 class ViewObserver { | |
28 public: | |
29 struct TreeChangeParams { | |
30 TreeChangeParams(); | |
31 View* target; | |
32 View* old_parent; | |
33 View* new_parent; | |
34 View* receiver; | |
35 }; | |
36 | |
37 virtual void OnTreeChanging(const TreeChangeParams& params) {} | |
38 virtual void OnTreeChanged(const TreeChangeParams& params) {} | |
39 | |
40 virtual void OnViewReordering(View* view, | |
41 View* relative_view, | |
42 OrderDirection direction) {} | |
43 virtual void OnViewReordered(View* view, | |
44 View* relative_view, | |
45 OrderDirection direction) {} | |
46 | |
47 virtual void OnViewDestroying(View* view) {} | |
48 virtual void OnViewDestroyed(View* view) {} | |
49 | |
50 virtual void OnViewBoundsChanging(View* view, | |
51 const Rect& old_bounds, | |
52 const Rect& new_bounds) {} | |
53 virtual void OnViewBoundsChanged(View* view, | |
54 const Rect& old_bounds, | |
55 const Rect& new_bounds) {} | |
56 | |
57 virtual void OnViewViewportMetricsChanged( | |
58 View* view, | |
59 const ViewportMetrics& old_metrics, | |
60 const ViewportMetrics& new_metrics) {} | |
61 | |
62 virtual void OnViewFocusChanged(View* gained_focus, View* lost_focus) {} | |
63 | |
64 virtual void OnViewInputEvent(View* view, const EventPtr& event) {} | |
65 | |
66 virtual void OnViewVisibilityChanging(View* view) {} | |
67 virtual void OnViewVisibilityChanged(View* view) {} | |
68 | |
69 // Invoked when this View's shared properties have changed. This can either | |
70 // be caused by SetSharedProperty() being called locally, or by us receiving | |
71 // a mojo message that this property has changed. If this property has been | |
72 // added, |old_data| is null. If this property was removed, |new_data| is | |
73 // null. | |
74 virtual void OnViewSharedPropertyChanged( | |
75 View* view, | |
76 const std::string& name, | |
77 const std::vector<uint8_t>* old_data, | |
78 const std::vector<uint8_t>* new_data) {} | |
79 | |
80 // Invoked when SetProperty() or ClearProperty() is called on the window. | |
81 // |key| is either a WindowProperty<T>* (SetProperty, ClearProperty). Either | |
82 // way, it can simply be compared for equality with the property | |
83 // constant. |old| is the old property value, which must be cast to the | |
84 // appropriate type before use. | |
85 virtual void OnViewLocalPropertyChanged( | |
86 View* view, | |
87 const void* key, | |
88 intptr_t old) {} | |
89 | |
90 virtual void OnViewEmbeddedAppDisconnected(View* view) {} | |
91 | |
92 // Sent when the drawn state changes. This is only sent for the root nodes | |
93 // when embedded. | |
94 virtual void OnViewDrawnChanging(View* view) {} | |
95 virtual void OnViewDrawnChanged(View* view) {} | |
96 | |
97 protected: | |
98 virtual ~ViewObserver() {} | |
99 }; | |
100 | |
101 } // namespace mojo | |
102 | |
103 #endif // COMPONENTS_VIEW_MANAGER_PUBLIC_CPP_VIEW_OBSERVER_H_ | |
OLD | NEW |