summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/tab_icon_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/tab_icon_view.cc')
-rw-r--r--chrome/browser/views/tab_icon_view.cc156
1 files changed, 0 insertions, 156 deletions
diff --git a/chrome/browser/views/tab_icon_view.cc b/chrome/browser/views/tab_icon_view.cc
deleted file mode 100644
index 547b039..0000000
--- a/chrome/browser/views/tab_icon_view.cc
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/views/tab_icon_view.h"
-
-#if defined(OS_WIN)
-#include <windows.h>
-#include <shellapi.h>
-#endif
-
-#include "app/resource_bundle.h"
-#include "app/theme_provider.h"
-#include "base/file_util.h"
-#include "base/logging.h"
-#include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
-#include "gfx/canvas.h"
-#include "gfx/favicon_size.h"
-#include "grit/app_resources.h"
-#include "grit/theme_resources.h"
-
-#if defined(OS_WIN)
-#include "chrome/browser/app_icon_win.h"
-#include "gfx/icon_util.h"
-#endif
-
-static bool g_initialized = false;
-static SkBitmap* g_default_fav_icon = NULL;
-
-// static
-void TabIconView::InitializeIfNeeded() {
- if (!g_initialized) {
- g_initialized = true;
-
-#if defined(OS_WIN)
- // The default window icon is the application icon, not the default
- // favicon.
- HICON app_icon = GetAppIcon();
- g_default_fav_icon =
- IconUtil::CreateSkBitmapFromHICON(app_icon, gfx::Size(16, 16));
- DestroyIcon(app_icon);
-#else
- g_default_fav_icon =
- ResourceBundle::GetSharedInstance().GetBitmapNamed(IDR_PRODUCT_LOGO_16);
-#endif
- }
-}
-
-TabIconView::TabIconView(TabIconViewModel* model)
- : model_(model),
- throbber_running_(false),
- is_light_(false),
- throbber_frame_(0) {
- InitializeIfNeeded();
-}
-
-TabIconView::~TabIconView() {
-}
-
-void TabIconView::Update() {
- static bool initialized = false;
- static int throbber_frame_count = 0;
- if (!initialized) {
- initialized = true;
- SkBitmap throbber(
- *ResourceBundle::GetSharedInstance().GetBitmapNamed(IDR_THROBBER));
- throbber_frame_count = throbber.width() / throbber.height();
- }
-
- if (throbber_running_) {
- // We think the tab is loading.
- if (!model_->ShouldTabIconViewAnimate()) {
- // Woops, tab is invalid or not loading, reset our status and schedule
- // a paint.
- throbber_running_ = false;
- SchedulePaint();
- } else {
- // The tab is still loading, increment the frame.
- throbber_frame_ = (throbber_frame_ + 1) % throbber_frame_count;
- SchedulePaint();
- }
- } else if (model_->ShouldTabIconViewAnimate()) {
- // We didn't think we were loading, but the tab is loading. Reset the
- // frame and status and schedule a paint.
- throbber_running_ = true;
- throbber_frame_ = 0;
- SchedulePaint();
- }
-}
-
-void TabIconView::PaintThrobber(gfx::Canvas* canvas) {
- SkBitmap throbber(*GetThemeProvider()->GetBitmapNamed(
- is_light_ ? IDR_THROBBER_LIGHT : IDR_THROBBER));
- int image_size = throbber.height();
- PaintIcon(canvas, throbber, throbber_frame_ * image_size, 0, image_size,
- image_size, false);
-}
-
-void TabIconView::PaintFavIcon(gfx::Canvas* canvas, const SkBitmap& bitmap) {
- PaintIcon(canvas, bitmap, 0, 0, bitmap.width(), bitmap.height(), true);
-}
-
-void TabIconView::PaintIcon(gfx::Canvas* canvas,
- const SkBitmap& bitmap,
- int src_x,
- int src_y,
- int src_w,
- int src_h,
- bool filter) {
- // For source images smaller than the favicon square, scale them as if they
- // were padded to fit the favicon square, so we don't blow up tiny favicons
- // into larger or nonproportional results.
- float float_src_w = static_cast<float>(src_w);
- float float_src_h = static_cast<float>(src_h);
- float scalable_w, scalable_h;
- if (src_w <= kFavIconSize && src_h <= kFavIconSize) {
- scalable_w = scalable_h = kFavIconSize;
- } else {
- scalable_w = float_src_w;
- scalable_h = float_src_h;
- }
-
- // Scale proportionately.
- float scale = std::min(static_cast<float>(width()) / scalable_w,
- static_cast<float>(height()) / scalable_h);
- int dest_w = static_cast<int>(float_src_w * scale);
- int dest_h = static_cast<int>(float_src_h * scale);
-
- // Center the scaled image.
- canvas->DrawBitmapInt(bitmap, src_x, src_y, src_w, src_h,
- (width() - dest_w) / 2, (height() - dest_h) / 2, dest_w,
- dest_h, filter);
-}
-
-void TabIconView::Paint(gfx::Canvas* canvas) {
- bool rendered = false;
-
- if (throbber_running_) {
- rendered = true;
- PaintThrobber(canvas);
- } else {
- SkBitmap favicon = model_->GetFavIconForTabIconView();
- if (!favicon.isNull()) {
- rendered = true;
- PaintFavIcon(canvas, favicon);
- }
- }
-
- if (!rendered)
- PaintFavIcon(canvas, *g_default_fav_icon);
-}
-
-gfx::Size TabIconView::GetPreferredSize() {
- return gfx::Size(kFavIconSize, kFavIconSize);
-}