Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import "ui/views/cocoa/bridged_content_view.h" | 5 #import "ui/views/cocoa/bridged_content_view.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #import "base/mac/mac_util.h" | 8 #import "base/mac/mac_util.h" |
| 9 #import "base/mac/scoped_nsobject.h" | 9 #import "base/mac/scoped_nsobject.h" |
| 10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 642 // is active. Note that NSResponder's interpretKeyEvents: implementation doesn't | 642 // is active. Note that NSResponder's interpretKeyEvents: implementation doesn't |
| 643 // direct insertText: through doCommandBySelector:, so this is still needed to | 643 // direct insertText: through doCommandBySelector:, so this is still needed to |
| 644 // handle the case when inputContext: is nil. When inputContext: returns non-nil | 644 // handle the case when inputContext: is nil. When inputContext: returns non-nil |
| 645 // text goes directly to insertText:replacementRange:. | 645 // text goes directly to insertText:replacementRange:. |
| 646 - (void)insertText:(id)text { | 646 - (void)insertText:(id)text { |
| 647 [self insertText:text replacementRange:NSMakeRange(NSNotFound, 0)]; | 647 [self insertText:text replacementRange:NSMakeRange(NSNotFound, 0)]; |
| 648 } | 648 } |
| 649 | 649 |
| 650 // Selection movement and scrolling. | 650 // Selection movement and scrolling. |
| 651 | 651 |
| 652 - (void)moveForward:(nullable id)sender { | |
| 653 IsTextRTL(textInputClient_) ? [self moveLeft:sender] | |
|
karandeepb
2016/05/16 00:11:08
I think that I should add a GetTextDirection() pub
| |
| 654 : [self moveRight:sender]; | |
| 655 } | |
| 656 | |
| 652 - (void)moveRight:(id)sender { | 657 - (void)moveRight:(id)sender { |
| 653 [self handleAction:IDS_MOVE_RIGHT | 658 [self handleAction:IDS_MOVE_RIGHT |
| 654 keyCode:ui::VKEY_RIGHT | 659 keyCode:ui::VKEY_RIGHT |
| 655 domCode:ui::DomCode::ARROW_RIGHT | 660 domCode:ui::DomCode::ARROW_RIGHT |
| 656 eventFlags:0]; | 661 eventFlags:0]; |
| 657 } | 662 } |
| 658 | 663 |
| 664 - (void)moveBackward:(nullable id)sender { | |
| 665 IsTextRTL(textInputClient_) ? [self moveRight:sender] | |
| 666 : [self moveLeft:sender]; | |
| 667 } | |
| 668 | |
| 659 - (void)moveLeft:(id)sender { | 669 - (void)moveLeft:(id)sender { |
| 660 [self handleAction:IDS_MOVE_LEFT | 670 [self handleAction:IDS_MOVE_LEFT |
| 661 keyCode:ui::VKEY_LEFT | 671 keyCode:ui::VKEY_LEFT |
| 662 domCode:ui::DomCode::ARROW_LEFT | 672 domCode:ui::DomCode::ARROW_LEFT |
| 663 eventFlags:0]; | 673 eventFlags:0]; |
| 664 } | 674 } |
| 665 | 675 |
| 676 // Todo ask if should use IDS_MOVE_UP. | |
| 666 - (void)moveUp:(id)sender { | 677 - (void)moveUp:(id)sender { |
|
karandeepb
2016/05/16 00:11:08
Should I use the command IDS_MOVE_UP and only enab
| |
| 667 [self handleAction:0 | 678 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE |
| 668 keyCode:ui::VKEY_UP | 679 keyCode:ui::VKEY_UP |
| 669 domCode:ui::DomCode::ARROW_UP | 680 domCode:ui::DomCode::ARROW_UP |
| 670 eventFlags:0]; | 681 eventFlags:0]; |
| 671 } | 682 } |
| 672 | 683 |
| 673 - (void)moveDown:(id)sender { | 684 - (void)moveDown:(id)sender { |
| 674 [self handleAction:0 | 685 [self handleAction:IDS_MOVE_TO_END_OF_LINE |
| 675 keyCode:ui::VKEY_DOWN | 686 keyCode:ui::VKEY_DOWN |
| 676 domCode:ui::DomCode::ARROW_DOWN | 687 domCode:ui::DomCode::ARROW_DOWN |
| 677 eventFlags:0]; | 688 eventFlags:0]; |
| 678 } | 689 } |
| 679 | 690 |
| 691 - (void)moveWordForward:(nullable id)sender { | |
| 692 IsTextRTL(textInputClient_) ? [self moveWordLeft:sender] | |
| 693 : [self moveWordRight:sender]; | |
| 694 } | |
| 695 | |
| 696 - (void)moveWordBackward:(nullable id)sender { | |
| 697 IsTextRTL(textInputClient_) ? [self moveWordRight:sender] | |
| 698 : [self moveWordLeft:sender]; | |
| 699 } | |
| 700 | |
| 701 - (void)moveToBeginningOfLine:(nullable id)sender { | |
| 702 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE | |
| 703 keyCode:ui::VKEY_HOME | |
| 704 domCode:ui::DomCode::HOME | |
| 705 eventFlags:0]; | |
| 706 } | |
| 707 | |
| 708 - (void)moveToEndOfLine:(nullable id)sender { | |
| 709 [self handleAction:IDS_MOVE_TO_END_OF_LINE | |
| 710 keyCode:ui::VKEY_END | |
| 711 domCode:ui::DomCode::END | |
| 712 eventFlags:0]; | |
| 713 } | |
| 714 | |
| 715 - (void)moveToBeginningOfParagraph:(nullable id)sender { | |
| 716 [self moveToBeginningOfLine:sender]; | |
| 717 } | |
| 718 | |
| 719 - (void)moveToEndOfParagraph:(nullable id)sender { | |
| 720 [self moveToEndOfLine:sender]; | |
| 721 } | |
| 722 | |
| 723 - (void)moveToEndOfDocument:(nullable id)sender { | |
| 724 [self moveToEndOfLine:sender]; | |
| 725 } | |
| 726 | |
| 727 - (void)moveToBeginningOfDocument:(nullable id)sender { | |
| 728 [self moveToBeginningOfLine:sender]; | |
| 729 } | |
| 730 | |
| 731 - (void)pageDown:(nullable id)sender { | |
| 732 [self handleAction:IDS_MOVE_TO_END_OF_LINE | |
| 733 keyCode:ui::VKEY_NEXT | |
| 734 domCode:ui::DomCode::PAGE_DOWN | |
| 735 eventFlags:0]; | |
| 736 } | |
| 737 | |
| 738 - (void)pageUp:(nullable id)sender { | |
| 739 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE | |
| 740 keyCode:ui::VKEY_PRIOR | |
| 741 domCode:ui::DomCode::PAGE_UP | |
| 742 eventFlags:0]; | |
| 743 } | |
| 744 | |
| 745 - (void)moveBackwardAndModifySelection:(nullable id)sender { | |
| 746 IsTextRTL(textInputClient_) ? [self moveRightAndModifySelection:sender] | |
| 747 : [self moveLeftAndModifySelection:sender]; | |
| 748 } | |
| 749 | |
| 750 - (void)moveForwardAndModifySelection:(nullable id)sender { | |
| 751 IsTextRTL(textInputClient_) ? [self moveLeftAndModifySelection:sender] | |
| 752 : [self moveRightAndModifySelection:sender]; | |
| 753 } | |
| 754 | |
| 755 - (void)moveWordForwardAndModifySelection:(nullable id)sender { | |
| 756 IsTextRTL(textInputClient_) ? [self moveWordLeftAndModifySelection:sender] | |
| 757 : [self moveWordRightAndModifySelection:sender]; | |
| 758 } | |
| 759 | |
| 760 - (void)moveWordBackwardAndModifySelection:(nullable id)sender { | |
| 761 IsTextRTL(textInputClient_) ? [self moveWordRightAndModifySelection:sender] | |
| 762 : [self moveWordLeftAndModifySelection:sender]; | |
| 763 } | |
| 764 | |
| 765 - (void)moveUpAndModifySelection:(nullable id)sender { | |
| 766 [self moveToBeginningOfLineAndModifySelection:sender]; | |
| 767 } | |
| 768 | |
| 769 - (void)moveDownAndModifySelection:(nullable id)sender { | |
| 770 [self moveToEndOfLineAndModifySelection:sender]; | |
| 771 } | |
| 772 | |
| 773 - (void)moveToBeginningOfLineAndModifySelection:(nullable id)sender { | |
| 774 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION | |
| 775 keyCode:ui::VKEY_HOME | |
| 776 domCode:ui::DomCode::HOME | |
| 777 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 778 } | |
| 779 | |
| 780 - (void)moveToEndOfLineAndModifySelection:(nullable id)sender { | |
| 781 [self handleAction:IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION | |
| 782 keyCode:ui::VKEY_END | |
| 783 domCode:ui::DomCode::END | |
| 784 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 785 } | |
| 786 | |
| 787 - (void)moveToBeginningOfParagraphAndModifySelection:(nullable id)sender { | |
| 788 [self moveToBeginningOfLineAndModifySelection:sender]; | |
| 789 } | |
| 790 | |
| 791 - (void)moveToEndOfParagraphAndModifySelection:(nullable id)sender { | |
| 792 [self moveToEndOfLineAndModifySelection:sender]; | |
| 793 } | |
| 794 | |
| 795 - (void)moveToEndOfDocumentAndModifySelection:(nullable id)sender { | |
| 796 [self moveToEndOfLineAndModifySelection:sender]; | |
| 797 } | |
| 798 | |
| 799 - (void)moveToBeginningOfDocumentAndModifySelection:(nullable id)sender { | |
| 800 [self moveToBeginningOfLineAndModifySelection:sender]; | |
| 801 } | |
| 802 | |
| 803 // Not sure if keycodes are to be added, can use | |
| 804 // https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit /Source/core/editing/EditingBehavior.cpp | |
| 805 - (void)pageDownAndModifySelection:(nullable id)sender { | |
| 806 [self moveToEndOfLineAndModifySelection:sender]; | |
| 807 } | |
| 808 | |
| 809 - (void)pageUpAndModifySelection:(nullable id)sender { | |
| 810 [self moveToBeginningOfLineAndModifySelection:sender]; | |
| 811 } | |
| 812 | |
| 813 - (void)moveParagraphForwardAndModifySelection:(nullable id)sender { | |
| 814 [self moveToEndOfLineAndModifySelection:sender]; | |
| 815 } | |
| 816 | |
| 817 - (void)moveParagraphBackwardAndModifySelection:(nullable id)sender { | |
| 818 [self moveToBeginningOfLineAndModifySelection:sender]; | |
| 819 } | |
| 820 | |
| 680 - (void)moveWordRight:(id)sender { | 821 - (void)moveWordRight:(id)sender { |
| 681 [self handleAction:IDS_MOVE_WORD_RIGHT | 822 [self handleAction:IDS_MOVE_WORD_RIGHT |
| 682 keyCode:ui::VKEY_RIGHT | 823 keyCode:ui::VKEY_RIGHT |
| 683 domCode:ui::DomCode::ARROW_RIGHT | 824 domCode:ui::DomCode::ARROW_RIGHT |
| 684 eventFlags:ui::EF_CONTROL_DOWN]; | 825 eventFlags:ui::EF_CONTROL_DOWN]; |
| 685 } | 826 } |
| 686 | 827 |
| 687 - (void)moveWordLeft:(id)sender { | 828 - (void)moveWordLeft:(nullable id)sender { |
| 688 [self handleAction:IDS_MOVE_WORD_LEFT | 829 [self handleAction:IDS_MOVE_WORD_LEFT |
| 689 keyCode:ui::VKEY_LEFT | 830 keyCode:ui::VKEY_LEFT |
| 690 domCode:ui::DomCode::ARROW_LEFT | 831 domCode:ui::DomCode::ARROW_LEFT |
| 691 eventFlags:ui::EF_CONTROL_DOWN]; | 832 eventFlags:ui::EF_CONTROL_DOWN]; |
| 692 } | 833 } |
| 693 | 834 |
| 694 - (void)moveLeftAndModifySelection:(id)sender { | 835 - (void)moveRightAndModifySelection:(nullable id)sender { |
| 836 [self handleAction:IDS_MOVE_RIGHT_AND_MODIFY_SELECTION | |
| 837 keyCode:ui::VKEY_RIGHT | |
| 838 domCode:ui::DomCode::ARROW_RIGHT | |
| 839 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 840 } | |
| 841 | |
| 842 - (void)moveLeftAndModifySelection:(nullable id)sender { | |
| 695 [self handleAction:IDS_MOVE_LEFT_AND_MODIFY_SELECTION | 843 [self handleAction:IDS_MOVE_LEFT_AND_MODIFY_SELECTION |
| 696 keyCode:ui::VKEY_LEFT | 844 keyCode:ui::VKEY_LEFT |
| 697 domCode:ui::DomCode::ARROW_LEFT | 845 domCode:ui::DomCode::ARROW_LEFT |
| 698 eventFlags:ui::EF_SHIFT_DOWN]; | 846 eventFlags:ui::EF_SHIFT_DOWN]; |
| 699 } | 847 } |
| 700 | 848 |
| 701 - (void)moveRightAndModifySelection:(id)sender { | 849 - (void)moveWordRightAndModifySelection:(nullable id)sender { |
| 702 [self handleAction:IDS_MOVE_RIGHT_AND_MODIFY_SELECTION | |
| 703 keyCode:ui::VKEY_RIGHT | |
| 704 domCode:ui::DomCode::ARROW_RIGHT | |
| 705 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 706 } | |
| 707 | |
| 708 - (void)moveWordRightAndModifySelection:(id)sender { | |
| 709 [self handleAction:IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION | 850 [self handleAction:IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION |
| 710 keyCode:ui::VKEY_RIGHT | 851 keyCode:ui::VKEY_RIGHT |
| 711 domCode:ui::DomCode::ARROW_RIGHT | 852 domCode:ui::DomCode::ARROW_RIGHT |
| 712 eventFlags:ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN]; | 853 eventFlags:ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN]; |
| 713 } | 854 } |
| 714 | 855 |
| 715 - (void)moveWordLeftAndModifySelection:(id)sender { | 856 - (void)moveWordLeftAndModifySelection:(nullable id)sender { |
| 716 [self handleAction:IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION | 857 [self handleAction:IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION |
| 717 keyCode:ui::VKEY_LEFT | 858 keyCode:ui::VKEY_LEFT |
| 718 domCode:ui::DomCode::ARROW_LEFT | 859 domCode:ui::DomCode::ARROW_LEFT |
| 719 eventFlags:ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN]; | 860 eventFlags:ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN]; |
| 720 } | 861 } |
| 721 | 862 |
| 722 - (void)moveToLeftEndOfLine:(id)sender { | 863 - (void)moveToLeftEndOfLine:(nullable id)sender { |
| 723 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE | 864 IsTextRTL(textInputClient_) ? [self moveToEndOfLine:sender] |
| 724 keyCode:ui::VKEY_HOME | 865 : [self moveToBeginningOfLine:sender]; |
| 725 domCode:ui::DomCode::HOME | |
| 726 eventFlags:0]; | |
| 727 } | 866 } |
| 728 | 867 |
| 729 - (void)moveToRightEndOfLine:(id)sender { | 868 - (void)moveToRightEndOfLine:(nullable id)sender { |
| 730 [self handleAction:IDS_MOVE_TO_END_OF_LINE | 869 IsTextRTL(textInputClient_) ? [self moveToBeginningOfLine:sender] |
| 731 keyCode:ui::VKEY_END | 870 : [self moveToEndOfLine:sender]; |
| 732 domCode:ui::DomCode::END | |
| 733 eventFlags:0]; | |
| 734 } | 871 } |
| 735 | 872 |
| 736 - (void)moveToLeftEndOfLineAndModifySelection:(id)sender { | 873 - (void)moveToLeftEndOfLineAndModifySelection:(nullable id)sender { |
| 737 [self handleAction:IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION | 874 IsTextRTL(textInputClient_) |
| 738 keyCode:ui::VKEY_HOME | 875 ? [self moveToEndOfLineAndModifySelection:sender] |
| 739 domCode:ui::DomCode::HOME | 876 : [self moveToBeginningOfLineAndModifySelection:sender]; |
| 740 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 741 } | 877 } |
| 742 | 878 |
| 743 - (void)moveToRightEndOfLineAndModifySelection:(id)sender { | 879 - (void)moveToRightEndOfLineAndModifySelection:(nullable id)sender { |
| 744 [self handleAction:IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION | 880 IsTextRTL(textInputClient_) |
| 745 keyCode:ui::VKEY_END | 881 ? [self moveToBeginningOfLineAndModifySelection:sender] |
| 746 domCode:ui::DomCode::END | 882 : [self moveToEndOfLineAndModifySelection:sender]; |
| 747 eventFlags:ui::EF_SHIFT_DOWN]; | |
| 748 } | 883 } |
| 749 | 884 |
| 750 // Deletions. | 885 // Deletions. |
| 751 | 886 |
| 752 - (void)deleteForward:(id)sender { | 887 - (void)deleteForward:(id)sender { |
| 753 [self handleAction:IDS_DELETE_FORWARD | 888 [self handleAction:IDS_DELETE_FORWARD |
| 754 keyCode:ui::VKEY_DELETE | 889 keyCode:ui::VKEY_DELETE |
| 755 domCode:ui::DomCode::DEL | 890 domCode:ui::DomCode::DEL |
| 756 eventFlags:0]; | 891 eventFlags:0]; |
| 757 } | 892 } |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1023 } | 1158 } |
| 1024 | 1159 |
| 1025 return [super accessibilityAttributeValue:attribute]; | 1160 return [super accessibilityAttributeValue:attribute]; |
| 1026 } | 1161 } |
| 1027 | 1162 |
| 1028 - (id)accessibilityHitTest:(NSPoint)point { | 1163 - (id)accessibilityHitTest:(NSPoint)point { |
| 1029 return [hostedView_->GetNativeViewAccessible() accessibilityHitTest:point]; | 1164 return [hostedView_->GetNativeViewAccessible() accessibilityHitTest:point]; |
| 1030 } | 1165 } |
| 1031 | 1166 |
| 1032 @end | 1167 @end |
| OLD | NEW |