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

Side by Side Diff: ash/desktop_background/desktop_background_resources.cc

Issue 11415015: Remove use of index in wallpaper picker code and some refactor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix browser tests Created 8 years, 1 month 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ash/desktop_background/desktop_background_resources.h"
6
7 #include "base/logging.h"
8 #include "base/rand_util.h"
9 #include "grit/ash_wallpaper_resources.h"
10 #include "ui/base/resource/resource_bundle.h"
11 #include "ui/gfx/image/image.h"
12
13 namespace {
14
15 // Keeps in sync (same order) with WallpaperLayout enum in header file.
16 const char* kWallpaperLayoutArrays[] = {
17 "CENTER",
18 "CENTER_CROPPED",
19 "STRETCH",
20 "TILE"
21 };
22
23 const ash::WallpaperInfo kDefaultWallpapers[] = {
24 #if defined(GOOGLE_CHROME_BUILD)
25 {
26 {
27 IDR_AURA_WALLPAPERS_2_LANDSCAPE7_LARGE,
28 ash::CENTER_CROPPED
29 },
30 {
31 IDR_AURA_WALLPAPERS_2_LANDSCAPE7_SMALL,
32 ash::CENTER
33 }
34 },
35 {
36 {
37 IDR_AURA_WALLPAPERS_2_LANDSCAPE8_LARGE,
38 ash::CENTER_CROPPED
39 },
40 {
41 IDR_AURA_WALLPAPERS_2_LANDSCAPE8_SMALL,
42 ash::CENTER
43 }
44 },
45 #endif
46 {
47 {
48 IDR_AURA_WALLPAPERS_5_GRADIENT5_LARGE,
49 ash::TILE
50 },
51 {
52 IDR_AURA_WALLPAPERS_5_GRADIENT5_SMALL,
53 ash::TILE
54 }
55 }
56 };
57
58 const int kWallpaperLayoutCount = arraysize(kWallpaperLayoutArrays);
59 const int kDefaultWallpaperCount = arraysize(kDefaultWallpapers);
60 const int kInvalidWallpaperIndex = -1;
61 const int kSolidColorIndex = -2;
62
63 // TODO(saintlou): These hardcoded indexes, although checked against the size
64 // of the array are really hacky.
65 #if defined(GOOGLE_CHROME_BUILD)
66 const int kDefaultWallpaperIndex = 1; // IDR_AURA_WALLPAPERS_2_LANDSCAPE8
67 const int kGuestWallpaperIndex = 0; // IDR_AURA_WALLPAPERS_2_LANDSCAPE7
68 #else
69 // Set default wallpaper to the grey background for faster wallpaper loading
70 // time in browser tests. Otherwise, some of the tests will finish before
71 // wallpaper loaded and cause crashes.
72 const int kDefaultWallpaperIndex = 0; // IDR_AURA_WALLPAPERS_5_GRADIENT5
73 const int kGuestWallpaperIndex = kDefaultWallpaperIndex;
74 #endif
75
76 } // namespace
77
78 namespace ash {
79
80 int GetDefaultWallpaperIndex() {
81 DCHECK(kDefaultWallpaperIndex < kDefaultWallpaperCount);
82 return std::min(kDefaultWallpaperIndex, kDefaultWallpaperCount - 1);
83 }
84
85 int GetGuestWallpaperIndex() {
86 DCHECK(kGuestWallpaperIndex < kDefaultWallpaperCount);
87 return std::min(kGuestWallpaperIndex, kDefaultWallpaperCount - 1);
88 }
89
90 int GetInvalidWallpaperIndex() {
91 return kInvalidWallpaperIndex;
92 }
93
94 WallpaperLayout GetLayoutEnum(const std::string& layout) {
95 for (int i = 0; i < kWallpaperLayoutCount; i++) {
96 if (layout.compare(kWallpaperLayoutArrays[i]) == 0)
97 return static_cast<WallpaperLayout>(i);
98 }
99 // Default to use CENTER layout.
100 return CENTER;
101 }
102
103 int GetSolidColorIndex() {
104 return kSolidColorIndex;
105 }
106
107 int GetWallpaperCount() {
108 return kDefaultWallpaperCount;
109 }
110
111 const WallpaperInfo& GetWallpaperInfo(int index) {
112 DCHECK(index >= 0 && index < kDefaultWallpaperCount);
113 return kDefaultWallpapers[index];
114 }
115
116 const WallpaperViewInfo& GetWallpaperViewInfo(int index,
117 WallpaperResolution resolution) {
118 DCHECK(index >= 0 && index < kDefaultWallpaperCount);
119 if (resolution == SMALL)
120 return kDefaultWallpapers[index].small_wallpaper;
121 else
122 return kDefaultWallpapers[index].large_wallpaper;
123 }
124
125 } // namespace ash
OLDNEW
« no previous file with comments | « ash/desktop_background/desktop_background_resources.h ('k') | ash/desktop_background/desktop_background_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698