| OLD | NEW |
| 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 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 | 489 |
| 490 for (ViewObserver& observer : observers_) | 490 for (ViewObserver& observer : observers_) |
| 491 observer.OnViewEnabledChanged(this); | 491 observer.OnViewEnabledChanged(this); |
| 492 } | 492 } |
| 493 } | 493 } |
| 494 | 494 |
| 495 void View::OnEnabledChanged() { | 495 void View::OnEnabledChanged() { |
| 496 SchedulePaint(); | 496 SchedulePaint(); |
| 497 } | 497 } |
| 498 | 498 |
| 499 View::Views View::GetChildrenInZOrder() { |
| 500 return children_; |
| 501 } |
| 502 |
| 499 // Transformations ------------------------------------------------------------- | 503 // Transformations ------------------------------------------------------------- |
| 500 | 504 |
| 501 gfx::Transform View::GetTransform() const { | 505 gfx::Transform View::GetTransform() const { |
| 502 if (!layer()) | 506 if (!layer()) |
| 503 return gfx::Transform(); | 507 return gfx::Transform(); |
| 504 | 508 |
| 505 gfx::Transform transform = layer()->transform(); | 509 gfx::Transform transform = layer()->transform(); |
| 506 gfx::ScrollOffset scroll_offset = layer()->CurrentScrollOffset(); | 510 gfx::ScrollOffset scroll_offset = layer()->CurrentScrollOffset(); |
| 507 transform.Translate(-scroll_offset.x(), -scroll_offset.y()); | 511 transform.Translate(-scroll_offset.x(), -scroll_offset.y()); |
| 508 return transform; | 512 return transform; |
| (...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 947 return true; | 951 return true; |
| 948 } | 952 } |
| 949 | 953 |
| 950 View* View::GetTooltipHandlerForPoint(const gfx::Point& point) { | 954 View* View::GetTooltipHandlerForPoint(const gfx::Point& point) { |
| 951 // TODO(tdanderson): Move this implementation into ViewTargetDelegate. | 955 // TODO(tdanderson): Move this implementation into ViewTargetDelegate. |
| 952 if (!HitTestPoint(point) || !CanProcessEventsWithinSubtree()) | 956 if (!HitTestPoint(point) || !CanProcessEventsWithinSubtree()) |
| 953 return NULL; | 957 return NULL; |
| 954 | 958 |
| 955 // Walk the child Views recursively looking for the View that most | 959 // Walk the child Views recursively looking for the View that most |
| 956 // tightly encloses the specified point. | 960 // tightly encloses the specified point. |
| 957 for (auto* child : base::Reversed(children_)) { | 961 View::Views children = GetChildrenInZOrder(); |
| 962 DCHECK_EQ(child_count(), static_cast<int>(children.size())); |
| 963 for (auto* child : base::Reversed(children)) { |
| 958 if (!child->visible()) | 964 if (!child->visible()) |
| 959 continue; | 965 continue; |
| 960 | 966 |
| 961 gfx::Point point_in_child_coords(point); | 967 gfx::Point point_in_child_coords(point); |
| 962 ConvertPointToTarget(this, child, &point_in_child_coords); | 968 ConvertPointToTarget(this, child, &point_in_child_coords); |
| 963 View* handler = child->GetTooltipHandlerForPoint(point_in_child_coords); | 969 View* handler = child->GetTooltipHandlerForPoint(point_in_child_coords); |
| 964 if (handler) | 970 if (handler) |
| 965 return handler; | 971 return handler; |
| 966 } | 972 } |
| 967 return this; | 973 return this; |
| (...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1466 | 1472 |
| 1467 if (focus_manager) | 1473 if (focus_manager) |
| 1468 RegisterPendingAccelerators(); | 1474 RegisterPendingAccelerators(); |
| 1469 } | 1475 } |
| 1470 } | 1476 } |
| 1471 | 1477 |
| 1472 // Painting -------------------------------------------------------------------- | 1478 // Painting -------------------------------------------------------------------- |
| 1473 | 1479 |
| 1474 void View::PaintChildren(const ui::PaintContext& context) { | 1480 void View::PaintChildren(const ui::PaintContext& context) { |
| 1475 TRACE_EVENT1("views", "View::PaintChildren", "class", GetClassName()); | 1481 TRACE_EVENT1("views", "View::PaintChildren", "class", GetClassName()); |
| 1476 internal::ScopedChildrenLock lock(this); | 1482 View::Views children = GetChildrenInZOrder(); |
| 1477 for (auto* child : children_) { | 1483 DCHECK_EQ(child_count(), static_cast<int>(children.size())); |
| 1484 for (auto* child : children) { |
| 1478 if (!child->layer()) | 1485 if (!child->layer()) |
| 1479 child->Paint(context); | 1486 child->Paint(context); |
| 1480 } | 1487 } |
| 1481 } | 1488 } |
| 1482 | 1489 |
| 1483 void View::OnPaint(gfx::Canvas* canvas) { | 1490 void View::OnPaint(gfx::Canvas* canvas) { |
| 1484 TRACE_EVENT1("views", "View::OnPaint", "class", GetClassName()); | 1491 TRACE_EVENT1("views", "View::OnPaint", "class", GetClassName()); |
| 1485 OnPaintBackground(canvas); | 1492 OnPaintBackground(canvas); |
| 1486 OnPaintBorder(canvas); | 1493 OnPaintBorder(canvas); |
| 1487 } | 1494 } |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1621 } | 1628 } |
| 1622 | 1629 |
| 1623 void View::ReorderChildLayers(ui::Layer* parent_layer) { | 1630 void View::ReorderChildLayers(ui::Layer* parent_layer) { |
| 1624 if (layer() && layer() != parent_layer) { | 1631 if (layer() && layer() != parent_layer) { |
| 1625 DCHECK_EQ(parent_layer, layer()->parent()); | 1632 DCHECK_EQ(parent_layer, layer()->parent()); |
| 1626 parent_layer->StackAtBottom(layer()); | 1633 parent_layer->StackAtBottom(layer()); |
| 1627 } else { | 1634 } else { |
| 1628 // Iterate backwards through the children so that a child with a layer | 1635 // Iterate backwards through the children so that a child with a layer |
| 1629 // which is further to the back is stacked above one which is further to | 1636 // which is further to the back is stacked above one which is further to |
| 1630 // the front. | 1637 // the front. |
| 1631 internal::ScopedChildrenLock lock(this); | 1638 View::Views children = GetChildrenInZOrder(); |
| 1632 for (auto* child : base::Reversed(children_)) { | 1639 DCHECK_EQ(child_count(), static_cast<int>(children.size())); |
| 1640 for (auto* child : base::Reversed(children)) |
| 1633 child->ReorderChildLayers(parent_layer); | 1641 child->ReorderChildLayers(parent_layer); |
| 1634 } | |
| 1635 } | 1642 } |
| 1636 } | 1643 } |
| 1637 | 1644 |
| 1638 // Input ----------------------------------------------------------------------- | 1645 // Input ----------------------------------------------------------------------- |
| 1639 | 1646 |
| 1640 View::DragInfo* View::GetDragInfo() { | 1647 View::DragInfo* View::GetDragInfo() { |
| 1641 return parent_ ? parent_->GetDragInfo() : NULL; | 1648 return parent_ ? parent_->GetDragInfo() : NULL; |
| 1642 } | 1649 } |
| 1643 | 1650 |
| 1644 // Focus ----------------------------------------------------------------------- | 1651 // Focus ----------------------------------------------------------------------- |
| (...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2523 // Message the RootView to do the drag and drop. That way if we're removed | 2530 // Message the RootView to do the drag and drop. That way if we're removed |
| 2524 // the RootView can detect it and avoid calling us back. | 2531 // the RootView can detect it and avoid calling us back. |
| 2525 gfx::Point widget_location(event.location()); | 2532 gfx::Point widget_location(event.location()); |
| 2526 ConvertPointToWidget(this, &widget_location); | 2533 ConvertPointToWidget(this, &widget_location); |
| 2527 widget->RunShellDrag(this, data, widget_location, drag_operations, source); | 2534 widget->RunShellDrag(this, data, widget_location, drag_operations, source); |
| 2528 // WARNING: we may have been deleted. | 2535 // WARNING: we may have been deleted. |
| 2529 return true; | 2536 return true; |
| 2530 } | 2537 } |
| 2531 | 2538 |
| 2532 } // namespace views | 2539 } // namespace views |
| OLD | NEW |