Chromium Code Reviews| Index: ash/desktop_background/desktop_background_widget_controller.cc |
| diff --git a/ash/desktop_background/desktop_background_widget_controller.cc b/ash/desktop_background/desktop_background_widget_controller.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..12110d2c4cf842af77e996d0d2854aa2d00b32a0 |
| --- /dev/null |
| +++ b/ash/desktop_background/desktop_background_widget_controller.cc |
| @@ -0,0 +1,62 @@ |
| +// 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/desktop_background/desktop_background_widget_controller.h" |
| + |
| +#include "ui/aura/root_window.h" |
| +#include "ui/views/widget/widget.h" |
| + |
| +DECLARE_WINDOW_PROPERTY_TYPE(ash::internal::DesktopBackgroundWidgetController*); |
| + |
| +namespace ash { |
| +namespace internal { |
| + |
| +DEFINE_OWNED_WINDOW_PROPERTY_KEY(DesktopBackgroundWidgetController, |
| + kWindowDesktopComponent, NULL); |
| + |
| +DesktopBackgroundWidgetController::DesktopBackgroundWidgetController( |
| + views::Widget* widget) |
| + : widget_(widget) { |
|
Nikita (slow)
2012/07/28 01:32:17
nit: lines 19-20 could be combined.
Denis Kuznetsov (DE-MUC)
2012/07/30 15:40:02
Done.
|
| +} |
| + |
| +DesktopBackgroundWidgetController::DesktopBackgroundWidgetController( |
| + ui::Layer* layer) |
|
Nikita (slow)
2012/07/28 01:32:17
nit: lines 24-25 could be combined.
Denis Kuznetsov (DE-MUC)
2012/07/30 15:40:02
Done.
|
| + : widget_(NULL) { |
| + layer_.reset(layer); |
| +} |
| + |
| + |
| +DesktopBackgroundWidgetController::~DesktopBackgroundWidgetController() { |
| + if (widget_) { |
| + widget_->CloseNow(); |
| + widget_ = NULL; |
| + } |
| + if (layer_.get()) |
|
Nikita (slow)
2012/07/28 01:32:17
else if
Denis Kuznetsov (DE-MUC)
2012/07/30 15:40:02
Done.
|
| + layer_.reset(NULL); |
| +} |
| + |
| +void DesktopBackgroundWidgetController::SetBounds(gfx::Rect bounds) { |
| + if (widget_) |
| + widget_->SetBounds(bounds); |
| + if (layer_.get()) |
|
Nikita (slow)
2012/07/28 01:32:17
else if
Denis Kuznetsov (DE-MUC)
2012/07/30 15:40:02
Done.
|
| + layer_->SetBounds(bounds); |
| +} |
| + |
| + |
| +void DesktopBackgroundWidgetController::Reparent(aura::RootWindow* root_window, |
| + int src_container, |
| + int dest_container) { |
| + if (widget_) { |
| + views::Widget::ReparentNativeView(widget_->GetNativeView(), |
| + root_window->GetChildById(dest_container)); |
| + } |
| + if (layer_.get()) { |
|
Nikita (slow)
2012/07/28 01:32:17
else if
Denis Kuznetsov (DE-MUC)
2012/07/30 15:40:02
Done.
|
| + ui::Layer* layer = layer_.get(); |
| + root_window->GetChildById(src_container)->layer()->Remove(layer); |
| + root_window->GetChildById(dest_container)->layer()->Add(layer); |
| + } |
| +} |
| + |
| +} // namespace internal |
| +} // namespace ash |