From 85775be6492ea4d1a38356d796c430ccb51edd9f Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 8 Feb 2002 01:54:21 +0000 Subject: [PATCH] Simplified existing code for moving by words; added moving by words and modifying selection git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@12429 72102866-910b-0410-8b05-ffd578937521 --- Source/NSTextView.m | 94 ++++++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/Source/NSTextView.m b/Source/NSTextView.m index d61bfc743..79feeff26 100644 --- a/Source/NSTextView.m +++ b/Source/NSTextView.m @@ -2596,6 +2596,64 @@ afterString in order over charRange. */ [self setSelectedRange: newRange]; } +- (void) moveWordBackward: (id)sender +{ + unsigned newLocation; + + newLocation = [_textStorage nextWordFromIndex: _selected_range.location + forward: NO]; + + [self setSelectedRange: NSMakeRange (newLocation, 0)]; +} + +- (void) moveWordForward: (id)sender +{ + unsigned newLocation; + + newLocation = [_textStorage nextWordFromIndex: _selected_range.location + forward: YES]; + + [self setSelectedRange: NSMakeRange (newLocation, 0)]; +} + +- (void) moveWordBackwardAndModifySelection: (id)sender +{ + unsigned newLocation; + NSRange newRange; + + [self setSelectionGranularity: NSSelectByWord]; + + newLocation = [_textStorage nextWordFromIndex: _selected_range.location + forward: NO]; + + newRange = NSMakeRange (newLocation, + NSMaxRange (_selected_range) - newLocation); + + newRange = [self selectionRangeForProposedRange: newRange + granularity: NSSelectByCharacter]; + + [self setSelectedRange: newRange]; +} + +- (void) moveWordForwardAndModifySelection: (id)sender +{ + unsigned newMaxRange; + NSRange newRange; + + [self setSelectionGranularity: NSSelectByWord]; + + newMaxRange = [_textStorage nextWordFromIndex: NSMaxRange (_selected_range) + forward: YES]; + + newRange = NSMakeRange (_selected_range.location, + newMaxRange - _selected_range.location); + + newRange = [self selectionRangeForProposedRange: newRange + granularity: NSSelectByCharacter]; + + [self setSelectedRange: newRange]; +} + - (void) moveToBeginningOfDocument: (id)sender { [self setSelectedRange: NSMakeRange (0, 0)]; @@ -2685,42 +2743,6 @@ afterString in order over charRange. */ [self setSelectedRange: NSMakeRange (newLocation, 0) ]; } -- (void) moveWordBackward: (id)sender -{ - if (_selected_range.location == 0 || [_textStorage length] == 0) - { - return; - } - else - { - unsigned int i; - - i = [_textStorage nextWordFromIndex: _selected_range.location - forward: NO]; - [self setSelectedRange: NSMakeRange (i, 0)]; - } -} - -- (void) moveWordForward: (id)sender -{ - unsigned int length; - - length = [_textStorage length]; - - if (_selected_range.location == length || length == 0) - { - return; - } - else - { - unsigned int i; - - i = [_textStorage nextWordFromIndex: _selected_range.location - forward: YES]; - [self setSelectedRange: NSMakeRange (i, 0)]; - } -} - - (void) pageDown: (id)sender { // TODO