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

Side by Side Diff: ui/views/controls/textfield/textfield_views_model.h

Issue 8747001: Reintroduce password support to NativeTextfieldViews (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: delete more dead code, address recent comments Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ 5 #ifndef UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_
6 #define UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ 6 #define UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <list> 9 #include <list>
10 #include <vector> 10 #include <vector>
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 // Called when the current composition text is confirmed or cleared. 58 // Called when the current composition text is confirmed or cleared.
59 virtual void OnCompositionTextConfirmedOrCleared() = 0; 59 virtual void OnCompositionTextConfirmedOrCleared() = 0;
60 60
61 protected: 61 protected:
62 virtual ~Delegate(); 62 virtual ~Delegate();
63 }; 63 };
64 64
65 explicit TextfieldViewsModel(Delegate* delegate); 65 explicit TextfieldViewsModel(Delegate* delegate);
66 virtual ~TextfieldViewsModel(); 66 virtual ~TextfieldViewsModel();
67 67
68 void set_is_password(bool is_password) {
69 is_password_ = is_password;
70 }
71
72 // Edit related methods. 68 // Edit related methods.
73 69
74 const string16& GetText() const; 70 const string16& GetText() const;
75 // Sets the text. Returns true if the text has been modified. The 71 // Sets the text. Returns true if the text has been modified. The
76 // current composition text will be confirmed first. Setting 72 // current composition text will be confirmed first. Setting
77 // the same text will not add edit history because it's not user 73 // the same text will not add edit history because it's not user
78 // visible change nor user-initiated change. This allow a client 74 // visible change nor user-initiated change. This allow a client
79 // code to set the same text multiple times without worrying about 75 // code to set the same text multiple times without worrying about
80 // messing edit history. 76 // messing edit history.
81 bool SetText(const string16& text); 77 bool SetText(const string16& text);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 171
176 // Returns true if there is an redoable edit. 172 // Returns true if there is an redoable edit.
177 bool CanRedo(); 173 bool CanRedo();
178 174
179 // Undo edit. Returns true if undo changed the text. 175 // Undo edit. Returns true if undo changed the text.
180 bool Undo(); 176 bool Undo();
181 177
182 // Redo edit. Returns true if redo changed the text. 178 // Redo edit. Returns true if redo changed the text.
183 bool Redo(); 179 bool Redo();
184 180
185 // Returns visible text. If the field is password, it returns the
186 // sequence of "*".
187 string16 GetVisibleText() const;
188
189 // Cuts the currently selected text and puts it to clipboard. Returns true 181 // Cuts the currently selected text and puts it to clipboard. Returns true
190 // if text has changed after cutting. 182 // if text has changed after cutting.
191 bool Cut(); 183 bool Cut();
192 184
193 // Copies the currently selected text and puts it to clipboard. 185 // Copies the currently selected text and puts it to clipboard.
194 void Copy(); 186 void Copy();
195 187
196 // Pastes text from the clipboard at current cursor position. Returns true 188 // Pastes text from the clipboard at current cursor position. Returns true
197 // if text has changed after pasting. 189 // if text has changed after pasting.
198 bool Paste(); 190 bool Paste();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 friend class TextfieldViewsModelTest; 234 friend class TextfieldViewsModelTest;
243 friend class UndoRedo_BasicTest; 235 friend class UndoRedo_BasicTest;
244 friend class UndoRedo_CutCopyPasteTest; 236 friend class UndoRedo_CutCopyPasteTest;
245 friend class UndoRedo_ReplaceTest; 237 friend class UndoRedo_ReplaceTest;
246 friend class internal::Edit; 238 friend class internal::Edit;
247 239
248 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_BasicTest); 240 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_BasicTest);
249 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_CutCopyPasteTest); 241 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_CutCopyPasteTest);
250 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_ReplaceTest); 242 FRIEND_TEST_ALL_PREFIXES(TextfieldViewsModelTest, UndoRedo_ReplaceTest);
251 243
252 // Returns the visible text given |start| and |end|.
253 string16 GetVisibleText(size_t start, size_t end) const;
254
255 // Insert the given |text|. |mergeable| indicates if this insert 244 // Insert the given |text|. |mergeable| indicates if this insert
256 // operation can be merged to previous edit in the edit history. 245 // operation can be merged to previous edit in the edit history.
257 void InsertTextInternal(const string16& text, bool mergeable); 246 void InsertTextInternal(const string16& text, bool mergeable);
258 247
259 // Replace the current text with the given |text|. |mergeable| 248 // Replace the current text with the given |text|. |mergeable|
260 // indicates if this replace operation can be merged to previous 249 // indicates if this replace operation can be merged to previous
261 // edit in the edit history. 250 // edit in the edit history.
262 void ReplaceTextInternal(const string16& text, bool mergeable); 251 void ReplaceTextInternal(const string16& text, bool mergeable);
263 252
264 // Clears all edit history. 253 // Clears all edit history.
(...skipping 30 matching lines...) Expand all
295 284
296 void ClearComposition(); 285 void ClearComposition();
297 286
298 // Pointer to a TextfieldViewsModel::Delegate instance, should be provided by 287 // Pointer to a TextfieldViewsModel::Delegate instance, should be provided by
299 // the View object. 288 // the View object.
300 Delegate* delegate_; 289 Delegate* delegate_;
301 290
302 // The stylized text, cursor, selection, and the visual layout model. 291 // The stylized text, cursor, selection, and the visual layout model.
303 scoped_ptr<gfx::RenderText> render_text_; 292 scoped_ptr<gfx::RenderText> render_text_;
304 293
305 // True if the text is the password.
306 bool is_password_;
307
308 typedef std::list<internal::Edit*> EditHistory; 294 typedef std::list<internal::Edit*> EditHistory;
309 EditHistory edit_history_; 295 EditHistory edit_history_;
310 296
311 // An iterator that points to the current edit that can be undone. 297 // An iterator that points to the current edit that can be undone.
312 // This iterator moves from the |end()|, meaining no edit to undo, 298 // This iterator moves from the |end()|, meaining no edit to undo,
313 // to the last element (one before |end()|), meaning no edit to redo. 299 // to the last element (one before |end()|), meaning no edit to redo.
314 // There is no edit to undo (== end()) when: 300 // There is no edit to undo (== end()) when:
315 // 1) in initial state. (nothing to undo) 301 // 1) in initial state. (nothing to undo)
316 // 2) very 1st edit is undone. 302 // 2) very 1st edit is undone.
317 // 3) all edit history is removed. 303 // 3) all edit history is removed.
318 // There is no edit to redo (== last element or no element) when: 304 // There is no edit to redo (== last element or no element) when:
319 // 1) in initial state. (nothing to redo) 305 // 1) in initial state. (nothing to redo)
320 // 2) new edit is added. (redo history is cleared) 306 // 2) new edit is added. (redo history is cleared)
321 // 3) redone all undone edits. 307 // 3) redone all undone edits.
322 EditHistory::iterator current_edit_; 308 EditHistory::iterator current_edit_;
323 309
324 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel); 310 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel);
325 }; 311 };
326 312
327 } // namespace views 313 } // namespace views
328 314
329 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ 315 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698