Index: ash/common/accelerators/debug_commands.cc |
diff --git a/ash/common/accelerators/debug_commands.cc b/ash/common/accelerators/debug_commands.cc |
index e9872e567200883999fa5349d118e79c88ff5215..c7746650f398ab9c913be9051bb96afc2d47fa9d 100644 |
--- a/ash/common/accelerators/debug_commands.cc |
+++ b/ash/common/accelerators/debug_commands.cc |
@@ -9,6 +9,8 @@ |
#include "ash/common/shell_delegate.h" |
#include "ash/common/system/toast/toast_data.h" |
#include "ash/common/system/toast/toast_manager.h" |
+#include "ash/common/wallpaper/wallpaper_controller.h" |
+#include "ash/common/wallpaper/wallpaper_delegate.h" |
#include "ash/common/wm/maximize_mode/maximize_mode_controller.h" |
#include "ash/common/wm_root_window_controller.h" |
#include "ash/common/wm_shell.h" |
@@ -18,6 +20,8 @@ |
#include "base/metrics/user_metrics_action.h" |
#include "base/strings/utf_string_conversions.h" |
#include "ui/compositor/debug_utils.h" |
+#include "ui/gfx/canvas.h" |
+#include "ui/gfx/image/image_skia.h" |
#include "ui/views/debug_utils.h" |
#include "ui/views/widget/widget.h" |
@@ -74,6 +78,47 @@ void HandlePrintWindowHierarchy() { |
} |
} |
+gfx::ImageSkia CreateWallpaperImage(SkColor fill, SkColor rect) { |
+ // TODO(oshima): Consider adding a command line option to control wallpaper |
+ // images for testing. The size is randomly picked. |
+ gfx::Size image_size(1366, 768); |
+ gfx::Canvas canvas(image_size, 1.0f, true); |
+ canvas.DrawColor(fill); |
+ SkPaint paint; |
+ paint.setColor(rect); |
+ paint.setStrokeWidth(10); |
+ paint.setStyle(SkPaint::kStroke_Style); |
+ paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); |
+ canvas.DrawRoundRect(gfx::Rect(image_size), 100, paint); |
+ return gfx::ImageSkia(canvas.ExtractImageRep()); |
+} |
+ |
+void HandleToggleWallpaperMode() { |
+ static int index = 0; |
+ WallpaperController* wallpaper_controller = |
+ WmShell::Get()->wallpaper_controller(); |
+ switch (++index % 4) { |
+ case 0: |
+ ash::WmShell::Get()->wallpaper_delegate()->InitializeWallpaper(); |
+ break; |
+ case 1: |
+ wallpaper_controller->SetWallpaperImage( |
+ CreateWallpaperImage(SK_ColorRED, SK_ColorBLUE), |
+ wallpaper::WALLPAPER_LAYOUT_STRETCH); |
+ break; |
+ case 2: |
+ wallpaper_controller->SetWallpaperImage( |
+ CreateWallpaperImage(SK_ColorBLUE, SK_ColorGREEN), |
+ wallpaper::WALLPAPER_LAYOUT_CENTER); |
+ break; |
+ case 3: |
+ wallpaper_controller->SetWallpaperImage( |
+ CreateWallpaperImage(SK_ColorGREEN, SK_ColorRED), |
+ wallpaper::WALLPAPER_LAYOUT_CENTER_CROPPED); |
+ break; |
+ } |
+} |
+ |
#if defined(OS_CHROMEOS) |
void HandleToggleTouchpad() { |
@@ -132,6 +177,9 @@ void PerformDebugActionIfEnabled(AcceleratorAction action) { |
HandleToggleToggleTouchView(); |
break; |
#endif |
+ case DEBUG_TOGGLE_WALLPAPER_MODE: |
+ HandleToggleWallpaperMode(); |
+ break; |
case DEBUG_PRINT_LAYER_HIERARCHY: |
HandlePrintLayerHierarchy(); |
break; |