// Copyright (c) 2013 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 UI_BASE_IME_INPUT_METHOD_OBSERVER_H_
#define UI_BASE_IME_INPUT_METHOD_OBSERVER_H_
#include "ui/base/ui_base_export.h"
namespace ui {
class InputMethod;
class TextInputClient;
class UI_BASE_EXPORT InputMethodObserver {
public:
virtual ~InputMethodObserver() {}
// Called whenever the text input type is changed for the focused client.
// Currently only used by the mock input method for testing.
virtual void OnTextInputTypeChanged(const TextInputClient* client) = 0;
// Called when the top-level system window gets keyboard focus. Currently
// only used by the mock input method for testing.
virtual void OnFocus() = 0;
// Called when the top-level system window loses keyboard focus. Currently
// only used by the mock input method for testing.
virtual void OnBlur() = 0;
// Called whenever the caret bounds is changed for the input client.
// Currently only used by the mock input method for testing.
virtual void OnCaretBoundsChanged(const TextInputClient* client) = 0;
// Called when either:
// - the TextInputClient is changed (e.g. by a change of focus)
// - the TextInputType of the TextInputClient changes
virtual void OnTextInputStateChanged(const TextInputClient* client) = 0;
// Called when the observed InputMethod is being destroyed.
virtual void OnInputMethodDestroyed(const InputMethod* input_method) = 0;
// Called when a user gesture should trigger showing the virtual keyboard
// or alternate input view (e.g. handwriting palette). Used in ChromeOS.
virtual void OnShowImeIfNeeded() = 0;
};
} // namespace ui
#endif // UI_BASE_IME_INPUT_METHOD_OBSERVER_H_