Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: ui/views/view.h

Issue 2713643002: Add View::AddedToWidget and RemovedFromWidget. (Closed)
Patch Set: Review fixes. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ui/views/view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_VIEWS_VIEW_H_ 5 #ifndef UI_VIEWS_VIEW_H_
6 #define UI_VIEWS_VIEW_H_ 6 #define UI_VIEWS_VIEW_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 // children. For each of these views, a notification is sent to the 1095 // children. For each of these views, a notification is sent to the
1096 // view and all parents. 1096 // view and all parents.
1097 // 1097 //
1098 // When a view is added, a notification is sent to the view, all its 1098 // When a view is added, a notification is sent to the view, all its
1099 // parents, and all its children (and grand children) 1099 // parents, and all its children (and grand children)
1100 // 1100 //
1101 // Default implementation does nothing. Override to perform operations 1101 // Default implementation does nothing. Override to perform operations
1102 // required when a view is added or removed from a view hierarchy 1102 // required when a view is added or removed from a view hierarchy
1103 // 1103 //
1104 // Refer to comments in struct |ViewHierarchyChangedDetails| for |details|. 1104 // Refer to comments in struct |ViewHierarchyChangedDetails| for |details|.
1105 //
1106 // See also AddedToWidget() and RemovedFromWidget() for detecting when the
1107 // view is added to/removed from a widget.
1105 virtual void ViewHierarchyChanged(const ViewHierarchyChangedDetails& details); 1108 virtual void ViewHierarchyChanged(const ViewHierarchyChangedDetails& details);
1106 1109
1107 // When SetVisible() changes the visibility of a view, this method is 1110 // When SetVisible() changes the visibility of a view, this method is
1108 // invoked for that view as well as all the children recursively. 1111 // invoked for that view as well as all the children recursively.
1109 virtual void VisibilityChanged(View* starting_from, bool is_visible); 1112 virtual void VisibilityChanged(View* starting_from, bool is_visible);
1110 1113
1111 // This method is invoked when the parent NativeView of the widget that the 1114 // This method is invoked when the parent NativeView of the widget that the
1112 // view is attached to has changed and the view hierarchy has not changed. 1115 // view is attached to has changed and the view hierarchy has not changed.
1113 // ViewHierarchyChanged() is called when the parent NativeView of the widget 1116 // ViewHierarchyChanged() is called when the parent NativeView of the widget
1114 // that the view is attached to is changed as a result of changing the view 1117 // that the view is attached to is changed as a result of changing the view
1115 // hierarchy. Overriding this method is useful for tracking which 1118 // hierarchy. Overriding this method is useful for tracking which
1116 // FocusManager manages this view. 1119 // FocusManager manages this view.
1117 virtual void NativeViewHierarchyChanged(); 1120 virtual void NativeViewHierarchyChanged();
1118 1121
1122 // This method is invoked for a view when it is attached to a hierarchy with
1123 // a widget, i.e. GetWidget() starts returning a non-null result.
1124 // It is also called when the view is moved to a different widget.
1125 virtual void AddedToWidget();
1126
1127 // This method is invoked for a view when it is removed from a hierarchy with
1128 // a widget or moved to a different widget.
1129 virtual void RemovedFromWidget();
1130
1119 // Painting ------------------------------------------------------------------ 1131 // Painting ------------------------------------------------------------------
1120 1132
1121 // Responsible for calling Paint() on child Views. Override to control the 1133 // Responsible for calling Paint() on child Views. Override to control the
1122 // order child Views are painted. 1134 // order child Views are painted.
1123 virtual void PaintChildren(const ui::PaintContext& context); 1135 virtual void PaintChildren(const ui::PaintContext& context);
1124 1136
1125 // Override to provide rendering in any part of the View's bounds. Typically 1137 // Override to provide rendering in any part of the View's bounds. Typically
1126 // this is the "contents" of the view. If you override this method you will 1138 // this is the "contents" of the view. If you override this method you will
1127 // have to call the subsequent OnPaint*() methods manually. 1139 // have to call the subsequent OnPaint*() methods manually.
1128 virtual void OnPaint(gfx::Canvas* canvas); 1140 virtual void OnPaint(gfx::Canvas* canvas);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 void DoRemoveChildView(View* view, 1303 void DoRemoveChildView(View* view,
1292 bool update_focus_cycle, 1304 bool update_focus_cycle,
1293 bool update_tool_tip, 1305 bool update_tool_tip,
1294 bool delete_removed_view, 1306 bool delete_removed_view,
1295 View* new_parent); 1307 View* new_parent);
1296 1308
1297 // Call ViewHierarchyChanged() for all child views and all parents. 1309 // Call ViewHierarchyChanged() for all child views and all parents.
1298 // |old_parent| is the original parent of the View that was removed. 1310 // |old_parent| is the original parent of the View that was removed.
1299 // If |new_parent| is not NULL, the View that was removed will be reparented 1311 // If |new_parent| is not NULL, the View that was removed will be reparented
1300 // to |new_parent| after the remove operation. 1312 // to |new_parent| after the remove operation.
1301 void PropagateRemoveNotifications(View* old_parent, View* new_parent); 1313 // If is_removed_from_widget is true, calls RemovedFromWidget for all
1314 // children.
1315 void PropagateRemoveNotifications(View* old_parent,
1316 View* new_parent,
1317 bool is_removed_from_widget);
1302 1318
1303 // Call ViewHierarchyChanged() for all children. 1319 // Call ViewHierarchyChanged() for all children.
1304 void PropagateAddNotifications(const ViewHierarchyChangedDetails& details); 1320 // If is_added_to_widget is true, calls AddedToWidget for all children.
1321 void PropagateAddNotifications(const ViewHierarchyChangedDetails& details,
1322 bool is_added_to_widget);
1305 1323
1306 // Propagates NativeViewHierarchyChanged() notification through all the 1324 // Propagates NativeViewHierarchyChanged() notification through all the
1307 // children. 1325 // children.
1308 void PropagateNativeViewHierarchyChanged(); 1326 void PropagateNativeViewHierarchyChanged();
1309 1327
1310 // Takes care of registering/unregistering accelerators if 1328 // Takes care of registering/unregistering accelerators if
1311 // |register_accelerators| true and calls ViewHierarchyChanged(). 1329 // |register_accelerators| true and calls ViewHierarchyChanged().
1312 void ViewHierarchyChangedImpl(bool register_accelerators, 1330 void ViewHierarchyChangedImpl(bool register_accelerators,
1313 const ViewHierarchyChangedDetails& details); 1331 const ViewHierarchyChangedDetails& details);
1314 1332
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 // Observers ------------------------------------------------------------- 1641 // Observers -------------------------------------------------------------
1624 1642
1625 base::ObserverList<ViewObserver> observers_; 1643 base::ObserverList<ViewObserver> observers_;
1626 1644
1627 DISALLOW_COPY_AND_ASSIGN(View); 1645 DISALLOW_COPY_AND_ASSIGN(View);
1628 }; 1646 };
1629 1647
1630 } // namespace views 1648 } // namespace views
1631 1649
1632 #endif // UI_VIEWS_VIEW_H_ 1650 #endif // UI_VIEWS_VIEW_H_
OLDNEW
« no previous file with comments | « no previous file | ui/views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698