| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/mus/root_window_controller.h" | 5 #include "ash/mus/root_window_controller.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 GetWindowByShellWindowId(MashContainerToAshShellWindowId(container)); | 157 GetWindowByShellWindowId(MashContainerToAshShellWindowId(container)); |
| 158 DCHECK(wm_window); | 158 DCHECK(wm_window); |
| 159 return wm_window->mus_window(); | 159 return wm_window->mus_window(); |
| 160 } | 160 } |
| 161 | 161 |
| 162 WmWindowMus* RootWindowController::GetWindowByShellWindowId(int id) { | 162 WmWindowMus* RootWindowController::GetWindowByShellWindowId(int id) { |
| 163 return WmWindowMus::AsWmWindowMus( | 163 return WmWindowMus::AsWmWindowMus( |
| 164 WmWindowMus::Get(root_)->GetChildByShellWindowId(id)); | 164 WmWindowMus::Get(root_)->GetChildByShellWindowId(id)); |
| 165 } | 165 } |
| 166 | 166 |
| 167 ShelfLayoutManager* RootWindowController::GetShelfLayoutManager() { | |
| 168 return static_cast<ShelfLayoutManager*>( | |
| 169 layout_managers_[GetWindowForContainer(Container::USER_PRIVATE_SHELF)] | |
| 170 .get()); | |
| 171 } | |
| 172 | |
| 173 StatusLayoutManager* RootWindowController::GetStatusLayoutManager() { | |
| 174 return static_cast<StatusLayoutManager*>( | |
| 175 layout_managers_[GetWindowForContainer(Container::STATUS)].get()); | |
| 176 } | |
| 177 | |
| 178 gfx::Rect RootWindowController::CalculateDefaultBounds( | 167 gfx::Rect RootWindowController::CalculateDefaultBounds( |
| 179 ui::Window* window) const { | 168 ui::Window* window) const { |
| 180 if (window->HasSharedProperty( | 169 if (window->HasSharedProperty( |
| 181 ui::mojom::WindowManager::kInitialBounds_Property)) { | 170 ui::mojom::WindowManager::kInitialBounds_Property)) { |
| 182 return window->GetSharedProperty<gfx::Rect>( | 171 return window->GetSharedProperty<gfx::Rect>( |
| 183 ui::mojom::WindowManager::kInitialBounds_Property); | 172 ui::mojom::WindowManager::kInitialBounds_Property); |
| 184 } | 173 } |
| 185 | 174 |
| 186 if (GetWindowShowState(window) == ui::mojom::ShowState::FULLSCREEN) { | 175 if (GetWindowShowState(window) == ui::mojom::ShowState::FULLSCREEN) { |
| 187 return gfx::Rect(0, 0, root_->bounds().width(), root_->bounds().height()); | 176 return gfx::Rect(0, 0, root_->bounds().width(), root_->bounds().height()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 199 height = std::max(0, std::min(max_size.height(), pref.height())); | 188 height = std::max(0, std::min(max_size.height(), pref.height())); |
| 200 } | 189 } |
| 201 return gfx::Rect(40 + (window_count_ % 4) * 40, 40 + (window_count_ % 4) * 40, | 190 return gfx::Rect(40 + (window_count_ % 4) * 40, 40 + (window_count_ % 4) * 40, |
| 202 width, height); | 191 width, height); |
| 203 } | 192 } |
| 204 | 193 |
| 205 void RootWindowController::OnShelfWindowAvailable() { | 194 void RootWindowController::OnShelfWindowAvailable() { |
| 206 DockedWindowLayoutManager* docked_window_layout_manager = | 195 DockedWindowLayoutManager* docked_window_layout_manager = |
| 207 DockedWindowLayoutManager::Get(WmWindowMus::Get(root_)); | 196 DockedWindowLayoutManager::Get(WmWindowMus::Get(root_)); |
| 208 | 197 |
| 209 // Following code expects the shelf to be called only once. | 198 DCHECK(!docked_window_layout_manager->shelf()); |
| 210 // TODO(sky): this check is only necessary while we have shelf hosted in | |
| 211 // sysui (as sysui can restart). Once that is fixed there should be a DCHECK | |
| 212 // that the shelf hasn't been set. | |
| 213 if (docked_window_layout_manager->shelf()) | |
| 214 return; | |
| 215 | |
| 216 docked_window_layout_manager->SetShelf(wm_shelf_.get()); | 199 docked_window_layout_manager->SetShelf(wm_shelf_.get()); |
| 217 | 200 |
| 218 PanelLayoutManager::Get(WmWindowMus::Get(root_))->SetShelf(wm_shelf_.get()); | 201 PanelLayoutManager::Get(WmWindowMus::Get(root_))->SetShelf(wm_shelf_.get()); |
| 219 | 202 |
| 220 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements | 203 // TODO: http://crbug.com/614182 Ash's ShelfLayoutManager implements |
| 221 // DockedWindowLayoutManagerObserver so that it can inset by the docked | 204 // DockedWindowLayoutManagerObserver so that it can inset by the docked |
| 222 // windows. | 205 // windows. |
| 223 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); | 206 // docked_layout_manager_->AddObserver(shelf_->shelf_layout_manager()); |
| 224 } | 207 } |
| 225 | 208 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 base::WrapUnique(new DockedWindowLayoutManager(docked_container))); | 244 base::WrapUnique(new DockedWindowLayoutManager(docked_container))); |
| 262 | 245 |
| 263 WmWindowMus* panel_container = | 246 WmWindowMus* panel_container = |
| 264 GetWindowByShellWindowId(kShellWindowId_PanelContainer); | 247 GetWindowByShellWindowId(kShellWindowId_PanelContainer); |
| 265 panel_container->SetLayoutManager( | 248 panel_container->SetLayoutManager( |
| 266 base::WrapUnique(new PanelLayoutManager(panel_container))); | 249 base::WrapUnique(new PanelLayoutManager(panel_container))); |
| 267 } | 250 } |
| 268 | 251 |
| 269 } // namespace mus | 252 } // namespace mus |
| 270 } // namespace ash | 253 } // namespace ash |
| OLD | NEW |