Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Unified Diff: ui/base/ime/input_method_win.h

Issue 166063002: Unify InputMethodIMM32 into InputMethodWin again (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/ime/input_method_imm32.cc ('k') | ui/base/ime/input_method_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « ui/base/ime/input_method_imm32.cc ('k') | ui/base/ime/input_method_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698