| // Copyright 2018 The Fuchsia 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 GARNET_BIN_A11Y_A11Y_MANAGER_TOGGLER_IMPL_H_ |
| #define GARNET_BIN_A11Y_A11Y_MANAGER_TOGGLER_IMPL_H_ |
| |
| #include <fuchsia/accessibility/cpp/fidl.h> |
| |
| #include "lib/fidl/cpp/binding.h" |
| #include "lib/fidl/cpp/binding_set.h" |
| #include "lib/fxl/logging.h" |
| #include "lib/fxl/macros.h" |
| |
| namespace a11y_manager { |
| |
| // Accessibility manager toggler interface implementation. |
| // See toggler.fidl for documentation. |
| class TogglerImpl : public fuchsia::accessibility::Toggler, |
| public fuchsia::accessibility::ToggleBroadcaster { |
| public: |
| TogglerImpl(); |
| ~TogglerImpl() = default; |
| |
| void AddTogglerBinding( |
| fidl::InterfaceRequest<fuchsia::accessibility::Toggler> request); |
| |
| void AddToggleBroadcasterBinding( |
| fidl::InterfaceRequest<fuchsia::accessibility::ToggleBroadcaster> |
| request); |
| |
| private: |
| // |fuchsia::accessibility::Toggler| |
| // Sends an OnAccessibilityToggle event to every binding in |
| // |broadcaster_bindings_|. |
| void ToggleAccessibilitySupport(bool enabled) override; |
| |
| fidl::Binding<fuchsia::accessibility::Toggler> toggler_binding_; |
| fidl::BindingSet<fuchsia::accessibility::ToggleBroadcaster> |
| broadcaster_bindings_; |
| |
| // The current state of whether accessibility should be enabled. |
| bool is_enabled_ = false; |
| |
| FXL_DISALLOW_COPY_AND_ASSIGN(TogglerImpl); |
| }; |
| |
| } // namespace a11y_manager |
| |
| #endif // GARNET_BIN_A11Y_A11Y_MANAGER_TOGGLER_IMPL_H_ |