Index: ui/views/controls/textfield/native_textfield_win.h |
diff --git a/ui/views/controls/textfield/native_textfield_win.h b/ui/views/controls/textfield/native_textfield_win.h |
index 939786f5402dda47f6f0e2164b1aadcf9f87bfcf..08aba4cf877f76700564b25f49636bc82168f400 100644 |
--- a/ui/views/controls/textfield/native_textfield_win.h |
+++ b/ui/views/controls/textfield/native_textfield_win.h |
@@ -19,6 +19,7 @@ |
#include "base/string16.h" |
#include "base/win/scoped_comptr.h" |
#include "ui/base/models/simple_menu_model.h" |
+#include "ui/base/ime/win/tsf_event_router.h" |
#include "ui/gfx/insets.h" |
#include "ui/base/win/extra_sdk_defines.h" |
#include "ui/views/controls/textfield/native_textfield_wrapper.h" |
@@ -42,7 +43,8 @@ class NativeTextfieldWin |
CWinTraits<kDefaultEditStyle> >, |
public CRichEditCommands<NativeTextfieldWin>, |
public NativeTextfieldWrapper, |
- public ui::SimpleMenuModel::Delegate { |
+ public ui::SimpleMenuModel::Delegate, |
+ public ui::TsfEventRouterObserver { |
public: |
DECLARE_WND_SUPERCLASS(L"ViewsTextfieldEdit", MSFTEDIT_CLASS); |
@@ -110,6 +112,11 @@ class NativeTextfieldWin |
ui::Accelerator* accelerator) OVERRIDE; |
virtual void ExecuteCommand(int command_id) OVERRIDE; |
+ // Overridden from ui::TsfEventRouterObserver: |
+ virtual void OnTextUpdated(const ui::Range& composition_range) OVERRIDE; |
+ virtual void OnTsfStartComposition() OVERRIDE; |
+ virtual void OnTsfEndComposition() OVERRIDE; |
+ |
// Update accessibility information. |
void InitializeAccessibilityInfo(); |
void UpdateAccessibleState(uint32 state_flag, bool set_value); |
@@ -142,6 +149,7 @@ class NativeTextfieldWin |
MSG_WM_RBUTTONDOWN(OnNonLButtonDown) |
MSG_WM_PASTE(OnPaste) |
MSG_WM_SETFOCUS(OnSetFocus) |
+ MSG_WM_KILLFOCUS(OnKillFocus) |
MSG_WM_SYSCHAR(OnSysChar) // WM_SYSxxx == WM_xxx with ALT down |
MSG_WM_SYSKEYDOWN(OnKeyDown) |
END_MSG_MAP() |
@@ -206,6 +214,7 @@ class NativeTextfieldWin |
void OnNonLButtonDown(UINT keys, const CPoint& point); |
void OnPaste(); |
void OnSetFocus(HWND hwnd); |
+ void OnKillFocus(HWND hwnd); |
void OnSysChar(TCHAR ch, UINT repeat_count, UINT flags); |
// Helper function for OnChar() and OnKeyDown() that handles keystrokes that |
@@ -245,6 +254,10 @@ class NativeTextfieldWin |
// edit. |
void SetContainsMouse(bool contains_mouse); |
+ // Handles composition related works on both IMM32 and TSF implementation. |
+ void OnImeStartCompositionInternal(); |
+ void OnImeEndCompositionInternal(); |
+ |
// Getter for the text_object_model_, used by the ScopedFreeze class. Note |
// that the pointer returned here is only valid as long as the Edit is still |
// alive. |
@@ -302,6 +315,8 @@ class NativeTextfieldWin |
// The accessibility state of this object. |
int accessibility_state_; |
+ scoped_ptr<ui::TsfEventRouter> tsf_event_router_; |
+ |
DISALLOW_COPY_AND_ASSIGN(NativeTextfieldWin); |
}; |