OLD | NEW |
| (Empty) |
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. | |
4 | |
5 #include "ash/common/wm/root_window_layout_manager.h" | |
6 | |
7 #include "ash/common/wm_window.h" | |
8 #include "ui/aura/window.h" | |
9 #include "ui/aura/window_tracker.h" | |
10 | |
11 namespace ash { | |
12 namespace wm { | |
13 | |
14 //////////////////////////////////////////////////////////////////////////////// | |
15 // RootWindowLayoutManager, public: | |
16 | |
17 RootWindowLayoutManager::RootWindowLayoutManager(WmWindow* owner) | |
18 : owner_(owner) {} | |
19 | |
20 RootWindowLayoutManager::~RootWindowLayoutManager() {} | |
21 | |
22 //////////////////////////////////////////////////////////////////////////////// | |
23 // RootWindowLayoutManager, aura::LayoutManager implementation: | |
24 | |
25 void RootWindowLayoutManager::OnWindowResized() { | |
26 const gfx::Rect fullscreen_bounds = gfx::Rect(owner_->GetBounds().size()); | |
27 | |
28 // Resize both our immediate children (the containers-of-containers animated | |
29 // by PowerButtonController) and their children (the actual containers). | |
30 aura::WindowTracker children_tracker(owner_->aura_window()->children()); | |
31 while (!children_tracker.windows().empty()) { | |
32 aura::Window* child = children_tracker.Pop(); | |
33 // Skip descendants of top-level windows, i.e. only resize containers and | |
34 // other windows without a delegate, such as ScreenDimmer windows. | |
35 if (child->GetToplevelWindow()) | |
36 continue; | |
37 | |
38 child->SetBounds(fullscreen_bounds); | |
39 aura::WindowTracker grandchildren_tracker(child->children()); | |
40 while (!grandchildren_tracker.windows().empty()) { | |
41 child = grandchildren_tracker.Pop(); | |
42 if (!child->GetToplevelWindow()) | |
43 child->SetBounds(fullscreen_bounds); | |
44 } | |
45 } | |
46 } | |
47 | |
48 void RootWindowLayoutManager::OnWindowAddedToLayout(WmWindow* child) {} | |
49 | |
50 void RootWindowLayoutManager::OnWillRemoveWindowFromLayout(WmWindow* child) {} | |
51 | |
52 void RootWindowLayoutManager::OnWindowRemovedFromLayout(WmWindow* child) {} | |
53 | |
54 void RootWindowLayoutManager::OnChildWindowVisibilityChanged(WmWindow* child, | |
55 bool visible) {} | |
56 | |
57 void RootWindowLayoutManager::SetChildBounds( | |
58 WmWindow* child, | |
59 const gfx::Rect& requested_bounds) { | |
60 child->SetBoundsDirect(requested_bounds); | |
61 } | |
62 | |
63 } // namespace wm | |
64 } // namespace ash | |
OLD | NEW |