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.cc

Issue 11269022: Add Vector2d classes that represent offsets, instead of using Point. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove SizeOfVector Created 8 years, 1 month 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
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 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 if (source != root) 616 if (source != root)
617 source->ConvertPointForAncestor(root, point); 617 source->ConvertPointForAncestor(root, point);
618 } 618 }
619 619
620 if (target != root) 620 if (target != root)
621 target->ConvertPointFromAncestor(root, point); 621 target->ConvertPointFromAncestor(root, point);
622 622
623 // API defines NULL |source| as returning the point in screen coordinates. 623 // API defines NULL |source| as returning the point in screen coordinates.
624 if (!source) { 624 if (!source) {
625 *point = point->Subtract( 625 *point = point->Subtract(
626 root->GetWidget()->GetClientAreaBoundsInScreen().origin()); 626 root->GetWidget()->GetClientAreaBoundsInScreen().DistanceFromOrigin());
danakj 2012/10/26 23:30:34 We probably want something like GetClientAreaOffse
Peter Kasting 2012/10/26 23:50:16 Yes. I think pretty much any function which has "
627 } 627 }
628 } 628 }
629 629
630 // static 630 // static
631 void View::ConvertPointToWidget(const View* src, gfx::Point* p) { 631 void View::ConvertPointToWidget(const View* src, gfx::Point* p) {
632 DCHECK(src); 632 DCHECK(src);
633 DCHECK(p); 633 DCHECK(p);
634 634
635 src->ConvertPointForAncestor(NULL, p); 635 src->ConvertPointForAncestor(NULL, p);
636 } 636 }
(...skipping 29 matching lines...) Expand all
666 if (!widget) 666 if (!widget)
667 return; 667 return;
668 const gfx::Rect r = widget->GetClientAreaBoundsInScreen(); 668 const gfx::Rect r = widget->GetClientAreaBoundsInScreen();
669 p->Offset(-r.x(), -r.y()); 669 p->Offset(-r.x(), -r.y());
670 views::View::ConvertPointFromWidget(dst, p); 670 views::View::ConvertPointFromWidget(dst, p);
671 } 671 }
672 672
673 gfx::Rect View::ConvertRectToParent(const gfx::Rect& rect) const { 673 gfx::Rect View::ConvertRectToParent(const gfx::Rect& rect) const {
674 gfx::Rect x_rect = rect; 674 gfx::Rect x_rect = rect;
675 GetTransform().TransformRect(&x_rect); 675 GetTransform().TransformRect(&x_rect);
676 x_rect.Offset(GetMirroredPosition()); 676 x_rect.Offset(GetMirroredPosition().DistanceFromOrigin());
677 return x_rect; 677 return x_rect;
678 } 678 }
679 679
680 gfx::Rect View::ConvertRectToWidget(const gfx::Rect& rect) const { 680 gfx::Rect View::ConvertRectToWidget(const gfx::Rect& rect) const {
681 gfx::Rect x_rect = rect; 681 gfx::Rect x_rect = rect;
682 for (const View* v = this; v; v = v->parent_) 682 for (const View* v = this; v; v = v->parent_)
683 x_rect = v->ConvertRectToParent(x_rect); 683 x_rect = v->ConvertRectToParent(x_rect);
684 return x_rect; 684 return x_rect;
685 } 685 }
686 686
(...skipping 30 matching lines...) Expand all
717 // we paint our view in its mirrored position if need be. 717 // we paint our view in its mirrored position if need be.
718 gfx::Rect clip_rect = bounds(); 718 gfx::Rect clip_rect = bounds();
719 clip_rect.Inset(clip_insets_); 719 clip_rect.Inset(clip_insets_);
720 if (parent_) 720 if (parent_)
721 clip_rect.set_x(parent_->GetMirroredXForRect(clip_rect)); 721 clip_rect.set_x(parent_->GetMirroredXForRect(clip_rect));
722 if (!canvas->ClipRect(clip_rect)) 722 if (!canvas->ClipRect(clip_rect))
723 return; 723 return;
724 724
725 // Non-empty clip, translate the graphics such that 0,0 corresponds to 725 // Non-empty clip, translate the graphics such that 0,0 corresponds to
726 // where this view is located (related to its parent). 726 // where this view is located (related to its parent).
727 canvas->Translate(GetMirroredPosition()); 727 canvas->Translate(GetMirroredPosition().DistanceFromOrigin());
728 canvas->Transform(GetTransform()); 728 canvas->Transform(GetTransform());
729 729
730 PaintCommon(canvas); 730 PaintCommon(canvas);
731 } 731 }
732 732
733 ui::ThemeProvider* View::GetThemeProvider() const { 733 ui::ThemeProvider* View::GetThemeProvider() const {
734 const Widget* widget = GetWidget(); 734 const Widget* widget = GetWidget();
735 return widget ? widget->GetThemeProvider() : NULL; 735 return widget ? widget->GetThemeProvider() : NULL;
736 } 736 }
737 737
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 return; 1519 return;
1520 1520
1521 { 1521 {
1522 // If the View we are about to paint requested the canvas to be flipped, we 1522 // If the View we are about to paint requested the canvas to be flipped, we
1523 // should change the transform appropriately. 1523 // should change the transform appropriately.
1524 // The canvas mirroring is undone once the View is done painting so that we 1524 // The canvas mirroring is undone once the View is done painting so that we
1525 // don't pass the canvas with the mirrored transform to Views that didn't 1525 // don't pass the canvas with the mirrored transform to Views that didn't
1526 // request the canvas to be flipped. 1526 // request the canvas to be flipped.
1527 ScopedCanvas scoped(canvas); 1527 ScopedCanvas scoped(canvas);
1528 if (FlipCanvasOnPaintForRTLUI()) { 1528 if (FlipCanvasOnPaintForRTLUI()) {
1529 canvas->Translate(gfx::Point(width(), 0)); 1529 canvas->Translate(gfx::Vector2d(width(), 0));
1530 canvas->Scale(-1, 1); 1530 canvas->Scale(-1, 1);
1531 } 1531 }
1532 1532
1533 OnPaint(canvas); 1533 OnPaint(canvas);
1534 } 1534 }
1535 1535
1536 PaintChildren(canvas); 1536 PaintChildren(canvas);
1537 } 1537 }
1538 1538
1539 // Tree operations ------------------------------------------------------------- 1539 // Tree operations -------------------------------------------------------------
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
2128 gfx::Point widget_location(event.location()); 2128 gfx::Point widget_location(event.location());
2129 ConvertPointToWidget(this, &widget_location); 2129 ConvertPointToWidget(this, &widget_location);
2130 GetWidget()->RunShellDrag(this, data, widget_location, drag_operations); 2130 GetWidget()->RunShellDrag(this, data, widget_location, drag_operations);
2131 return true; 2131 return true;
2132 #else 2132 #else
2133 return false; 2133 return false;
2134 #endif // !defined(OS_MACOSX) 2134 #endif // !defined(OS_MACOSX)
2135 } 2135 }
2136 2136
2137 } // namespace views 2137 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698