OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 Loading... |
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) { | 68 void set_is_obscured(bool is_obscured) { |
69 is_password_ = is_password; | 69 is_obscured_ = is_obscured; |
70 } | 70 } |
71 | 71 |
72 // Edit related methods. | 72 // Edit related methods. |
73 | 73 |
74 const string16& GetText() const; | 74 const string16& GetText() const; |
75 // Sets the text. Returns true if the text has been modified. The | 75 // Sets the text. Returns true if the text has been modified. The |
76 // current composition text will be confirmed first. Setting | 76 // current composition text will be confirmed first. Setting |
77 // the same text will not add edit history because it's not user | 77 // the same text will not add edit history because it's not user |
78 // visible change nor user-initiated change. This allow a client | 78 // visible change nor user-initiated change. This allow a client |
79 // code to set the same text multiple times without worrying about | 79 // code to set the same text multiple times without worrying about |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 176 |
177 // Returns true if there is an redoable edit. | 177 // Returns true if there is an redoable edit. |
178 bool CanRedo(); | 178 bool CanRedo(); |
179 | 179 |
180 // Undo edit. Returns true if undo changed the text. | 180 // Undo edit. Returns true if undo changed the text. |
181 bool Undo(); | 181 bool Undo(); |
182 | 182 |
183 // Redo edit. Returns true if redo changed the text. | 183 // Redo edit. Returns true if redo changed the text. |
184 bool Redo(); | 184 bool Redo(); |
185 | 185 |
186 // Returns visible text. If the field is password, it returns the | 186 // Returns visible text. If the field is obscured, it returns the |
187 // sequence of "*". | 187 // sequence of "*". |
188 string16 GetVisibleText() const; | 188 string16 GetVisibleText() const; |
189 | 189 |
190 // Cuts the currently selected text and puts it to clipboard. Returns true | 190 // Cuts the currently selected text and puts it to clipboard. Returns true |
191 // if text has changed after cutting. | 191 // if text has changed after cutting. |
192 bool Cut(); | 192 bool Cut(); |
193 | 193 |
194 // Copies the currently selected text and puts it to clipboard. Returns true | 194 // Copies the currently selected text and puts it to clipboard. Returns true |
195 // if something was copied to the clipboard. | 195 // if something was copied to the clipboard. |
196 bool Copy(); | 196 bool Copy(); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 | 297 |
298 void ClearComposition(); | 298 void ClearComposition(); |
299 | 299 |
300 // Pointer to a TextfieldViewsModel::Delegate instance, should be provided by | 300 // Pointer to a TextfieldViewsModel::Delegate instance, should be provided by |
301 // the View object. | 301 // the View object. |
302 Delegate* delegate_; | 302 Delegate* delegate_; |
303 | 303 |
304 // The stylized text, cursor, selection, and the visual layout model. | 304 // The stylized text, cursor, selection, and the visual layout model. |
305 scoped_ptr<gfx::RenderText> render_text_; | 305 scoped_ptr<gfx::RenderText> render_text_; |
306 | 306 |
307 // True if the text is the password. | 307 // True if the text is obscured (e.g., a password). |
308 bool is_password_; | 308 bool is_obscured_; |
309 | 309 |
310 typedef std::list<internal::Edit*> EditHistory; | 310 typedef std::list<internal::Edit*> EditHistory; |
311 EditHistory edit_history_; | 311 EditHistory edit_history_; |
312 | 312 |
313 // An iterator that points to the current edit that can be undone. | 313 // An iterator that points to the current edit that can be undone. |
314 // This iterator moves from the |end()|, meaining no edit to undo, | 314 // This iterator moves from the |end()|, meaining no edit to undo, |
315 // to the last element (one before |end()|), meaning no edit to redo. | 315 // to the last element (one before |end()|), meaning no edit to redo. |
316 // There is no edit to undo (== end()) when: | 316 // There is no edit to undo (== end()) when: |
317 // 1) in initial state. (nothing to undo) | 317 // 1) in initial state. (nothing to undo) |
318 // 2) very 1st edit is undone. | 318 // 2) very 1st edit is undone. |
319 // 3) all edit history is removed. | 319 // 3) all edit history is removed. |
320 // There is no edit to redo (== last element or no element) when: | 320 // There is no edit to redo (== last element or no element) when: |
321 // 1) in initial state. (nothing to redo) | 321 // 1) in initial state. (nothing to redo) |
322 // 2) new edit is added. (redo history is cleared) | 322 // 2) new edit is added. (redo history is cleared) |
323 // 3) redone all undone edits. | 323 // 3) redone all undone edits. |
324 EditHistory::iterator current_edit_; | 324 EditHistory::iterator current_edit_; |
325 | 325 |
326 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel); | 326 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel); |
327 }; | 327 }; |
328 | 328 |
329 } // namespace views | 329 } // namespace views |
330 | 330 |
331 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ | 331 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ |
OLD | NEW |