diff options
-rw-r--r-- | chrome/browser/chromeos/main_menu.cc | 3 | ||||
-rw-r--r-- | views/painter.cc | 22 | ||||
-rw-r--r-- | views/painter.h | 3 |
3 files changed, 22 insertions, 6 deletions
diff --git a/chrome/browser/chromeos/main_menu.cc b/chrome/browser/chromeos/main_menu.cc index 587a08e..72ee822 100644 --- a/chrome/browser/chromeos/main_menu.cc +++ b/chrome/browser/chromeos/main_menu.cc @@ -134,7 +134,8 @@ MainMenu::MainMenu() views::Painter* painter = views::Painter::CreateImagePainter( *drop_down_image, gfx::Insets(kBackgroundImageTop, kBackgroundImageLeft, - kBackgroundImageBottom, kBackgroundImageRight)); + kBackgroundImageBottom, kBackgroundImageRight), + false); menu_popup->GetRootView()->set_background( views::Background::CreateBackgroundPainter(true, painter)); diff --git a/views/painter.cc b/views/painter.cc index c710158..bcc65cd 100644 --- a/views/painter.cc +++ b/views/painter.cc @@ -57,9 +57,12 @@ class GradientPainter : public Painter { class ImagePainter : public Painter { public: - ImagePainter(const SkBitmap& image, const gfx::Insets& insets) + ImagePainter(const SkBitmap& image, + const gfx::Insets& insets, + bool paint_center) : image_(image), - insets_(insets) { + insets_(insets), + paint_center_(paint_center) { DCHECK(image.width() > insets.width() && image.height() > insets.height()); } @@ -116,11 +119,21 @@ class ImagePainter : public Painter { image_, 0, insets_.top(), insets_.left(), image_.height() - insets_.height(), 0, insets_.top(), insets_.left(), h - insets_.height(), true); + // Center. + if (paint_center_) { + canvas->DrawBitmapInt( + image_, + insets_.top(), insets_.left(), + image_.width() - insets_.width(), image_.height() - insets_.height(), + insets_.left(), insets_.top(), + w - insets_.width(), h - insets_.height(), true); + } } private: const SkBitmap image_; const gfx::Insets insets_; + bool paint_center_; DISALLOW_COPY_AND_ASSIGN(ImagePainter); }; @@ -151,8 +164,9 @@ Painter* Painter::CreateVerticalGradient(SkColor c1, SkColor c2) { // static Painter* Painter::CreateImagePainter(const SkBitmap& image, - const gfx::Insets& insets) { - return new ImagePainter(image, insets); + const gfx::Insets& insets, + bool paint_center) { + return new ImagePainter(image, insets, paint_center); } HorizontalPainter::HorizontalPainter(const int image_resource_names[]) { diff --git a/views/painter.h b/views/painter.h index 40e5db3..a237461 100644 --- a/views/painter.h +++ b/views/painter.h @@ -37,7 +37,8 @@ class Painter { // destination size. // Ownership is passed to the caller. static Painter* CreateImagePainter(const SkBitmap& image, - const gfx::Insets& insets); + const gfx::Insets& insets, + bool paint_center); virtual ~Painter() {} |