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 #ifndef MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ | 5 #ifndef MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ |
6 #define MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ | 6 #define MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/macros.h" | 12 #include "base/macros.h" |
13 #include "mash/public/interfaces/launchable.mojom.h" | 13 #include "mash/public/interfaces/launchable.mojom.h" |
14 #include "mojo/public/cpp/bindings/binding_set.h" | 14 #include "mojo/public/cpp/bindings/binding_set.h" |
15 #include "services/shell/public/cpp/shell_client.h" | 15 #include "services/shell/public/cpp/service.h" |
16 #include "services/tracing/public/cpp/tracing_impl.h" | 16 #include "services/tracing/public/cpp/tracing_impl.h" |
17 | 17 |
18 namespace views { | 18 namespace views { |
19 class AuraInit; | 19 class AuraInit; |
20 class Widget; | 20 class Widget; |
21 class WindowManagerConnection; | 21 class WindowManagerConnection; |
22 } | 22 } |
23 | 23 |
24 namespace mash { | 24 namespace mash { |
25 namespace catalog_viewer { | 25 namespace catalog_viewer { |
26 | 26 |
27 class CatalogViewer : public shell::ShellClient, | 27 class CatalogViewer : public shell::Service, |
28 public mojom::Launchable, | 28 public mojom::Launchable, |
29 public shell::InterfaceFactory<mojom::Launchable> { | 29 public shell::InterfaceFactory<mojom::Launchable> { |
30 public: | 30 public: |
31 CatalogViewer(); | 31 CatalogViewer(); |
32 ~CatalogViewer() override; | 32 ~CatalogViewer() override; |
33 | 33 |
34 void RemoveWindow(views::Widget* window); | 34 void RemoveWindow(views::Widget* window); |
35 | 35 |
36 private: | 36 private: |
37 // shell::ShellClient: | 37 // shell::Service: |
38 void Initialize(shell::Connector* connector, | 38 void OnStart(shell::Connector* connector, |
39 const shell::Identity& identity, | 39 const shell::Identity& identity, |
40 uint32_t id) override; | 40 uint32_t id) override; |
41 bool AcceptConnection(shell::Connection* connection) override; | 41 bool OnConnect(shell::Connection* connection) override; |
42 | 42 |
43 // mojom::Launchable: | 43 // mojom::Launchable: |
44 void Launch(uint32_t what, mojom::LaunchMode how) override; | 44 void Launch(uint32_t what, mojom::LaunchMode how) override; |
45 | 45 |
46 // shell::InterfaceFactory<mojom::Launchable>: | 46 // shell::InterfaceFactory<mojom::Launchable>: |
47 void Create(shell::Connection* connection, | 47 void Create(shell::Connection* connection, |
48 mojom::LaunchableRequest request) override; | 48 mojom::LaunchableRequest request) override; |
49 | 49 |
50 | 50 |
51 shell::Connector* connector_ = nullptr; | 51 shell::Connector* connector_ = nullptr; |
52 mojo::BindingSet<mojom::Launchable> bindings_; | 52 mojo::BindingSet<mojom::Launchable> bindings_; |
53 std::vector<views::Widget*> windows_; | 53 std::vector<views::Widget*> windows_; |
54 | 54 |
55 mojo::TracingImpl tracing_; | 55 mojo::TracingImpl tracing_; |
56 std::unique_ptr<views::AuraInit> aura_init_; | 56 std::unique_ptr<views::AuraInit> aura_init_; |
57 std::unique_ptr<views::WindowManagerConnection> window_manager_connection_; | 57 std::unique_ptr<views::WindowManagerConnection> window_manager_connection_; |
58 | 58 |
59 DISALLOW_COPY_AND_ASSIGN(CatalogViewer); | 59 DISALLOW_COPY_AND_ASSIGN(CatalogViewer); |
60 }; | 60 }; |
61 | 61 |
62 } // namespace catalog_viewer | 62 } // namespace catalog_viewer |
63 } // namespace mash | 63 } // namespace mash |
64 | 64 |
65 #endif // MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ | 65 #endif // MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_ |
OLD | NEW |