Index: views/view.cc |
=================================================================== |
--- views/view.cc (revision 74080) |
+++ views/view.cc (working copy) |
@@ -286,9 +286,9 @@ |
int root_x = 0; |
int root_y = 0; |
while (view != NULL && !vis_bounds.IsEmpty()) { |
- root_x += view->GetX(APPLY_MIRRORING_TRANSFORMATION); |
+ root_x += view->GetMirroredX(); |
root_y += view->y(); |
- vis_bounds.Offset(view->GetX(APPLY_MIRRORING_TRANSFORMATION), view->y()); |
+ vis_bounds.Offset(view->GetMirroredX(), view->y()); |
View* ancestor = view->GetParent(); |
if (ancestor != NULL) { |
ancestor_bounds.SetRect(0, 0, ancestor->width(), |
@@ -378,38 +378,34 @@ |
// RTL positioning ------------------------------------------------------------- |
-gfx::Rect View::GetBounds(PositionMirroringSettings settings) const { |
+gfx::Rect View::GetMirroredBounds() const { |
gfx::Rect bounds(bounds_); |
- |
- // If the parent uses an RTL UI layout and if we are asked to transform the |
- // bounds to their mirrored position if necessary, then we should shift the |
- // rectangle appropriately. |
- if (settings == APPLY_MIRRORING_TRANSFORMATION) |
- bounds.set_x(MirroredX()); |
- |
+ bounds.set_x(GetMirroredX()); |
return bounds; |
} |
-// y(), width() and height() are agnostic to the RTL UI layout of the |
-// parent view. x(), on the other hand, is not. |
-int View::GetX(PositionMirroringSettings settings) const { |
- return settings == IGNORE_MIRRORING_TRANSFORMATION ? x() : MirroredX(); |
+gfx::Point View::GetMirroredPosition() const { |
+ return gfx::Point(GetMirroredX(), y()); |
} |
-gfx::Point View::GetPosition() const { |
- return gfx::Point(GetX(APPLY_MIRRORING_TRANSFORMATION), y()); |
-} |
- |
-int View::MirroredX() const { |
+int View::GetMirroredX() const { |
View* parent = GetParent(); |
- return parent ? parent->MirroredLeftPointForRect(bounds_) : x(); |
+ return parent ? parent->GetMirroredXForRect(bounds_) : x(); |
} |
-int View::MirroredLeftPointForRect(const gfx::Rect& bounds) const { |
+int View::GetMirroredXForRect(const gfx::Rect& bounds) const { |
return base::i18n::IsRTL() ? |
(width() - bounds.x() - bounds.width()) : bounds.x(); |
} |
+int View::GetMirroredXInView(int x) const { |
+ return base::i18n::IsRTL() ? width() - x : x; |
+} |
+ |
+int View::GetMirroredXWithWidthInView(int x, int w) const { |
+ return base::i18n::IsRTL() ? width() - x - w : x; |
+} |
+ |
// Layout ---------------------------------------------------------------------- |
void View::Layout() { |
@@ -535,7 +531,7 @@ |
gfx::Point offset; |
for (const View* v = src; v; v = v->GetParent()) { |
- offset.set_x(offset.x() + v->GetX(APPLY_MIRRORING_TRANSFORMATION)); |
+ offset.set_x(offset.x() + v->GetMirroredX()); |
offset.set_y(offset.y() + v->y()); |
} |
p->SetPoint(p->x() + offset.x(), p->y() + offset.y()); |
@@ -573,7 +569,7 @@ |
// Translate the requested paint rect to the parent's coordinate system |
// then pass this notification up to the parent. |
gfx::Rect paint_rect = r; |
- paint_rect.Offset(GetPosition()); |
+ paint_rect.Offset(GetMirroredPosition()); |
parent_->SchedulePaint(paint_rect, urgent); |
} |
} |
@@ -626,10 +622,10 @@ |
// Note that the X (or left) position we pass to ClipRectInt takes into |
// consideration whether or not the view uses a right-to-left layout so that |
// we paint our view in its mirrored position if need be. |
- if (canvas->ClipRectInt(MirroredX(), y(), width(), height())) { |
+ if (canvas->ClipRectInt(GetMirroredX(), y(), width(), height())) { |
// Non-empty clip, translate the graphics such that 0,0 corresponds to |
// where this view is located (related to its parent). |
- canvas->TranslateInt(MirroredX(), y()); |
+ canvas->TranslateInt(GetMirroredX(), y()); |
// If the View we are about to paint requested the canvas to be flipped, we |
// should change the transform appropriately. |
@@ -965,7 +961,7 @@ |
// the region. |
if (parent) { |
gfx::Rect scroll_rect(rect); |
- scroll_rect.Offset(GetX(APPLY_MIRRORING_TRANSFORMATION), y()); |
+ scroll_rect.Offset(GetMirroredX(), y()); |
parent->ScrollRectToVisible(scroll_rect); |
} |
} |
@@ -1339,10 +1335,8 @@ |
const View* v; |
gfx::Point offset; |
- for (v = dst; v && v != src; v = v->GetParent()) { |
- offset.SetPoint(offset.x() + v->GetX(APPLY_MIRRORING_TRANSFORMATION), |
- offset.y() + v->y()); |
- } |
+ for (v = dst; v && v != src; v = v->GetParent()) |
+ offset.SetPoint(offset.x() + v->GetMirroredX(), offset.y() + v->y()); |
// The source was not found. The caller wants a conversion |
// from a view to a transitive parent. |