ftp.nice.ch/pub/next/science/mathematics/HippoDraw.2.0.s.tar.gz#/HippoDraw/Hippo.bproj/Draw.subproj/graphicsUndo.subproj/ChangeDetail.h

This is ChangeDetail.h in view mode; [Download] [Up]

/*
 * Please refer to external documentation about Draw
 * with Undo for information about what ChangeDetails 
 * are and where they fit in.
 *
 * The ChangeDetail.h and ChangeDetail.m files contain
 * the @interfaces and @implementations for the 11 
 * subclasses of ChangeDetail, as well as for ChangeDetail
 * itself. We grouped all the classes into one pair of 
 * files because the classes are so tiny and their behavior
 * is so similar.
 *
 * ChangeDetail
 *     ArrowChangeDetail
 *     DimensionsChangeDetail
 *     FillColorChangeDetail
 *     FillModeChangeDetail
 *     LineCapChangeDetail
 *     LineColorChangeDetail
 *     LineJoinChangeDetail
 *     LineWidthChangeDetail
 *     MoveChangeDetail
 *     OrderChangeDetail
 * 
 */

@interface ChangeDetail : Object
{
    Graphic	*graphic;	 /* the Graphic that we serve */
    id		change;		 /* the Change object that we belong to */
    List	*detailsDetails; /* If the Graphic that this ChangeDetail
    				  * serves is a Group then detailsDetails
				  * is used to keep track of the
				  * ChangeDetails that serve the component
				  * Graphics of the Group.
				  */
    BOOL	changeExpected;
}

- initGraphic:aGraphic change:aChange;
- free;
- graphic;
- (BOOL)useNestedDetails;
- (BOOL)changeExpected;
- recordDetail;
- undoDetail;
- redoDetail;
- recordIt;
- undoIt;
- redoIt;

@end

@interface ArrowChangeDetail : ChangeDetail
{
    int		oldLineArrow;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface DimensionsChangeDetail : ChangeDetail
{
    NXRect 	oldBounds;
    NXRect 	newBounds;
}

- (BOOL)useNestedDetails;
- recordDetail;
- undoDetail;
- redoDetail;

@end

@interface FillChangeDetail : ChangeDetail
{
    NXColor	oldFillColor;
    int		oldFillMode;
    NXColor	newFillColor;
    int		newFillMode;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface LineCapChangeDetail : ChangeDetail
{
    int		oldLineCap;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface LineColorChangeDetail : ChangeDetail
{
    NXColor	oldColor;
    BOOL	oldIsOutlined;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface LineJoinChangeDetail : ChangeDetail
{
    int		oldLineJoin;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface LineWidthChangeDetail : ChangeDetail
{
    float	oldLineWidth;
}

- recordIt;
- undoIt;
- redoIt;

@end

@interface MoveChangeDetail : ChangeDetail
{
}

- (BOOL)useNestedDetails;
- undoDetail;
- redoDetail;

@end

@interface OrderChangeDetail : ChangeDetail
{
    unsigned	graphicPosition;
}

- (BOOL)useNestedDetails;
- recordGraphicPositionIn:graphicList;
- (unsigned)graphicPosition;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.