| Index: ui/views/controls/image_view.cc
|
| diff --git a/ui/views/controls/image_view.cc b/ui/views/controls/image_view.cc
|
| index 4025713b6ab6cdd6d3ee2faed051ea11fba74483..5e55a15026eb0a0dd837b40054e354c491ab66d3 100644
|
| --- a/ui/views/controls/image_view.cc
|
| +++ b/ui/views/controls/image_view.cc
|
| @@ -31,6 +31,8 @@ const char ImageView::kViewClassName[] = "ImageView";
|
|
|
| ImageView::ImageView()
|
| : image_size_set_(false),
|
| + vector_id_(gfx::VectorIconId::VECTOR_ICON_NONE),
|
| + vector_color_(SK_ColorGREEN),
|
| horiz_alignment_(CENTER),
|
| vert_alignment_(CENTER),
|
| interactive_(true),
|
| @@ -67,19 +69,20 @@ const gfx::ImageSkia& ImageView::GetImage() {
|
| return image_;
|
| }
|
|
|
| +void ImageView::SetVectorIcon(gfx::VectorIconId id,
|
| + SkColor color,
|
| + const gfx::Size& image_size) {
|
| + SetImageSize(image_size);
|
| + vector_id_ = id;
|
| + vector_color_ = color;
|
| +}
|
| +
|
| void ImageView::SetImageSize(const gfx::Size& image_size) {
|
| image_size_set_ = true;
|
| image_size_ = image_size;
|
| PreferredSizeChanged();
|
| }
|
|
|
| -bool ImageView::GetImageSize(gfx::Size* image_size) const {
|
| - DCHECK(image_size);
|
| - if (image_size_set_)
|
| - *image_size = image_size_;
|
| - return image_size_set_;
|
| -}
|
| -
|
| gfx::Rect ImageView::GetImageBounds() const {
|
| gfx::Size image_size(image_size_set_ ?
|
| image_size_ : gfx::Size(image_.width(), image_.height()));
|
| @@ -97,8 +100,7 @@ void ImageView::SetFocusPainter(scoped_ptr<Painter> focus_painter) {
|
| gfx::Size ImageView::GetPreferredSize() const {
|
| gfx::Insets insets = GetInsets();
|
| if (image_size_set_) {
|
| - gfx::Size image_size;
|
| - GetImageSize(&image_size);
|
| + gfx::Size image_size = image_size_;
|
| image_size.Enlarge(insets.width(), insets.height());
|
| return image_size;
|
| }
|
| @@ -161,6 +163,7 @@ void ImageView::OnBlur() {
|
| void ImageView::OnPaint(gfx::Canvas* canvas) {
|
| View::OnPaint(canvas);
|
| OnPaintImage(canvas);
|
| + OnPaintVectorIcon(canvas);
|
| Painter::PaintFocusPainter(this, canvas, focus_painter_.get());
|
| }
|
|
|
| @@ -240,4 +243,13 @@ void ImageView::OnPaintImage(gfx::Canvas* canvas) {
|
| last_painted_bitmap_pixels_ = GetBitmapPixels(image_, last_paint_scale_);
|
| }
|
|
|
| +void ImageView::OnPaintVectorIcon(gfx::Canvas* canvas) {
|
| + if (vector_id_ == gfx::VectorIconId::VECTOR_ICON_NONE)
|
| + return;
|
| +
|
| + DCHECK(image_size_set_);
|
| + canvas->Translate(ComputeImageOrigin(image_size_).OffsetFromOrigin());
|
| + gfx::PaintVectorIcon(canvas, vector_id_, image_size_.width(), vector_color_);
|
| +}
|
| +
|
| } // namespace views
|
|
|