Commit 220489b1 authored by Peter Kasting's avatar Peter Kasting Committed by Commit Bot

Add ImageModel::Size().

Without this, users have to instantiate an ImageSkia just to see what
size of an image they have.

Bug: none
Change-Id: I78f07cbe04b92a62a3932432b8f73f80b7db6857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2248891
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#779117}
parent 6a990959
......@@ -84,6 +84,14 @@ bool ImageModel::IsImage() const {
return image_ && !image_.value().IsEmpty();
}
gfx::Size ImageModel::Size() const {
if (IsVectorIcon()) {
const int icon_size = GetVectorIcon().icon_size();
return gfx::Size(icon_size, icon_size);
}
return IsImage() ? GetImage().Size() : gfx::Size();
}
const VectorIconModel ImageModel::GetVectorIcon() const {
DCHECK(IsVectorIcon());
return vector_icon_model_.value();
......
......@@ -92,6 +92,7 @@ class COMPONENT_EXPORT(UI_BASE) ImageModel {
bool IsEmpty() const;
bool IsVectorIcon() const;
bool IsImage() const;
gfx::Size Size() const;
// Only valid if IsVectorIcon() or IsImage() return true, respectively.
const VectorIconModel GetVectorIcon() const;
const gfx::Image GetImage() const;
......
......@@ -54,6 +54,14 @@ TEST(ImageModelTest, CheckForImage) {
EXPECT_TRUE(image_model.IsImage());
}
TEST(ImageModelTest, Size) {
EXPECT_EQ(gfx::Size(), ImageModel().Size());
EXPECT_EQ(gfx::Size(16, 16),
ImageModel::FromVectorIcon(GetVectorIcon(), -1, 16).Size());
EXPECT_EQ(gfx::Size(16, 16),
ImageModel::FromImage(gfx::test::CreateImage(16, 16)).Size());
}
TEST(ImageModelTest, CheckAssignVectorIcon) {
VectorIconModel vector_icon_model_dest;
VectorIconModel vector_icon_model_src =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment