| 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_service_impl.h" | 5 #include "mojo/services/window_manager/window_manager_service_impl.h" |
| 6 | 6 |
| 7 #include "mojo/services/window_manager/window_manager_app.h" | 7 #include "mojo/services/window_manager/window_manager_app.h" |
| 8 | 8 |
| 9 namespace mojo { | 9 namespace mojo { |
| 10 | 10 |
| 11 //////////////////////////////////////////////////////////////////////////////// | 11 //////////////////////////////////////////////////////////////////////////////// |
| 12 // WindowManagerServiceImpl, public: | 12 // WindowManagerServiceImpl, public: |
| 13 | 13 |
| 14 WindowManagerServiceImpl::WindowManagerServiceImpl( | 14 WindowManagerServiceImpl::WindowManagerServiceImpl( |
| 15 WindowManagerApp* window_manager) | 15 WindowManagerApp* window_manager) |
| 16 : window_manager_(window_manager) { | 16 : window_manager_(window_manager) { |
| 17 window_manager_->AddConnection(this); | 17 window_manager_->AddConnection(this); |
| 18 } | 18 } |
| 19 | 19 |
| 20 WindowManagerServiceImpl::~WindowManagerServiceImpl() { | 20 WindowManagerServiceImpl::~WindowManagerServiceImpl() { |
| 21 window_manager_->RemoveConnection(this); | 21 window_manager_->RemoveConnection(this); |
| 22 } | 22 } |
| 23 | 23 |
| 24 void WindowManagerServiceImpl::NotifyReady() { | 24 void WindowManagerServiceImpl::NotifyReady() { |
| 25 client()->OnWindowManagerReady(); | 25 client()->OnWindowManagerReady(); |
| 26 } | 26 } |
| 27 | 27 |
| 28 void WindowManagerServiceImpl::NotifyNodeFocused( | 28 void WindowManagerServiceImpl::NotifyNodeFocused(Id new_focused_id, |
| 29 view_manager::Id new_focused_id, | 29 Id old_focused_id) { |
| 30 view_manager::Id old_focused_id) { | |
| 31 client()->OnFocusChanged(old_focused_id, new_focused_id); | 30 client()->OnFocusChanged(old_focused_id, new_focused_id); |
| 32 } | 31 } |
| 33 | 32 |
| 34 void WindowManagerServiceImpl::NotifyWindowActivated( | 33 void WindowManagerServiceImpl::NotifyWindowActivated(Id new_active_id, |
| 35 view_manager::Id new_active_id, | 34 Id old_active_id) { |
| 36 view_manager::Id old_active_id) { | |
| 37 client()->OnActiveWindowChanged(old_active_id, new_active_id); | 35 client()->OnActiveWindowChanged(old_active_id, new_active_id); |
| 38 } | 36 } |
| 39 | 37 |
| 40 //////////////////////////////////////////////////////////////////////////////// | 38 //////////////////////////////////////////////////////////////////////////////// |
| 41 // WindowManagerServiceImpl, WindowManager implementation: | 39 // WindowManagerServiceImpl, WindowManager implementation: |
| 42 | 40 |
| 43 void WindowManagerServiceImpl::OpenWindow( | 41 void WindowManagerServiceImpl::OpenWindow( |
| 44 const Callback<void(view_manager::Id)>& callback) { | 42 const Callback<void(Id)>& callback) { |
| 45 bool success = window_manager_->IsReady(); | 43 bool success = window_manager_->IsReady(); |
| 46 if (success) { | 44 if (success) { |
| 47 view_manager::Id id = window_manager_->OpenWindow(); | 45 Id id = window_manager_->OpenWindow(); |
| 48 callback.Run(id); | 46 callback.Run(id); |
| 49 } else { | 47 } else { |
| 50 // TODO(beng): perhaps should take an error code for this. | 48 // TODO(beng): perhaps should take an error code for this. |
| 51 callback.Run(0); | 49 callback.Run(0); |
| 52 } | 50 } |
| 53 } | 51 } |
| 54 | 52 |
| 55 void WindowManagerServiceImpl::OpenWindowWithURL( | 53 void WindowManagerServiceImpl::OpenWindowWithURL( |
| 56 const String& url, | 54 const String& url, |
| 57 const Callback<void(view_manager::Id)>& callback) { | 55 const Callback<void(Id)>& callback) { |
| 58 bool success = window_manager_->IsReady(); | 56 bool success = window_manager_->IsReady(); |
| 59 if (success) { | 57 if (success) { |
| 60 view_manager::Id id = window_manager_->OpenWindowWithURL(url); | 58 Id id = window_manager_->OpenWindowWithURL(url); |
| 61 callback.Run(id); | 59 callback.Run(id); |
| 62 } else { | 60 } else { |
| 63 // TODO(beng): perhaps should take an error code for this. | 61 // TODO(beng): perhaps should take an error code for this. |
| 64 callback.Run(0); | 62 callback.Run(0); |
| 65 } | 63 } |
| 66 } | 64 } |
| 67 | 65 |
| 68 void WindowManagerServiceImpl::SetCapture( | 66 void WindowManagerServiceImpl::SetCapture( |
| 69 view_manager::Id node, | 67 Id node, |
| 70 const Callback<void(bool)>& callback) { | 68 const Callback<void(bool)>& callback) { |
| 71 bool success = window_manager_->IsReady(); | 69 bool success = window_manager_->IsReady(); |
| 72 if (success) | 70 if (success) |
| 73 window_manager_->SetCapture(node); | 71 window_manager_->SetCapture(node); |
| 74 callback.Run(success); | 72 callback.Run(success); |
| 75 } | 73 } |
| 76 | 74 |
| 77 void WindowManagerServiceImpl::FocusWindow( | 75 void WindowManagerServiceImpl::FocusWindow( |
| 78 view_manager::Id node, | 76 Id node, |
| 79 const Callback<void(bool)>& callback) { | 77 const Callback<void(bool)>& callback) { |
| 80 bool success = window_manager_->IsReady(); | 78 bool success = window_manager_->IsReady(); |
| 81 if (success) | 79 if (success) |
| 82 window_manager_->FocusWindow(node); | 80 window_manager_->FocusWindow(node); |
| 83 callback.Run(success); | 81 callback.Run(success); |
| 84 } | 82 } |
| 85 | 83 |
| 86 void WindowManagerServiceImpl::ActivateWindow( | 84 void WindowManagerServiceImpl::ActivateWindow( |
| 87 view_manager::Id node, | 85 Id node, |
| 88 const Callback<void(bool)>& callback) { | 86 const Callback<void(bool)>& callback) { |
| 89 bool success = window_manager_->IsReady(); | 87 bool success = window_manager_->IsReady(); |
| 90 if (success) | 88 if (success) |
| 91 window_manager_->ActivateWindow(node); | 89 window_manager_->ActivateWindow(node); |
| 92 callback.Run(success); | 90 callback.Run(success); |
| 93 } | 91 } |
| 94 | 92 |
| 95 //////////////////////////////////////////////////////////////////////////////// | 93 //////////////////////////////////////////////////////////////////////////////// |
| 96 // WindowManagerServiceImpl, InterfaceImpl overrides: | 94 // WindowManagerServiceImpl, InterfaceImpl overrides: |
| 97 | 95 |
| 98 void WindowManagerServiceImpl::OnConnectionEstablished() { | 96 void WindowManagerServiceImpl::OnConnectionEstablished() { |
| 99 // If the connection was established prior to the window manager being | 97 // If the connection was established prior to the window manager being |
| 100 // embedded by the view manager, |window_manager_|'s ViewManagerDelegate | 98 // embedded by the view manager, |window_manager_|'s ViewManagerDelegate |
| 101 // impl will call NotifyReady() when it is. | 99 // impl will call NotifyReady() when it is. |
| 102 if (window_manager_->IsReady()) | 100 if (window_manager_->IsReady()) |
| 103 NotifyReady(); | 101 NotifyReady(); |
| 104 } | 102 } |
| 105 | 103 |
| 106 } // namespace mojo | 104 } // namespace mojo |
| OLD | NEW |