|
|
1.1 root 1: /*
2: * Please refer to external documentation about Draw
3: * with Undo for information about what ChangeDetails
4: * are and where they fit in.
5: *
6: * The ChangeDetail.h and ChangeDetail.m files contain
7: * the @interfaces and @implementations for the 11
8: * subclasses of ChangeDetail, as well as for ChangeDetail
9: * itself. We grouped all the classes into one pair of
10: * files because the classes are so tiny and their behavior
11: * is so similar.
12: *
13: * ChangeDetail
14: * ArrowChangeDetail
15: * DimensionsChangeDetail
16: * FillColorChangeDetail
17: * FillModeChangeDetail
18: * LineCapChangeDetail
19: * LineColorChangeDetail
20: * LineJoinChangeDetail
21: * LineWidthChangeDetail
22: * MoveChangeDetail
23: * OrderChangeDetail
24: *
25: */
26:
27: @interface ChangeDetail : Object
28: {
29: Graphic *graphic; /* the Graphic that we serve */
30: id change; /* the Change object that we belong to */
31: List *detailsDetails; /* If the Graphic that this ChangeDetail
32: * serves is a Group then detailsDetails
33: * is used to keep track of the
34: * ChangeDetails that serve the component
35: * Graphics of the Group.
36: */
37: BOOL changeExpected;
38: }
39:
40: - initGraphic:aGraphic change:aChange;
41: - free;
42: - graphic;
43: - (BOOL)useNestedDetails;
44: - (BOOL)changeExpected;
45: - recordDetail;
46: - undoDetail;
47: - redoDetail;
48: - recordIt;
49: - undoIt;
50: - redoIt;
51:
52: @end
53:
54: @interface ArrowChangeDetail : ChangeDetail
55: {
56: int oldLineArrow;
57: }
58:
59: - recordIt;
60: - undoIt;
61: - redoIt;
62:
63: @end
64:
65: @interface DimensionsChangeDetail : ChangeDetail
66: {
67: NXRect oldBounds;
68: NXRect newBounds;
69: }
70:
71: - (BOOL)useNestedDetails;
72: - recordDetail;
73: - undoDetail;
74: - redoDetail;
75:
76: @end
77:
78: @interface FillChangeDetail : ChangeDetail
79: {
80: NXColor oldFillColor;
81: int oldFillMode;
82: NXColor newFillColor;
83: int newFillMode;
84: }
85:
86: - recordIt;
87: - undoIt;
88: - redoIt;
89:
90: @end
91:
92: @interface LineCapChangeDetail : ChangeDetail
93: {
94: int oldLineCap;
95: }
96:
97: - recordIt;
98: - undoIt;
99: - redoIt;
100:
101: @end
102:
103: @interface LineColorChangeDetail : ChangeDetail
104: {
105: NXColor oldColor;
106: BOOL oldIsOutlined;
107: }
108:
109: - recordIt;
110: - undoIt;
111: - redoIt;
112:
113: @end
114:
115: @interface LineJoinChangeDetail : ChangeDetail
116: {
117: int oldLineJoin;
118: }
119:
120: - recordIt;
121: - undoIt;
122: - redoIt;
123:
124: @end
125:
126: @interface LineWidthChangeDetail : ChangeDetail
127: {
128: float oldLineWidth;
129: }
130:
131: - recordIt;
132: - undoIt;
133: - redoIt;
134:
135: @end
136:
137: @interface MoveChangeDetail : ChangeDetail
138: {
139: }
140:
141: - (BOOL)useNestedDetails;
142: - undoDetail;
143: - redoDetail;
144:
145: @end
146:
147: @interface OrderChangeDetail : ChangeDetail
148: {
149: unsigned graphicPosition;
150: }
151:
152: - (BOOL)useNestedDetails;
153: - recordGraphicPositionIn:graphicList;
154: - (unsigned)graphicPosition;
155:
156: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.