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.
5 #include "ash/wm/system_background_controller.h"
7 #include "ui/aura/window.h"
8 #include "ui/compositor/layer.h"
9 #include "ui/compositor/layer_type.h"
14 SystemBackgroundController::SystemBackgroundController(
15 aura::Window
* root_window
,
17 : root_window_(root_window
),
18 layer_(new ui::Layer(ui::LAYER_SOLID_COLOR
)) {
19 root_window_
->AddObserver(this);
20 layer_
->SetColor(color
);
22 ui::Layer
* root_layer
= root_window_
->layer();
23 layer_
->SetBounds(gfx::Rect(root_layer
->bounds().size()));
24 root_layer
->Add(layer_
.get());
25 root_layer
->StackAtBottom(layer_
.get());
28 SystemBackgroundController::~SystemBackgroundController() {
29 root_window_
->RemoveObserver(this);
32 void SystemBackgroundController::SetColor(SkColor color
) {
33 layer_
->SetColor(color
);
36 void SystemBackgroundController::OnWindowBoundsChanged(
38 const gfx::Rect
& old_bounds
,
39 const gfx::Rect
& new_bounds
) {
40 DCHECK_EQ(root_window_
, root
);
41 layer_
->SetBounds(gfx::Rect(root_window_
->layer()->bounds().size()));
44 } // namespace internal