File:  [NeXTSTEP 3.3 examples] / Examples / AppKit / Draw / graphicsUndo.subproj / MoveGraphicsChange.m
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:48:39 2018 UTC (8 years, 1 month ago) by root
Branches: NeXT, MAIN
CVS tags: NeXTSTEP33, HEAD
Sample Programs from NeXSTEP 3.3

#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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.