|
|
1.1 root 1: #import "drawundo.h"
2:
3: @interface PasteGraphicsChange(PrivateMethods)
4:
5: - undoDetails;
6: - redoDetails;
7:
8: @end
9:
10: @implementation PasteGraphicsChange
11:
12: - initGraphicView:aGraphicView graphics:theGraphics
13: {
14: int i, count;
15:
16: [super initGraphicView:aGraphicView];
17: graphics = [[List alloc] init];
18: count = [theGraphics count];
19: for (i = 0; i < count; i++) {
20: [graphics addObject:[theGraphics objectAt:i]];
21: }
22:
23: return self;
24: }
25:
26: - free
27: {
28: if (![self hasBeenDone])
29: [graphics freeObjects];
30: return [super free];
31: }
32:
33: - (const char *)changeName
34: {
35: return PASTE_OPERATION;
36: }
37:
38: - saveBeforeChange
39: {
40: return self;
41: }
42:
43: - changeDetailClass
44: {
45: return nil;
46: }
47:
48: - undoDetails
49: {
50: int count, i;
51: id graphic;
52: List *selectedGraphics;
53: List *allGraphics;
54:
55: selectedGraphics = [graphicView selectedGraphics];
56: allGraphics = [graphicView graphics];
57: count = [graphics count];
58: for (i = 0; i < count; i++) {
59: graphic = [graphics objectAt:i];
60: [selectedGraphics removeObject:graphic];
61: [allGraphics removeObject:graphic];
62: [graphic wasRemovedFrom:graphicView];
63: }
64: [graphicView resetGroupInSlist];
65: return self;
66: }
67:
68: - redoDetails
69: {
70: int count, i;
71: id graphic;
72: List *selectedGraphics;
73: List *allGraphics;
74:
75: selectedGraphics = [graphicView selectedGraphics];
76: allGraphics = [graphicView graphics];
77: count = [graphics count];
78: i = count;
79: while (i--) {
80: graphic = [graphics objectAt:i];
81: [selectedGraphics insertObject:graphic at:0];
82: [allGraphics insertObject:graphic at:0];
83: [graphic wasAddedTo:graphicView];
84: if ([graphic isKindOf:[Group class]]) [graphicView setGroupInSlist:YES];
85: }
86:
87: return self;
88: }
89:
90: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.