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

  1. #import "drawundo.h"
  2.  
  3. @interface UnlockGraphicsChange(PrivateMethods)
  4.  
  5. - (void)undoDetails;
  6.  
  7. @end
  8.  
  9. @implementation UnlockGraphicsChange
  10.  
  11. - (NSString *)changeName
  12. {
  13.     return UNLOCK_OP;
  14.  
  15. }
  16.  
  17. - (void)saveBeforeChange
  18. {
  19.     NSMutableArray *allGraphics;
  20.     int i, count;
  21.     id    graphic;
  22.  
  23.     graphics = [[NSMutableArray alloc] init];
  24.  
  25.     allGraphics = [graphicView graphics];
  26.     count = [allGraphics count];
  27.     for (i = 0; i < count; i++) {
  28.         graphic = [allGraphics objectAtIndex:i];
  29.     if ([graphic isLocked])
  30.         [graphics addObject:graphic];
  31.     }
  32.  
  33.     if ([graphics count] == 0)
  34.         [self disable]; 
  35. }
  36.  
  37. - (void)redoChange
  38. {
  39.     [graphics makeObjectsPerform:@selector(unlock)];
  40.     [graphicView resetLockedFlag];
  41.  
  42.     [super redoChange]; 
  43. }
  44.  
  45. - (Class)changeDetailClass
  46. {
  47.     return nil;
  48. }
  49.  
  50. - (void)undoDetails
  51. {
  52.     int i, count;
  53.     NSMutableArray *selectedGraphics;
  54.     id graphic;
  55.     
  56.     selectedGraphics = [graphicView selectedGraphics];
  57.     count = [graphics count];
  58.     for (i = 0; i < count; i++) {
  59.         graphic = [graphics objectAtIndex:i];
  60.     [graphic lockGraphic];
  61.     [graphic deselect];
  62.     [selectedGraphics removeObject:graphic];
  63.     }
  64.     [graphicView resetLockedFlag]; 
  65. }
  66.  
  67. @end
  68.