Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: ash/frame/caption_buttons/frame_caption_button.cc

Issue 934503002: Ash frames: dark frames now use white caption buttons. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ash_unittests Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/frame/caption_buttons/frame_caption_button.cc
diff --git a/ash/frame/caption_buttons/frame_caption_button.cc b/ash/frame/caption_buttons/frame_caption_button.cc
index 2eb30a38fb28cd7e102c1920d8634098033d324b..ec58362f29d35391c667000b3f0193e22db8bf00 100644
--- a/ash/frame/caption_buttons/frame_caption_button.cc
+++ b/ash/frame/caption_buttons/frame_caption_button.cc
@@ -20,6 +20,9 @@ const int kSwapImagesAnimationDurationMs = 200;
// animation as a ratio of |kSwapImagesAnimationDurationMs|.
const float kFadeOutRatio = 0.5f;
+// The alpha to draw inactive icons with.
+const float kInactiveIconAlpha = 0.2f;
+
} // namespace
// static
@@ -32,7 +35,6 @@ FrameCaptionButton::FrameCaptionButton(views::ButtonListener* listener,
paint_as_active_(false),
alpha_(255),
icon_image_id_(-1),
- inactive_icon_image_id_(-1),
hovered_background_image_id_(-1),
pressed_background_image_id_(-1),
swap_images_animation_(new gfx::SlideAnimation(this)) {
@@ -49,7 +51,6 @@ FrameCaptionButton::~FrameCaptionButton() {
void FrameCaptionButton::SetImages(CaptionButtonIcon icon,
Animate animate,
int icon_image_id,
- int inactive_icon_image_id,
int hovered_background_image_id,
int pressed_background_image_id) {
// The early return is dependant on |animate| because callers use SetImages()
@@ -57,24 +58,21 @@ void FrameCaptionButton::SetImages(CaptionButtonIcon icon,
if (icon == icon_ &&
(animate == ANIMATE_YES || !swap_images_animation_->is_animating()) &&
icon_image_id == icon_image_id_ &&
- inactive_icon_image_id == inactive_icon_image_id_ &&
hovered_background_image_id == hovered_background_image_id_ &&
pressed_background_image_id == pressed_background_image_id_) {
return;
}
if (animate == ANIMATE_YES)
- crossfade_icon_image_ = GetIconImageToPaint();
+ crossfade_icon_image_ = icon_image_;
James Cook 2015/02/17 22:16:55 Do we still need crossfade_icon_image_? It looks l
benwells 2015/02/17 22:18:38 I think this is still needed, as on line 70 and 75
James Cook 2015/02/17 22:20:20 Yep, my mistake.
icon_ = icon;
icon_image_id_ = icon_image_id;
- inactive_icon_image_id_ = inactive_icon_image_id;
hovered_background_image_id_ = hovered_background_image_id;
pressed_background_image_id_ = pressed_background_image_id;
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
icon_image_ = *rb.GetImageSkiaNamed(icon_image_id);
- inactive_icon_image_ = *rb.GetImageSkiaNamed(inactive_icon_image_id);
hovered_background_image_ = *rb.GetImageSkiaNamed(
hovered_background_image_id);
pressed_background_image_ = *rb.GetImageSkiaNamed(
@@ -127,12 +125,11 @@ void FrameCaptionButton::OnPaint(gfx::Canvas* canvas) {
if (icon_alpha < static_cast<int>(kFadeOutRatio * 255))
crossfade_icon_alpha = static_cast<int>(255 - icon_alpha / kFadeOutRatio);
- gfx::ImageSkia icon_image = GetIconImageToPaint();
if (crossfade_icon_alpha > 0 && !crossfade_icon_image_.isNull()) {
- gfx::Canvas icon_canvas(icon_image.size(), canvas->image_scale(), false);
+ gfx::Canvas icon_canvas(icon_image_.size(), canvas->image_scale(), false);
SkPaint paint;
paint.setAlpha(icon_alpha);
- icon_canvas.DrawImageInt(icon_image, 0, 0, paint);
+ icon_canvas.DrawImageInt(icon_image_, 0, 0, paint);
paint.setAlpha(crossfade_icon_alpha);
paint.setXfermodeMode(SkXfermode::kPlus_Mode);
@@ -143,7 +140,7 @@ void FrameCaptionButton::OnPaint(gfx::Canvas* canvas) {
} else {
if (!swap_images_animation_->is_animating())
icon_alpha = alpha_;
- PaintCentered(canvas, icon_image, icon_alpha);
+ PaintCentered(canvas, icon_image_, icon_alpha);
}
}
@@ -170,13 +167,12 @@ void FrameCaptionButton::OnGestureEvent(ui::GestureEvent* event) {
CustomButton::OnGestureEvent(event);
}
-const gfx::ImageSkia& FrameCaptionButton::GetIconImageToPaint() const {
- return paint_as_active_ ? icon_image_ : inactive_icon_image_;
-}
-
void FrameCaptionButton::PaintCentered(gfx::Canvas* canvas,
const gfx::ImageSkia& to_center,
int alpha) {
+ if (!paint_as_active_)
+ alpha = static_cast<int>(kInactiveIconAlpha * alpha);
pkotwicz 2015/02/17 18:56:42 Nit: alpha *= kInactiveIconAlpha
benwells 2015/02/18 07:08:46 Done.
+
SkPaint paint;
paint.setAlpha(alpha);
canvas->DrawImageInt(to_center,

Powered by Google App Engine
This is Rietveld 408576698