home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / AppKit / Draw / graphicsUndo.subproj / PasteGraphicsChange.m < prev    next >
Text File  |  1995-11-28  |  2KB  |  88 lines

  1. #import "drawundo.h"
  2.  
  3. @interface PasteGraphicsChange(PrivateMethods)
  4.  
  5. - (void)undoDetails;
  6. - (void)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 = [[NSMutableArray alloc] init];
  18.     count = [theGraphics count];
  19.     for (i = 0; i < count; i++) {
  20.     [graphics addObject:[theGraphics objectAtIndex:i]];
  21.     }
  22.  
  23.     return self;
  24. }
  25.  
  26. - (void)dealloc
  27. {
  28.     if (![self hasBeenDone])
  29.         [graphics removeAllObjects];
  30.     [super dealloc];
  31. }
  32.  
  33. - (NSString *)changeName
  34. {
  35.     return PASTE_OP;
  36. }
  37.  
  38. - (void)saveBeforeChange
  39. {
  40.      
  41. }
  42.  
  43. - (Class)changeDetailClass
  44. {
  45.     return nil;
  46. }
  47.  
  48. - (void)undoDetails
  49. {
  50.     int count, i;
  51.     id graphic;
  52.     NSMutableArray *selectedGraphics;
  53.     NSMutableArray *allGraphics;
  54.  
  55.     selectedGraphics = [graphicView selectedGraphics];
  56.     allGraphics = [graphicView graphics];
  57.     count = [graphics count];
  58.     for (i = 0; i < count; i++) {
  59.     graphic = [graphics objectAtIndex:i];
  60.         [selectedGraphics removeObject:graphic];
  61.         [allGraphics removeObject:graphic];
  62.     [graphic wasRemovedFrom:graphicView];
  63.     }
  64.     [graphicView resetGroupInSlist]; 
  65. }
  66.  
  67. - (void)redoDetails
  68. {
  69.     int count, i;
  70.     id graphic;
  71.     NSMutableArray *selectedGraphics;
  72.     NSMutableArray *allGraphics;
  73.  
  74.     selectedGraphics = [graphicView selectedGraphics];
  75.     allGraphics = [graphicView graphics];
  76.     count = [graphics count];
  77.     i = count;
  78.     while (i--) {
  79.     graphic = [graphics objectAtIndex:i];
  80.     [selectedGraphics insertObject:graphic atIndex:0];
  81.     [allGraphics insertObject:graphic atIndex:0];
  82.     [graphic wasAddedTo:graphicView];
  83.         if ([graphic isKindOfClass:[Group class]]) [graphicView setGroupInSlist:YES];
  84.     } 
  85. }
  86.  
  87. @end
  88.