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
3// found in the LICENSE file.
4
5#ifndef MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_SERVICE_IMPL_H_
6#define MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_SERVICE_IMPL_H_
7
8#include "base/basictypes.h"
9#include "mojo/services/public/cpp/view_manager/types.h"
10#include "mojo/services/public/interfaces/window_manager/window_manager.mojom.h"
11
12namespace mojo {
13
14class WindowManagerApp;
15
16class WindowManagerServiceImpl : public InterfaceImpl<WindowManagerService> {
17 public:
18  explicit WindowManagerServiceImpl(WindowManagerApp* manager);
19  virtual ~WindowManagerServiceImpl();
20
21  void NotifyReady();
22  void NotifyViewFocused(Id new_focused_id, Id old_focused_id);
23  void NotifyWindowActivated(Id new_active_id, Id old_active_id);
24
25 private:
26  // Overridden from WindowManagerService:
27  virtual void SetCapture(Id view,
28                          const Callback<void(bool)>& callback) MOJO_OVERRIDE;
29  virtual void FocusWindow(Id view,
30                           const Callback<void(bool)>& callback) MOJO_OVERRIDE;
31  virtual void ActivateWindow(
32      Id view,
33      const Callback<void(bool)>& callback) MOJO_OVERRIDE;
34
35  // Overridden from InterfaceImpl:
36  virtual void OnConnectionEstablished() MOJO_OVERRIDE;
37
38  WindowManagerApp* window_manager_;
39
40  DISALLOW_COPY_AND_ASSIGN(WindowManagerServiceImpl);
41};
42
43}  // namespace mojo
44
45#endif  // MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_SERVICE_IMPL_H_
46