// 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/root_window_layout_manager.h" #include "ash/desktop_background/desktop_background_widget_controller.h" #include "ash/root_window_controller.h" #include "ui/aura/window_event_dispatcher.h" #include "ui/compositor/layer.h" #include "ui/views/widget/widget.h" namespace ash { namespace internal { //////////////////////////////////////////////////////////////////////////////// // RootWindowLayoutManager, public: RootWindowLayoutManager::RootWindowLayoutManager(aura::Window* owner) : owner_(owner) { } RootWindowLayoutManager::~RootWindowLayoutManager() { } //////////////////////////////////////////////////////////////////////////////// // RootWindowLayoutManager, aura::LayoutManager implementation: void RootWindowLayoutManager::OnWindowResized() { gfx::Rect fullscreen_bounds = gfx::Rect(owner_->bounds().width(), owner_->bounds().height()); // Resize both our immediate children (the containers-of-containers animated // by PowerButtonController) and their children (the actual containers). aura::Window::Windows::const_iterator i; for (i = owner_->children().begin(); i != owner_->children().end(); ++i) { (*i)->SetBounds(fullscreen_bounds); aura::Window::Windows::const_iterator j; for (j = (*i)->children().begin(); j != (*i)->children().end(); ++j) (*j)->SetBounds(fullscreen_bounds); } RootWindowController* root_window_controller = GetRootWindowController(owner_); DesktopBackgroundWidgetController* background = root_window_controller->wallpaper_controller(); if (!background && root_window_controller->animating_wallpaper_controller()) { background = root_window_controller->animating_wallpaper_controller()-> GetController(false); } if (background) background->SetBounds(fullscreen_bounds); } void RootWindowLayoutManager::OnWindowAddedToLayout(aura::Window* child) { } void RootWindowLayoutManager::OnWillRemoveWindowFromLayout( aura::Window* child) { } void RootWindowLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { } void RootWindowLayoutManager::OnChildWindowVisibilityChanged( aura::Window* child, bool visible) { } void RootWindowLayoutManager::SetChildBounds( aura::Window* child, const gfx::Rect& requested_bounds) { SetChildBoundsDirect(child, requested_bounds); } } // namespace internal } // namespace ash