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

Side by Side Diff: views/view.cc

Issue 7349021: Convert some more view methods to the ui/views style. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « views/view.h ('k') | views/widget/root_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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "views/view.h" 5 #include "views/view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 void View::RemoveChildView(View* view) { 216 void View::RemoveChildView(View* view) {
217 DoRemoveChildView(view, true, true, false); 217 DoRemoveChildView(view, true, true, false);
218 } 218 }
219 219
220 void View::RemoveAllChildViews(bool delete_children) { 220 void View::RemoveAllChildViews(bool delete_children) {
221 while (!children_.empty()) 221 while (!children_.empty())
222 DoRemoveChildView(children_.front(), false, false, delete_children); 222 DoRemoveChildView(children_.front(), false, false, delete_children);
223 UpdateTooltip(); 223 UpdateTooltip();
224 } 224 }
225 225
226 const View* View::GetChildViewAt(int index) const {
227 return index < child_count() ? children_[index] : NULL;
228 }
229
230 View* View::GetChildViewAt(int index) {
231 return
232 const_cast<View*>(const_cast<const View*>(this)->GetChildViewAt(index));
233 }
234
235 bool View::Contains(const View* view) const { 226 bool View::Contains(const View* view) const {
236 for (const View* v = view; v; v = v->parent_) { 227 for (const View* v = view; v; v = v->parent_) {
237 if (v == this) 228 if (v == this)
238 return true; 229 return true;
239 } 230 }
240 return false; 231 return false;
241 } 232 }
242 233
243 int View::GetIndexOf(const View* view) const { 234 int View::GetIndexOf(const View* view) const {
244 Views::const_iterator i(std::find(children_.begin(), children_.end(), view)); 235 Views::const_iterator i(std::find(children_.begin(), children_.end(), view));
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 if (layout_manager_.get()) 524 if (layout_manager_.get())
534 layout_manager_->Layout(this); 525 layout_manager_->Layout(this);
535 526
536 // Make sure to propagate the Layout() call to any children that haven't 527 // Make sure to propagate the Layout() call to any children that haven't
537 // received it yet through the layout manager and need to be laid out. This 528 // received it yet through the layout manager and need to be laid out. This
538 // is needed for the case when the child requires a layout but its bounds 529 // is needed for the case when the child requires a layout but its bounds
539 // weren't changed by the layout manager. If there is no layout manager, we 530 // weren't changed by the layout manager. If there is no layout manager, we
540 // just propagate the Layout() call down the hierarchy, so whoever receives 531 // just propagate the Layout() call down the hierarchy, so whoever receives
541 // the call can take appropriate action. 532 // the call can take appropriate action.
542 for (int i = 0, count = child_count(); i < count; ++i) { 533 for (int i = 0, count = child_count(); i < count; ++i) {
543 View* child = GetChildViewAt(i); 534 View* child = child_at(i);
544 if (child->needs_layout_ || !layout_manager_.get()) { 535 if (child->needs_layout_ || !layout_manager_.get()) {
545 child->needs_layout_ = false; 536 child->needs_layout_ = false;
546 child->Layout(); 537 child->Layout();
547 } 538 }
548 } 539 }
549 } 540 }
550 541
551 void View::InvalidateLayout() { 542 void View::InvalidateLayout() {
552 // Always invalidate up. This is needed to handle the case of us already being 543 // Always invalidate up. This is needed to handle the case of us already being
553 // valid, but not our parent. 544 // valid, but not our parent.
(...skipping 27 matching lines...) Expand all
581 return view; 572 return view;
582 } 573 }
583 return NULL; 574 return NULL;
584 } 575 }
585 576
586 const View* View::GetViewByID(int id) const { 577 const View* View::GetViewByID(int id) const {
587 if (id == id_) 578 if (id == id_)
588 return const_cast<View*>(this); 579 return const_cast<View*>(this);
589 580
590 for (int i = 0, count = child_count(); i < count; ++i) { 581 for (int i = 0, count = child_count(); i < count; ++i) {
591 const View* view = GetChildViewAt(i)->GetViewByID(id); 582 const View* view = child_at(i)->GetViewByID(id);
592 if (view) 583 if (view)
593 return view; 584 return view;
594 } 585 }
595 return NULL; 586 return NULL;
596 } 587 }
597 588
598 View* View::GetViewByID(int id) { 589 View* View::GetViewByID(int id) {
599 return const_cast<View*>(const_cast<const View*>(this)->GetViewByID(id)); 590 return const_cast<View*>(const_cast<const View*>(this)->GetViewByID(id));
600 } 591 }
601 592
602 void View::SetGroup(int gid) { 593 void View::SetGroup(int gid) {
603 // Don't change the group id once it's set. 594 // Don't change the group id once it's set.
604 DCHECK(group_ == -1 || group_ == gid); 595 DCHECK(group_ == -1 || group_ == gid);
605 group_ = gid; 596 group_ = gid;
606 } 597 }
607 598
608 int View::GetGroup() const { 599 int View::GetGroup() const {
609 return group_; 600 return group_;
610 } 601 }
611 602
612 bool View::IsGroupFocusTraversable() const { 603 bool View::IsGroupFocusTraversable() const {
613 return true; 604 return true;
614 } 605 }
615 606
616 void View::GetViewsInGroup(int group, Views* views) { 607 void View::GetViewsInGroup(int group, Views* views) {
617 if (group_ == group) 608 if (group_ == group)
618 views->push_back(this); 609 views->push_back(this);
619 610
620 for (int i = 0, count = child_count(); i < count; ++i) 611 for (int i = 0, count = child_count(); i < count; ++i)
621 GetChildViewAt(i)->GetViewsInGroup(group, views); 612 child_at(i)->GetViewsInGroup(group, views);
622 } 613 }
623 614
624 View* View::GetSelectedViewForGroup(int group) { 615 View* View::GetSelectedViewForGroup(int group) {
625 Views views; 616 Views views;
626 GetWidget()->GetRootView()->GetViewsInGroup(group, &views); 617 GetWidget()->GetRootView()->GetViewsInGroup(group, &views);
627 return views.empty() ? NULL : views[0]; 618 return views.empty() ? NULL : views[0];
628 } 619 }
629 620
630 // Coordinate conversion ------------------------------------------------------- 621 // Coordinate conversion -------------------------------------------------------
631 622
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 bool View::get_use_acceleration_when_possible() { 785 bool View::get_use_acceleration_when_possible() {
795 return use_acceleration_when_possible; 786 return use_acceleration_when_possible;
796 } 787 }
797 788
798 // Input ----------------------------------------------------------------------- 789 // Input -----------------------------------------------------------------------
799 790
800 View* View::GetEventHandlerForPoint(const gfx::Point& point) { 791 View* View::GetEventHandlerForPoint(const gfx::Point& point) {
801 // Walk the child Views recursively looking for the View that most 792 // Walk the child Views recursively looking for the View that most
802 // tightly encloses the specified point. 793 // tightly encloses the specified point.
803 for (int i = child_count() - 1; i >= 0; --i) { 794 for (int i = child_count() - 1; i >= 0; --i) {
804 View* child = GetChildViewAt(i); 795 View* child = child_at(i);
805 if (!child->IsVisible()) 796 if (!child->IsVisible())
806 continue; 797 continue;
807 798
808 gfx::Point point_in_child_coords(point); 799 gfx::Point point_in_child_coords(point);
809 View::ConvertPointToView(this, child, &point_in_child_coords); 800 View::ConvertPointToView(this, child, &point_in_child_coords);
810 if (child->HitTest(point_in_child_coords)) 801 if (child->HitTest(point_in_child_coords))
811 return child->GetEventHandlerForPoint(point_in_child_coords); 802 return child->GetEventHandlerForPoint(point_in_child_coords);
812 } 803 }
813 return this; 804 return this;
814 } 805 }
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 if (focus_manager) { 1121 if (focus_manager) {
1131 RegisterPendingAccelerators(); 1122 RegisterPendingAccelerators();
1132 accelerator_registration_delayed_ = false; 1123 accelerator_registration_delayed_ = false;
1133 } 1124 }
1134 } 1125 }
1135 } 1126 }
1136 1127
1137 // Painting -------------------------------------------------------------------- 1128 // Painting --------------------------------------------------------------------
1138 1129
1139 void View::PaintChildren(gfx::Canvas* canvas) { 1130 void View::PaintChildren(gfx::Canvas* canvas) {
1140 for (int i = 0, count = child_count(); i < count; ++i) { 1131 for (int i = 0, count = child_count(); i < count; ++i)
1141 View* child = GetChildViewAt(i); 1132 child_at(i)->Paint(canvas);
1142 if (!child) {
1143 NOTREACHED() << "Should not have a NULL child View for index in bounds";
1144 continue;
1145 }
1146 child->Paint(canvas);
1147 }
1148 } 1133 }
1149 1134
1150 void View::OnPaint(gfx::Canvas* canvas) { 1135 void View::OnPaint(gfx::Canvas* canvas) {
1151 OnPaintBackground(canvas); 1136 OnPaintBackground(canvas);
1152 OnPaintFocusBorder(canvas); 1137 OnPaintFocusBorder(canvas);
1153 OnPaintBorder(canvas); 1138 OnPaintBorder(canvas);
1154 } 1139 }
1155 1140
1156 void View::OnPaintBackground(gfx::Canvas* canvas) { 1141 void View::OnPaintBackground(gfx::Canvas* canvas) {
1157 if (background_.get()) 1142 if (background_.get())
(...skipping 15 matching lines...) Expand all
1173 void View::PaintComposite() { 1158 void View::PaintComposite() {
1174 if (!IsVisible()) 1159 if (!IsVisible())
1175 return; 1160 return;
1176 1161
1177 if (layer()) { 1162 if (layer()) {
1178 OnWillCompositeLayer(); 1163 OnWillCompositeLayer();
1179 layer()->Draw(); 1164 layer()->Draw();
1180 } 1165 }
1181 1166
1182 for (int i = 0, count = child_count(); i < count; ++i) 1167 for (int i = 0, count = child_count(); i < count; ++i)
1183 GetChildViewAt(i)->PaintComposite(); 1168 child_at(i)->PaintComposite();
1184 } 1169 }
1185 1170
1186 void View::SchedulePaintInternal(const gfx::Rect& rect) { 1171 void View::SchedulePaintInternal(const gfx::Rect& rect) {
1187 if (parent_) { 1172 if (parent_) {
1188 // Translate the requested paint rect to the parent's coordinate system 1173 // Translate the requested paint rect to the parent's coordinate system
1189 // then pass this notification up to the parent. 1174 // then pass this notification up to the parent.
1190 parent_->SchedulePaintInternal(ConvertRectToParent(rect)); 1175 parent_->SchedulePaintInternal(ConvertRectToParent(rect));
1191 } 1176 }
1192 } 1177 }
1193 1178
1194 void View::PaintToLayer(const gfx::Rect& dirty_region) { 1179 void View::PaintToLayer(const gfx::Rect& dirty_region) {
1195 if (!IsVisible()) 1180 if (!IsVisible())
1196 return; 1181 return;
1197 1182
1198 if (layer() && layer_helper_->bitmap_needs_updating()) { 1183 if (layer() && layer_helper_->bitmap_needs_updating()) {
1199 if (!layer_helper_->needs_paint_all()) 1184 if (!layer_helper_->needs_paint_all())
1200 layer_helper_->set_clip_rect(dirty_region); 1185 layer_helper_->set_clip_rect(dirty_region);
1201 else 1186 else
1202 layer_helper_->set_needs_paint_all(false); 1187 layer_helper_->set_needs_paint_all(false);
1203 Paint(NULL); 1188 Paint(NULL);
1204 layer_helper_->set_clip_rect(gfx::Rect()); 1189 layer_helper_->set_clip_rect(gfx::Rect());
1205 } else { 1190 } else {
1206 // Forward to all children as a descendant may be dirty and have a layer. 1191 // Forward to all children as a descendant may be dirty and have a layer.
1207 for (int i = child_count() - 1; i >= 0; --i) { 1192 for (int i = child_count() - 1; i >= 0; --i) {
1208 View* child_view = GetChildViewAt(i); 1193 View* child_view = child_at(i);
1209 1194
1210 gfx::Rect child_dirty_rect = dirty_region; 1195 gfx::Rect child_dirty_rect = dirty_region;
1211 child_dirty_rect.Offset(-child_view->GetMirroredX(), -child_view->y()); 1196 child_dirty_rect.Offset(-child_view->GetMirroredX(), -child_view->y());
1212 child_view->GetTransform().TransformRectReverse(&child_dirty_rect); 1197 child_view->GetTransform().TransformRectReverse(&child_dirty_rect);
1213 child_dirty_rect = gfx::Rect(gfx::Point(), child_view->size()).Intersect( 1198 child_dirty_rect = gfx::Rect(gfx::Point(), child_view->size()).Intersect(
1214 child_dirty_rect); 1199 child_dirty_rect);
1215 1200
1216 if (!child_dirty_rect.IsEmpty()) 1201 if (!child_dirty_rect.IsEmpty())
1217 GetChildViewAt(i)->PaintToLayer(child_dirty_rect); 1202 child_at(i)->PaintToLayer(child_dirty_rect);
1218 } 1203 }
1219 } 1204 }
1220 } 1205 }
1221 1206
1222 void View::OnWillCompositeLayer() { 1207 void View::OnWillCompositeLayer() {
1223 } 1208 }
1224 1209
1225 bool View::SetExternalTexture(ui::Texture* texture) { 1210 bool View::SetExternalTexture(ui::Texture* texture) {
1226 // A little heavy-handed -- it should be that each child has it's own layer. 1211 // A little heavy-handed -- it should be that each child has it's own layer.
1227 // The desired use case is where there are no children. 1212 // The desired use case is where there are no children.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 1270
1286 offset->Offset(x(), y()); 1271 offset->Offset(x(), y());
1287 parent_->CalculateOffsetToAncestorWithLayer(offset, ancestor); 1272 parent_->CalculateOffsetToAncestorWithLayer(offset, ancestor);
1288 } 1273 }
1289 1274
1290 void View::CreateLayerIfNecessary() { 1275 void View::CreateLayerIfNecessary() {
1291 if (ShouldPaintToLayer()) 1276 if (ShouldPaintToLayer())
1292 CreateLayer(); 1277 CreateLayer();
1293 1278
1294 for (int i = 0, count = child_count(); i < count; ++i) 1279 for (int i = 0, count = child_count(); i < count; ++i)
1295 GetChildViewAt(i)->CreateLayerIfNecessary(); 1280 child_at(i)->CreateLayerIfNecessary();
1296 } 1281 }
1297 1282
1298 void View::MoveLayerToParent(ui::Layer* parent_layer, 1283 void View::MoveLayerToParent(ui::Layer* parent_layer,
1299 const gfx::Point& point) { 1284 const gfx::Point& point) {
1300 gfx::Point local_point(point); 1285 gfx::Point local_point(point);
1301 if (parent_layer != layer()) 1286 if (parent_layer != layer())
1302 local_point.Offset(x(), y()); 1287 local_point.Offset(x(), y());
1303 if (layer() && parent_layer != layer()) { 1288 if (layer() && parent_layer != layer()) {
1304 parent_layer->Add(layer()); 1289 parent_layer->Add(layer());
1305 layer()->set_bounds( 1290 layer()->set_bounds(
1306 gfx::Rect(local_point.x(), local_point.y(), width(), height())); 1291 gfx::Rect(local_point.x(), local_point.y(), width(), height()));
1307 } else { 1292 } else {
1308 for (int i = 0, count = child_count(); i < count; ++i) 1293 for (int i = 0, count = child_count(); i < count; ++i)
1309 GetChildViewAt(i)->MoveLayerToParent(parent_layer, local_point); 1294 child_at(i)->MoveLayerToParent(parent_layer, local_point);
1310 } 1295 }
1311 } 1296 }
1312 1297
1313 void View::DestroyLayerRecurse() { 1298 void View::DestroyLayerRecurse() {
1314 for (int i = child_count() - 1; i >= 0; --i) 1299 for (int i = child_count() - 1; i >= 0; --i)
1315 GetChildViewAt(i)->DestroyLayerRecurse(); 1300 child_at(i)->DestroyLayerRecurse();
1316 DestroyLayer(); 1301 DestroyLayer();
1317 } 1302 }
1318 1303
1319 void View::UpdateLayerBounds(const gfx::Point& offset) { 1304 void View::UpdateLayerBounds(const gfx::Point& offset) {
1320 if (layer()) { 1305 if (layer()) {
1321 layer_helper_->property_setter()->SetBounds( 1306 layer_helper_->property_setter()->SetBounds(
1322 layer(), 1307 layer(),
1323 gfx::Rect(offset.x() + x(), offset.y() + y(), width(), height())); 1308 gfx::Rect(offset.x() + x(), offset.y() + y(), width(), height()));
1324 } else { 1309 } else {
1325 gfx::Point new_offset(offset.x() + x(), offset.y() + y()); 1310 gfx::Point new_offset(offset.x() + x(), offset.y() + y());
1326 for (int i = 0, count = child_count(); i < count; ++i) 1311 for (int i = 0, count = child_count(); i < count; ++i)
1327 GetChildViewAt(i)->UpdateLayerBounds(new_offset); 1312 child_at(i)->UpdateLayerBounds(new_offset);
1328 } 1313 }
1329 } 1314 }
1330 1315
1331 // Input ----------------------------------------------------------------------- 1316 // Input -----------------------------------------------------------------------
1332 1317
1333 bool View::HasHitTestMask() const { 1318 bool View::HasHitTestMask() const {
1334 return false; 1319 return false;
1335 } 1320 }
1336 1321
1337 void View::GetHitTestMask(gfx::Path* mask) const { 1322 void View::GetHitTestMask(gfx::Path* mask) const {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 1460
1476 if (update_tool_tip) 1461 if (update_tool_tip)
1477 UpdateTooltip(); 1462 UpdateTooltip();
1478 1463
1479 if (layout_manager_.get()) 1464 if (layout_manager_.get())
1480 layout_manager_->ViewRemoved(this, view); 1465 layout_manager_->ViewRemoved(this, view);
1481 } 1466 }
1482 1467
1483 void View::PropagateRemoveNotifications(View* parent) { 1468 void View::PropagateRemoveNotifications(View* parent) {
1484 for (int i = 0, count = child_count(); i < count; ++i) 1469 for (int i = 0, count = child_count(); i < count; ++i)
1485 GetChildViewAt(i)->PropagateRemoveNotifications(parent); 1470 child_at(i)->PropagateRemoveNotifications(parent);
1486 1471
1487 for (View* v = this; v; v = v->parent_) 1472 for (View* v = this; v; v = v->parent_)
1488 v->ViewHierarchyChangedImpl(true, false, parent, this); 1473 v->ViewHierarchyChangedImpl(true, false, parent, this);
1489 } 1474 }
1490 1475
1491 void View::PropagateAddNotifications(View* parent, View* child) { 1476 void View::PropagateAddNotifications(View* parent, View* child) {
1492 for (int i = 0, count = child_count(); i < count; ++i) 1477 for (int i = 0, count = child_count(); i < count; ++i)
1493 GetChildViewAt(i)->PropagateAddNotifications(parent, child); 1478 child_at(i)->PropagateAddNotifications(parent, child);
1494 ViewHierarchyChangedImpl(true, true, parent, child); 1479 ViewHierarchyChangedImpl(true, true, parent, child);
1495 } 1480 }
1496 1481
1497 void View::PropagateNativeViewHierarchyChanged(bool attached, 1482 void View::PropagateNativeViewHierarchyChanged(bool attached,
1498 gfx::NativeView native_view, 1483 gfx::NativeView native_view,
1499 internal::RootView* root_view) { 1484 internal::RootView* root_view) {
1500 for (int i = 0, count = child_count(); i < count; ++i) 1485 for (int i = 0, count = child_count(); i < count; ++i)
1501 GetChildViewAt(i)->PropagateNativeViewHierarchyChanged(attached, 1486 child_at(i)->PropagateNativeViewHierarchyChanged(attached,
1502 native_view, 1487 native_view,
1503 root_view); 1488 root_view);
1504 NativeViewHierarchyChanged(attached, native_view, root_view); 1489 NativeViewHierarchyChanged(attached, native_view, root_view);
1505 } 1490 }
1506 1491
1507 void View::ViewHierarchyChangedImpl(bool register_accelerators, 1492 void View::ViewHierarchyChangedImpl(bool register_accelerators,
1508 bool is_add, 1493 bool is_add,
1509 View* parent, 1494 View* parent,
1510 View* child) { 1495 View* child) {
1511 if (register_accelerators) { 1496 if (register_accelerators) {
(...skipping 14 matching lines...) Expand all
1526 } 1511 }
1527 1512
1528 ViewHierarchyChanged(is_add, parent, child); 1513 ViewHierarchyChanged(is_add, parent, child);
1529 parent->needs_layout_ = true; 1514 parent->needs_layout_ = true;
1530 } 1515 }
1531 1516
1532 // Size and disposition -------------------------------------------------------- 1517 // Size and disposition --------------------------------------------------------
1533 1518
1534 void View::PropagateVisibilityNotifications(View* start, bool is_visible) { 1519 void View::PropagateVisibilityNotifications(View* start, bool is_visible) {
1535 for (int i = 0, count = child_count(); i < count; ++i) 1520 for (int i = 0, count = child_count(); i < count; ++i)
1536 GetChildViewAt(i)->PropagateVisibilityNotifications(start, is_visible); 1521 child_at(i)->PropagateVisibilityNotifications(start, is_visible);
1537 VisibilityChangedImpl(start, is_visible); 1522 VisibilityChangedImpl(start, is_visible);
1538 } 1523 }
1539 1524
1540 void View::VisibilityChangedImpl(View* starting_from, bool is_visible) { 1525 void View::VisibilityChangedImpl(View* starting_from, bool is_visible) {
1541 if (is_visible) 1526 if (is_visible)
1542 RegisterPendingAccelerators(); 1527 RegisterPendingAccelerators();
1543 else 1528 else
1544 UnregisterAccelerators(true); 1529 UnregisterAccelerators(true);
1545 VisibilityChanged(starting_from, is_visible); 1530 VisibilityChanged(starting_from, is_visible);
1546 } 1531 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1601 (*i)->OnVisibleBoundsChanged(); 1586 (*i)->OnVisibleBoundsChanged();
1602 } 1587 }
1603 } 1588 }
1604 } 1589 }
1605 1590
1606 // static 1591 // static
1607 void View::RegisterChildrenForVisibleBoundsNotification(View* view) { 1592 void View::RegisterChildrenForVisibleBoundsNotification(View* view) {
1608 if (view->NeedsNotificationWhenVisibleBoundsChange()) 1593 if (view->NeedsNotificationWhenVisibleBoundsChange())
1609 view->RegisterForVisibleBoundsNotification(); 1594 view->RegisterForVisibleBoundsNotification();
1610 for (int i = 0; i < view->child_count(); ++i) 1595 for (int i = 0; i < view->child_count(); ++i)
1611 RegisterChildrenForVisibleBoundsNotification(view->GetChildViewAt(i)); 1596 RegisterChildrenForVisibleBoundsNotification(view->child_at(i));
1612 } 1597 }
1613 1598
1614 // static 1599 // static
1615 void View::UnregisterChildrenForVisibleBoundsNotification(View* view) { 1600 void View::UnregisterChildrenForVisibleBoundsNotification(View* view) {
1616 if (view->NeedsNotificationWhenVisibleBoundsChange()) 1601 if (view->NeedsNotificationWhenVisibleBoundsChange())
1617 view->UnregisterForVisibleBoundsNotification(); 1602 view->UnregisterForVisibleBoundsNotification();
1618 for (int i = 0; i < view->child_count(); ++i) 1603 for (int i = 0; i < view->child_count(); ++i)
1619 UnregisterChildrenForVisibleBoundsNotification(view->GetChildViewAt(i)); 1604 UnregisterChildrenForVisibleBoundsNotification(view->child_at(i));
1620 } 1605 }
1621 1606
1622 void View::RegisterForVisibleBoundsNotification() { 1607 void View::RegisterForVisibleBoundsNotification() {
1623 if (registered_for_visible_bounds_notification_) 1608 if (registered_for_visible_bounds_notification_)
1624 return; 1609 return;
1625 1610
1626 registered_for_visible_bounds_notification_ = true; 1611 registered_for_visible_bounds_notification_ = true;
1627 for (View* ancestor = parent_; ancestor; ancestor = ancestor->parent_) 1612 for (View* ancestor = parent_; ancestor; ancestor = ancestor->parent_)
1628 ancestor->AddDescendantToNotify(this); 1613 ancestor->AddDescendantToNotify(this);
1629 } 1614 }
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
1951 prev->next_focusable_view_ = v; 1936 prev->next_focusable_view_ = v;
1952 children_[index]->previous_focusable_view_ = v; 1937 children_[index]->previous_focusable_view_ = v;
1953 } 1938 }
1954 } 1939 }
1955 } 1940 }
1956 1941
1957 // System events --------------------------------------------------------------- 1942 // System events ---------------------------------------------------------------
1958 1943
1959 void View::PropagateThemeChanged() { 1944 void View::PropagateThemeChanged() {
1960 for (int i = child_count() - 1; i >= 0; --i) 1945 for (int i = child_count() - 1; i >= 0; --i)
1961 GetChildViewAt(i)->PropagateThemeChanged(); 1946 child_at(i)->PropagateThemeChanged();
1962 OnThemeChanged(); 1947 OnThemeChanged();
1963 } 1948 }
1964 1949
1965 void View::PropagateLocaleChanged() { 1950 void View::PropagateLocaleChanged() {
1966 for (int i = child_count() - 1; i >= 0; --i) 1951 for (int i = child_count() - 1; i >= 0; --i)
1967 GetChildViewAt(i)->PropagateLocaleChanged(); 1952 child_at(i)->PropagateLocaleChanged();
1968 OnLocaleChanged(); 1953 OnLocaleChanged();
1969 } 1954 }
1970 1955
1971 // Tooltips -------------------------------------------------------------------- 1956 // Tooltips --------------------------------------------------------------------
1972 1957
1973 void View::UpdateTooltip() { 1958 void View::UpdateTooltip() {
1974 Widget* widget = GetWidget(); 1959 Widget* widget = GetWidget();
1975 // TODO(beng): The TooltipManager NULL check can be removed when we 1960 // TODO(beng): The TooltipManager NULL check can be removed when we
1976 // consolidate Init() methods and make views_unittests Init() all 1961 // consolidate Init() methods and make views_unittests Init() all
1977 // Widgets that it uses. 1962 // Widgets that it uses.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2035 snprintf(pp, kMaxPointerStringLength, "%p", parent_); 2020 snprintf(pp, kMaxPointerStringLength, "%p", parent_);
2036 result.append(" N"); 2021 result.append(" N");
2037 result.append(pp+2); 2022 result.append(pp+2);
2038 result.append(" -> N"); 2023 result.append(" -> N");
2039 result.append(p+2); 2024 result.append(p+2);
2040 result.append("\n"); 2025 result.append("\n");
2041 } 2026 }
2042 2027
2043 // Children. 2028 // Children.
2044 for (int i = 0, count = child_count(); i < count; ++i) 2029 for (int i = 0, count = child_count(); i < count; ++i)
2045 result.append(GetChildViewAt(i)->PrintViewGraph(false)); 2030 result.append(child_at(i)->PrintViewGraph(false));
2046 2031
2047 if (first) 2032 if (first)
2048 result.append("}\n"); 2033 result.append("}\n");
2049 2034
2050 return result; 2035 return result;
2051 } 2036 }
2052 #endif 2037 #endif
2053 2038
2054 } // namespace views 2039 } // namespace views
OLDNEW
« no previous file with comments | « views/view.h ('k') | views/widget/root_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698