summaryrefslogtreecommitdiffstats
path: root/ash/desktop_background
diff options
context:
space:
mode:
authorbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 20:45:53 +0000
committerbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 20:45:53 +0000
commit1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7 (patch)
tree96e5b831ce305a1684f0c9278d73896267c095ae /ash/desktop_background
parentf861b390b63e33491ed82c3b2fb29eb17a4849e1 (diff)
downloadchromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.zip
chromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.tar.gz
chromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.tar.bz2
Use low resolution wallpapers for small screens
BUG=140336 TBR=jhawkins Review URL: https://chromiumcodereview.appspot.com/10837089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149915 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/desktop_background')
-rw-r--r--ash/desktop_background/desktop_background_controller.cc50
-rw-r--r--ash/desktop_background/desktop_background_controller.h6
-rw-r--r--ash/desktop_background/desktop_background_resources.cc300
-rw-r--r--ash/desktop_background/desktop_background_resources.h17
4 files changed, 300 insertions, 73 deletions
diff --git a/ash/desktop_background/desktop_background_controller.cc b/ash/desktop_background/desktop_background_controller.cc
index 022ca0b..3f9dcba 100644
--- a/ash/desktop_background/desktop_background_controller.cc
+++ b/ash/desktop_background/desktop_background_controller.cc
@@ -23,6 +23,10 @@
namespace ash {
namespace {
+
+const int kSmallWallpaperMaximalWidth = 1366;
+const int kSmallWallpaperMaximalHeight = 800;
+
internal::RootWindowLayoutManager* GetRootWindowLayoutManager(
aura::RootWindow* root_window) {
return static_cast<internal::RootWindowLayoutManager*>(
@@ -32,11 +36,11 @@ internal::RootWindowLayoutManager* GetRootWindowLayoutManager(
// Stores the current wallpaper data.
struct DesktopBackgroundController::WallpaperData {
- explicit WallpaperData(int index)
+ WallpaperData(int index, WallpaperResolution resolution)
: wallpaper_index(index),
- wallpaper_layout(GetWallpaperInfo(index).layout),
+ wallpaper_layout(GetWallpaperViewInfo(index, resolution).layout),
wallpaper_image(*(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- GetWallpaperInfo(index).id).ToImageSkia())) {
+ GetWallpaperViewInfo(index, resolution).id).ToImageSkia())) {
}
WallpaperData(WallpaperLayout layout, const gfx::ImageSkia& image)
: wallpaper_index(-1),
@@ -54,7 +58,9 @@ class DesktopBackgroundController::WallpaperOperation
: public base::RefCountedThreadSafe<
DesktopBackgroundController::WallpaperOperation> {
public:
- explicit WallpaperOperation(int index) : index_(index) {
+ WallpaperOperation(int index, WallpaperResolution resolution)
+ : index_(index),
+ resolution_(resolution) {
}
static void Run(scoped_refptr<WallpaperOperation> wo) {
@@ -64,7 +70,7 @@ class DesktopBackgroundController::WallpaperOperation
void LoadingWallpaper() {
if (cancel_flag_.IsSet())
return;
- wallpaper_data_.reset(new WallpaperData(index_));
+ wallpaper_data_.reset(new WallpaperData(index_, resolution_));
}
void Cancel() {
@@ -85,7 +91,9 @@ class DesktopBackgroundController::WallpaperOperation
scoped_ptr<WallpaperData> wallpaper_data_;
- int index_;
+ const int index_;
+
+ const WallpaperResolution resolution_;
DISALLOW_COPY_AND_ASSIGN(WallpaperOperation);
};
@@ -123,7 +131,17 @@ void DesktopBackgroundController::OnRootWindowAdded(
switch (desktop_background_mode_) {
case BACKGROUND_IMAGE:
if (current_wallpaper_.get()) {
- SetDesktopBackgroundImage(root_window);
+ gfx::Size root_window_size = root_window->GetHostSize();
+ int wallpaper_width = current_wallpaper_->wallpaper_image.width();
+ int wallpaper_height = current_wallpaper_->wallpaper_image.height();
+ // Loads a higher resolution wallpaper if needed.
+ if ((wallpaper_width < root_window_size.width() ||
+ wallpaper_height < root_window_size.height()) &&
+ current_wallpaper_->wallpaper_index != -1 &&
+ current_wallpaper_->wallpaper_layout != TILE)
+ SetDefaultWallpaper(current_wallpaper_->wallpaper_index, true);
+ else
+ SetDesktopBackgroundImage(root_window);
} else {
internal::CreateDesktopBackground(root_window);
}
@@ -134,7 +152,8 @@ void DesktopBackgroundController::OnRootWindowAdded(
}
}
-void DesktopBackgroundController::SetDefaultWallpaper(int index) {
+void DesktopBackgroundController::SetDefaultWallpaper(int index,
+ bool force_reload) {
// We should not change background when index is invalid. For instance, at
// login screen or stub_user login.
if (index == ash::GetInvalidWallpaperIndex()) {
@@ -145,12 +164,23 @@ void DesktopBackgroundController::SetDefaultWallpaper(int index) {
return;
}
- if (current_wallpaper_.get() && current_wallpaper_->wallpaper_index == index)
+ if (!force_reload && current_wallpaper_.get() &&
+ current_wallpaper_->wallpaper_index == index)
return;
CancelPendingWallpaperOperation();
- wallpaper_op_ = new WallpaperOperation(index);
+ WallpaperResolution resolution = SMALL;
+ Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
+ for (Shell::RootWindowList::iterator iter = root_windows.begin();
+ iter != root_windows.end(); ++iter) {
+ gfx::Size root_window_size = (*iter)->GetHostSize();
+ if (root_window_size.width() > kSmallWallpaperMaximalWidth ||
+ root_window_size.height() > kSmallWallpaperMaximalHeight)
+ resolution = LARGE;
+ }
+
+ wallpaper_op_ = new WallpaperOperation(index, resolution);
base::WorkerPool::PostTaskAndReply(
FROM_HERE,
base::Bind(&WallpaperOperation::Run, wallpaper_op_),
diff --git a/ash/desktop_background/desktop_background_controller.h b/ash/desktop_background/desktop_background_controller.h
index b575654..813e338 100644
--- a/ash/desktop_background/desktop_background_controller.h
+++ b/ash/desktop_background/desktop_background_controller.h
@@ -71,8 +71,10 @@ class ASH_EXPORT DesktopBackgroundController {
void OnRootWindowAdded(aura::RootWindow* root_window);
// Loads default wallpaper at |index| asynchronously and sets to current
- // wallpaper after loaded.
- void SetDefaultWallpaper(int index);
+ // wallpaper after loaded. When |force_reload| is true, reload wallpaper
+ // for all root windows even if |index| is the same as current wallpaper. It
+ // must be true when a different resolution of current wallpaper is needed.
+ void SetDefaultWallpaper(int index, bool force_reload);
// Sets the user selected custom wallpaper. Called when user selected a file
// from file system or changed the layout of wallpaper.
diff --git a/ash/desktop_background/desktop_background_resources.cc b/ash/desktop_background/desktop_background_resources.cc
index 01f7f46..48a6dcf 100644
--- a/ash/desktop_background/desktop_background_resources.cc
+++ b/ash/desktop_background/desktop_background_resources.cc
@@ -23,210 +23,384 @@ const char* kWallpaperLayoutArrays[] = {
const ash::WallpaperInfo kDefaultWallpapers[] = {
#if !defined(GOOGLE_CHROME_BUILD)
{
- IDR_AURA_WALLPAPERS_ROMAINGUY_0,
+ {
+ IDR_AURA_WALLPAPERS_ROMAINGUY_0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_ROMAINGUY_0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_ROMAINGUY_0_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
#else
{
- IDR_AURA_WALLPAPERS_1_NATURE0,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE0_THUMB,
- ash::CENTER_CROPPED,
"Kathy Collins / Getty Images",
"http://www.gettyimages.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE1,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE1_THUMB,
- ash::CENTER_CROPPED,
"Johannes van Donge",
"http://www.diginature.nl"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE2,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE2_THUMB,
- ash::CENTER_CROPPED,
"Oleg Zhukov",
"http://500px.com/eosboy"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE3,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE3_THUMB,
- ash::CENTER_CROPPED,
"Stefano Ronchi",
"http://www.stefanoronchi.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE4,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE4_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE4_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE4_THUMB,
- ash::CENTER_CROPPED,
"Stefano Ronchi",
"http://www.stefanoronchi.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE5,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE5_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE5_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE5_THUMB,
- ash::CENTER_CROPPED,
"Mario Moreno",
"http://www.mariomorenophotography.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE6,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE6_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE6_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE6_THUMB,
- ash::CENTER_CROPPED,
"Walter Soestbergen",
"http://www.waltersoestbergen.nl"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE7,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE7_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE7_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE7_THUMB,
- ash::CENTER_CROPPED,
"Mark Bridger",
"http://www.bridgephotography.co.uk"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE0,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE0_THUMB,
- ash::CENTER_CROPPED,
"Vitali Prokopenko",
"http://www.vitphoto.com/"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE1,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE1_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE2,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE2_THUMB,
- ash::CENTER_CROPPED,
"Mark Bridger",
"http://www.bridgephotography.co.uk"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE3,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE3_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE4,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE4_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE4_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE4_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE5,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE5_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE5_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE5_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE6,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE6_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE6_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE6_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE7,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE7_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE7_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE7_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN0,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN0_THUMB,
- ash::CENTER_CROPPED,
"Paulo FLOP",
"http://500px.com/FLOP"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN1,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN1_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN2,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN2_THUMB,
- ash::CENTER_CROPPED,
"Neil Kremer",
"http://lightshedimagery.smugmug.com"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN3,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN3_THUMB,
- ash::CENTER_CROPPED,
"Neil Kremer",
"http://lightshedimagery.smugmug.com"
},
#endif
{
- IDR_AURA_WALLPAPERS_5_GRADIENT0,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT0_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT0_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT0_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT1,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT1_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT1_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT1_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT2,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT2_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT2_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT2_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT3,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT3_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT3_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT3_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT4,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT4_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT4_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT4_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT5,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT5_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT5_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT5_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT6,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT6_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT6_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT6_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT7,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT7_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT7_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT7_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
- },
+ }
};
const int kWallpaperLayoutCount = arraysize(kWallpaperLayoutArrays);
@@ -294,4 +468,12 @@ const WallpaperInfo& GetWallpaperInfo(int index) {
return kDefaultWallpapers[index];
}
+const WallpaperViewInfo& GetWallpaperViewInfo(int index,
+ WallpaperResolution resolution) {
+ if (resolution == SMALL)
+ return kDefaultWallpapers[index].small;
+ else
+ return kDefaultWallpapers[index].large;
+}
+
} // namespace ash
diff --git a/ash/desktop_background/desktop_background_resources.h b/ash/desktop_background/desktop_background_resources.h
index 54cdf55..f9c99b5 100644
--- a/ash/desktop_background/desktop_background_resources.h
+++ b/ash/desktop_background/desktop_background_resources.h
@@ -19,10 +19,21 @@ enum WallpaperLayout {
TILE,
};
-struct ASH_EXPORT WallpaperInfo {
+enum WallpaperResolution {
+ LARGE,
+ SMALL
+};
+
+// Encapsulates wallpaper infomation needed by desktop background view.
+struct ASH_EXPORT WallpaperViewInfo {
int id;
- int thumb_id;
WallpaperLayout layout;
+};
+
+struct ASH_EXPORT WallpaperInfo {
+ WallpaperViewInfo large;
+ WallpaperViewInfo small;
+ int thumb_id;
// TODO(bshe): author member should be encoded to UTF16. We need to use i18n
// string for this member after M19.
const char* author;
@@ -39,6 +50,8 @@ ASH_EXPORT int GetNextWallpaperIndex(int index);
ASH_EXPORT int GetSolidColorIndex();
ASH_EXPORT int GetWallpaperCount();
ASH_EXPORT const WallpaperInfo& GetWallpaperInfo(int index);
+ASH_EXPORT const WallpaperViewInfo& GetWallpaperViewInfo(int index,
+ WallpaperResolution resolution);
} // namespace ash