Chromium Code Reviews| Index: views/controls/textfield/native_textfield_views.h |
| diff --git a/views/controls/textfield/native_textfield_views.h b/views/controls/textfield/native_textfield_views.h |
| index b8b4e6e2a16745e98bf8a3d4d5c18771cd7de618..4bb42c602e9c1871f4bd09b9c03ea863e0cf4559 100644 |
| --- a/views/controls/textfield/native_textfield_views.h |
| +++ b/views/controls/textfield/native_textfield_views.h |
| @@ -6,6 +6,7 @@ |
| #define VIEWS_CONTROLS_TEXTFIELD_NATIVE_TEXTFIELD_VIEWS_H_ |
| #pragma once |
| +#include "app/menus/simple_menu_model.h" |
| #include "base/string16.h" |
| #include "base/task.h" |
| #include "gfx/font.h" |
| @@ -20,6 +21,7 @@ class Canvas; |
| namespace views { |
| class KeyEvent; |
| +class Menu2; |
| class TextfieldViewsModel; |
| // A views/skia only implementation of NativeTextfieldWrapper. |
| @@ -34,7 +36,9 @@ class TextfieldViewsModel; |
| // * Double click to select word, and triple click to select all. |
| // * Undo/Redo |
| class NativeTextfieldViews : public views::View, |
| - public NativeTextfieldWrapper { |
| + public views::ContextMenuController, |
| + public NativeTextfieldWrapper, |
| + public menus::SimpleMenuModel::Delegate { |
| public: |
| explicit NativeTextfieldViews(Textfield* parent); |
| ~NativeTextfieldViews(); |
| @@ -52,6 +56,11 @@ class NativeTextfieldViews : public views::View, |
| virtual void DidGainFocus(); |
| virtual void WillLoseFocus(); |
| + // views::ContextMenuController overrides: |
| + virtual void ShowContextMenu(View* source, |
| + const gfx::Point& p, |
| + bool is_mouse_gesture); |
| + |
| // NativeTextfieldWrapper overrides: |
| virtual string16 GetText() const; |
| virtual void UpdateText(); |
| @@ -79,6 +88,13 @@ class NativeTextfieldViews : public views::View, |
| virtual void HandleDidGainFocus(); |
| virtual void HandleWillLoseFocus(); |
| + // menus::SimpleMenuModel::Delegate overrides |
| + virtual bool IsCommandIdChecked(int command_id) const; |
| + virtual bool IsCommandIdEnabled(int command_id) const; |
| + virtual bool GetAcceleratorForCommandId(int command_id, |
| + menus::Accelerator* accelerator); |
| + virtual void ExecuteCommand(int command_id); |
| + |
| // class name of internal |
| static const char kViewClassName[]; |
| @@ -144,6 +160,13 @@ class NativeTextfieldViews : public views::View, |
| // Find a cusor position for given |point| in this views coordinates. |
| size_t FindCursorPosition(const gfx::Point& point) const; |
| + // Utility function to inform the parent textfield (and its controller if any) |
| + // that the text in the textfield has changed. |
| + void PropagateTextChange(); |
| + |
| + // Utility function to create the context menu. |
| + void CreateContextMenu(); |
|
oshima
2011/01/12 18:46:25
CreateXXX is typically used to return instance, so
varunjain
2011/01/12 19:59:05
Changed to Init
|
| + |
| // The parent textfield, the owner of this object. |
| Textfield* textfield_; |
| @@ -168,6 +191,10 @@ class NativeTextfieldViews : public views::View, |
| // A runnable method factory for callback to update the cursor. |
| ScopedRunnableMethodFactory<NativeTextfieldViews> cursor_timer_; |
| + // Context menu and its content list for the textfield. |
| + scoped_ptr<menus::SimpleMenuModel> context_menu_contents_; |
| + scoped_ptr<Menu2> context_menu_menu_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(NativeTextfieldViews); |
| }; |