From 6635f26984b536ff955a06aa230683b9a4a80300 Mon Sep 17 00:00:00 2001 From: Uli Kusterer Date: Tue, 12 Aug 2003 03:52:51 +0200 Subject: [PATCH] Added DBYT/CHAR and DLNG template fields. --- NuTemplateEditor/NuTemplateDBYTElement.h | 23 +++++ NuTemplateEditor/NuTemplateDBYTElement.m | 91 +++++++++++++++++++ NuTemplateEditor/NuTemplateDLNGElement.h | 23 +++++ NuTemplateEditor/NuTemplateDLNGElement.m | 78 ++++++++++++++++ NuTemplateEditor/NuTemplateWindowController.m | 5 + 5 files changed, 220 insertions(+) create mode 100644 NuTemplateEditor/NuTemplateDBYTElement.h create mode 100644 NuTemplateEditor/NuTemplateDBYTElement.m create mode 100644 NuTemplateEditor/NuTemplateDLNGElement.h create mode 100644 NuTemplateEditor/NuTemplateDLNGElement.m diff --git a/NuTemplateEditor/NuTemplateDBYTElement.h b/NuTemplateEditor/NuTemplateDBYTElement.h new file mode 100644 index 0000000..e0532a6 --- /dev/null +++ b/NuTemplateEditor/NuTemplateDBYTElement.h @@ -0,0 +1,23 @@ +// +// NuTemplateDBYTElement.h +// ResKnife (PB2) +// +// Created by Uli Kusterer on Tue Aug 05 2003. +// Copyright (c) 2003 M. Uli Kusterer. All rights reserved. +// + +#import "NuTemplateElement.h" + + +@interface NuTemplateDBYTElement : NuTemplateElement +{ + char charValue; +} + +-(void) setCharValue: (char)n; +-(char) charValue; + +-(NSString*) stringValue; +-(void) setStringValue: (NSString*)str; + +@end diff --git a/NuTemplateEditor/NuTemplateDBYTElement.m b/NuTemplateEditor/NuTemplateDBYTElement.m new file mode 100644 index 0000000..b234a7e --- /dev/null +++ b/NuTemplateEditor/NuTemplateDBYTElement.m @@ -0,0 +1,91 @@ +// +// NuTemplateDBYTElement.m +// ResKnife (PB2) +// +// Created by Uli Kusterer on Tue Aug 05 2003. +// Copyright (c) 2003 M. Uli Kusterer. All rights reserved. +// + +#import "NuTemplateDBYTElement.h" + + +@implementation NuTemplateDBYTElement + +-(id) initForType: (NSString*)t withLabel: (NSString*)l +{ + if( self = [super initForType:t withLabel:l] ) + { + if( [l isEqualToString: @"CHAR"] ) + charValue = ' '; + else + charValue = 0; + } + + return self; +} + +-(id) copyWithZone: (NSZone*)zone +{ + NuTemplateDBYTElement* el = [super copyWithZone: zone]; + + if( el ) + [el setCharValue: charValue]; + + return el; +} + + +-(void) readDataFrom: (NuTemplateStream*)stream +{ + [stream readAmount:2 toBuffer: &charValue]; +} + + +-(unsigned int) sizeOnDisk +{ + return sizeof(charValue); +} + +-(void) writeDataTo: (NuTemplateStream*)stream +{ + [stream writeAmount:sizeof(charValue) fromBuffer: &charValue]; +} + + +-(void) setCharValue: (char)d +{ + charValue = d; +} + +-(char) charValue +{ + return charValue; +} + + +-(NSString*) stringValue +{ + if( [l isEqualToString: @"CHAR"] ) + return [NSString stringWithCString:&charValue length:1]; + else + return [NSString stringWithFormat: @"%d", charValue]; +} + + +-(void) setStringValue: (NSString*)str +{ + if( [l isEqualToString: @"CHAR"] ) + charValue = [str cString][0]; + else + { + char cstr[256]; + char* endPtr = cstr +255; + + strncpy( cstr, [str cString], 255 ); + charValue = strtol( cstr, &endPtr, 10 ); + } +} + + + +@end diff --git a/NuTemplateEditor/NuTemplateDLNGElement.h b/NuTemplateEditor/NuTemplateDLNGElement.h new file mode 100644 index 0000000..c74cdd7 --- /dev/null +++ b/NuTemplateEditor/NuTemplateDLNGElement.h @@ -0,0 +1,23 @@ +// +// NuTemplateDLNGlement.h +// ResKnife (PB2) +// +// Created by Uli Kusterer on Tue Aug 05 2003. +// Copyright (c) 2003 M. Uli Kusterer. All rights reserved. +// + +#import "NuTemplateElement.h" + + +@interface NuTemplateDLNGElement : NuTemplateElement +{ + long longValue; +} + +-(void) setLongValue: (long)n; +-(long) longValue; + +-(NSString*) stringValue; +-(void) setStringValue: (NSString*)str; + +@end diff --git a/NuTemplateEditor/NuTemplateDLNGElement.m b/NuTemplateEditor/NuTemplateDLNGElement.m new file mode 100644 index 0000000..d25ff9f --- /dev/null +++ b/NuTemplateEditor/NuTemplateDLNGElement.m @@ -0,0 +1,78 @@ +// +// NuTemplateDLNGElement.m +// ResKnife (PB2) +// +// Created by Uli Kusterer on Tue Aug 05 2003. +// Copyright (c) 2003 M. Uli Kusterer. All rights reserved. +// + +#import "NuTemplateDLNGElement.h" + + +@implementation NuTemplateDLNGElement + +-(id) initForType: (NSString*)t withLabel: (NSString*)l +{ + if( self = [super initForType:t withLabel:l] ) + longValue = 0; + + return self; +} + +-(id) copyWithZone: (NSZone*)zone +{ + NuTemplateDLNGElement* el = [super copyWithZone: zone]; + + if( el ) + [el setLongValue: longValue]; + + return el; +} + + +-(void) readDataFrom: (NuTemplateStream*)stream +{ + [stream readAmount:2 toBuffer: &longValue]; +} + + +-(unsigned int) sizeOnDisk +{ + return sizeof(longValue); +} + +-(void) writeDataTo: (NuTemplateStream*)stream +{ + [stream writeAmount:sizeof(longValue) fromBuffer: &longValue]; +} + + +-(void) setLongValue: (long)d +{ + longValue = d; +} + +-(long) longValue +{ + return longValue; +} + + +-(NSString*) stringValue +{ + return [NSString stringWithFormat: @"%ld", longValue]; +} + + +-(void) setStringValue: (NSString*)str +{ + char cstr[256]; + char* endPtr = cstr +255; + + strncpy( cstr, [str cString], 255 ); + longValue = strtol( cstr, &endPtr, 10 ); +} + + + +@end diff --git a/NuTemplateEditor/NuTemplateWindowController.m b/NuTemplateEditor/NuTemplateWindowController.m index 885fe5b..8df4b74 100644 --- a/NuTemplateEditor/NuTemplateWindowController.m +++ b/NuTemplateEditor/NuTemplateWindowController.m @@ -30,6 +30,8 @@ #import "NuTemplateTNAMElement.h" #import "NuTemplatePSTRElement.h" #import "NuTemplateDWRDElement.h" +#import "NuTemplateDLNGElement.h" +#import "NuTemplateDBYTElement.h" #import "NuTemplateStream.h" #import "NSOutlineView-SelectedItems.h" @@ -198,6 +200,9 @@ [fieldReg setObject: [NuTemplatePSTRElement class] forKey: @"P020"]; [fieldReg setObject: [NuTemplatePSTRElement class] forKey: @"P040"]; [fieldReg setObject: [NuTemplateDWRDElement class] forKey: @"DWRD"]; + [fieldReg setObject: [NuTemplateDLNGElement class] forKey: @"DLNG"]; + [fieldReg setObject: [NuTemplateDBYTElement class] forKey: @"DBYT"]; + [fieldReg setObject: [NuTemplateDBYTElement class] forKey: @"CHAR"]; } // Read new fields from the template and add them to our list: