Chromium Code Reviews| Index: ash/system/tray/tray_background_view.cc |
| diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc |
| index e8b0f2fafe035b6f43f0a13f16798aa05605c4a0..c20a6ae7bbe27f366069475e7280c3d8b5ebd6b4 100644 |
| --- a/ash/system/tray/tray_background_view.cc |
| +++ b/ash/system/tray/tray_background_view.cc |
| @@ -21,7 +21,7 @@ |
| #include "ui/accessibility/ax_view_state.h" |
| #include "ui/aura/window.h" |
| #include "ui/aura/window_event_dispatcher.h" |
| -#include "ui/base/resource/resource_bundle.h" |
| +#include "ui/base/nine_image_painter_factory.h" |
| #include "ui/base/ui_base_switches_util.h" |
| #include "ui/compositor/layer.h" |
| #include "ui/compositor/layer_animation_element.h" |
| @@ -31,6 +31,7 @@ |
| #include "ui/gfx/canvas.h" |
| #include "ui/gfx/image/image_skia.h" |
| #include "ui/gfx/image/image_skia_operations.h" |
| +#include "ui/gfx/nine_image_painter.h" |
| #include "ui/gfx/rect.h" |
| #include "ui/gfx/screen.h" |
| #include "ui/gfx/skia_util.h" |
| @@ -100,53 +101,6 @@ class TrayBackground : public views::Background { |
| explicit TrayBackground(TrayBackgroundView* tray_background_view) : |
| tray_background_view_(tray_background_view) { |
| set_alpha(kTrayBackgroundAlpha); |
| - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| - leading_images_[kImageHorizontal][kImageTypeDefault] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_LEFT).ToImageSkia(); |
| - middle_images_[kImageHorizontal][kImageTypeDefault] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_CENTER).ToImageSkia(); |
| - trailing_images_[kImageHorizontal][kImageTypeDefault] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_RIGHT).ToImageSkia(); |
| - |
| - leading_images_[kImageHorizontal][kImageTypeOnBlack] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_LEFT_ONBLACK).ToImageSkia(); |
| - middle_images_[kImageHorizontal][kImageTypeOnBlack] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_CENTER_ONBLACK).ToImageSkia(); |
| - trailing_images_[kImageHorizontal][kImageTypeOnBlack] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_RIGHT_ONBLACK).ToImageSkia(); |
| - |
| - leading_images_[kImageHorizontal][kImageTypePressed] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_LEFT_PRESSED).ToImageSkia(); |
| - middle_images_[kImageHorizontal][kImageTypePressed] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_CENTER_PRESSED).ToImageSkia(); |
| - trailing_images_[kImageHorizontal][kImageTypePressed] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_HORIZ_RIGHT_PRESSED).ToImageSkia(); |
| - |
| - leading_images_[kImageVertical][kImageTypeDefault] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_VERTICAL_TOP).ToImageSkia(); |
| - middle_images_[kImageVertical][kImageTypeDefault] = |
| - rb.GetImageNamed( |
| - IDR_AURA_TRAY_BG_VERTICAL_CENTER).ToImageSkia(); |
| - trailing_images_[kImageVertical][kImageTypeDefault] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_VERTICAL_BOTTOM).ToImageSkia(); |
| - |
| - leading_images_[kImageVertical][kImageTypeOnBlack] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_VERTICAL_TOP_ONBLACK).ToImageSkia(); |
| - middle_images_[kImageVertical][kImageTypeOnBlack] = |
| - rb.GetImageNamed( |
| - IDR_AURA_TRAY_BG_VERTICAL_CENTER_ONBLACK).ToImageSkia(); |
| - trailing_images_[kImageVertical][kImageTypeOnBlack] = |
| - rb.GetImageNamed( |
| - IDR_AURA_TRAY_BG_VERTICAL_BOTTOM_ONBLACK).ToImageSkia(); |
| - |
| - leading_images_[kImageVertical][kImageTypePressed] = |
| - rb.GetImageNamed(IDR_AURA_TRAY_BG_VERTICAL_TOP_PRESSED).ToImageSkia(); |
| - middle_images_[kImageVertical][kImageTypePressed] = |
| - rb.GetImageNamed( |
| - IDR_AURA_TRAY_BG_VERTICAL_CENTER_PRESSED).ToImageSkia(); |
| - trailing_images_[kImageVertical][kImageTypePressed] = |
| - rb.GetImageNamed( |
| - IDR_AURA_TRAY_BG_VERTICAL_BOTTOM_PRESSED).ToImageSkia(); |
| } |
| ~TrayBackground() override {} |
| @@ -163,6 +117,19 @@ class TrayBackground : public views::Background { |
| // Overridden from views::Background. |
| void Paint(gfx::Canvas* canvas, views::View* view) const override { |
| + const int kImages[kNumOrientations][kNumStates][9] = { |
|
stevenjb
2014/12/15 17:19:10
nit: 9 should be a const defined with the macro, o
sadrul
2014/12/15 19:45:56
Someone using a NineImagePainter should be aware o
stevenjb
2014/12/15 20:03:23
Just saying that, even with the diff right here in
sadrul
2014/12/15 20:55:41
Consider the alternative: we would have a constant
|
| + { // Horizontal |
| + IMAGE_GRID_HORIZONTAL(IDR_AURA_TRAY_BG_HORIZ), |
| + IMAGE_GRID_HORIZONTAL(IDR_AURA_TRAY_BG_HORIZ_ONBLACK), |
| + IMAGE_GRID_HORIZONTAL(IDR_AURA_TRAY_BG_HORIZ_PRESSED), |
| + }, |
| + { // Vertical |
| + IMAGE_GRID_VERTICAL(IDR_AURA_TRAY_BG_VERTICAL), |
| + IMAGE_GRID_VERTICAL(IDR_AURA_TRAY_BG_VERTICAL_ONBLACK), |
| + IMAGE_GRID_VERTICAL(IDR_AURA_TRAY_BG_VERTICAL_PRESSED), |
| + } |
| + }; |
| + |
| int orientation = kImageHorizontal; |
| ShelfWidget* shelf_widget = GetShelfWidget(); |
| if (shelf_widget && |
| @@ -177,57 +144,14 @@ class TrayBackground : public views::Background { |
| else |
| state = kImageTypeDefault; |
| - const gfx::ImageSkia* leading = leading_images_[orientation][state]; |
| - const gfx::ImageSkia* middle = middle_images_[orientation][state]; |
| - const gfx::ImageSkia* trailing = trailing_images_[orientation][state]; |
| - |
| - gfx::Rect bounds(view->GetLocalBounds()); |
| - gfx::Point leading_location, trailing_location; |
| - gfx::Rect middle_bounds; |
| - |
| - if (orientation == kImageHorizontal) { |
| - leading_location = gfx::Point(0, 0); |
| - trailing_location = gfx::Point(bounds.width() - trailing->width(), 0); |
| - middle_bounds = gfx::Rect( |
| - leading->width(), |
| - 0, |
| - bounds.width() - (leading->width() + trailing->width()), |
| - bounds.height()); |
| - } else { |
| - leading_location = gfx::Point(0, 0); |
| - trailing_location = gfx::Point(0, bounds.height() - trailing->height()); |
| - middle_bounds = gfx::Rect( |
| - 0, |
| - leading->height(), |
| - bounds.width(), |
| - bounds.height() - (leading->height() + trailing->height())); |
| - } |
| - |
| - canvas->DrawImageInt(*leading, |
| - leading_location.x(), |
| - leading_location.y()); |
| - |
| - canvas->DrawImageInt(*trailing, |
| - trailing_location.x(), |
| - trailing_location.y()); |
| - |
| - canvas->TileImageInt(*middle, |
| - middle_bounds.x(), |
| - middle_bounds.y(), |
| - middle_bounds.width(), |
| - middle_bounds.height()); |
| + ui::CreateNineImagePainter(kImages[orientation][state]) |
| + ->Paint(canvas, view->GetLocalBounds()); |
| } |
| SkColor color_; |
| // Reference to the TrayBackgroundView for which this is a background. |
| TrayBackgroundView* tray_background_view_; |
| - // References to the images used as backgrounds, they are owned by the |
| - // resource bundle class. |
| - const gfx::ImageSkia* leading_images_[kNumOrientations][kNumStates]; |
| - const gfx::ImageSkia* middle_images_[kNumOrientations][kNumStates]; |
| - const gfx::ImageSkia* trailing_images_[kNumOrientations][kNumStates]; |
| - |
| DISALLOW_COPY_AND_ASSIGN(TrayBackground); |
| }; |