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

Unified Diff: views/controls/textfield/native_textfield_views.h

Issue 6155011: Implementing context menu for the new views textfield. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 11 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
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);
};

Powered by Google App Engine
This is Rietveld 408576698