This is MoveGraphicsChange.m in view mode; [Download] [Up]
#import "drawundo.h" @interface MoveGraphicsChange(PrivateMethods) - (BOOL)subsumeIdenticalChange:change; @end @implementation MoveGraphicsChange - initGraphicView:aGraphicView vector:(const NXPoint *)aVector { [super initGraphicView:aGraphicView]; redoVector.x = aVector->x; redoVector.y = aVector->y; undoVector.x = -redoVector.x; undoVector.y = -redoVector.y; return self; } - (const char *)changeName { return NXLocalStringFromTable("Operations", "Move", NULL, "The operation of moving a graphical entity."); } - changeDetailClass { return [MoveChangeDetail class]; } - (const NXPoint *)undoVector { return &undoVector; } - (const NXPoint *)redoVector { return &redoVector; } - (BOOL)subsumeIdenticalChange:change { MoveGraphicsChange *moveChange; moveChange = (MoveGraphicsChange *)change; undoVector.x += moveChange->undoVector.x; undoVector.y += moveChange->undoVector.y; redoVector.x += moveChange->redoVector.x; redoVector.y += moveChange->redoVector.y; return YES; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.