| 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 #include "ui/views/controls/textfield/native_textfield_views.h" | 5 #include "ui/views/controls/textfield/native_textfield_views.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 return model_->HasSelection(); | 551 return model_->HasSelection(); |
| 552 case IDS_APP_PASTE: | 552 case IDS_APP_PASTE: |
| 553 ViewsDelegate::views_delegate->GetClipboard() | 553 ViewsDelegate::views_delegate->GetClipboard() |
| 554 ->ReadText(ui::Clipboard::BUFFER_STANDARD, &result); | 554 ->ReadText(ui::Clipboard::BUFFER_STANDARD, &result); |
| 555 return editable && !result.empty(); | 555 return editable && !result.empty(); |
| 556 case IDS_APP_DELETE: | 556 case IDS_APP_DELETE: |
| 557 return editable && model_->HasSelection(); | 557 return editable && model_->HasSelection(); |
| 558 case IDS_APP_SELECT_ALL: | 558 case IDS_APP_SELECT_ALL: |
| 559 return true; | 559 return true; |
| 560 default: | 560 default: |
| 561 NOTREACHED(); | 561 return textfield_->GetController()->IsCommandIdEnabled(command_id); |
| 562 return false; | |
| 563 } | 562 } |
| 564 } | 563 } |
| 565 | 564 |
| 566 bool NativeTextfieldViews::GetAcceleratorForCommandId(int command_id, | 565 bool NativeTextfieldViews::GetAcceleratorForCommandId(int command_id, |
| 567 ui::Accelerator* accelerator) { | 566 ui::Accelerator* accelerator) { |
| 568 return false; | 567 return false; |
| 569 } | 568 } |
| 570 | 569 |
| 571 void NativeTextfieldViews::ExecuteCommand(int command_id) { | 570 void NativeTextfieldViews::ExecuteCommand(int command_id) { |
| 572 bool text_changed = false; | 571 bool text_changed = false; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 585 text_changed = Paste(); | 584 text_changed = Paste(); |
| 586 break; | 585 break; |
| 587 case IDS_APP_DELETE: | 586 case IDS_APP_DELETE: |
| 588 if (editable) | 587 if (editable) |
| 589 text_changed = model_->Delete(); | 588 text_changed = model_->Delete(); |
| 590 break; | 589 break; |
| 591 case IDS_APP_SELECT_ALL: | 590 case IDS_APP_SELECT_ALL: |
| 592 SelectAll(); | 591 SelectAll(); |
| 593 break; | 592 break; |
| 594 default: | 593 default: |
| 595 NOTREACHED() << "unknown command: " << command_id; | 594 textfield_->GetController()->ExecuteCommand(command_id); |
| 596 break; | 595 break; |
| 597 } | 596 } |
| 598 | 597 |
| 599 // The cursor must have changed if text changed during cut/paste/delete. | 598 // The cursor must have changed if text changed during cut/paste/delete. |
| 600 UpdateAfterChange(text_changed, text_changed); | 599 UpdateAfterChange(text_changed, text_changed); |
| 601 OnAfterUserAction(); | 600 OnAfterUserAction(); |
| 602 } | 601 } |
| 603 | 602 |
| 604 void NativeTextfieldViews::ApplyStyleRange(const gfx::StyleRange& style) { | 603 void NativeTextfieldViews::ApplyStyleRange(const gfx::StyleRange& style) { |
| 605 GetRenderText()->ApplyStyleRange(style); | 604 GetRenderText()->ApplyStyleRange(style); |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 979 void NativeTextfieldViews::UpdateContextMenu() { | 978 void NativeTextfieldViews::UpdateContextMenu() { |
| 980 if (!context_menu_contents_.get()) { | 979 if (!context_menu_contents_.get()) { |
| 981 context_menu_contents_.reset(new ui::SimpleMenuModel(this)); | 980 context_menu_contents_.reset(new ui::SimpleMenuModel(this)); |
| 982 context_menu_contents_->AddItemWithStringId(IDS_APP_CUT, IDS_APP_CUT); | 981 context_menu_contents_->AddItemWithStringId(IDS_APP_CUT, IDS_APP_CUT); |
| 983 context_menu_contents_->AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY); | 982 context_menu_contents_->AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY); |
| 984 context_menu_contents_->AddItemWithStringId(IDS_APP_PASTE, IDS_APP_PASTE); | 983 context_menu_contents_->AddItemWithStringId(IDS_APP_PASTE, IDS_APP_PASTE); |
| 985 context_menu_contents_->AddItemWithStringId(IDS_APP_DELETE, IDS_APP_DELETE); | 984 context_menu_contents_->AddItemWithStringId(IDS_APP_DELETE, IDS_APP_DELETE); |
| 986 context_menu_contents_->AddSeparator(); | 985 context_menu_contents_->AddSeparator(); |
| 987 context_menu_contents_->AddItemWithStringId(IDS_APP_SELECT_ALL, | 986 context_menu_contents_->AddItemWithStringId(IDS_APP_SELECT_ALL, |
| 988 IDS_APP_SELECT_ALL); | 987 IDS_APP_SELECT_ALL); |
| 988 textfield_->GetController()->UpdateContextMenu( |
| 989 context_menu_contents_.get()); |
| 989 | 990 |
| 990 context_menu_delegate_.reset( | 991 context_menu_delegate_.reset( |
| 991 new views::MenuModelAdapter(context_menu_contents_.get())); | 992 new views::MenuModelAdapter(context_menu_contents_.get())); |
| 992 context_menu_runner_.reset( | 993 context_menu_runner_.reset( |
| 993 new MenuRunner(new views::MenuItemView(context_menu_delegate_.get()))); | 994 new MenuRunner(new views::MenuItemView(context_menu_delegate_.get()))); |
| 994 } | 995 } |
| 995 | 996 |
| 996 context_menu_delegate_->BuildMenu(context_menu_runner_->GetMenu()); | 997 context_menu_delegate_->BuildMenu(context_menu_runner_->GetMenu()); |
| 997 } | 998 } |
| 998 | 999 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 | 1124 |
| 1124 #if defined(USE_AURA) | 1125 #if defined(USE_AURA) |
| 1125 // static | 1126 // static |
| 1126 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper( | 1127 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper( |
| 1127 Textfield* field) { | 1128 Textfield* field) { |
| 1128 return new NativeTextfieldViews(field); | 1129 return new NativeTextfieldViews(field); |
| 1129 } | 1130 } |
| 1130 #endif | 1131 #endif |
| 1131 | 1132 |
| 1132 } // namespace views | 1133 } // namespace views |
| OLD | NEW |