diff options
Diffstat (limited to 'views/controls/textfield/native_textfield_views.h')
-rw-r--r-- | views/controls/textfield/native_textfield_views.h | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/views/controls/textfield/native_textfield_views.h b/views/controls/textfield/native_textfield_views.h index c91281b..68ffbb4 100644 --- a/views/controls/textfield/native_textfield_views.h +++ b/views/controls/textfield/native_textfield_views.h @@ -12,6 +12,8 @@ #include "ui/gfx/font.h" #include "views/border.h" #include "views/controls/textfield/native_textfield_wrapper.h" +#include "views/controls/textfield/textfield_views_model.h" +#include "views/ime/text_input_client.h" #include "views/view.h" namespace base { @@ -26,7 +28,6 @@ namespace views { class KeyEvent; class Menu2; -class TextfieldViewsModel; // A views/skia only implementation of NativeTextfieldWrapper. // No platform specific code is used. @@ -41,7 +42,9 @@ class TextfieldViewsModel; class NativeTextfieldViews : public views::View, public views::ContextMenuController, public NativeTextfieldWrapper, - public ui::SimpleMenuModel::Delegate { + public ui::SimpleMenuModel::Delegate, + public TextInputClient, + public TextfieldViewsModel::Delegate { public: explicit NativeTextfieldViews(Textfield* parent); ~NativeTextfieldViews(); @@ -90,6 +93,7 @@ class NativeTextfieldViews : public views::View, virtual bool HandleKeyReleased(const views::KeyEvent& e) OVERRIDE; virtual void HandleFocus() OVERRIDE; virtual void HandleBlur() OVERRIDE; + virtual TextInputClient* GetTextInputClient() OVERRIDE; // ui::SimpleMenuModel::Delegate overrides virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; @@ -147,6 +151,32 @@ class NativeTextfieldViews : public views::View, DISALLOW_COPY_AND_ASSIGN(TextfieldBorder); }; + // Overridden from TextInputClient: + virtual void SetCompositionText( + const ui::CompositionText& composition) OVERRIDE; + virtual void ConfirmCompositionText() OVERRIDE; + virtual void ClearCompositionText() OVERRIDE; + virtual void InsertText(const string16& text) OVERRIDE; + virtual void InsertChar(char16 ch, int flags) OVERRIDE; + virtual ui::TextInputType GetTextInputType() OVERRIDE; + virtual gfx::Rect GetCaretBounds() OVERRIDE; + virtual bool HasCompositionText() OVERRIDE; + virtual bool GetTextRange(ui::Range* range) OVERRIDE; + virtual bool GetCompositionTextRange(ui::Range* range) OVERRIDE; + virtual bool GetSelectionRange(ui::Range* range) OVERRIDE; + virtual bool SetSelectionRange(const ui::Range& range) OVERRIDE; + virtual bool DeleteRange(const ui::Range& range) OVERRIDE; + virtual bool GetTextFromRange( + const ui::Range& range, + const base::Callback<void(const string16&)>& callback) OVERRIDE; + virtual void OnInputMethodChanged() OVERRIDE; + virtual bool ChangeTextDirectionAndLayoutAlignment( + base::i18n::TextDirection direction) OVERRIDE; + virtual View* GetOwnerViewOfTextInputClient() OVERRIDE; + + // Overridden from TextfieldViewsModel::Delegate: + virtual void OnCompositionTextConfirmedOrCleared() OVERRIDE; + // Returns the Textfield's font. const gfx::Font& GetFont() const; @@ -188,6 +218,12 @@ class NativeTextfieldViews : public views::View, // Utility function to create the context menu if one does not already exist. void InitContextMenuIfRequired(); + // Convenience method to call InputMethod::OnTextInputTypeChanged(); + void OnTextInputTypeChanged(); + + // Convenience method to call InputMethod::OnCaretBoundsChanged(); + void OnCaretBoundsChanged(); + // Convenience method to call TextfieldController::OnBeforeUserAction(); void OnBeforeUserAction(); @@ -219,6 +255,9 @@ class NativeTextfieldViews : public views::View, // The drawing state of cursor. True to draw. bool is_cursor_visible_; + // True if InputMethod::CancelComposition() should not be called. + bool skip_input_method_cancel_composition_; + // A runnable method factory for callback to update the cursor. ScopedRunnableMethodFactory<NativeTextfieldViews> cursor_timer_; |