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

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

Issue 24012002: Move Range code to gfx. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: d Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 7
8 #include <list> 8 #include <list>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/gtest_prod_util.h" 11 #include "base/gtest_prod_util.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
14 #include "third_party/skia/include/core/SkColor.h" 14 #include "third_party/skia/include/core/SkColor.h"
15 #include "ui/base/ime/composition_text.h" 15 #include "ui/base/ime/composition_text.h"
16 #include "ui/gfx/rect.h" 16 #include "ui/gfx/rect.h"
17 #include "ui/gfx/render_text.h" 17 #include "ui/gfx/render_text.h"
18 #include "ui/gfx/text_constants.h" 18 #include "ui/gfx/text_constants.h"
19 #include "ui/views/views_export.h" 19 #include "ui/views/views_export.h"
20 20
21 namespace gfx { 21 namespace gfx {
22 class Range;
22 class RenderText; 23 class RenderText;
23 } // namespace gfx 24 } // namespace gfx
24 25
25 namespace ui {
26 class Range;
27 } // namespace ui
28
29 namespace views { 26 namespace views {
30 27
31 namespace internal { 28 namespace internal {
32 // Internal Edit class that keeps track of edits for undo/redo. 29 // Internal Edit class that keeps track of edits for undo/redo.
33 class Edit; 30 class Edit;
34 31
35 // C++ doesn't allow forward decl enum, so let's define here. 32 // C++ doesn't allow forward decl enum, so let's define here.
36 enum MergeType { 33 enum MergeType {
37 // The edit should not be merged with next edit. It still may 34 // The edit should not be merged with next edit. It still may
38 // be merged with an edit with MERGE_WITH_PREVIOUS. 35 // be merged with an edit with MERGE_WITH_PREVIOUS.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 bool MoveCursorTo(const gfx::Point& point, bool select); 134 bool MoveCursorTo(const gfx::Point& point, bool select);
138 135
139 // Selection related method 136 // Selection related method
140 137
141 // Returns the selected text. 138 // Returns the selected text.
142 string16 GetSelectedText() const; 139 string16 GetSelectedText() const;
143 140
144 // The current composition text will be confirmed. The selection starts with 141 // The current composition text will be confirmed. The selection starts with
145 // the range's start position, and ends with the range's end position, 142 // the range's start position, and ends with the range's end position,
146 // therefore the cursor position becomes the end position. 143 // therefore the cursor position becomes the end position.
147 void SelectRange(const ui::Range& range); 144 void SelectRange(const gfx::Range& range);
148 145
149 // The current composition text will be confirmed. 146 // The current composition text will be confirmed.
150 // render_text_'s selection model is set to |sel|. 147 // render_text_'s selection model is set to |sel|.
151 void SelectSelectionModel(const gfx::SelectionModel& sel); 148 void SelectSelectionModel(const gfx::SelectionModel& sel);
152 149
153 // Select the entire text range. If |reversed| is true, the range will end at 150 // Select the entire text range. If |reversed| is true, the range will end at
154 // the logical beginning of the text; this generally shows the leading portion 151 // the logical beginning of the text; this generally shows the leading portion
155 // of text that overflows its display area. 152 // of text that overflows its display area.
156 // The current composition text will be confirmed. 153 // The current composition text will be confirmed.
157 void SelectAll(bool reversed); 154 void SelectAll(bool reversed);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 // Deletes the selected text. This method shouldn't be called with 194 // Deletes the selected text. This method shouldn't be called with
198 // composition text. 195 // composition text.
199 void DeleteSelection(); 196 void DeleteSelection();
200 197
201 // Deletes the selected text (if any) and insert text at given 198 // Deletes the selected text (if any) and insert text at given
202 // position. 199 // position.
203 void DeleteSelectionAndInsertTextAt( 200 void DeleteSelectionAndInsertTextAt(
204 const string16& text, size_t position); 201 const string16& text, size_t position);
205 202
206 // Retrieves the text content in a given range. 203 // Retrieves the text content in a given range.
207 string16 GetTextFromRange(const ui::Range& range) const; 204 string16 GetTextFromRange(const gfx::Range& range) const;
208 205
209 // Retrieves the range containing all text in the model. 206 // Retrieves the range containing all text in the model.
210 void GetTextRange(ui::Range* range) const; 207 void GetTextRange(gfx::Range* range) const;
211 208
212 // Sets composition text and attributes. If there is composition text already, 209 // Sets composition text and attributes. If there is composition text already,
213 // it'll be replaced by the new one. Otherwise, current selection will be 210 // it'll be replaced by the new one. Otherwise, current selection will be
214 // replaced. If there is no selection, the composition text will be inserted 211 // replaced. If there is no selection, the composition text will be inserted
215 // at the insertion point. 212 // at the insertion point.
216 // Any changes to the model except text insertion will confirm the current 213 // Any changes to the model except text insertion will confirm the current
217 // composition text. 214 // composition text.
218 void SetCompositionText(const ui::CompositionText& composition); 215 void SetCompositionText(const ui::CompositionText& composition);
219 216
220 // Converts current composition text into final content. 217 // Converts current composition text into final content.
221 void ConfirmCompositionText(); 218 void ConfirmCompositionText();
222 219
223 // Removes current composition text. 220 // Removes current composition text.
224 void CancelCompositionText(); 221 void CancelCompositionText();
225 222
226 // Retrieves the range of current composition text. 223 // Retrieves the range of current composition text.
227 void GetCompositionTextRange(ui::Range* range) const; 224 void GetCompositionTextRange(gfx::Range* range) const;
228 225
229 // Returns true if there is composition text. 226 // Returns true if there is composition text.
230 bool HasCompositionText() const; 227 bool HasCompositionText() const;
231 228
232 private: 229 private:
233 friend class NativeTextfieldViews; 230 friend class NativeTextfieldViews;
234 friend class NativeTextfieldViewsTest; 231 friend class NativeTextfieldViewsTest;
235 friend class TextfieldViewsModelTest; 232 friend class TextfieldViewsModelTest;
236 friend class UndoRedo_BasicTest; 233 friend class UndoRedo_BasicTest;
237 friend class UndoRedo_CutCopyPasteTest; 234 friend class UndoRedo_CutCopyPasteTest;
(...skipping 13 matching lines...) Expand all
251 // edit in the edit history. 248 // edit in the edit history.
252 void ReplaceTextInternal(const string16& text, bool mergeable); 249 void ReplaceTextInternal(const string16& text, bool mergeable);
253 250
254 // Clears all edit history. 251 // Clears all edit history.
255 void ClearEditHistory(); 252 void ClearEditHistory();
256 253
257 // Clears redo history. 254 // Clears redo history.
258 void ClearRedoHistory(); 255 void ClearRedoHistory();
259 256
260 // Executes and records edit operations. 257 // Executes and records edit operations.
261 void ExecuteAndRecordDelete(ui::Range range, bool mergeable); 258 void ExecuteAndRecordDelete(gfx::Range range, bool mergeable);
262 void ExecuteAndRecordReplaceSelection(internal::MergeType merge_type, 259 void ExecuteAndRecordReplaceSelection(internal::MergeType merge_type,
263 const string16& text); 260 const string16& text);
264 void ExecuteAndRecordReplace(internal::MergeType merge_type, 261 void ExecuteAndRecordReplace(internal::MergeType merge_type,
265 size_t old_cursor_pos, 262 size_t old_cursor_pos,
266 size_t new_cursor_pos, 263 size_t new_cursor_pos,
267 const string16& text, 264 const string16& text,
268 size_t new_text_start); 265 size_t new_text_start);
269 void ExecuteAndRecordInsert(const string16& text, bool mergeable); 266 void ExecuteAndRecordInsert(const string16& text, bool mergeable);
270 267
271 // Adds or merge |edit| into edit history. Return true if the edit 268 // Adds or merge |edit| into edit history. Return true if the edit
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 // 2) new edit is added. (redo history is cleared) 304 // 2) new edit is added. (redo history is cleared)
308 // 3) redone all undone edits. 305 // 3) redone all undone edits.
309 EditHistory::iterator current_edit_; 306 EditHistory::iterator current_edit_;
310 307
311 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel); 308 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModel);
312 }; 309 };
313 310
314 } // namespace views 311 } // namespace views
315 312
316 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_ 313 #endif // UI_VIEWS_CONTROLS_TEXTFIELD_TEXTFIELD_VIEWS_MODEL_H_
OLDNEW
« no previous file with comments | « ui/views/controls/textfield/textfield.cc ('k') | ui/views/controls/textfield/textfield_views_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698