This is PasteTextChange.m in view mode; [Download] [Up]
#import "textundo.h"
#define PASTE_OPERATION NXLocalStringFromTable("Operations", "Paste", NULL, "The operation of getting something from the Pasteboard and inserting into the document.")
@implementation PasteTextChange
/*
* This class calculates how many characters were pasted by looking at
* the length of the original selection, and the length of the text object
* before the paste.
*/
- initView:aView
{
[super initView:aView name:PASTE_OPERATION];
return self;
}
- saveBeforeChange
{
NXSelPt start, end;
[super saveBeforeChange];
[textView getSel:&start :&end];
textLength = [textView textLength];
selectionStart = start.cp;
selectionLength = end.cp - start.cp;
return self;
}
- saveAfterChange
{
int charsPasted;
charsPasted = [textView textLength] - (textLength - selectionLength);
newSel = [[TextSelection alloc] initText:textView
start:selectionStart
end:selectionStart + charsPasted];
[newSel capture];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.