Chromium Code Reviews| Index: ash/system/audio/tray_volume.cc |
| diff --git a/ash/system/audio/tray_volume.cc b/ash/system/audio/tray_volume.cc |
| index 5b9d3a38541c2785474f7b26fc330f31393f64fd..ec0b08a36514cd4ae1f712f5b7690ddd941c4fcc 100644 |
| --- a/ash/system/audio/tray_volume.cc |
| +++ b/ash/system/audio/tray_volume.cc |
| @@ -4,6 +4,8 @@ |
| #include "ash/system/audio/tray_volume.h" |
| +#include <cmath> |
| + |
| #include "ash/shell.h" |
| #include "ash/system/tray/system_tray_delegate.h" |
| #include "ash/system/tray/tray_constants.h" |
| @@ -18,6 +20,7 @@ |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/gfx/canvas.h" |
| #include "ui/gfx/image/image.h" |
| +#include "ui/gfx/image/image_skia_operations.h" |
| #include "ui/views/controls/button/image_button.h" |
| #include "ui/views/controls/image_view.h" |
| #include "ui/views/controls/label.h" |
| @@ -53,24 +56,14 @@ class VolumeButton : public views::ToggleImageButton { |
| void Update() { |
| ash::SystemTrayDelegate* delegate = |
| ash::Shell::GetInstance()->tray_delegate(); |
| - int level = static_cast<int>(delegate->GetVolumeLevel() * 100); |
| - int image_index = level / (100 / kVolumeLevel); |
| - if (level > 0 && image_index == 0) |
| - ++image_index; |
| - if (level == 100) |
| - image_index = kVolumeLevel - 1; |
| - else if (image_index == kVolumeLevel - 1) |
| - --image_index; |
| - // Index 0 is reserved for mute. |
| - if (delegate->IsAudioMuted()) |
| - image_index = 0; |
| - else |
| - ++image_index; |
| + int image_index = delegate->IsAudioMuted() ? |
| + 0 : std::ceil(delegate->GetVolumeLevel() * kVolumeLevel); |
|
Daniel Erat
2012/07/24 00:24:33
Not your fault, but do you mind updating ash/syste
Daniel Erat
2012/07/24 00:24:33
The old code looks like it used kVolumeLevel - 1 f
oshima
2012/07/24 00:44:21
Done.
oshima
2012/07/24 00:44:21
overlooked original behavior. Fixed.
|
| + |
| if (image_index != image_index_) { |
| - SkIRect region = SkIRect::MakeXYWH(0, image_index * kVolumeImageHeight, |
| - kVolumeImageWidth, kVolumeImageHeight); |
| - gfx::ImageSkia image_skia; |
| - image_.ToImageSkia()->extractSubset(&image_skia, region); |
| + gfx::Rect region(0, image_index * kVolumeImageHeight, |
| + kVolumeImageWidth, kVolumeImageHeight); |
| + gfx::ImageSkia image_skia = gfx::ImageSkiaOperations::ExtractSubset( |
| + *(image_.ToImageSkia()), region); |
| SetImage(views::CustomButton::BS_NORMAL, &image_skia); |
| image_index_ = image_index; |
| } |