home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / AppKit / Draw / undo.subproj / ChangeManager.h < prev    next >
Text File  |  1996-04-18  |  2KB  |  56 lines

  1. /*
  2.  * Please refer to external reference pages for complete
  3.  * documentation on using the ChangeManager class.
  4.  */
  5.  
  6. @interface ChangeManager : NSResponder
  7. {
  8.     NSMutableArray *_changeList;            /* done, undone and redone changes */
  9.     Change *_lastChange;        /* the last done or redone change */
  10.     Change *_nextChange;        /* the most recently undone change */
  11.     Change *_changeInProgress;        /* the current change in progress */
  12.     int _numberOfDoneChanges;        /* number of done or redone changes 
  13.                            recorded in the changeList */
  14.     int _numberOfUndoneChanges;        /* undone changes in the changeList */
  15.     int _numberOfDoneChangesAtLastClean;/* number at time clean last message */
  16.     BOOL _someChangesForgotten;        /* YES whenever we don't remember 
  17.                            enough to return to a clean state */
  18.     int _changesDisabled;        /* YES between outermost calls to
  19.                            disableChanges: and enableChanges:*/
  20. }
  21.  
  22. /* Methods called directly by your code */
  23.  
  24. - (id)init;            /* start with [super init] if overriding */
  25. - (void)dealloc;            /* end with [super free] if overriding */
  26. - (BOOL)canUndo;    /* DO NOT override */
  27. - (BOOL)canRedo;    /* DO NOT override */
  28. - (BOOL)isDirty;    /* DO NOT override */
  29.  
  30. - (void)dirty:sender;        /* start with [super dirty:sender] if overriding */
  31. - (void)clean:sender;        /* start with [super clean:sender] if overriding */
  32. - (void)reset:sender;        /* start with [super reset:sender] if overriding */
  33. - (void)disableChanges:sender;    /* DO NOT override */
  34. - (void)enableChanges:sender;        /* DO NOT override */
  35. - (void)undoOrRedoChange:sender;    /* DO NOT override */
  36. - (void)undoChange:sender;        /* DO NOT override */
  37. - (void)redoChange:sender;        /* DO NOT override */
  38.             /* end with [super validateCommand:] if overriding */
  39.  
  40. /* Methods called by Change           */
  41. /* DO NOT call these methods directly */
  42.  
  43. - (BOOL)changeInProgress:change;    /* DO NOT override */
  44. - (BOOL)changeComplete:change;        /* DO NOT override */
  45.  
  46. /* Methods called by ChangeManager    */
  47. /* DO NOT call these methods directly */
  48.  
  49. - (void)changeWasDone;        /* override at will */
  50. - (void)changeWasUndone;        /* override at will */
  51. - (void)changeWasRedone;        /* override at will */
  52.  
  53. - (BOOL)validateMenuItem:(id <NSMenuItem>)anItem;
  54.  
  55. @end
  56.