| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/services/window_manager/window_manager_app.h" | 5 #include "mojo/services/window_manager/window_manager_app.h" |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "mojo/aura/aura_init.h" | 9 #include "mojo/aura/aura_init.h" |
| 10 #include "mojo/converters/geometry/geometry_type_converters.h" |
| 10 #include "mojo/converters/input_events/input_events_type_converters.h" | 11 #include "mojo/converters/input_events/input_events_type_converters.h" |
| 11 #include "mojo/public/cpp/application/application_connection.h" | 12 #include "mojo/public/cpp/application/application_connection.h" |
| 12 #include "mojo/public/cpp/application/application_impl.h" | 13 #include "mojo/public/cpp/application/application_impl.h" |
| 13 #include "mojo/public/interfaces/application/shell.mojom.h" | 14 #include "mojo/public/interfaces/application/shell.mojom.h" |
| 14 #include "mojo/services/public/cpp/view_manager/view.h" | 15 #include "mojo/services/public/cpp/view_manager/view.h" |
| 15 #include "mojo/services/public/cpp/view_manager/view_manager.h" | 16 #include "mojo/services/public/cpp/view_manager/view_manager.h" |
| 16 #include "mojo/services/window_manager/window_manager_delegate.h" | 17 #include "mojo/services/window_manager/window_manager_delegate.h" |
| 17 #include "ui/aura/window.h" | 18 #include "ui/aura/window.h" |
| 18 #include "ui/aura/window_delegate.h" | 19 #include "ui/aura/window_delegate.h" |
| 19 #include "ui/aura/window_property.h" | 20 #include "ui/aura/window_property.h" |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 | 193 |
| 193 void WindowManagerApp::OnEmbed(ViewManager* view_manager, | 194 void WindowManagerApp::OnEmbed(ViewManager* view_manager, |
| 194 View* root, | 195 View* root, |
| 195 ServiceProviderImpl* exported_services, | 196 ServiceProviderImpl* exported_services, |
| 196 scoped_ptr<ServiceProvider> imported_services) { | 197 scoped_ptr<ServiceProvider> imported_services) { |
| 197 DCHECK(!view_manager_ && !root_); | 198 DCHECK(!view_manager_ && !root_); |
| 198 view_manager_ = view_manager; | 199 view_manager_ = view_manager; |
| 199 root_ = root; | 200 root_ = root; |
| 200 | 201 |
| 201 window_tree_host_.reset(new WindowTreeHostMojo(shell_, root_)); | 202 window_tree_host_.reset(new WindowTreeHostMojo(shell_, root_)); |
| 202 window_tree_host_->window()->SetBounds(root->bounds()); | 203 window_tree_host_->window()->SetBounds(root->bounds().To<gfx::Rect>()); |
| 203 window_tree_host_->window()->Show(); | 204 window_tree_host_->window()->Show(); |
| 204 | 205 |
| 205 RegisterSubtree(root_, window_tree_host_->window()); | 206 RegisterSubtree(root_, window_tree_host_->window()); |
| 206 | 207 |
| 207 capture_client_.reset( | 208 capture_client_.reset( |
| 208 new wm::ScopedCaptureClient(window_tree_host_->window())); | 209 new wm::ScopedCaptureClient(window_tree_host_->window())); |
| 209 | 210 |
| 210 if (wrapped_view_manager_delegate_) { | 211 if (wrapped_view_manager_delegate_) { |
| 211 wrapped_view_manager_delegate_->OnEmbed( | 212 wrapped_view_manager_delegate_->OnEmbed( |
| 212 view_manager, root, exported_services, imported_services.Pass()); | 213 view_manager, root, exported_services, imported_services.Pass()); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 root_ = NULL; | 266 root_ = NULL; |
| 266 STLDeleteValues(&view_id_to_window_map_); | 267 STLDeleteValues(&view_id_to_window_map_); |
| 267 if (focus_client_.get()) | 268 if (focus_client_.get()) |
| 268 focus_client_->RemoveObserver(this); | 269 focus_client_->RemoveObserver(this); |
| 269 if (activation_client_) | 270 if (activation_client_) |
| 270 activation_client_->RemoveObserver(this); | 271 activation_client_->RemoveObserver(this); |
| 271 window_tree_host_.reset(); | 272 window_tree_host_.reset(); |
| 272 } | 273 } |
| 273 | 274 |
| 274 void WindowManagerApp::OnViewBoundsChanged(View* view, | 275 void WindowManagerApp::OnViewBoundsChanged(View* view, |
| 275 const gfx::Rect& old_bounds, | 276 const Rect& old_bounds, |
| 276 const gfx::Rect& new_bounds) { | 277 const Rect& new_bounds) { |
| 277 aura::Window* window = GetWindowForViewId(view->id()); | 278 aura::Window* window = GetWindowForViewId(view->id()); |
| 278 window->SetBounds(new_bounds); | 279 window->SetBounds(new_bounds.To<gfx::Rect>()); |
| 279 } | 280 } |
| 280 | 281 |
| 281 //////////////////////////////////////////////////////////////////////////////// | 282 //////////////////////////////////////////////////////////////////////////////// |
| 282 // WindowManagerApp, ui::EventHandler implementation: | 283 // WindowManagerApp, ui::EventHandler implementation: |
| 283 | 284 |
| 284 void WindowManagerApp::OnEvent(ui::Event* event) { | 285 void WindowManagerApp::OnEvent(ui::Event* event) { |
| 285 if (!window_manager_client_) | 286 if (!window_manager_client_) |
| 286 return; | 287 return; |
| 287 | 288 |
| 288 View* view = GetViewForWindow(static_cast<aura::Window*>(event->target())); | 289 View* view = GetViewForWindow(static_cast<aura::Window*>(event->target())); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 DCHECK(view_id_to_window_map_.find(view->id()) == | 330 DCHECK(view_id_to_window_map_.find(view->id()) == |
| 330 view_id_to_window_map_.end()); | 331 view_id_to_window_map_.end()); |
| 331 aura::Window* window = new aura::Window(dummy_delegate_.get()); | 332 aura::Window* window = new aura::Window(dummy_delegate_.get()); |
| 332 window->set_id(view->id()); | 333 window->set_id(view->id()); |
| 333 window->SetProperty(kViewKey, view); | 334 window->SetProperty(kViewKey, view); |
| 334 // All events pass through the root during dispatch, so we only need a handler | 335 // All events pass through the root during dispatch, so we only need a handler |
| 335 // installed there. | 336 // installed there. |
| 336 if (view == root_) | 337 if (view == root_) |
| 337 window->AddPreTargetHandler(this); | 338 window->AddPreTargetHandler(this); |
| 338 parent->AddChild(window); | 339 parent->AddChild(window); |
| 339 window->SetBounds(view->bounds()); | 340 window->SetBounds(view->bounds().To<gfx::Rect>()); |
| 340 window->Show(); | 341 window->Show(); |
| 341 view_id_to_window_map_[view->id()] = window; | 342 view_id_to_window_map_[view->id()] = window; |
| 342 View::Children::const_iterator it = view->children().begin(); | 343 View::Children::const_iterator it = view->children().begin(); |
| 343 for (; it != view->children().end(); ++it) | 344 for (; it != view->children().end(); ++it) |
| 344 RegisterSubtree(*it, window); | 345 RegisterSubtree(*it, window); |
| 345 } | 346 } |
| 346 | 347 |
| 347 void WindowManagerApp::UnregisterSubtree(View* view) { | 348 void WindowManagerApp::UnregisterSubtree(View* view) { |
| 348 for (View* child : view->children()) | 349 for (View* child : view->children()) |
| 349 UnregisterSubtree(child); | 350 UnregisterSubtree(child); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 377 view_manager_app->GetServiceProvider(); | 378 view_manager_app->GetServiceProvider(); |
| 378 view_manager_service_provider->ConnectToService(ViewManagerService::Name_, | 379 view_manager_service_provider->ConnectToService(ViewManagerService::Name_, |
| 379 pipe.handle1.Pass()); | 380 pipe.handle1.Pass()); |
| 380 view_manager_client_ = ViewManagerClientFactory::WeakBindViewManagerToPipe( | 381 view_manager_client_ = ViewManagerClientFactory::WeakBindViewManagerToPipe( |
| 381 pipe.handle0.Pass(), shell_, this).Pass(); | 382 pipe.handle0.Pass(), shell_, this).Pass(); |
| 382 | 383 |
| 383 view_manager_app->AddService(&window_manager_internal_service_factory_); | 384 view_manager_app->AddService(&window_manager_internal_service_factory_); |
| 384 } | 385 } |
| 385 | 386 |
| 386 } // namespace mojo | 387 } // namespace mojo |
| OLD | NEW |