This is EPSWriting.m in view mode; [Download] [Up]
///////////////////////////////////////////////////////////////////////////////
// FILENAME: EPSWriting.m
// SUMMARY: Implementation of a EPSWriting category to NXImage
// SUPERCLASS: Object:NXImage(EPSWriting)
// INTERFACE: None
// AUTHOR: Rohit Khare (_EPSWritingImageView by Sharon Zahkour of NeXT)
// COPYRIGHT: (c) 1994 California Institure of Technology, eText Project
///////////////////////////////////////////////////////////////////////////////
// IMPLEMENTATION COMMENTS
// If there exists an NXEPSImageRep, write out the EPS code.
// If not, create an offscreen window, draw the NXImage and save as EPS.
///////////////////////////////////////////////////////////////////////////////
// HISTORY
// 07/16/94: Created. Derived from TIFFtoEPS.app.
///////////////////////////////////////////////////////////////////////////////
#import <appkit/appkit.h>
#import "EPSWriting.h"
@implementation NXImage (EPSWriting)
- writeEPS:(NXStream *)stream
{
id repList;
int i,j;
id theRep=nil;
char *theCode;
int len;
// choose find EPSRep if possible.
repList = [self representationList];
theRep = nil;
i = [repList count];
for(j=0; j<i; j++){
if ([[repList objectAt:j] isKindOf:[NXEPSImageRep class]])
theRep = [repList objectAt:j];
}
if (theRep && [theRep isKindOf:[NXEPSImageRep class]]) {
[theRep getEPS:&theCode length:&len];
NXWrite(stream, theCode, len);
} else {
// we need to convert a bitmap to EPS.
NXRect rect;
id iv;
iv = [[_FormatWritingImageView new] useImage:self];
[iv getFrame:&rect];
[iv copyPSCodeInside:&rect to:stream];
}
return self;
}
@endThese are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.