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

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

Issue 11145005: Migrate ui::Transform to gfx::Transform (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Hopefully should work this time Created 8 years, 2 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 | « ui/views/view.h ('k') | ui/views/view_unittest.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 #include "ui/views/view.h" 5 #include "ui/views/view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 border_->GetInsets(&insets); 318 border_->GetInsets(&insets);
319 return insets; 319 return insets;
320 } 320 }
321 321
322 gfx::Rect View::GetVisibleBounds() const { 322 gfx::Rect View::GetVisibleBounds() const {
323 if (!IsDrawn()) 323 if (!IsDrawn())
324 return gfx::Rect(); 324 return gfx::Rect();
325 gfx::Rect vis_bounds(GetLocalBounds()); 325 gfx::Rect vis_bounds(GetLocalBounds());
326 gfx::Rect ancestor_bounds; 326 gfx::Rect ancestor_bounds;
327 const View* view = this; 327 const View* view = this;
328 ui::Transform transform; 328 gfx::Transform transform;
329 329
330 while (view != NULL && !vis_bounds.IsEmpty()) { 330 while (view != NULL && !vis_bounds.IsEmpty()) {
331 transform.ConcatTransform(view->GetTransform()); 331 transform.ConcatTransform(view->GetTransform());
332 transform.ConcatTranslate(static_cast<float>(view->GetMirroredX()), 332 transform.ConcatTranslate(static_cast<float>(view->GetMirroredX()),
333 static_cast<float>(view->y())); 333 static_cast<float>(view->y()));
334 334
335 vis_bounds = view->ConvertRectToParent(vis_bounds); 335 vis_bounds = view->ConvertRectToParent(vis_bounds);
336 const View* ancestor = view->parent_; 336 const View* ancestor = view->parent_;
337 if (ancestor != NULL) { 337 if (ancestor != NULL) {
338 ancestor_bounds.SetRect(0, 0, ancestor->width(), ancestor->height()); 338 ancestor_bounds.SetRect(0, 0, ancestor->width(), ancestor->height());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 OnEnabledChanged(); 419 OnEnabledChanged();
420 } 420 }
421 } 421 }
422 422
423 void View::OnEnabledChanged() { 423 void View::OnEnabledChanged() {
424 SchedulePaint(); 424 SchedulePaint();
425 } 425 }
426 426
427 // Transformations ------------------------------------------------------------- 427 // Transformations -------------------------------------------------------------
428 428
429 const ui::Transform& View::GetTransform() const { 429 const gfx::Transform& View::GetTransform() const {
430 static const ui::Transform* no_op = new ui::Transform; 430 static const gfx::Transform* no_op = new gfx::Transform;
431 return layer() ? layer()->transform() : *no_op; 431 return layer() ? layer()->transform() : *no_op;
432 } 432 }
433 433
434 void View::SetTransform(const ui::Transform& transform) { 434 void View::SetTransform(const gfx::Transform& transform) {
435 if (!transform.HasChange()) { 435 if (!transform.HasChange()) {
436 if (layer()) { 436 if (layer()) {
437 layer()->SetTransform(transform); 437 layer()->SetTransform(transform);
438 if (!paint_to_layer_) 438 if (!paint_to_layer_)
439 DestroyLayer(); 439 DestroyLayer();
440 } else { 440 } else {
441 // Nothing. 441 // Nothing.
442 } 442 }
443 } else { 443 } else {
444 if (!layer()) 444 if (!layer())
(...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after
1758 descendants_to_notify_.reset(); 1758 descendants_to_notify_.reset();
1759 } 1759 }
1760 1760
1761 void View::SetLayerBounds(const gfx::Rect& bounds) { 1761 void View::SetLayerBounds(const gfx::Rect& bounds) {
1762 layer()->SetBounds(bounds); 1762 layer()->SetBounds(bounds);
1763 } 1763 }
1764 1764
1765 // Transformations ------------------------------------------------------------- 1765 // Transformations -------------------------------------------------------------
1766 1766
1767 bool View::GetTransformRelativeTo(const View* ancestor, 1767 bool View::GetTransformRelativeTo(const View* ancestor,
1768 ui::Transform* transform) const { 1768 gfx::Transform* transform) const {
1769 const View* p = this; 1769 const View* p = this;
1770 1770
1771 while (p && p != ancestor) { 1771 while (p && p != ancestor) {
1772 transform->ConcatTransform(p->GetTransform()); 1772 transform->ConcatTransform(p->GetTransform());
1773 transform->ConcatTranslate(static_cast<float>(p->GetMirroredX()), 1773 transform->ConcatTranslate(static_cast<float>(p->GetMirroredX()),
1774 static_cast<float>(p->y())); 1774 static_cast<float>(p->y()));
1775 1775
1776 p = p->parent_; 1776 p = p->parent_;
1777 } 1777 }
1778 1778
1779 return p == ancestor; 1779 return p == ancestor;
1780 } 1780 }
1781 1781
1782 // Coordinate conversion ------------------------------------------------------- 1782 // Coordinate conversion -------------------------------------------------------
1783 1783
1784 bool View::ConvertPointForAncestor(const View* ancestor, 1784 bool View::ConvertPointForAncestor(const View* ancestor,
1785 gfx::Point* point) const { 1785 gfx::Point* point) const {
1786 ui::Transform trans; 1786 gfx::Transform trans;
1787 // TODO(sad): Have some way of caching the transformation results. 1787 // TODO(sad): Have some way of caching the transformation results.
1788 bool result = GetTransformRelativeTo(ancestor, &trans); 1788 bool result = GetTransformRelativeTo(ancestor, &trans);
1789 gfx::Point3f p(*point); 1789 gfx::Point3f p(*point);
1790 trans.TransformPoint(p); 1790 trans.TransformPoint(p);
1791 *point = p.AsPoint(); 1791 *point = p.AsPoint();
1792 return result; 1792 return result;
1793 } 1793 }
1794 1794
1795 bool View::ConvertPointFromAncestor(const View* ancestor, 1795 bool View::ConvertPointFromAncestor(const View* ancestor,
1796 gfx::Point* point) const { 1796 gfx::Point* point) const {
1797 ui::Transform trans; 1797 gfx::Transform trans;
1798 bool result = GetTransformRelativeTo(ancestor, &trans); 1798 bool result = GetTransformRelativeTo(ancestor, &trans);
1799 gfx::Point3f p(*point); 1799 gfx::Point3f p(*point);
1800 trans.TransformPointReverse(p); 1800 trans.TransformPointReverse(p);
1801 *point = p.AsPoint(); 1801 *point = p.AsPoint();
1802 return result; 1802 return result;
1803 } 1803 }
1804 1804
1805 // Accelerated painting -------------------------------------------------------- 1805 // Accelerated painting --------------------------------------------------------
1806 1806
1807 void View::CreateLayer() { 1807 void View::CreateLayer() {
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
2122 gfx::Point widget_location(event.location()); 2122 gfx::Point widget_location(event.location());
2123 ConvertPointToWidget(this, &widget_location); 2123 ConvertPointToWidget(this, &widget_location);
2124 GetWidget()->RunShellDrag(this, data, widget_location, drag_operations); 2124 GetWidget()->RunShellDrag(this, data, widget_location, drag_operations);
2125 return true; 2125 return true;
2126 #else 2126 #else
2127 return false; 2127 return false;
2128 #endif // !defined(OS_MACOSX) 2128 #endif // !defined(OS_MACOSX)
2129 } 2129 }
2130 2130
2131 } // namespace views 2131 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/view.h ('k') | ui/views/view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698