File:  [NeXTSTEP 3.3 examples] / Examples / AppKit / Draw / graphicsUndo.subproj / UnlockGraphicsChange.m
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:48:38 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 UnlockGraphicsChange(PrivateMethods)

- undoDetails;

@end

@implementation UnlockGraphicsChange

- (const char *)changeName
{
    return NXLocalStringFromTable("Operations", "Unlock", NULL, "The operation of unlocking all the graphical entities which were previously locked down (see Lock).");
    return "Unlock";
}

- saveBeforeChange
{
    List *allGraphics;
    int i, count;
    id	graphic;

    graphics = [[List alloc] init];

    allGraphics = [graphicView graphics];
    count = [allGraphics count];
    for (i = 0; i < count; i++) {
        graphic = [allGraphics objectAt:i];
	if ([graphic isLocked])
	    [graphics addObject:graphic];
    }

    if ([graphics count] == 0)
        [self disable];
	
    return self;
}

- redoChange
{
    [graphics makeObjectsPerform:@selector(unlock)];
    [graphicView resetLockedFlag];

    return [super redoChange];
}

- changeDetailClass
{
    return nil;
}

- undoDetails
{
    int i, count;
    List *selectedGraphics;
    id graphic;
    
    selectedGraphics = [graphicView selectedGraphics];
    count = [graphics count];
    for (i = 0; i < count; i++) {
        graphic = [graphics objectAt:i];
	[graphic lock];
	[graphic deselect];
	[selectedGraphics removeObject:graphic];
    }
    [graphicView resetLockedFlag];

    return self;
}

@end

unix.superglobalmegacorp.com

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