diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 17:56:26 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 17:56:26 +0000 |
commit | ef1e4cd23440f9ce72248becc7ae2fd119dea0e3 (patch) | |
tree | 1dfd77084e9b10f1864af23b83a897ba7e7faa40 /ui/views/painter.cc | |
parent | c6de4d8e6b2349e44742d81d6c8d4c1a8b23a8dd (diff) | |
download | chromium_src-ef1e4cd23440f9ce72248becc7ae2fd119dea0e3.zip chromium_src-ef1e4cd23440f9ce72248becc7ae2fd119dea0e3.tar.gz chromium_src-ef1e4cd23440f9ce72248becc7ae2fd119dea0e3.tar.bz2 |
Add GetMinimumSize() to Painter. This makes it easier for users of any Painter
(not just HorizontalPainter) to tell how tall/wide/etc. the background images
are.
BUG=231005
TEST=none
R=sky@chromium.org
Review URL: https://codereview.chromium.org/14710016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/painter.cc')
-rw-r--r-- | ui/views/painter.cc | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/ui/views/painter.cc b/ui/views/painter.cc index 9f8d220..ce84a58 100644 --- a/ui/views/painter.cc +++ b/ui/views/painter.cc @@ -32,6 +32,7 @@ class GradientPainter : public Painter { virtual ~GradientPainter(); // Painter: + virtual gfx::Size GetMinimumSize() const OVERRIDE; virtual void Paint(gfx::Canvas* canvas, const gfx::Size& size) OVERRIDE; private: @@ -64,6 +65,10 @@ GradientPainter::GradientPainter(bool horizontal, GradientPainter::~GradientPainter() { } +gfx::Size GradientPainter::GetMinimumSize() const { + return gfx::Size(); +} + void GradientPainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) { SkPaint paint; SkPoint p[2]; @@ -102,6 +107,7 @@ class VIEWS_EXPORT ImagePainter : public Painter { bool IsEmpty() const; // Painter: + virtual gfx::Size GetMinimumSize() const OVERRIDE; virtual void Paint(gfx::Canvas* canvas, const gfx::Size& size) OVERRIDE; private: @@ -156,6 +162,12 @@ bool ImagePainter::IsEmpty() const { return images_[0].isNull(); } +gfx::Size ImagePainter::GetMinimumSize() const { + return IsEmpty() ? gfx::Size() : gfx::Size( + images_[0].width() + images_[1].width() + images_[2].width(), + images_[0].height() + images_[3].height() + images_[6].height()); +} + void ImagePainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) { if (IsEmpty()) return; @@ -276,9 +288,14 @@ HorizontalPainter::HorizontalPainter(const int image_resource_names[]) { HorizontalPainter::~HorizontalPainter() { } +gfx::Size HorizontalPainter::GetMinimumSize() const { + return gfx::Size( + images_[LEFT]->width() + images_[CENTER]->width() + + images_[RIGHT]->width(), images_[LEFT]->height()); +} + void HorizontalPainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) { - if (size.width() < (images_[LEFT]->width() + images_[CENTER]->width() + - images_[RIGHT]->width())) + if (size.width() < GetMinimumSize().width()) return; // No room to paint. canvas->DrawImageInt(*images_[LEFT], 0, 0); @@ -290,8 +307,4 @@ void HorizontalPainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) { images_[LEFT]->height()); } -int HorizontalPainter::height() const { - return images_[LEFT]->height(); -} - } // namespace views |