| Index: ui/base/ime/input_method_win.h
|
| diff --git a/ui/base/ime/input_method_win.h b/ui/base/ime/input_method_win.h
|
| index 39cb89ce361d2834bf805b5e0ccb18ab9638617f..b02d670c17aa99616f3f5ee58145a0117bd148a3 100644
|
| --- a/ui/base/ime/input_method_win.h
|
| +++ b/ui/base/ime/input_method_win.h
|
| @@ -16,7 +16,7 @@
|
|
|
| namespace ui {
|
|
|
| -// A common InputMethod implementation shared between IMM32 and TSF.
|
| +// A common InputMethod implementation based on IMM32.
|
| class UI_BASE_EXPORT InputMethodWin : public InputMethodBase {
|
| public:
|
| InputMethodWin(internal::InputMethodDelegate* delegate,
|
| @@ -24,25 +24,29 @@ class UI_BASE_EXPORT InputMethodWin : public InputMethodBase {
|
|
|
| // Overridden from InputMethod:
|
| virtual void Init(bool focused) OVERRIDE;
|
| + virtual void OnFocus() OVERRIDE;
|
| + virtual void OnBlur() OVERRIDE;
|
| + virtual bool OnUntranslatedIMEMessage(const base::NativeEvent& event,
|
| + NativeEventResult* result) OVERRIDE;
|
| virtual bool DispatchKeyEvent(const ui::KeyEvent& event) OVERRIDE;
|
| + virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE;
|
| + virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE;
|
| + virtual void CancelComposition(const TextInputClient* client) OVERRIDE;
|
| virtual void OnInputLocaleChanged() OVERRIDE;
|
| virtual std::string GetInputLocale() OVERRIDE;
|
| virtual bool IsActive() OVERRIDE;
|
| + virtual bool IsCandidatePopupOpen() const OVERRIDE;
|
|
|
| protected:
|
| // Overridden from InputMethodBase:
|
| // If a derived class overrides this method, it should call parent's
|
| // implementation.
|
| + virtual void OnWillChangeFocusedClient(TextInputClient* focused_before,
|
| + TextInputClient* focused) OVERRIDE;
|
| virtual void OnDidChangeFocusedClient(TextInputClient* focused_before,
|
| TextInputClient* focused) OVERRIDE;
|
|
|
| - // Some IMEs rely on WM_IME_REQUEST message even when TSF is enabled. So
|
| - // OnImeRequest (and its actual implementations as OnDocumentFeed,
|
| - // OnReconvertString, and OnQueryCharPosition) are placed in this base class.
|
| - LRESULT OnImeRequest(UINT message,
|
| - WPARAM wparam,
|
| - LPARAM lparam,
|
| - BOOL* handled);
|
| + private:
|
| // For both WM_CHAR and WM_SYSCHAR
|
| LRESULT OnChar(HWND window_handle,
|
| UINT message,
|
| @@ -50,6 +54,38 @@ class UI_BASE_EXPORT InputMethodWin : public InputMethodBase {
|
| LPARAM lparam,
|
| BOOL* handled);
|
|
|
| + LRESULT OnImeSetContext(HWND window_handle,
|
| + UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| + LRESULT OnImeStartComposition(HWND window_handle,
|
| + UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| + LRESULT OnImeComposition(HWND window_handle,
|
| + UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| + LRESULT OnImeEndComposition(HWND window_handle,
|
| + UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| + LRESULT OnImeNotify(UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| +
|
| + // Some IMEs rely on WM_IME_REQUEST message even when TSF is enabled. So
|
| + // OnImeRequest (and its actual implementations as OnDocumentFeed,
|
| + // OnReconvertString, and OnQueryCharPosition) are placed in this base class.
|
| + LRESULT OnImeRequest(UINT message,
|
| + WPARAM wparam,
|
| + LPARAM lparam,
|
| + BOOL* handled);
|
| LRESULT OnDocumentFeed(RECONVERTSTRING* reconv);
|
| LRESULT OnReconvertString(RECONVERTSTRING* reconv);
|
| LRESULT OnQueryCharPosition(IMECHARPOSITION* char_positon);
|
| @@ -62,16 +98,18 @@ class UI_BASE_EXPORT InputMethodWin : public InputMethodBase {
|
| // to be ready for receiving keyboard input.
|
| bool IsWindowFocused(const TextInputClient* client) const;
|
|
|
| - // Indicates if the current input locale has an IME.
|
| - bool active_;
|
| + bool DispatchFabricatedKeyEvent(const ui::KeyEvent& event);
|
| +
|
| + // Asks the client to confirm current composition text.
|
| + void ConfirmCompositionText();
|
| +
|
| + // Enables or disables the IME according to the current text input type.
|
| + void UpdateIMEState();
|
|
|
| // Windows IMM32 wrapper.
|
| // (See "ui/base/ime/win/ime_input.h" for its details.)
|
| ui::IMM32Manager imm32_manager_;
|
|
|
| - private:
|
| - bool DispatchFabricatedKeyEvent(const ui::KeyEvent& event);
|
| -
|
| // The toplevel window handle.
|
| // On non-Aura environment, this value is not used and always NULL.
|
| const HWND toplevel_window_handle_;
|
| @@ -90,6 +128,19 @@ class UI_BASE_EXPORT InputMethodWin : public InputMethodBase {
|
| // TODO(yukawa, IME): Figure out long-term solution.
|
| bool accept_carriage_return_;
|
|
|
| + // Indicates if the current input locale has an IME.
|
| + bool active_;
|
| +
|
| + // True when an IME should be allowed to process key events.
|
| + bool enabled_;
|
| +
|
| + // True if we know for sure that a candidate window is open.
|
| + bool is_candidate_popup_open_;
|
| +
|
| + // Window handle where composition is on-going. NULL when there is no
|
| + // composition.
|
| + HWND composing_window_handle_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(InputMethodWin);
|
| };
|
|
|
|
|