This is MOImageDocController.m in view mode; [Download] [Up]
// MOImageDocController.m
//
// by Mike Ferris
// Part of MOKit
// Copyright 1993, all rights reserved.
// ABOUT MOKit
//
// MOKit is a collection of useful and general objects. Permission is
// granted by the author to use MOKit in your own programs in any way
// you see fit. All other rights to the kit are reserved by the author
// including the right to sell these objects as part of a LIBRARY or as
// SOURCE CODE. In plain English, I wish to retain rights to these
// objects as objects, but allow the use of the objects as pieces in a
// fully functional program. NO WARRANTY is expressed or implied. The author
// will under no circumstances be held responsible for ANY consequences to
// you from the use of these objects. Since you don't have to pay for
// them, and full source is provided, I think this is perfectly fair.
#import "MOImageDocController.h"
#import "MOKit/MOPathString.h"
#define CLASS_VERSION 0
#define CLASS_NIB "MOImageDocController.nib"
@implementation MOImageDocController
+ initialize
// Set the version. Configure the class.
{
if (self == [MOImageDocController class]) {
[self setVersion:CLASS_VERSION];
[self setClassNib:CLASS_NIB];
[self setControllerName:"Image"];
[self addDocType:1 name:"TIFF Image" extension:"tiff"
openSelector:@selector(doRevertImage:)
saveSelector:@selector(doSaveTiff:)];
[self addDocType:2 name:"EPS Image" extension:"eps"
openSelector:@selector(doRevertImage:)
saveSelector:NULL];
}
return self;
}
- nibDidLoad
// We don't really need this.
{
[super nibDidLoad];
return self;
}
- doSaveTiff:(MODocType *)type
// The saveSelector for tiff.
{
NXStream *strm = NULL;
id ret = self;
if (![self image]) {
return nil;
}
strm = NXOpenMemory(NULL, 0, NX_WRITEONLY);
if (strm) {
[[self image] writeTIFF:strm allRepresentations:YES
usingCompression:NX_TIFF_COMPRESSION_LZW
andFactor:0.0];
if (NXSaveToFile(strm, [self file]) == -1) {
ret = nil;
}
NXCloseMemory(strm, NX_FREEBUFFER);
} else {
ret = nil;
}
return ret;
}
- doRevertImage:(MODocType *)type
// The openSelector for both types.
{
id ret = self;
id newImage = [[NXImage allocFromZone:[self zone]]
initFromFile:[self file]];
if (newImage) {
[self setImage:newImage];
} else {
ret = nil;
}
return ret;
}
- (BOOL)doClear
// Clear the image view.
{
[self setImage:nil];
return YES;
}
- (BOOL)doPrint
// print the image view.
{
[imageView printPSCode:self];
return YES;
}
- imageView
// Return the image view.
{
return imageView;
}
- setImage:(NXImage *)image
// Set the image view to display an NXImage.
{
id oldImage = [self image];
[imageView setImage:image];
if (oldImage) [oldImage free];
return self;
}
- image
// Return the image view's NXImage.
{
return [imageView image];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.