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

Unified Diff: chrome/browser/ui/tabs/tab_audio_indicator.cc

Issue 13422009: Tab audio indicator tweaks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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
« no previous file with comments | « chrome/app/theme/default_200_percent/common/audio_equalizer_column.png ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/tabs/tab_audio_indicator.cc
diff --git a/chrome/browser/ui/tabs/tab_audio_indicator.cc b/chrome/browser/ui/tabs/tab_audio_indicator.cc
index d083735ccf129c3ed8e807af06664916feef3ab9..32dc849d063cb0419e4c84447d89ba880726f6a7 100644
--- a/chrome/browser/ui/tabs/tab_audio_indicator.cc
+++ b/chrome/browser/ui/tabs/tab_audio_indicator.cc
@@ -15,25 +15,23 @@
namespace {
// The number of columns to draw for the equalizer graphic.
-const size_t kEqualizerColumnCount = 2;
-
-// The maximum level for the equalizer.
-const size_t kEqualizerMaxLevel = 4;
+const size_t kEqualizerColumnCount = 3;
// The equalizer cycles between these frames. An equalizer frame is 2 columns
-// where each column ranges from 0 to |kEqualizerMaxLevel|. TODO(sail): Replace
-// this with levels from the actual audio source.
+// where each column ranges from 0 to 4.
const size_t kEqualizerFrames[][kEqualizerColumnCount] = {
- { 2, 1 },
- { 3, 2 },
- { 2, 3 },
- { 2, 2 },
- { 2, 3 },
- { 3, 4 },
- { 2, 3 },
- { 3, 2 },
- { 2, 3 },
- { 3, 2 },
+ { 1, 2, 3 },
+ { 2, 3, 4 },
+ { 3, 4, 3 },
+ { 4, 3, 2 },
+ { 3, 2, 1 },
+ { 2, 1, 2 },
+ { 1, 2, 3 },
+ { 0, 1, 2 },
+ { 1, 0, 1 },
+ { 2, 1, 0 },
+ { 3, 2, 1 },
+ { 2, 1, 2 },
};
// The space between equalizer levels.
@@ -89,7 +87,7 @@ void TabAudioIndicator::Paint(gfx::Canvas* canvas, const gfx::Rect& rect) {
canvas->Save();
canvas->ClipRect(rect);
- // Draw 2 equalizer columns. |IDR_AUDIO_EQUALIZER_COLUMN| is a column of the
+ // Draw 3 equalizer columns. |IDR_AUDIO_EQUALIZER_COLUMN| is a column of the
// equalizer with 4 levels. The current level is between 0 and 4 so the
// image is shifted down and then drawn.
if (state_ != STATE_NOT_ANIMATING) {
@@ -98,6 +96,9 @@ void TabAudioIndicator::Paint(gfx::Canvas* canvas, const gfx::Rect& rect) {
int x = rect.right();
std::vector<int> levels = GetCurrentEqualizerLevels();
for (int i = levels.size() - 1; i >= 0; --i) {
+ if (levels[i] == 0)
+ continue;
+
// Shift the image down by the level.
int y = rect.bottom() - levels[i] * 2;
x -= image->width();
@@ -105,11 +106,11 @@ void TabAudioIndicator::Paint(gfx::Canvas* canvas, const gfx::Rect& rect) {
// Clip the equalizer column so the favicon doesn't obscure it.
gfx::Rect equalizer_rect(x, y, image->width(), image->height());
- equalizer_rect.Inset(-kEqualizerColumnPadding, -kEqualizerColumnPadding);
canvas->sk_canvas()->clipRect(
gfx::RectToSkRect(equalizer_rect), SkRegion::kDifference_Op);
- x -= kEqualizerColumnPadding;
+ // Padding is baked into both sides of the icons so overlap the images.
+ x += kEqualizerColumnPadding;
}
// Cache the levels that were just drawn. This is used to prevent
« no previous file with comments | « chrome/app/theme/default_200_percent/common/audio_equalizer_column.png ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698