Index: mojo/services/window_manager/window_manager_app.h |
diff --git a/mojo/services/window_manager/window_manager_app.h b/mojo/services/window_manager/window_manager_app.h |
index 6f4c64cfbe04de51e87a772c4ab6f9bc064c4093..871420c925071e25ee6c88ab6b3825501cb3fcbc 100644 |
--- a/mojo/services/window_manager/window_manager_app.h |
+++ b/mojo/services/window_manager/window_manager_app.h |
@@ -10,10 +10,18 @@ |
#include "base/memory/scoped_ptr.h" |
#include "mojo/aura/window_tree_host_mojo_delegate.h" |
#include "mojo/public/cpp/application/application_delegate.h" |
+#include "mojo/public/cpp/bindings/string.h" |
+#include "mojo/services/public/cpp/view_manager/node_observer.h" |
#include "mojo/services/public/cpp/view_manager/types.h" |
#include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" |
+#include "ui/aura/client/focus_change_observer.h" |
+#include "ui/wm/public/activation_change_observer.h" |
namespace aura { |
+namespace client { |
+class ActivationClient; |
+class FocusClient; |
+} |
class Window; |
} |
@@ -29,7 +37,10 @@ class WindowTreeHostMojo; |
class WindowManagerApp : public ApplicationDelegate, |
public view_manager::ViewManagerDelegate, |
- public WindowTreeHostMojoDelegate { |
+ public view_manager::NodeObserver, |
+ public WindowTreeHostMojoDelegate, |
+ public aura::client::FocusChangeObserver, |
+ public aura::client::ActivationChangeObserver { |
public: |
WindowManagerApp(); |
virtual ~WindowManagerApp(); |
@@ -38,12 +49,16 @@ class WindowManagerApp : public ApplicationDelegate, |
void RemoveConnection(WindowManagerServiceImpl* connection); |
view_manager::Id OpenWindow(); |
+ view_manager::Id OpenWindowWithURL(const String& url); |
void SetCapture(view_manager::Id node); |
+ void FocusWindow(view_manager::Id node); |
+ void ActivateWindow(view_manager::Id node); |
bool IsReady() const; |
private: |
typedef std::set<WindowManagerServiceImpl*> Connections; |
+ typedef std::map<view_manager::Id, aura::Window*> NodeIdToWindowMap; |
// Overridden from ApplicationDelegate: |
virtual void Initialize(ApplicationImpl* impl) MOJO_OVERRIDE; |
@@ -56,11 +71,27 @@ class WindowManagerApp : public ApplicationDelegate, |
virtual void OnViewManagerDisconnected( |
view_manager::ViewManager* view_manager) MOJO_OVERRIDE; |
+ // Overridden from view_manager::NodeObserver: |
+ virtual void OnTreeChanged( |
+ const view_manager::NodeObserver::TreeChangeParams& params) MOJO_OVERRIDE; |
+ virtual void OnNodeDestroyed(view_manager::Node* node) MOJO_OVERRIDE; |
+ |
// Overridden from WindowTreeHostMojoDelegate: |
virtual void CompositorContentsChanged(const SkBitmap& bitmap) MOJO_OVERRIDE; |
+ // Overridden from aura::client::FocusChangeObserver: |
+ virtual void OnWindowFocused(aura::Window* gained_focus, |
+ aura::Window* lost_focus) MOJO_OVERRIDE; |
+ |
+ // Overridden from aura::client::ActivationChangeObserver: |
+ virtual void OnWindowActivated(aura::Window* gained_active, |
+ aura::Window* lost_active) MOJO_OVERRIDE; |
+ |
aura::Window* GetWindowForNodeId(view_manager::Id node) const; |
+ void RegisterSubtree(view_manager::Id id, aura::Window* parent); |
sky
2014/07/17 23:15:42
Add descriptions.
|
+ void UnregisterSubtree(view_manager::Id id); |
+ |
view_manager::ViewManager* view_manager_; |
view_manager::Node* root_; |
@@ -68,8 +99,11 @@ class WindowManagerApp : public ApplicationDelegate, |
scoped_ptr<WindowTreeHostMojo> window_tree_host_; |
scoped_ptr<wm::ScopedCaptureClient> capture_client_; |
+ scoped_ptr<aura::client::FocusClient> focus_client_; |
+ aura::client::ActivationClient* activation_client_; |
Connections connections_; |
+ NodeIdToWindowMap node_id_to_window_map_; |
DISALLOW_COPY_AND_ASSIGN(WindowManagerApp); |
}; |