1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_AVATAR_ICON_UTIL_H_ 6 #define CHROME_BROWSER_PROFILES_PROFILE_AVATAR_ICON_UTIL_H_ 7 8 #include <string> 9 10 #include "third_party/skia/include/core/SkColor.h" 11 12 namespace base { 13 class FilePath; 14 } 15 16 namespace gfx { 17 class Image; 18 } 19 20 class SkBitmap; 21 22 namespace profiles { 23 24 // Avatar access. 25 extern const char kGAIAPictureFileName[]; 26 extern const char kHighResAvatarFolderName[]; 27 28 // Avatar formatting. 29 extern const int kAvatarIconWidth; 30 extern const int kAvatarIconHeight; 31 extern const SkColor kAvatarTutorialBackgroundColor; 32 extern const SkColor kAvatarTutorialContentTextColor; 33 extern const SkColor kAvatarBubbleAccountsBackgroundColor; 34 35 // Gets the number of default avatar icons that exist. 36 size_t GetDefaultAvatarIconCount(); 37 38 // Gets the index for the (grey silhouette) avatar used as a placeholder. 39 int GetPlaceholderAvatarIndex(); 40 41 // Gets the resource ID of the placeholder avatar icon. 42 int GetPlaceholderAvatarIconResourceID(); 43 44 // Gets the number of generic avatar icons that exist. 45 size_t GetGenericAvatarIconCount(); 46 47 // Gets the resource ID of the default avatar icon at |index|. 48 int GetDefaultAvatarIconResourceIDAtIndex(size_t index); 49 50 // Gets the resource filename of the default avatar icon at |index|. 51 const char* GetDefaultAvatarIconFileNameAtIndex(size_t index); 52 53 // Gets the file name of an avatar that has no high res version. 54 const char* GetNoHighResAvatarFileName(); 55 56 // Gets the full path of the high res avatar icon at |index|. 57 base::FilePath GetPathOfHighResAvatarAtIndex(size_t index); 58 59 // Returns a URL for the default avatar icon with specified index. 60 std::string GetDefaultAvatarIconUrl(size_t index); 61 62 // Checks if |index| is a valid avatar icon index 63 bool IsDefaultAvatarIconIndex(size_t index); 64 65 // Checks if the given URL points to one of the default avatar icons. If it 66 // is, returns true and its index through |icon_index|. If not, returns false. 67 bool IsDefaultAvatarIconUrl(const std::string& icon_url, size_t *icon_index); 68 69 // Returns a version of |image| of a specific size. Note that no checks are 70 // done on the width/height so make sure they're reasonable values; in the 71 // range of 16-256 is probably best. 72 gfx::Image GetSizedAvatarIcon(const gfx::Image& image, 73 bool is_rectangle, 74 int width, int height); 75 76 // Returns a version of |image| suitable for use in menus. 77 gfx::Image GetAvatarIconForMenu(const gfx::Image& image, 78 bool is_rectangle); 79 80 // Returns a version of |image| suitable for use in WebUI. 81 gfx::Image GetAvatarIconForWebUI(const gfx::Image& image, 82 bool is_rectangle); 83 84 // Returns a version of |image| suitable for use in title bars. The returned 85 // image is scaled to fit |dst_width| and |dst_height|. 86 gfx::Image GetAvatarIconForTitleBar(const gfx::Image& image, 87 bool is_rectangle, 88 int dst_width, 89 int dst_height); 90 91 // Returns a bitmap with a couple of columns shaved off so it is more square, 92 // so that when resized to a square aspect ratio it looks pretty. 93 SkBitmap GetAvatarIconAsSquare(const SkBitmap& source_bitmap, int scale_factor); 94 95 } // namespace profiles 96 97 #endif // CHROME_BROWSER_PROFILES_PROFILE_AVATAR_ICON_UTIL_H_ 98