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

Side by Side Diff: views/controls/textfield/textfield_views_model.cc

Issue 7607018: Remove PREVIOUS_GRAPHEME_TRAILING. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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
« no previous file with comments | « ui/gfx/render_text.cc ('k') | views/controls/textfield/textfield_views_model_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "views/controls/textfield/textfield_views_model.h" 5 #include "views/controls/textfield/textfield_views_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/i18n/break_iterator.h" 9 #include "base/i18n/break_iterator.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 return GetText().substr(render_text_->MinOfSelection(), 407 return GetText().substr(render_text_->MinOfSelection(),
408 (render_text_->MaxOfSelection() - render_text_->MinOfSelection())); 408 (render_text_->MaxOfSelection() - render_text_->MinOfSelection()));
409 } 409 }
410 410
411 void TextfieldViewsModel::GetSelectedRange(ui::Range* range) const { 411 void TextfieldViewsModel::GetSelectedRange(ui::Range* range) const {
412 range->set_start(render_text_->GetSelectionStart()); 412 range->set_start(render_text_->GetSelectionStart());
413 range->set_end(render_text_->GetCursorPosition()); 413 range->set_end(render_text_->GetCursorPosition());
414 } 414 }
415 415
416 void TextfieldViewsModel::SelectRange(const ui::Range& range) { 416 void TextfieldViewsModel::SelectRange(const ui::Range& range) {
417 gfx::SelectionModel selection(range.start(), range.end(), 417 gfx::SelectionModel selection(range.start(), range.end());
418 range.end(), gfx::SelectionModel::PREVIOUS_GRAPHEME_TRAILING);
419 SelectSelectionModel(selection); 418 SelectSelectionModel(selection);
420 } 419 }
421 420
422 void TextfieldViewsModel::SelectSelectionModel(const gfx::SelectionModel& sel) { 421 void TextfieldViewsModel::SelectSelectionModel(const gfx::SelectionModel& sel) {
423 if (HasCompositionText()) 422 if (HasCompositionText())
424 ConfirmCompositionText(); 423 ConfirmCompositionText();
425 render_text_->SetSelectionModel(sel); 424 render_text_->SetSelectionModel(sel);
426 } 425 }
427 426
428 void TextfieldViewsModel::SelectAll() { 427 void TextfieldViewsModel::SelectAll() {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 render_text_->SetText(new_text.insert(cursor, composition.text)); 581 render_text_->SetText(new_text.insert(cursor, composition.text));
583 ui::Range range(cursor, cursor + composition.text.length()); 582 ui::Range range(cursor, cursor + composition.text.length());
584 render_text_->SetCompositionRange(range); 583 render_text_->SetCompositionRange(range);
585 // TODO(msw): Support multiple composition underline ranges. 584 // TODO(msw): Support multiple composition underline ranges.
586 585
587 if (composition.selection.IsValid()) { 586 if (composition.selection.IsValid()) {
588 size_t start = 587 size_t start =
589 std::min(range.start() + composition.selection.start(), range.end()); 588 std::min(range.start() + composition.selection.start(), range.end());
590 size_t end = 589 size_t end =
591 std::min(range.start() + composition.selection.end(), range.end()); 590 std::min(range.start() + composition.selection.end(), range.end());
592 gfx::SelectionModel sel(start, end, end, 591 gfx::SelectionModel sel(start, end);
593 gfx::SelectionModel::PREVIOUS_GRAPHEME_TRAILING);
594 render_text_->SetSelectionModel(sel); 592 render_text_->SetSelectionModel(sel);
595 } else { 593 } else {
596 render_text_->SetCursorPosition(range.end()); 594 render_text_->SetCursorPosition(range.end());
597 } 595 }
598 } 596 }
599 597
600 void TextfieldViewsModel::ConfirmCompositionText() { 598 void TextfieldViewsModel::ConfirmCompositionText() {
601 DCHECK(HasCompositionText()); 599 DCHECK(HasCompositionText());
602 ui::Range range = render_text_->GetCompositionRange(); 600 ui::Range range = render_text_->GetCompositionRange();
603 string16 text = GetText().substr(range.start(), range.length()); 601 string16 text = GetText().substr(range.start(), range.length());
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 if (delete_from != delete_to) 775 if (delete_from != delete_to)
778 render_text_->SetText(text.erase(delete_from, delete_to - delete_from)); 776 render_text_->SetText(text.erase(delete_from, delete_to - delete_from));
779 if (!new_text.empty()) 777 if (!new_text.empty())
780 render_text_->SetText(text.insert(new_text_insert_at, new_text)); 778 render_text_->SetText(text.insert(new_text_insert_at, new_text));
781 render_text_->SetCursorPosition(new_cursor_pos); 779 render_text_->SetCursorPosition(new_cursor_pos);
782 // TODO(oshima): mac selects the text that is just undone (but gtk doesn't). 780 // TODO(oshima): mac selects the text that is just undone (but gtk doesn't).
783 // This looks fine feature and we may want to do the same. 781 // This looks fine feature and we may want to do the same.
784 } 782 }
785 783
786 } // namespace views 784 } // namespace views
OLDNEW
« no previous file with comments | « ui/gfx/render_text.cc ('k') | views/controls/textfield/textfield_views_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698