keyboard_ui_factory.h 854 B

1234567891011121314151617181920212223242526272829303132
  1. // Copyright 2018 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_KEYBOARD_UI_KEYBOARD_UI_FACTORY_H_
  5. #define ASH_KEYBOARD_UI_KEYBOARD_UI_FACTORY_H_
  6. #include <memory>
  7. #include "ash/keyboard/ui/keyboard_export.h"
  8. namespace keyboard {
  9. class KeyboardUI;
  10. // KeyboardUIFactory is the factory of platform-dependent KeyboardUI.
  11. class KEYBOARD_EXPORT KeyboardUIFactory {
  12. public:
  13. KeyboardUIFactory();
  14. KeyboardUIFactory(const KeyboardUIFactory&) = delete;
  15. KeyboardUIFactory& operator=(const KeyboardUIFactory&) = delete;
  16. virtual ~KeyboardUIFactory();
  17. // Creates a new instance of KeyboardUI.
  18. virtual std::unique_ptr<KeyboardUI> CreateKeyboardUI() = 0;
  19. };
  20. } // namespace keyboard
  21. #endif // ASH_KEYBOARD_UI_KEYBOARD_UI_FACTORY_H_