Chromium Code Reviews| Index: chrome/browser/ui/views/download/download_item_view.cc |
| diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc |
| index 2a5ab60a301075cda0cab10405c398b27cd6df71..103645aa7841575246a3ab671b79b0e30572991f 100644 |
| --- a/chrome/browser/ui/views/download/download_item_view.cc |
| +++ b/chrome/browser/ui/views/download/download_item_view.cc |
| @@ -52,6 +52,7 @@ |
| #include "ui/gfx/canvas.h" |
| #include "ui/gfx/color_utils.h" |
| #include "ui/gfx/image/image.h" |
| +#include "ui/gfx/scoped_canvas.h" |
| #include "ui/gfx/text_elider.h" |
| #include "ui/gfx/text_utils.h" |
| #include "ui/views/controls/button/label_button.h" |
| @@ -703,85 +704,76 @@ void DownloadItemView::OnPaintBackground(gfx::Canvas* canvas) { |
| } |
| // Paint the background images. |
| - int x = kLeftPadding; |
| - canvas->Save(); |
| - if (base::i18n::IsRTL()) { |
| - // Since we do not have the mirrored images for |
| - // (hot_)body_image_set->top_left, (hot_)body_image_set->left, |
| - // (hot_)body_image_set->bottom_left, and drop_down_image_set, |
| - // for RTL UI, we flip the canvas to draw those images mirrored. |
| - // Consequently, we do not need to mirror the x-axis of those images. |
| - canvas->Translate(gfx::Vector2d(width(), 0)); |
| - canvas->Scale(-1, 1); |
| - } |
| - PaintImages(canvas, |
| - body_image_set->top_left, body_image_set->left, |
| - body_image_set->bottom_left, |
| - x, box_y_, box_height_, body_image_set->top_left->width()); |
| - x += body_image_set->top_left->width(); |
| - PaintImages(canvas, |
| - body_image_set->top, body_image_set->center, |
| - body_image_set->bottom, |
| - x, box_y_, box_height_, center_width); |
| - x += center_width; |
| - PaintImages(canvas, |
| - body_image_set->top_right, body_image_set->right, |
| - body_image_set->bottom_right, |
| - x, box_y_, box_height_, body_image_set->top_right->width()); |
| - |
| - // Overlay our body hot state. Warning dialogs don't display body a hot state. |
| - if (!IsShowingWarningDialog() && |
| - body_hover_animation_->GetCurrentValue() > 0) { |
| - canvas->SaveLayerAlpha( |
| - static_cast<int>(body_hover_animation_->GetCurrentValue() * 255)); |
| + { |
| + gfx::ScopedRTLFlipCanvas scoped_canvas(canvas, width()); |
|
Peter Kasting
2016/08/18 23:40:41
This file looks as if it's changed a lot, but it's
|
| int x = kLeftPadding; |
| PaintImages(canvas, |
| - hot_body_image_set_.top_left, hot_body_image_set_.left, |
| - hot_body_image_set_.bottom_left, |
| - x, box_y_, box_height_, hot_body_image_set_.top_left->width()); |
| + body_image_set->top_left, body_image_set->left, |
| + body_image_set->bottom_left, |
| + x, box_y_, box_height_, body_image_set->top_left->width()); |
| x += body_image_set->top_left->width(); |
| PaintImages(canvas, |
| - hot_body_image_set_.top, hot_body_image_set_.center, |
| - hot_body_image_set_.bottom, |
| + body_image_set->top, body_image_set->center, |
| + body_image_set->bottom, |
| x, box_y_, box_height_, center_width); |
| x += center_width; |
| PaintImages(canvas, |
| - hot_body_image_set_.top_right, hot_body_image_set_.right, |
| - hot_body_image_set_.bottom_right, |
| - x, box_y_, box_height_, |
| - hot_body_image_set_.top_right->width()); |
| - canvas->Restore(); |
| - } |
| - |
| - x += body_image_set->top_right->width(); |
| + body_image_set->top_right, body_image_set->right, |
| + body_image_set->bottom_right, |
| + x, box_y_, box_height_, body_image_set->top_right->width()); |
| + |
| + // Overlay our body hot state. Warning dialogs don't display body a hot |
| + // state. |
| + if (!IsShowingWarningDialog() && |
| + body_hover_animation_->GetCurrentValue() > 0) { |
| + canvas->SaveLayerAlpha( |
| + static_cast<int>(body_hover_animation_->GetCurrentValue() * 255)); |
| - // Paint the drop-down. |
| - if (drop_down_image_set) { |
| - PaintImages(canvas, |
| - drop_down_image_set->top, drop_down_image_set->center, |
| - drop_down_image_set->bottom, |
| - x, box_y_, box_height_, drop_down_image_set->top->width()); |
| + int x = kLeftPadding; |
| + PaintImages(canvas, |
| + hot_body_image_set_.top_left, hot_body_image_set_.left, |
| + hot_body_image_set_.bottom_left, |
| + x, box_y_, box_height_, |
| + hot_body_image_set_.top_left->width()); |
| + x += body_image_set->top_left->width(); |
| + PaintImages(canvas, |
| + hot_body_image_set_.top, hot_body_image_set_.center, |
| + hot_body_image_set_.bottom, |
| + x, box_y_, box_height_, center_width); |
| + x += center_width; |
| + PaintImages(canvas, |
| + hot_body_image_set_.top_right, hot_body_image_set_.right, |
| + hot_body_image_set_.bottom_right, |
| + x, box_y_, box_height_, |
| + hot_body_image_set_.top_right->width()); |
| + canvas->Restore(); |
| + } |
| - // Overlay our drop-down hot state. |
| - if (drop_hover_animation_->GetCurrentValue() > 0) { |
| - canvas->SaveLayerAlpha( |
| - static_cast<int>(drop_hover_animation_->GetCurrentValue() * 255)); |
| + x += body_image_set->top_right->width(); |
| + // Paint the drop-down. |
| + if (drop_down_image_set) { |
| PaintImages(canvas, |
| drop_down_image_set->top, drop_down_image_set->center, |
| drop_down_image_set->bottom, |
| x, box_y_, box_height_, drop_down_image_set->top->width()); |
| - canvas->Restore(); |
| + // Overlay our drop-down hot state. |
| + if (drop_hover_animation_->GetCurrentValue() > 0) { |
| + canvas->SaveLayerAlpha( |
| + static_cast<int>(drop_hover_animation_->GetCurrentValue() * 255)); |
| + |
| + PaintImages(canvas, |
| + drop_down_image_set->top, drop_down_image_set->center, |
| + drop_down_image_set->bottom, |
| + x, box_y_, box_height_, drop_down_image_set->top->width()); |
| + |
| + canvas->Restore(); |
| + } |
| } |
| } |
| - // Restore the canvas to avoid file name etc. text are drawn flipped. |
| - // Consequently, the x-axis of following canvas->DrawXXX() method should be |
| - // mirrored so the text and images are down in the right positions. |
| - canvas->Restore(); |
| - |
| // Print the text, left aligned and always print the file extension. |
| // Last value of x was the end of the right image, just before the button. |
| // Note that in dangerous mode we use a label (as the text is multi-line). |