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

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

Issue 9232075: Have ScopedClipboardWriter and Clipboard::WriteObjects take a buffer parameter. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix build error. Created 8 years, 10 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 #include "ui/views/controls/textfield/textfield_views_model.h" 5 #include "ui/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 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 else 492 else
493 current_edit_ ++; 493 current_edit_ ++;
494 string16 old = GetText(); 494 string16 old = GetText();
495 size_t old_cursor = GetCursorPosition(); 495 size_t old_cursor = GetCursorPosition();
496 (*current_edit_)->Redo(this); 496 (*current_edit_)->Redo(this);
497 return old != GetText() || old_cursor != GetCursorPosition(); 497 return old != GetText() || old_cursor != GetCursorPosition();
498 } 498 }
499 499
500 bool TextfieldViewsModel::Cut() { 500 bool TextfieldViewsModel::Cut() {
501 if (!HasCompositionText() && HasSelection()) { 501 if (!HasCompositionText() && HasSelection()) {
502 ui::ScopedClipboardWriter(views::ViewsDelegate::views_delegate 502 ui::ScopedClipboardWriter(
503 ->GetClipboard()).WriteText(GetSelectedText()); 503 views::ViewsDelegate::views_delegate->GetClipboard(),
504 ui::Clipboard::BUFFER_STANDARD).WriteText(GetSelectedText());
504 // A trick to let undo/redo handle cursor correctly. 505 // A trick to let undo/redo handle cursor correctly.
505 // Undoing CUT moves the cursor to the end of the change rather 506 // Undoing CUT moves the cursor to the end of the change rather
506 // than beginning, unlike Delete/Backspace. 507 // than beginning, unlike Delete/Backspace.
507 // TODO(oshima): Change Delete/Backspace to use DeleteSelection, 508 // TODO(oshima): Change Delete/Backspace to use DeleteSelection,
508 // update DeleteEdit and remove this trick. 509 // update DeleteEdit and remove this trick.
509 render_text_->SelectRange(ui::Range(render_text_->GetCursorPosition(), 510 render_text_->SelectRange(ui::Range(render_text_->GetCursorPosition(),
510 render_text_->GetSelectionStart())); 511 render_text_->GetSelectionStart()));
511 DeleteSelection(); 512 DeleteSelection();
512 return true; 513 return true;
513 } 514 }
514 return false; 515 return false;
515 } 516 }
516 517
517 bool TextfieldViewsModel::Copy() { 518 bool TextfieldViewsModel::Copy() {
518 if (!HasCompositionText() && HasSelection()) { 519 if (!HasCompositionText() && HasSelection()) {
519 ui::ScopedClipboardWriter(views::ViewsDelegate::views_delegate 520 ui::ScopedClipboardWriter(
520 ->GetClipboard()).WriteText(GetSelectedText()); 521 views::ViewsDelegate::views_delegate->GetClipboard(),
522 ui::Clipboard::BUFFER_STANDARD).WriteText(GetSelectedText());
521 return true; 523 return true;
522 } 524 }
523 return false; 525 return false;
524 } 526 }
525 527
526 bool TextfieldViewsModel::Paste() { 528 bool TextfieldViewsModel::Paste() {
527 string16 result; 529 string16 result;
528 views::ViewsDelegate::views_delegate->GetClipboard() 530 views::ViewsDelegate::views_delegate->GetClipboard()
529 ->ReadText(ui::Clipboard::BUFFER_STANDARD, &result); 531 ->ReadText(ui::Clipboard::BUFFER_STANDARD, &result);
530 if (!result.empty()) { 532 if (!result.empty()) {
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 if (delete_from != delete_to) 776 if (delete_from != delete_to)
775 render_text_->SetText(text.erase(delete_from, delete_to - delete_from)); 777 render_text_->SetText(text.erase(delete_from, delete_to - delete_from));
776 if (!new_text.empty()) 778 if (!new_text.empty())
777 render_text_->SetText(text.insert(new_text_insert_at, new_text)); 779 render_text_->SetText(text.insert(new_text_insert_at, new_text));
778 render_text_->SetCursorPosition(new_cursor_pos); 780 render_text_->SetCursorPosition(new_cursor_pos);
779 // TODO(oshima): mac selects the text that is just undone (but gtk doesn't). 781 // TODO(oshima): mac selects the text that is just undone (but gtk doesn't).
780 // This looks fine feature and we may want to do the same. 782 // This looks fine feature and we may want to do the same.
781 } 783 }
782 784
783 } // namespace views 785 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/textfield/native_textfield_win.cc ('k') | ui/views/controls/textfield/textfield_views_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698