This is ToyWinDraw.m in view mode; [Download] [Up]
#import <dpsclient/wraps.h> /* for PSxxx functions */
#import <appkit/Control.h>
#import <appkit/TextField.h>
#import <appkit/ScrollView.h>
#import <appkit/tiff.h> /* NXImageBitmap */
#import <appkit/graphics.h>
#import <appkit/appkit.h>
#import <stdio.h>
#import <stdlib.h>
#import <string.h>
#import "ToyWin.h"
#import "ToyView.h"
#import "TVController.h"
#import "strfunc.h"
@implementation ToyWin (Drawing)
- drawView:(unsigned char **)map info:(commonInfo *)cinf
{
ToyView *view;
id tmp;
[scView setHorizScrollerRequired: YES];
[scView setVertScrollerRequired: YES];
[scView setBorderType: NX_NOBORDER];
tmp = [[ToyView alloc] setCommText: commentText];
if ((view = [tmp initDataPlanes:map info:cinf]) == nil) {
[tmp free];
return nil;
}
if ((tmp = [scView setDocView: view]) != nil)
[tmp free];
[scView setCopyOnScroll: YES];
[self scrollProperly];
[thiswindow display];
[thiswindow makeKeyAndOrderFront: self];
[commentText setStringValue: cinf->memo];
NXPing();
return self;
}
- (int)drawFromFile:(const char *)fileName or:(NXStream *)stream
{
id tmp, view;
commonInfo *cinf;
[scView setHorizScrollerRequired: YES];
[scView setVertScrollerRequired: YES];
[scView setBorderType: NX_NOBORDER];
tmp = [[ToyView alloc] setCommText: commentText];
view = stream
? [tmp initFromStream: stream]
: [tmp initFromFile: fileName];
if (view == nil) {
[tmp free];
return Err_OPEN;
}
cinf = [view commonInfo];
[self initLocateWindow:fileName width:cinf->width height:cinf->height];
[self makeComment: cinf];
[commentText setStringValue: cinf->memo];
if ((tmp = [scView setDocView: view]) != nil)
[tmp free];
[scView setCopyOnScroll: YES];
[self scrollProperly];
[thiswindow display];
[thiswindow makeKeyAndOrderFront: self];
NXPing();
return 0;
}
- makeComment:(commonInfo *)cinf
{
const char *alp = cinf->alpha ? " Alpha" : "";
if (cinf->bits == 1 && cinf->numcolors <= 2)
sprintf(cinf->memo, "%d x %d Bilevel%s",
cinf->width, cinf->height, alp);
else
sprintf(cinf->memo, "%d x %d %dbit%s%s%s",
cinf->width, cinf->height, cinf->bits,
((cinf->bits > 1) ? "s" : ""),
((cinf->numcolors <= 2) ? " gray" : ""), alp);
return self;
}
- makeComment:(commonInfo *)cinf from:(const commonInfo *)originfo
{
const char *p;
[self makeComment: cinf];
if ((p = begin_comm(originfo->memo, YES)) != NULL) {
strcat(cinf->memo, " : ");
comm_cat(cinf->memo, p);
}
return self;
}
- (commonInfo *)drawToyWin:(const char *)fileName type:(int)type
map:(unsigned char **)map err:(int *)err
{
*err = [self drawFromFile: fileName or: NULL];
return NULL;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.