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 d474a72b6dd5c6b1fc774d3361d1777313f987a7..fb567cf55b1b1c02c7aabb4b9b365424cf8780f0 100644 |
--- a/views/controls/textfield/native_textfield_views.h |
+++ b/views/controls/textfield/native_textfield_views.h |
@@ -14,6 +14,10 @@ |
#include "views/controls/textfield/native_textfield_wrapper.h" |
#include "views/view.h" |
+namespace base { |
+class Time; |
+} |
+ |
namespace gfx { |
class Canvas; |
} // namespace |
@@ -108,6 +112,13 @@ class NativeTextfieldViews : public views::View, |
// Enable/Disable TextfieldViews implementation for Textfield. |
static void SetEnableTextfieldViews(bool enabled); |
+ enum ClickState { |
+ TRACKING_DOUBLE_CLICK, |
+ TRACKING_TRIPLE_CLICK, |
+ NONE, |
+ }; |
+ |
+ |
private: |
friend class NativeTextfieldViewsTest; |
@@ -162,6 +173,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; |
+ // Mouse event handler. Returns true if textfield needs to be repainted. |
+ bool HandleMousePressed(const views::MouseEvent& e); |
+ |
+ // Helper function that sets the cursor position at the location of mouse |
+ // event. |
+ void SetCursorForMouseClick(const views::MouseEvent& e); |
+ |
// Utility function to inform the parent textfield (and its controller if any) |
// that the text in the textfield has changed. |
void PropagateTextChange(); |
@@ -193,6 +211,15 @@ class NativeTextfieldViews : public views::View, |
// A runnable method factory for callback to update the cursor. |
ScopedRunnableMethodFactory<NativeTextfieldViews> cursor_timer_; |
+ // Time of last LEFT mouse press. Used for tracking double/triple click. |
+ base::Time last_mouse_press_time_; |
+ |
+ // Position of last LEFT mouse press. Used for tracking double/triple click. |
+ gfx::Point last_mouse_press_location_; |
+ |
+ // State variable to track double and triple clicks. |
+ ClickState click_state_; |
+ |
// Context menu and its content list for the textfield. |
scoped_ptr<ui::SimpleMenuModel> context_menu_contents_; |
scoped_ptr<Menu2> context_menu_menu_; |