summaryrefslogtreecommitdiffstats
path: root/chrome/browser/web_app_icon_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/web_app_icon_manager.cc')
-rw-r--r--chrome/browser/web_app_icon_manager.cc115
1 files changed, 0 insertions, 115 deletions
diff --git a/chrome/browser/web_app_icon_manager.cc b/chrome/browser/web_app_icon_manager.cc
deleted file mode 100644
index 3d12aed..0000000
--- a/chrome/browser/web_app_icon_manager.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright (c) 2006-2008 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/web_app_icon_manager.h"
-
-#include "chrome/app/chrome_dll_resource.h"
-#include "chrome/app/theme/theme_resources.h"
-#include "chrome/browser/tab_contents/web_contents.h"
-#include "chrome/common/gfx/icon_util.h"
-#include "skia/include/SkBitmap.h"
-
-// Returns the default icon for the window.
-static HICON GetDefaultIcon() {
- HMODULE chrome_dll = GetModuleHandle(L"chrome.dll");
- return ::LoadIcon(chrome_dll, MAKEINTRESOURCE(IDR_MAINFRAME));
-}
-
-// Updates the icon of the window from the specified SkBitmap. If the image
-// is empty, the default icon is used. If icon is non-null it is updated to
-// reflect the new icon (unless the default is used).
-static void UpdateIcon(HWND hwnd,
- const SkBitmap& image,
- int icon_type,
- HICON* icon) {
- if (icon) {
- if (*icon)
- DestroyIcon(*icon);
- *icon = NULL;
- }
-
- HICON icon_to_set;
- if (image.width() > 0) {
- icon_to_set = IconUtil::CreateHICONFromSkBitmap(image);
- if (icon)
- *icon = icon_to_set;
- } else {
- icon_to_set = GetDefaultIcon();
- }
- ::SendMessage(hwnd, WM_SETICON, icon_type,
- reinterpret_cast<LPARAM>(icon_to_set));
-}
-
-WebAppIconManager::WebAppIconManager(HWND parent)
- : hwnd_(parent), small_icon_(NULL), big_icon_(NULL), enabled_(true) {
-}
-
-WebAppIconManager::~WebAppIconManager() {
- if (small_icon_)
- DestroyIcon(small_icon_);
-
- if (big_icon_)
- DestroyIcon(big_icon_);
-
- if (app_.get())
- app_->RemoveObserver(this);
-}
-
-void WebAppIconManager::SetContents(TabContents* contents) {
- WebApp* new_app = NULL;
- if (contents && contents->AsWebContents())
- new_app = contents->AsWebContents()->web_app();
-
- if (new_app == app_.get())
- return;
-
- if (app_.get())
- app_->RemoveObserver(this);
- app_ = new_app;
- if (app_.get()) {
- app_->AddObserver(this);
- UpdateIconsFromApp();
- } else if (enabled_) {
- UpdateIcon(hwnd_, SkBitmap(), ICON_SMALL, NULL);
- UpdateIcon(hwnd_, SkBitmap(), ICON_BIG, NULL);
- }
-}
-
-void WebAppIconManager::SetUpdatesEnabled(bool enabled) {
- if (enabled == enabled_)
- return;
-
- enabled_ = enabled;
- if (enabled_)
- UpdateIconsFromApp();
-}
-
-void WebAppIconManager::WebAppImagesChanged(WebApp* web_app) {
- UpdateIconsFromApp();
-}
-
-void WebAppIconManager::UpdateIconsFromApp() {
- if (!enabled_)
- return;
-
- SkBitmap small_image;
- SkBitmap big_image;
- if (app_.get() && !app_->GetImages().empty()) {
- const WebApp::Images& images = app_->GetImages();
- WebApp::Images::const_iterator smallest = images.begin();
- WebApp::Images::const_iterator biggest = images.begin();
- for (WebApp::Images::const_iterator i = images.begin() + 1;
- i != images.end(); ++i) {
- if (i->width() > biggest->width())
- biggest = i;
- else if (i->width() > 0 && i->width() < smallest->width())
- smallest = i;
- }
- small_image = *smallest;
- big_image = *biggest;
- }
- UpdateIcon(hwnd_, small_image, ICON_SMALL, &small_icon_);
- UpdateIcon(hwnd_, big_image, ICON_BIG, &big_icon_);
-}
-