blob: 4e08bad13a66a61ef2874b37e5c350a2d591659a [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_BASE_IME_VIRTUAL_KEYBOARD_CONTROLLER_STUB_H_
#define UI_BASE_IME_VIRTUAL_KEYBOARD_CONTROLLER_STUB_H_
#include "base/component_export.h"
#include "base/observer_list.h"
#include "ui/base/ime/virtual_keyboard_controller.h"
#include "ui/base/ime/virtual_keyboard_controller_observer.h"
namespace ui {
// TODO(aluh): Rename to fake.
// This class provides a fake VirtualKeyboardController with minimal behavior.
class COMPONENT_EXPORT(UI_BASE_IME) VirtualKeyboardControllerStub final
: public VirtualKeyboardController {
public:
VirtualKeyboardControllerStub();
VirtualKeyboardControllerStub(const VirtualKeyboardControllerStub&) = delete;
VirtualKeyboardControllerStub& operator=(
const VirtualKeyboardControllerStub&) = delete;
~VirtualKeyboardControllerStub() override;
// VirtualKeyboardController overrides.
bool DisplayVirtualKeyboard() override;
void DismissVirtualKeyboard() override;
void AddObserver(VirtualKeyboardControllerObserver* observer) override;
void RemoveObserver(VirtualKeyboardControllerObserver* observer) override;
bool IsKeyboardVisible() override;
private:
base::ObserverList<VirtualKeyboardControllerObserver>::Unchecked observers_;
bool visible_ = false;
};
} // namespace ui
#endif // UI_BASE_IME_VIRTUAL_KEYBOARD_CONTROLLER_STUB_H_