123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ash/wm/system_wallpaper_controller.h"
- #include "ui/aura/window.h"
- #include "ui/compositor/layer.h"
- #include "ui/compositor/layer_type.h"
- namespace ash {
- SystemWallpaperController::SystemWallpaperController(aura::Window* root_window,
- SkColor color)
- : root_window_(root_window), layer_(new ui::Layer(ui::LAYER_SOLID_COLOR)) {
- root_window_->AddObserver(this);
- layer_->SetColor(color);
- ui::Layer* root_layer = root_window_->layer();
- layer_->SetBounds(gfx::Rect(root_layer->bounds().size()));
- root_layer->Add(layer_.get());
- root_layer->StackAtBottom(layer_.get());
- }
- SystemWallpaperController::~SystemWallpaperController() {
- root_window_->RemoveObserver(this);
- }
- void SystemWallpaperController::SetColor(SkColor color) {
- layer_->SetColor(color);
- }
- void SystemWallpaperController::OnWindowBoundsChanged(
- aura::Window* root,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds,
- ui::PropertyChangeReason reason) {
- DCHECK_EQ(root_window_, root);
- layer_->SetBounds(gfx::Rect(root_window_->layer()->bounds().size()));
- }
- } // namespace ash
|