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

Side by Side Diff: chrome/browser/profiles/profile_shortcut_manager_win.cc

Issue 11778073: Add support for getting the 256x256 app icon on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/app_icon_win.cc ('k') | ui/gfx/icon_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/profiles/profile_shortcut_manager_win.h" 5 #include "chrome/browser/profiles/profile_shortcut_manager_win.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 const int kShortcutIconSize = 48; 52 const int kShortcutIconSize = 48;
53 53
54 // Creates a desktop shortcut icon file (.ico) on the disk for a given profile, 54 // Creates a desktop shortcut icon file (.ico) on the disk for a given profile,
55 // badging the browser distribution icon with the profile avatar. 55 // badging the browser distribution icon with the profile avatar.
56 // Returns a path to the shortcut icon file on disk, which is empty if this 56 // Returns a path to the shortcut icon file on disk, which is empty if this
57 // fails. Use index 0 when assigning the resulting file as the icon. 57 // fails. Use index 0 when assigning the resulting file as the icon.
58 FilePath CreateChromeDesktopShortcutIconForProfile( 58 FilePath CreateChromeDesktopShortcutIconForProfile(
59 const FilePath& profile_path, 59 const FilePath& profile_path,
60 const SkBitmap& avatar_bitmap) { 60 const SkBitmap& avatar_bitmap) {
61 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 61 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
62 HICON app_icon_handle = GetAppIconForSize(kShortcutIconSize); 62 scoped_ptr<SkBitmap> app_icon_bitmap(GetAppIconForSize(kShortcutIconSize));
63 scoped_ptr<SkBitmap> app_icon_bitmap(
64 IconUtil::CreateSkBitmapFromHICON(app_icon_handle));
65 DestroyIcon(app_icon_handle);
66 if (!app_icon_bitmap.get()) 63 if (!app_icon_bitmap.get())
67 return FilePath(); 64 return FilePath();
68 65
69 // TODO(rlp): Share this chunk of code with 66 // TODO(rlp): Share this chunk of code with
70 // avatar_menu_button::DrawTaskBarDecoration. 67 // avatar_menu_button::DrawTaskBarDecoration.
71 const SkBitmap* source_bitmap = NULL; 68 const SkBitmap* source_bitmap = NULL;
72 SkBitmap squarer_bitmap; 69 SkBitmap squarer_bitmap;
73 if ((avatar_bitmap.width() == profiles::kAvatarIconWidth) && 70 if ((avatar_bitmap.width() == profiles::kAvatarIconWidth) &&
74 (avatar_bitmap.height() == profiles::kAvatarIconHeight)) { 71 (avatar_bitmap.height() == profiles::kAvatarIconHeight)) {
75 // Shave a couple of columns so the bitmap is more square. So when 72 // Shave a couple of columns so the bitmap is more square. So when
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 } 579 }
583 BrowserThread::PostTask( 580 BrowserThread::PostTask(
584 BrowserThread::FILE, FROM_HERE, 581 BrowserThread::FILE, FROM_HERE,
585 base::Bind(&CreateOrUpdateDesktopShortcutsForProfile, 582 base::Bind(&CreateOrUpdateDesktopShortcutsForProfile,
586 profile_path, new_shortcut_appended_name, 583 profile_path, new_shortcut_appended_name,
587 profile_avatar_bitmap_copy, create_mode, action)); 584 profile_avatar_bitmap_copy, create_mode, action));
588 585
589 cache->SetShortcutNameOfProfileAtIndex(profile_index, 586 cache->SetShortcutNameOfProfileAtIndex(profile_index,
590 new_shortcut_appended_name); 587 new_shortcut_appended_name);
591 } 588 }
OLDNEW
« no previous file with comments | « chrome/browser/app_icon_win.cc ('k') | ui/gfx/icon_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698