• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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