Skip to content

Commit

Permalink
Add description method generation
Browse files Browse the repository at this point in the history
  • Loading branch information
meric committed May 14, 2012
1 parent 5ed3263 commit d869b21
Show file tree
Hide file tree
Showing 13 changed files with 448 additions and 730 deletions.
11 changes: 1 addition & 10 deletions SVGKit/DOM/Element/SKElement+DOM.h
Expand Up @@ -24,16 +24,6 @@
- (void)removedFromParent;
- (void)setValue:(NSString *)value forName:(NSString*)name;
- (NSString*)stringForName:(NSString*)attributeName;
- (SKLength*)lengthForName:(NSString*)attributeName;
- (NSArray*)transformArrayForName:(NSString*)attributeName;
- (NSArray*)lengthArrayForName:(NSString*)attributeName;
- (SKPreserveAspectRatio*)preserveAspectRatioForName:(NSString*)attributeName;
- (NSArray*)stringArrayForName:(NSString*)attributeName;
- (NSArray*)classArrayForName:(NSString*)attributeName;
- (SKLiteral)literalForName:(NSString*)attributeName;
- (SKColor*)colorForName:(NSString*)attributeName;
- (NSNumber*)numberForName:(NSString*)attributeName;

@end

/*
Expand All @@ -56,6 +46,7 @@
call(scanner, &val);\
}\
if (val) [_attributes setObject:val forKey:name];\
if (!number) SKWarn(@"scanner for %@ attribute not implemented", name);\
}

#define SKAttribute__set(name)\
Expand Down
107 changes: 1 addition & 106 deletions SVGKit/DOM/Element/SKElement.m
Expand Up @@ -111,119 +111,14 @@ - (void)setValue:(NSString *)value forName:(NSString*)name;
}
}

// Common attribute types
// Get string from attribute

- (NSString*)stringForName:(NSString*)attributeName {
NSXMLNode *node = [_element attributeForName:attributeName];
if (node) return [node stringValue];
return nil;
}
/*
- (SKLength*)lengthForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
struct SKQuantity length = SKMakeQuantity(0, SKNumber);
if (SKScanLength(scanner, &length))
return [SKLength lengthWithQuantity:length];
return nil;
}
- (NSNumber*)numberForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return NULL;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
double number;
if (SKScanNumber(scanner, &number)) {
return [NSNumber numberWithDouble:number];
}
return nil;
}
- (NSArray*)transformArrayForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
NSArray *array = nil;
SKScanTransformArray(scanner, &array);
return array;
}
- (NSArray*)lengthArrayForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
NSArray *array = nil;
SKScanLengthArray(scanner, &array);
return array;
}
- (SKPreserveAspectRatio*)preserveAspectRatioForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
SKLiteralSet ratio;
if (SKScanPreserveAspectRatio(scanner, &ratio)) {
return [SKPreserveAspectRatio
preserveAspectRatioWithLiteralSet:ratio];
}
return nil;
}
- (NSArray*)stringArrayForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
NSString *wsp = [[NSCharacterSet whitespaceCharacterSet] characters];
NSString *sep = [wsp stringByAppendingString:@","];
NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:sep];
s = [s invertedSet];
NSArray *array = nil;
SKScanStringArray(scanner, &array, s);
return array;
}
- (NSArray*)classArrayForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
NSArray *array = nil;
SKScanStringArray(scanner, &array, [NSCharacterSet letterCharacterSet]);
return array;
}
- (SKLiteral)literalForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return SKUnknownLiteral;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
SKLiteral literal;
if (SKScanLiteral(scanner, &literal)) {
return literal;
}
return SKUnknownLiteral;
}

- (SKColor*)colorForName:(NSString*)attributeName {
NSString *string = [self stringForName:attributeName];
if (!string) return nil;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:nil];
NSUInteger color;
if (SKScanColor(scanner, &color)) {
return [SKColor colorWithColor:color];
}
return [SKColor color];
}
*/
#if 0
#pragma mark --- SKNode ---
#endif
Expand Down
12 changes: 1 addition & 11 deletions SVGKit/DOM/Element/SKRoot.h
Expand Up @@ -15,12 +15,6 @@
@interface SKRoot : SKElement
{
SKDocument *_document;

/*
contentScriptType
contentStyleType
*/

}

#if 0
Expand All @@ -36,11 +30,7 @@ SKGraphicalEventAttrib__interface();
SKConditionalProcessingAttrib__interface();
SKPresentationAttrib__interface();

SKAttribute__property(SKLength, *width);
SKAttribute__property(SKLength, *height);
SKAttribute__property(SKLength, *x);
SKAttribute__property(SKLength, *y);

SKAttribute__property(SKLength, *width, *height, *x, *y);
//SKAttribute__property(NSString, *version, *baseProfile);
//SKAttribute__property(NSString, *contentScriptType, *contentStyleType);
//SKAttribute__property(SKLength, *width, *height, *x, *y);
Expand Down
2 changes: 2 additions & 0 deletions SVGKit/DOM/SVGKit+Attribute.h
Expand Up @@ -6,13 +6,15 @@ __attribute__((constructor))
static void initialize_scannerForAttribute() {
scannerForAttribute = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithUnsignedLong:(size_t)SKScanInnerColor],@"flood-color",
[NSNumber numberWithUnsignedLong:(size_t)SKScanDouble],@"flood-opacity",
[NSNumber numberWithUnsignedLong:(size_t)SKScanColor],@"color",
[NSNumber numberWithUnsignedLong:(size_t)SKScanStringArray],@"class",
[NSNumber numberWithUnsignedLong:(size_t)SKScanTransformArray],@"transform",
[NSNumber numberWithUnsignedLong:(size_t)SKScanLength],@"height",
[NSNumber numberWithUnsignedLong:(size_t)SKScanLength],@"width",
[NSNumber numberWithUnsignedLong:(size_t)SKScanLength],@"y",
[NSNumber numberWithUnsignedLong:(size_t)SKScanLength],@"x",
[NSNumber numberWithUnsignedLong:(size_t)SKScanPreserveAspectRatio],@"preserveAspectRatio",
[NSNumber numberWithUnsignedLong:(size_t)SKScanString],@"id",
nil];
}
Expand Down

0 comments on commit d869b21

Please sign in to comment.