Index: mash/wm/accelerator_registrar_impl.h |
diff --git a/mash/wm/accelerator_registrar_impl.h b/mash/wm/accelerator_registrar_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d0f206dc2a24be5d04999e95cea67206176db163 |
--- /dev/null |
+++ b/mash/wm/accelerator_registrar_impl.h |
@@ -0,0 +1,60 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MASH_WM_ACCELERATOR_REGISTRAR_IMPL_H_ |
+#define MASH_WM_ACCELERATOR_REGISTRAR_IMPL_H_ |
+ |
+#include <map> |
+ |
+#include "base/callback.h" |
+#include "base/macros.h" |
+#include "components/mus/public/interfaces/accelerator_registrar.mojom.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
+ |
+namespace mus { |
+namespace mojom { |
+class WindowTreeHost; |
+} |
+} |
+ |
+namespace mash { |
+namespace wm { |
+ |
+class WindowManagerApplication; |
+ |
+class AcceleratorRegistrarImpl : public mus::mojom::AcceleratorRegistrar { |
+ public: |
+ using DestroyCallback = base::Callback<void(AcceleratorRegistrarImpl*)>; |
+ AcceleratorRegistrarImpl(mus::mojom::WindowTreeHost* host, |
+ uint32_t accelerator_namespace, |
+ mojo::InterfaceRequest<AcceleratorRegistrar> request, |
+ const DestroyCallback& destroy_callback); |
+ ~AcceleratorRegistrarImpl() override; |
+ |
+ bool OwnsAccelerator(uint32_t accelerator_id) const; |
+ void ProcessAccelerator(uint32_t accelerator_id, mus::mojom::EventPtr event); |
+ |
+ private: |
+ uint32_t ComputeAcceleratorId(uint32_t accelerator_id) const; |
+ |
+ // mus::mojom::AcceleratorRegistrar: |
+ void AddAccelerator(uint32_t accelerator_id, |
+ mus::mojom::EventMatcherPtr matcher, |
+ mus::mojom::AcceleratorHandlerPtr handler, |
+ const AddAcceleratorCallback& callback) override; |
+ void RemoveAccelerator(uint32_t accelerator_id) override; |
+ |
+ mus::mojom::WindowTreeHost* host_; |
+ uint32_t accelerator_namespace_; |
+ mojo::StrongBinding<AcceleratorRegistrar> binding_; |
+ std::map<uint32_t, mus::mojom::AcceleratorHandlerPtr> accelerator_handlers_; |
+ DestroyCallback destroy_callback_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AcceleratorRegistrarImpl); |
+}; |
+ |
+} // namespace wm |
+} // namespace mash |
+ |
+#endif // MASH_WM_ACCELERATOR_REGISTRAR_IMPL_H_ |