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