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

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

Issue 2713643002: Add View::AddedToWidget and RemovedFromWidget. (Closed)
Patch Set: Created 3 years, 10 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
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 #define _USE_MATH_DEFINES // For VC++ to get M_PI. This has to be first. 5 #define _USE_MATH_DEFINES // For VC++ to get M_PI. This has to be first.
6 6
7 #include "ui/views/view.h" 7 #include "ui/views/view.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 1483 matching lines...) Expand 10 before | Expand all | Expand 10 after
1494 bool View::GetNeedsNotificationWhenVisibleBoundsChange() const { 1494 bool View::GetNeedsNotificationWhenVisibleBoundsChange() const {
1495 return false; 1495 return false;
1496 } 1496 }
1497 1497
1498 void View::OnVisibleBoundsChanged() { 1498 void View::OnVisibleBoundsChanged() {
1499 } 1499 }
1500 1500
1501 // Tree operations ------------------------------------------------------------- 1501 // Tree operations -------------------------------------------------------------
1502 1502
1503 void View::ViewHierarchyChanged(const ViewHierarchyChangedDetails& details) { 1503 void View::ViewHierarchyChanged(const ViewHierarchyChangedDetails& details) {
1504 if (details.is_add) {
1505 const auto widget = GetWidget();
1506 if (widget != nullptr && widget != attached_widget_) {
1507 attached_widget_ = widget;
1508 AddedToWidget();
1509 }
1510 } else if (details.child == this) {
1511 if (attached_widget_) {
1512 RemovedFromWidget();
1513 attached_widget_ = nullptr;
1514 }
1515 }
1504 } 1516 }
1505 1517
1506 void View::VisibilityChanged(View* starting_from, bool is_visible) { 1518 void View::VisibilityChanged(View* starting_from, bool is_visible) {
1507 } 1519 }
1508 1520
1509 void View::NativeViewHierarchyChanged() { 1521 void View::NativeViewHierarchyChanged() {
1510 FocusManager* focus_manager = GetFocusManager(); 1522 FocusManager* focus_manager = GetFocusManager();
1511 if (accelerator_focus_manager_ != focus_manager) { 1523 if (accelerator_focus_manager_ != focus_manager) {
1512 UnregisterAccelerators(true); 1524 UnregisterAccelerators(true);
1513 1525
1514 if (focus_manager) 1526 if (focus_manager)
1515 RegisterPendingAccelerators(); 1527 RegisterPendingAccelerators();
1516 } 1528 }
1517 } 1529 }
1518 1530
1531 void View::AddedToWidget() {}
1532
1533 void View::RemovedFromWidget() {}
1534
1519 // Painting -------------------------------------------------------------------- 1535 // Painting --------------------------------------------------------------------
1520 1536
1521 void View::PaintChildren(const ui::PaintContext& context) { 1537 void View::PaintChildren(const ui::PaintContext& context) {
1522 TRACE_EVENT1("views", "View::PaintChildren", "class", GetClassName()); 1538 TRACE_EVENT1("views", "View::PaintChildren", "class", GetClassName());
1523 View::Views children = GetChildrenInZOrder(); 1539 View::Views children = GetChildrenInZOrder();
1524 DCHECK_EQ(child_count(), static_cast<int>(children.size())); 1540 DCHECK_EQ(child_count(), static_cast<int>(children.size()));
1525 for (auto* child : children) { 1541 for (auto* child : children) {
1526 if (!child->layer()) 1542 if (!child->layer())
1527 child->Paint(context); 1543 child->Paint(context);
1528 } 1544 }
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 // If you get this registration, you are part of a subtree that has been 2020 // If you get this registration, you are part of a subtree that has been
2005 // added to the view hierarchy. 2021 // added to the view hierarchy.
2006 if (GetFocusManager()) 2022 if (GetFocusManager())
2007 RegisterPendingAccelerators(); 2023 RegisterPendingAccelerators();
2008 } else { 2024 } else {
2009 if (details.child == this) 2025 if (details.child == this)
2010 UnregisterAccelerators(true); 2026 UnregisterAccelerators(true);
2011 } 2027 }
2012 } 2028 }
2013 2029
2014 ViewHierarchyChanged(details); 2030 ViewHierarchyChanged(details);
sky 2017/02/22 17:21:33 Please call the new functions from here. That way
2015 details.parent->needs_layout_ = true; 2031 details.parent->needs_layout_ = true;
2016 } 2032 }
2017 2033
2018 void View::PropagateNativeThemeChanged(const ui::NativeTheme* theme) { 2034 void View::PropagateNativeThemeChanged(const ui::NativeTheme* theme) {
2019 if (native_theme_ && native_theme_ != theme) 2035 if (native_theme_ && native_theme_ != theme)
2020 return; 2036 return;
2021 2037
2022 { 2038 {
2023 internal::ScopedChildrenLock lock(this); 2039 internal::ScopedChildrenLock lock(this);
2024 for (auto* child : children_) 2040 for (auto* child : children_)
(...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after
2551 // Message the RootView to do the drag and drop. That way if we're removed 2567 // Message the RootView to do the drag and drop. That way if we're removed
2552 // the RootView can detect it and avoid calling us back. 2568 // the RootView can detect it and avoid calling us back.
2553 gfx::Point widget_location(event.location()); 2569 gfx::Point widget_location(event.location());
2554 ConvertPointToWidget(this, &widget_location); 2570 ConvertPointToWidget(this, &widget_location);
2555 widget->RunShellDrag(this, data, widget_location, drag_operations, source); 2571 widget->RunShellDrag(this, data, widget_location, drag_operations, source);
2556 // WARNING: we may have been deleted. 2572 // WARNING: we may have been deleted.
2557 return true; 2573 return true;
2558 } 2574 }
2559 2575
2560 } // namespace views 2576 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/view.h ('k') | ui/views/view_unittest.cc » ('j') | ui/views/view_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698