summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/main_menu.cc3
-rw-r--r--views/painter.cc22
-rw-r--r--views/painter.h3
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() {}