This is ServerCell.m in view mode; [Download] [Up]
#import "ServerCell.h" #import <misckit/MiscAppDefaults.h> #define IMAGEMARGIN 2.0 @implementation ServerCell - serverOpened:sender { opened=TRUE; return self; } - serverClosed:sender { opened=FALSE; return self; } - (BOOL)slowLink { return slowLink; } - (BOOL)openOnStartup { return openOnStartup; } - setSlowLink:(BOOL)v { slowLink=v; return self; } - setOpenOnStartup:(BOOL)v { openOnStartup=v; return self; } - setPasswdString:(const char*)v { int n=strlen(v); if(n>MAX_A_LEN-1) n=MAX_A_LEN-1; strncpy(pass,v,n); pass[n]='\0'; return self; } - setUserString:(const char*)v { int n=strlen(v); if(n>MAX_A_LEN-1) n=MAX_A_LEN-1; strncpy(user,v,n); user[n]='\0'; return self; } - (BOOL)isOpen { return opened; } - (const char *)user { return user; } - (const char *)pass { return pass; } - readServerOptions { const char *buf2; char buf1[MAX_A_LEN+80]; int oos,sl; sprintf(buf1,"Serveroptions %s",[self stringValue]); buf2=[NXApp defaultValue:buf1]; if(buf2==NULL){ openOnStartup=FALSE; slowLink=FALSE; return self; } sscanf(buf2,"%d %d",&oos,&sl); openOnStartup=(BOOL)oos; slowLink=(BOOL)sl; //AUTHENTICATION *user='\0'; *pass='\0'; sprintf(buf1,"Authuser %s",[self stringValue]); buf2=[NXApp defaultValue:buf1]; if(buf2) [self setUserString:buf2]; sprintf(buf1,"Authpasswd %s",[self stringValue]); buf2=[NXApp defaultValue:buf1]; if(buf2) [self setPasswdString:buf2]; return self; } - writeServerOptions { char buf1[80+MAX_A_LEN],buf2[80+MAX_A_LEN]; sprintf(buf1,"Serveroptions %s",[self stringValue]); sprintf(buf2,"%d %d",(int)openOnStartup,(int)slowLink); [NXApp setDefault:buf1 to:buf2]; sprintf(buf1,"Authuser %s",[self stringValue]); [NXApp setDefault:buf1 to:user]; sprintf(buf1,"Authpasswd %s",[self stringValue]); [NXApp setDefault:buf1 to:pass]; return self; } - calcCellSize:(NXSize *)theSize inRect:(const NXRect *)aRect { [super calcCellSize:theSize inRect:aRect]; theSize->height+=1; return self; } - drawInside:(const NXRect *)cellFrame inView:controlView { static id dotImage = nil; static id sharedTextCell = nil; NXRect rect = *cellFrame; NXPoint imageOrigin; NXSize dotSize; if(!dotImage) dotImage = [NXImage findImageNamed:"OpenWindow"]; [dotImage getSize:&dotSize]; PSsetgray((cFlags1.state || cFlags1.highlighted) ? NX_WHITE : NX_LTGRAY); NXRectFill(cellFrame); if(opened) { imageOrigin.x = NX_MAXX(cellFrame) - IMAGEMARGIN * 2.0 - dotSize.width; imageOrigin.y = NX_Y(cellFrame) + NX_HEIGHT(cellFrame) - (NX_HEIGHT(cellFrame) - dotSize.height) / 2.0; [dotImage composite:NX_SOVER toPoint:&imageOrigin]; } NX_WIDTH(&rect) -= (dotSize.width + IMAGEMARGIN * 2.0 - NX_X(&rect)); if (!sharedTextCell) { sharedTextCell = [[Cell alloc] init]; [sharedTextCell setWrap:NO]; } [sharedTextCell setFont:[self font]]; [sharedTextCell setStringValue:[self stringValue]]; [sharedTextCell drawInside:&rect inView:controlView]; PSsetgray(NX_DKGRAY); if (cFlags1.state || cFlags1.highlighted) { NXRect rectArray[2]; NXSetRect(&(rectArray[0]),NX_X(cellFrame),NX_Y(cellFrame), NX_WIDTH(cellFrame),1); NXSetRect(&(rectArray[1]),NX_X(cellFrame),NX_MAXY(cellFrame)-1, NX_WIDTH(cellFrame), 1.0); NXRectFillList(rectArray, 2); } return self; } - highlight:(const NXRect *)cellFrame inView:controlView lit:(BOOL)flag { if(cFlags1.highlighted != flag) { cFlags1.highlighted = flag; [self drawInside:cellFrame inView:controlView]; } return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.