| Index: views/ime/input_method.h
|
| diff --git a/views/ime/input_method.h b/views/ime/input_method.h
|
| index 918d78c031d802ad2fd634138802dcf48b2ac5e7..666bda2b29aebebf881271c3da614c758d70f44e 100644
|
| --- a/views/ime/input_method.h
|
| +++ b/views/ime/input_method.h
|
| @@ -7,6 +7,7 @@
|
| #pragma once
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/basictypes.h"
|
| #include "base/i18n/rtl.h"
|
| @@ -23,6 +24,14 @@ class TextInputClient;
|
| class View;
|
| class Widget;
|
|
|
| +class TextInputTypeChangedListener {
|
| + public:
|
| + virtual void TextInputTypeChanged(View* view, ui::TextInputType type) = 0;
|
| +
|
| + protected:
|
| + virtual ~TextInputTypeChangedListener() {}
|
| +};
|
| +
|
| // An interface implemented by an object that encapsulates a native input method
|
| // service provided by the underlying operation system.
|
| // Because on most systems, the system input method service is bound to
|
| @@ -101,6 +110,22 @@ class InputMethod {
|
| // ui::TEXT_INPUT_TYPE_NONE if there is no focused text input client.
|
| virtual ui::TextInputType GetTextInputType() const = 0;
|
|
|
| + // Adds/Removes text input type changed listener
|
| + void AddTextInputTypeChangedListener(TextInputTypeChangedListener* listener);
|
| +
|
| + void RemoveTextInputTypeChangedListener(
|
| + TextInputTypeChangedListener* listener);
|
| +
|
| + protected:
|
| + // Notifies all listeners that the text input type is changed.
|
| + void TextInputTypeChanged(View* view);
|
| +
|
| + private:
|
| + // The list of registered TextInputTypeChanged listeners.
|
| + typedef std::vector<TextInputTypeChangedListener*>
|
| + TextInputTypeChangedListenerList;
|
| + TextInputTypeChangedListenerList text_input_type_changed_listeners_;
|
| +
|
| // TODO(suzhe): Support mouse/touch event.
|
| };
|
|
|
|
|