shortcut_customization_app_ui.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2021 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. #ifndef ASH_WEBUI_SHORTCUT_CUSTOMIZATION_UI_SHORTCUT_CUSTOMIZATION_APP_UI_H_
  5. #define ASH_WEBUI_SHORTCUT_CUSTOMIZATION_UI_SHORTCUT_CUSTOMIZATION_APP_UI_H_
  6. #include <memory>
  7. #include "ash/webui/shortcut_customization_ui/backend/accelerator_configuration_provider.h"
  8. #include "ash/webui/shortcut_customization_ui/mojom/shortcut_customization.mojom.h"
  9. #include "ash/webui/shortcut_customization_ui/url_constants.h"
  10. #include "ash/webui/system_apps/public/system_web_app_ui_config.h"
  11. #include "mojo/public/cpp/bindings/pending_receiver.h"
  12. #include "ui/webui/mojo_web_ui_controller.h"
  13. namespace content {
  14. class WebUI;
  15. } // namespace content
  16. namespace ash {
  17. class ShortcutCustomizationAppUI;
  18. // The WebUIConfig for chrome://shortcut-customization.
  19. class ShortcutCustomizationAppUIConfig
  20. : public SystemWebAppUIConfig<ShortcutCustomizationAppUI> {
  21. public:
  22. ShortcutCustomizationAppUIConfig()
  23. : SystemWebAppUIConfig(kChromeUIShortcutCustomizationAppHost,
  24. SystemWebAppType::SHORTCUT_CUSTOMIZATION) {}
  25. };
  26. class ShortcutCustomizationAppUI : public ui::MojoWebUIController {
  27. public:
  28. explicit ShortcutCustomizationAppUI(content::WebUI* web_ui);
  29. ShortcutCustomizationAppUI(const ShortcutCustomizationAppUI&) = delete;
  30. ShortcutCustomizationAppUI& operator=(const ShortcutCustomizationAppUI&) =
  31. delete;
  32. ~ShortcutCustomizationAppUI() override;
  33. private:
  34. void BindInterface(
  35. mojo::PendingReceiver<
  36. shortcut_customization::mojom::AcceleratorConfigurationProvider>
  37. receiver);
  38. std::unique_ptr<shortcut_ui::AcceleratorConfigurationProvider> provider_;
  39. };
  40. } // namespace ash
  41. #endif // ASH_WEBUI_SHORTCUT_CUSTOMIZATION_UI_SHORTCUT_CUSTOMIZATION_APP_UI_H_