|
|
1.1 root 1: #import "textundo.h"
2:
3: #define PASTE_OPERATION NXLocalStringFromTable("Operations", "Paste", NULL, "The operation of getting something from the Pasteboard and inserting into the document.")
4:
5: @implementation PasteTextChange
6:
7: /*
8: * This class calculates how many characters were pasted by looking at
9: * the length of the original selection, and the length of the text object
10: * before the paste.
11: */
12:
13: - initView:aView
14: {
15: [super initView:aView name:PASTE_OPERATION];
16: return self;
17: }
18:
19: - saveBeforeChange
20: {
21: NXSelPt start, end;
22:
23: [super saveBeforeChange];
24:
25: [textView getSel:&start :&end];
26: textLength = [textView textLength];
27: selectionStart = start.cp;
28: selectionLength = end.cp - start.cp;
29:
30: return self;
31: }
32:
33: - saveAfterChange
34: {
35: int charsPasted;
36:
37: charsPasted = [textView textLength] - (textLength - selectionLength);
38: newSel = [[TextSelection alloc] initText:textView
39: start:selectionStart
40: end:selectionStart + charsPasted];
41: [newSel capture];
42: return self;
43: }
44:
45: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.