forked from slobo/ResKnife
/
ElementLSTE.m
99 lines (81 loc) · 1.61 KB
/
ElementLSTE.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#import "ElementLSTE.h"
#import "ElementLSTB.h"
#import "ElementOCNT.h"
@implementation ElementLSTE
- (id)copyWithZone:(NSZone *)zone
{
ElementLSTE *element = [super copyWithZone:zone];
[element setGroupElementTemplate:groupElementTemplate];
[element setWritesZeroByte:writesZeroByte];
[element setCountElement:countElement];
return element;
}
- (void)dealloc
{
[groupElementTemplate release];
[super dealloc];
}
- (void)setGroupElementTemplate:(ElementLSTB *)e
{
id old = groupElementTemplate;
groupElementTemplate = [e retain];
[old release];
}
- (ElementLSTB *)groupElementTemplate
{
return groupElementTemplate;
}
- (void)setCountElement:(ElementOCNT *)e
{
// do not retain sibling element
countElement = e;
}
- (ElementOCNT *)countElement
{
return countElement;
}
- (void)readSubElementsFrom:(TemplateStream *)stream
{
}
- (void)readDataFrom:(TemplateStream *)stream
{
if(writesZeroByte)
[stream advanceAmount:1 pad:NO];
}
- (unsigned int)sizeOnDisk
{
return writesZeroByte? 1:0;
}
- (void)writeDataTo:(TemplateStream *)stream
{
if(writesZeroByte)
[stream advanceAmount:1 pad:YES];
}
- (void)setWritesZeroByte:(BOOL)n
{
writesZeroByte = n;
}
- (BOOL)writesZeroByte
{
return writesZeroByte;
}
- (IBAction)createListEntry:(id)sender
{
ElementLSTB *list = [[groupElementTemplate copy] autorelease];
[parentArray insertObject:list atIndex:[parentArray indexOfObject:self]];
[list setParentArray:parentArray];
[list setCountElement:countElement];
[countElement increment];
}
- (NSString *)stringValue
{
return @"";
}
- (void)setStringValue:(NSString *)str
{
}
- (BOOL)editable
{
return NO;
}
@end