Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

merging in changes from @adamgit

  • Loading branch information...
commit 143fde2935db830e3db97bec6bfbdebcc2ad0cbc 2 parents fea5874 + 0d3dba3
@reklis reklis authored
Showing with 1,769 additions and 1,229 deletions.
  1. +6 −0 Core/CGPathAdditions.h
  2. +1 −1  Core/SVGDocument+CA.m
  3. +5 −1 Core/SVGDocument.h
  4. +24 −4 Core/SVGDocument.m
  5. +20 −3 Core/SVGElement.h
  6. +19 −1 Core/SVGElement.m
  7. 0  Core/SVGGroupElement.h
  8. +19 −9 Core/SVGGroupElement.m
  9. +5 −2 Core/SVGImageElement.m
  10. +18 −1 Core/SVGParser.h
  11. +68 −107 Core/SVGParser.m
  12. +9 −0 Core/SVGParserSVG.h
  13. +164 −0 Core/SVGParserSVG.m
  14. 0  Core/SVGPathElement.m
  15. +6 −0 Core/SVGPattern.h
  16. +18 −16 Core/SVGShapeElement.m
  17. +1 −1  Core/SVGTextElement.m
  18. +6 −0 Core/SVGUtils.h
  19. +54 −4 README.mdown
  20. +0 −499 SVGKit.xcodeproj/project.pbxproj
  21. +0 −36 SVGPad/Classes/CALayerExporter.h
  22. +0 −283 SVGPad/Classes/CALayerExporter.m
  23. +0 −7 SVGPad/SVGPad.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  24. 0  { → XCodeProjects/SVGKit}/Info.plist
  25. +790 −0 XCodeProjects/SVGKit/SVGKit.xcodeproj/project.pbxproj
  26. +7 −0 XCodeProjects/SVGKit/SVGKitLibrary/SVGKitLibrary-Prefix.pch
  27. 0  { → XCodeProjects/SVGKit}/SVGKit_Prefix.pch
  28. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/DetailViewController.h
  29. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/DetailViewController.m
  30. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/RootViewController.h
  31. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/RootViewController.m
  32. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/SVGPadAppDelegate.h
  33. 0  {SVGPad → XCodeProjects/SVGPadDemo}/Classes/SVGPadAppDelegate.m
  34. 0  {SVGPad → XCodeProjects/SVGPadDemo}/DetailView.xib
  35. 0  {SVGPad → XCodeProjects/SVGPadDemo}/MainWindow.xib
  36. 0  {SVGPad → XCodeProjects/SVGPadDemo}/SVGPad-Info.plist
  37. +226 −193 {SVGPad → XCodeProjects/SVGPadDemo}/SVGPad.xcodeproj/project.pbxproj
  38. 0  {SVGPad → XCodeProjects/SVGPadDemo}/SVGPad_Prefix.pch
  39. 0  {SVGPad → XCodeProjects/SVGPadDemo}/main.m
  40. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/ComparisonView.h
  41. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/ComparisonView.m
  42. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/MainWindowController.h
  43. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/MainWindowController.m
  44. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/SVGTesterAppDelegate.h
  45. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/Classes/SVGTesterAppDelegate.m
  46. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/SVGTester-Info.plist
  47. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/SVGTester-Prefix.pch
  48. +95 −60 {SVGTester → XCodeProjects/SVGTesterDemo}/SVGTester.xcodeproj/project.pbxproj
  49. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/en.lproj/MainMenu.xib
  50. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/en.lproj/MainWindow.xib
  51. 0  {SVGTester → XCodeProjects/SVGTesterDemo}/main.m
  52. +22 −0 iOS/CALayerWithChildHitTest.h
  53. +36 −0 iOS/CALayerWithChildHitTest.m
  54. +24 −0 iOS/CAShapeLayerWithHitTest.h
  55. +27 −0 iOS/CAShapeLayerWithHitTest.m
  56. +22 −0 iOS/SVGDocumentView.h
  57. +74 −0 iOS/SVGDocumentView.m
  58. +1 −1  iOS/SVGPathView.m
  59. +2 −0  iOS/SVGView.h
View
6 Core/CGPathAdditions.h
@@ -5,4 +5,10 @@
// Copyright Matt Rajca 2011. All rights reserved.
//
+#if TARGET_OS_IPHONE
+
+#import <UIKit/UIKit.h>
+
+#endif
+
CGPathRef CGPathCreateByOffsettingPath (CGPathRef aPath, CGFloat x, CGFloat y);
View
2  Core/SVGDocument+CA.m
@@ -44,7 +44,7 @@ - (CALayer *)layerTree {
}
- (CALayer *)layerWithElement:(SVGElement <SVGLayeredElement> *)element {
- CALayer *layer = [element layer];
+ CALayer *layer = [element newLayer];
if (![element.children count]) {
return layer;
View
6 Core/SVGDocument.h 100755 → 100644
@@ -9,13 +9,16 @@
#import "SVGGroupElement.h"
+#import "SVGParser.h"
+
#if NS_BLOCKS_AVAILABLE
typedef void (^SVGElementAggregationBlock)(SVGElement < SVGLayeredElement > * layeredElement);
#endif
@class SVGDefsElement;
-@interface SVGDocument : SVGElement < SVGLayeredElement > { }
+@interface SVGDocument : SVGElement < SVGLayeredElement > {
+}
// only absolute widths and heights are supported (no percentages)
@property (nonatomic, readonly) CGFloat width;
@@ -30,6 +33,7 @@ typedef void (^SVGElementAggregationBlock)(SVGElement < SVGLayeredElement > * la
/*! from the SVG spec, each "g" tag in the XML is a separate "group of graphics things" */
@property (nonatomic, retain) NSDictionary *graphicsGroups;
++ (void) addSVGParserExtension:(NSObject<SVGParserExtension>*) extension;
+ (id)documentNamed:(NSString *)name; // 'name' in mainBundle
+ (id)documentWithContentsOfFile:(NSString *)aPath;
View
28 Core/SVGDocument.m 100755 → 100644
@@ -14,6 +14,8 @@
#import "SVGTitleElement.h"
#import "SVGPathElement.h"
+#import "SVGParserSVG.h"
+
@interface SVGDocument ()
@property (nonatomic, copy) NSString *version;
@@ -35,6 +37,17 @@ @implementation SVGDocument
@dynamic title, desc, defs;
+static NSMutableArray* _parserExtensions;
++ (void) addSVGParserExtension:(NSObject<SVGParserExtension>*) extension
+{
+ if( _parserExtensions == nil )
+ {
+ _parserExtensions = [[NSMutableArray array] retain];
+ }
+
+ [_parserExtensions addObject:extension];
+}
+
/* TODO: parse 'viewBox' */
+ (id)documentNamed:(NSString *)name {
@@ -102,6 +115,12 @@ - (BOOL)parseFileAtPath:(NSString *)aPath {
NSError *error = nil;
SVGParser *parser = [[SVGParser alloc] initWithPath:aPath document:self];
+ SVGParserSVG *subParserSVG = [[[SVGParserSVG alloc] init] autorelease];
+ [parser.parserExtensions addObject:subParserSVG];
+ for( NSObject<SVGParserExtension>* extension in _parserExtensions )
+ {
+ [parser.parserExtensions addObject:extension];
+ }
if (![parser parse:&error]) {
NSLog(@"Parser error: %@", error);
@@ -115,11 +134,12 @@ - (BOOL)parseFileAtPath:(NSString *)aPath {
return YES;
}
-- (CALayer *)layer {
- CALayer *layer = [CALayer layer];
- layer.frame = CGRectMake(0.0f, 0.0f, _width, _height);
+- (CALayer *)newLayer {
+
+ CALayer* _layer = [[CALayer layer] retain];
+ _layer.frame = CGRectMake(0.0f, 0.0f, _width, _height);
- return layer;
+ return _layer;
}
- (void)layoutLayer:(CALayer *)layer { }
View
23 Core/SVGElement.h
@@ -14,7 +14,14 @@
NSMutableArray *_children;
}
-@property (nonatomic, readonly) __weak SVGDocument *document;
+/*! This is used when generating CALayer objects, to store the id of the SVGElement that created the CALayer */
+#define kSVGElementIdentifier @"SVGElementIdentifier"
+
+#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
+@property (nonatomic, readonly) SVGDocument *document;
+#else
+@property (nonatomic, readonly) __weak SVGDocument *document;
+#endif
@property (nonatomic, readonly) NSArray *children;
@property (nonatomic, readonly, copy) NSString *stringValue;
@@ -22,18 +29,28 @@
@property (nonatomic, readwrite, retain) NSString *identifier; // 'id' is reserved
+@property (nonatomic, retain) NSMutableArray* metadataChildren;
+
+ (BOOL)shouldStoreContent; // to optimize parser, default is NO
- (id)initWithDocument:(SVGDocument *)aDocument name:(NSString *)name;
- (void)loadDefaults; // should be overriden to set element defaults
-@end
+/*! Parser uses this to add non-rendering-SVG XML tags to the element they were embedded in */
+- (void) addMetadataChild:(NSObject*) child;
+@end
@protocol SVGLayeredElement < NSObject >
-- (CALayer *)layer;
+/*!
+ NB: the returned layer has - as its "name" property - the "identifier" property of the SVGElement that created it;
+ but that can be overwritten by applications (for valid reasons), so we ADDITIONALLY store the identifier into a
+ custom key - kSVGElementIdentifier - on the CALayer. Because it's a custom key, it's (almost) guaranteed not to be
+ overwritten / altered by other application code
+ */
+- (CALayer *)newLayer;
- (void)layoutLayer:(CALayer *)layer;
@end
View
20 Core/SVGElement.m 100755 → 100644
@@ -13,7 +13,16 @@ @interface SVGElement ()
@end
-
+/*! main class implementation for the base SVGElement: NOTE: in practice, most of the interesting
+ stuff happens in subclasses, e.g.:
+
+ SVGShapeElement
+ SVGGroupElement
+ SVGImageElement
+ SVGLineElement
+ SVGPathElement
+ ...etc
+ */
@implementation SVGElement
@synthesize document = _document;
@@ -24,6 +33,8 @@ @implementation SVGElement
@synthesize identifier = _identifier;
+@synthesize metadataChildren;
+
+ (BOOL)shouldStoreContent {
return NO;
}
@@ -33,6 +44,7 @@ - (id)init {
if (self) {
[self loadDefaults];
_children = [[NSMutableArray alloc] init];
+ self.metadataChildren = [NSMutableArray array];
}
return self;
}
@@ -47,6 +59,7 @@ - (id)initWithDocument:(SVGDocument *)aDocument name:(NSString *)name {
}
- (void)dealloc {
+ self.metadataChildren = nil;
[_children release];
[_stringValue release];
[_localName release];
@@ -63,6 +76,11 @@ - (void)addChild:(SVGElement *)element {
[_children addObject:element];
}
+-(void) addMetadataChild:(NSObject*) child
+{
+ [self.metadataChildren addObject:child];
+}
+
- (void)parseAttributes:(NSDictionary *)attributes {
// to be overriden by subclasses
// make sure super implementation is called
View
0  Core/SVGGroupElement.h 100755 → 100644
File mode changed
View
28 Core/SVGGroupElement.m
@@ -8,12 +8,19 @@
#import "SVGGroupElement.h"
#import "SVGDocument.h"
+
#import "SVGElement+Private.h"
+#import "CALayerWithChildHitTest.h"
@implementation SVGGroupElement
@synthesize opacity = _opacity;
+- (void)dealloc {
+
+ [super dealloc];
+}
+
- (void)loadDefaults {
_opacity = 1.0f;
}
@@ -28,17 +35,20 @@ - (void)parseAttributes:(NSDictionary *)attributes {
}
}
-- (CALayer *)layer {
- CALayer *layer = [CALayer layer];
- layer.name = self.identifier;
- layer.opacity = _opacity;
+- (CALayer *)newLayer {
- if ([layer respondsToSelector:@selector(setShouldRasterize:)]) {
- [layer performSelector:@selector(setShouldRasterize:)
- withObject:[NSNumber numberWithBool:YES]];
- }
+ CALayer* _layer = [[CALayerWithChildHitTest layer] retain];// [[CALayer layer] retain];
+
+ _layer.name = self.identifier;
+ [_layer setValue:self.identifier forKey:kSVGElementIdentifier];
+ _layer.opacity = _opacity;
+
+ if ([_layer respondsToSelector:@selector(setShouldRasterize:)]) {
+ [_layer performSelector:@selector(setShouldRasterize:)
+ withObject:[NSNumber numberWithBool:YES]];
+ }
- return layer;
+ return _layer;
}
- (void)layoutLayer:(CALayer *)layer {
View
7 Core/SVGImageElement.m
@@ -10,6 +10,8 @@
#if TARGET_OS_IPHONE
+#import <UIKit/UIKit.h>
+
#else
#endif
@@ -80,10 +82,11 @@ - (void)parseAttributes:(NSDictionary *)attributes {
}
}
-- (CALayer *)layer {
- __block CALayer *layer = [CALayer layer];
+- (CALayer *)newLayer {
+ __block CALayer *layer = [[CALayer layer] retain];
layer.name = self.identifier;
+ [layer setValue:self.identifier forKey:kSVGElementIdentifier];
layer.frame = CGRectMake(_x, _y, _width, _height);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
View
19 Core/SVGParser.h 100755 → 100644
@@ -7,6 +7,16 @@
@class SVGDocument;
+@protocol SVGParserExtension <NSObject>
+-(BOOL) createdItemShouldStoreContent:(NSObject*) item;
+- (NSObject*)handleStartElement:(NSString *)name document:(SVGDocument*) document xmlns:(NSString*) prefix attributes:(NSMutableDictionary *)attributes;
+-(void) addChildObject:(NSObject*)child toObject:(NSObject*)parent;
+-(void) parseContent:(NSMutableString*) content forItem:(NSObject*) item;
+
+-(NSArray*) supportedNamespaces;
+-(NSArray*) supportedTags;
+@end
+
@interface SVGParser : NSObject {
@private
NSString *_path;
@@ -14,12 +24,19 @@
BOOL _storingChars;
NSMutableString *_storedChars;
NSMutableArray *_elementStack;
+#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
+ SVGDocument *_document;
+#else
__weak SVGDocument *_document;
- NSMutableDictionary *_graphicsGroups;
+#endif
}
+@property(nonatomic,retain) NSMutableArray* parserExtensions;
+
- (id)initWithPath:(NSString *)aPath document:(SVGDocument *)document;
- (BOOL)parse:(NSError **)outError;
++(NSDictionary *) NSDictionaryFromCSSAttributes: (NSString *)css;
+
@end
View
175 Core/SVGParser.m 100755 → 100644
@@ -9,24 +9,23 @@
#import <libxml/parser.h>
-#import "SVGCircleElement.h"
-#import "SVGDefsElement.h"
-#import "SVGDescriptionElement.h"
#import "SVGDocument.h"
-#import "SVGElement+Private.h"
-#import "SVGEllipseElement.h"
-#import "SVGGroupElement.h"
-#import "SVGImageElement.h"
-#import "SVGLineElement.h"
-#import "SVGPathElement.h"
-#import "SVGPolygonElement.h"
-#import "SVGPolylineElement.h"
-#import "SVGRectElement.h"
-#import "SVGTitleElement.h"
-#import "SVGTextElement.h"
+
+@interface SVGParserStackItem : NSObject
+@property(nonatomic,retain) NSObject<SVGParserExtension>* parserForThisItem;
+@property(nonatomic,retain) NSObject* item;
+
+@end
+
+@implementation SVGParserStackItem
+@synthesize item;
+@synthesize parserForThisItem;
+@end
@implementation SVGParser
+@synthesize parserExtensions;
+
static xmlSAXHandler SAXHandler;
static void startElementSAX(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes);
@@ -36,38 +35,19 @@ @implementation SVGParser
static NSString *NSStringFromLibxmlString (const xmlChar *string);
static NSMutableDictionary *NSDictionaryFromLibxmlAttributes (const xmlChar **attrs, int attr_ct);
-static NSDictionary *NSDictionaryFromCSSAttributes (NSString *css);
#define READ_CHUNK_SZ 1024*10
-static NSDictionary *elementMap;
-
- (id)initWithPath:(NSString *)aPath document:(SVGDocument *)document {
self = [super init];
if (self) {
+ self.parserExtensions = [NSMutableArray array];
_path = [aPath copy];
_document = document;
_storedChars = [[NSMutableString alloc] init];
_elementStack = [[NSMutableArray alloc] init];
_failed = NO;
- _graphicsGroups = [[NSMutableDictionary dictionary] retain];
- if (!elementMap) {
- elementMap = [[NSDictionary dictionaryWithObjectsAndKeys:
- [SVGCircleElement class], @"circle",
- [SVGDefsElement class], @"defs",
- [SVGDescriptionElement class], @"description",
- [SVGEllipseElement class], @"ellipse",
- [SVGGroupElement class], @"g",
- [SVGImageElement class], @"image",
- [SVGLineElement class], @"line",
- [SVGPathElement class], @"path",
- [SVGPolygonElement class], @"polygon",
- [SVGPolylineElement class], @"polyline",
- [SVGRectElement class], @"rect",
- [SVGTextElement class], @"text",
- [SVGTitleElement class], @"title", nil] retain];
- }
}
return self;
}
@@ -76,7 +56,6 @@ - (void)dealloc {
[_path release];
[_storedChars release];
[_elementStack release];
- [_graphicsGroups release];
[super dealloc];
}
@@ -117,42 +96,42 @@ - (BOOL)parse:(NSError **)outError {
return !_failed;
}
-- (void)handleStartElement:(NSString *)name attributes:(NSMutableDictionary *)attributes {
- // handle SVG separately
- if ([name isEqualToString:@"svg"]) {
- [_elementStack addObject:_document];
- [_document parseAttributes:attributes];
-
- return;
- }
-
- Class elementClass = [elementMap objectForKey:name];
-
- if (!elementClass) {
- elementClass = [SVGElement class];
- NSLog(@"Support for '%@' element has not been implemented", name);
- }
-
- id style = nil;
-
- if ((style = [attributes objectForKey:@"style"])) {
- [attributes removeObjectForKey:@"style"];
- [attributes addEntriesFromDictionary:NSDictionaryFromCSSAttributes(style)];
- }
-
- SVGElement *element = [[elementClass alloc] initWithDocument:_document name:name];
- [element parseAttributes:attributes];
+- (void)handleStartElement:(NSString *)name xmlns:(NSString*) prefix attributes:(NSMutableDictionary *)attributes {
+
+ for( NSObject<SVGParserExtension>* subParser in self.parserExtensions )
+ {
+ if( [[subParser supportedNamespaces] containsObject:prefix]
+ && [[subParser supportedTags] containsObject:name] )
+ {
+ NSObject* subParserResult = nil;
+
+ if( nil != (subParserResult = [subParser handleStartElement:name document:_document xmlns:prefix attributes:attributes]) )
+ {
+ NSLog(@"[%@] tag: <%@:%@> -- handled by subParser: %@", [self class], prefix, name, subParser );
+
+ SVGParserStackItem* stackItem = [[[SVGParserStackItem alloc] init] autorelease];;
+ stackItem.parserForThisItem = subParser;
+ stackItem.item = subParserResult;
+
+ [_elementStack addObject:stackItem];
+
+ if ([subParser createdItemShouldStoreContent:stackItem.item]) {
+ [_storedChars setString:@""];
+ _storingChars = YES;
+ }
+ else {
+ _storingChars = NO;
+ }
+ return;
+ }
+
+ }
+ }
- [_elementStack addObject:element];
- [element release];
+ NSLog(@"[%@] ERROR: could not find a parser for tag: <%@:%@>; adding empty placeholder", [self class], prefix, name );
- if ([elementClass shouldStoreContent]) {
- [_storedChars setString:@""];
- _storingChars = YES;
- }
- else {
- _storingChars = NO;
- }
+ SVGParserStackItem* emptyItem = [[[SVGParserStackItem alloc] init] autorelease];
+ [_elementStack addObject:emptyItem];
}
static void startElementSAX (void *ctx, const xmlChar *localname, const xmlChar *prefix,
@@ -164,53 +143,35 @@ static void startElementSAX (void *ctx, const xmlChar *localname, const xmlChar
NSString *name = NSStringFromLibxmlString(localname);
NSMutableDictionary *attrs = NSDictionaryFromLibxmlAttributes(attributes, nb_attributes);
- [self handleStartElement:name attributes:attrs];
+ //NSString *url = NSStringFromLibxmlString(URI);
+ NSString *prefix2 = NSStringFromLibxmlString(prefix);
+
+ [self handleStartElement:name xmlns:prefix2 attributes:attrs];
}
- (void)handleEndElement:(NSString *)name {
+ //DELETE DEBUG NSLog(@"ending element, name = %@", name);
- if ([name isEqualToString:@"svg"]) {
- [_elementStack removeObject:_document];
-
- /*! Add the dictionary of named "g" tags to the document, so applications can retrieve "named groups" from the SVG */
- [_document setGraphicsGroups:_graphicsGroups];
- return;
- }
-
- SVGElement *element = [[_elementStack lastObject] retain];
-
- if (![element.localName isEqualToString:name]) {
- NSLog(@"XML tag mismatch (%@, %@)", element.localName, name);
-
- [element release];
- _failed = YES;
-
- return;
- }
+ SVGParserStackItem* stackItem = [_elementStack lastObject];
[_elementStack removeLastObject];
- /*!
- SVG Spec attaches special meaning to the "g" tag - and applications
- need to be able to pull-out the "g"-tagged items later on
- */
- if( [element.localName isEqualToString:@"g"] )
+ if( stackItem.parserForThisItem == nil )
{
- [_graphicsGroups setValue:element forKey:element.identifier];
-
- /*! ...we'll build up the dictionary, then add it to the document when the SVG tag is closed */
+ /*! this was an unmatched tag - we have no parser for it, so we're pruning it from the tree */
}
-
- SVGElement *parent = [_elementStack lastObject];
- [parent addChild:element];
-
- [element release];
-
- if (_storingChars) {
- [element parseContent:_storedChars];
+ else
+ {
+ SVGParserStackItem* parentStackItem = [_elementStack lastObject];
+
+ [parentStackItem.parserForThisItem addChildObject:stackItem.item toObject:parentStackItem.item];
- [_storedChars setString:@""];
- _storingChars = NO;
+ if ( [stackItem.parserForThisItem createdItemShouldStoreContent:stackItem.item]) {
+ [stackItem.parserForThisItem parseContent:_storedChars forItem:stackItem.item];
+
+ [_storedChars setString:@""];
+ _storingChars = NO;
+ }
}
}
@@ -307,7 +268,7 @@ static void errorEncounteredSAX (void *ctx, const char *msg, ...) {
#define MAX_ACCUM 256
#define MAX_NAME 256
-static NSDictionary *NSDictionaryFromCSSAttributes (NSString *css) {
++(NSDictionary *) NSDictionaryFromCSSAttributes: (NSString *)css {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
const char *cstr = [css UTF8String];
View
9 Core/SVGParserSVG.h
@@ -0,0 +1,9 @@
+#import <Foundation/Foundation.h>
+
+#import "SVGParser.h"
+
+@interface SVGParserSVG : NSObject <SVGParserExtension> {
+ NSMutableDictionary *_graphicsGroups;
+}
+
+@end
View
164 Core/SVGParserSVG.m
@@ -0,0 +1,164 @@
+#import "SVGParserSVG.h"
+
+#import "SVGCircleElement.h"
+#import "SVGDefsElement.h"
+#import "SVGDescriptionElement.h"
+#import "SVGDocument.h"
+#import "SVGEllipseElement.h"
+#import "SVGGroupElement.h"
+#import "SVGImageElement.h"
+#import "SVGLineElement.h"
+#import "SVGPathElement.h"
+#import "SVGPolygonElement.h"
+#import "SVGPolylineElement.h"
+#import "SVGRectElement.h"
+#import "SVGTitleElement.h"
+#import "SVGElement+Private.h"
+
+@implementation SVGParserSVG
+
+static NSDictionary *elementMap;
+
+- (id)init {
+ self = [super init];
+ if (self) {
+
+ if (!elementMap) {
+ elementMap = [[NSDictionary dictionaryWithObjectsAndKeys:
+ [SVGCircleElement class], @"circle",
+ [SVGDefsElement class], @"defs",
+ [SVGDescriptionElement class], @"description",
+ [SVGEllipseElement class], @"ellipse",
+ [SVGGroupElement class], @"g",
+ [SVGImageElement class], @"image",
+ [SVGLineElement class], @"line",
+ [SVGPathElement class], @"path",
+ [SVGPolygonElement class], @"polygon",
+ [SVGPolylineElement class], @"polyline",
+ [SVGRectElement class], @"rect",
+ [SVGTitleElement class], @"title", nil] retain];
+ }
+
+ _graphicsGroups = [[NSMutableDictionary dictionary] retain];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [_graphicsGroups release];
+
+ [super dealloc];
+}
+
+-(NSArray*) supportedNamespaces
+{
+ return [NSArray arrayWithObjects:
+ @"svg",
+ nil];
+}
+
+-(NSArray*) supportedTags
+{
+ NSMutableArray* result = [NSMutableArray arrayWithArray:[elementMap allValues]];
+ [result addObject:@"svg"];
+ [result addObject:@"defs"];
+ [result addObject:@"g"];
+ [result addObject:@"path"];
+ return result;
+}
+
+- (NSObject*) handleStartElement:(NSString *)name document:(SVGDocument*) svgDocument xmlns:(NSString*) prefix attributes:(NSMutableDictionary *)attributes {
+ if( [[self supportedNamespaces] containsObject:prefix] )
+ {
+ NSObject* result = nil;
+
+ // handle svg:svg tag separately
+ if ([name isEqualToString:@"svg"]) {
+ result = svgDocument;
+ [svgDocument parseAttributes:attributes];
+
+ return result;
+ }
+
+ Class elementClass = [elementMap objectForKey:name];
+
+ if (!elementClass) {
+ elementClass = [SVGElement class];
+ NSLog(@"Support for '%@' element has not been implemented", name);
+ }
+
+ id style = nil;
+
+ if ((style = [attributes objectForKey:@"style"])) {
+ [attributes removeObjectForKey:@"style"];
+ [attributes addEntriesFromDictionary:[SVGParser NSDictionaryFromCSSAttributes:style]];
+ }
+
+ SVGElement *element = [[elementClass alloc] initWithDocument:svgDocument name:name];
+ [element parseAttributes:attributes];
+
+ return element;
+ }
+
+ return nil;
+}
+
+-(BOOL) createdItemShouldStoreContent:(NSObject*) item
+{
+ if( [item isKindOfClass:[SVGElement class]] )
+ {
+ if ([[item class] shouldStoreContent]) {
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+ }
+ else
+ return false;
+}
+
+-(void) addChildObject:(NSObject*)child toObject:(NSObject*)parent
+{
+ SVGElement *parentElement = (SVGElement*) parent;
+
+ if( [child isKindOfClass:[SVGElement class]] )
+ {
+ SVGElement *childElement = (SVGElement*) child;
+
+ if ( parent == nil ) // i.e. the root SVG tag
+ {
+ [((SVGDocument*)parentElement) setGraphicsGroups:_graphicsGroups];
+ }
+ else
+ {
+ [parentElement addChild:childElement];
+
+ /*!
+ SVG Spec attaches special meaning to the "g" tag - and applications
+ need to be able to pull-out the "g"-tagged items later on
+ */
+ if( [childElement.localName isEqualToString:@"g"] )
+ {
+ [_graphicsGroups setValue:childElement forKey:childElement.identifier];
+ }
+ }
+ }
+ else
+ {
+ /*!
+ Unknown metadata
+ */
+
+ [parentElement addMetadataChild:child];
+ }
+}
+
+-(void) parseContent:(NSMutableString*) content forItem:(NSObject*) item
+{
+ SVGElement* element = (SVGElement*) item;
+
+ [element parseContent:content];
+}
+
+@end
View
0  Core/SVGPathElement.m 100755 → 100644
File mode changed
View
6 Core/SVGPattern.h
@@ -5,6 +5,12 @@
#import <Foundation/Foundation.h>
+#if TARGET_OS_IPHONE
+
+#import <UIKit/UIKit.h>
+
+#endif
+
/** lightweight wrapper for UIColor so that we can draw with fill patterns */
@interface SVGPattern : NSObject
{
View
34 Core/SVGShapeElement.m
@@ -12,6 +12,7 @@
#import "SVGDocument.h"
#import "SVGElement+Private.h"
#import "SVGPattern.h"
+#import "CAShapeLayerWithHitTest.h"
@implementation SVGShapeElement
@@ -110,51 +111,52 @@ - (void)loadPath:(CGPathRef)aPath {
}
}
-- (CALayer *)layer {
- CAShapeLayer *shape = [CAShapeLayer layer];
- shape.name = self.identifier;
- shape.opacity = _opacity;
+- (CALayer *) newLayer {
+ CAShapeLayer* _shapeLayer = [[CAShapeLayerWithHitTest layer] retain];//[[CAShapeLayer layer] retain];
+ _shapeLayer.name = self.identifier;
+ [_shapeLayer setValue:self.identifier forKey:kSVGElementIdentifier];
+ _shapeLayer.opacity = _opacity;
#if OUTLINE_SHAPES
#if TARGET_OS_IPHONE
- shape.borderColor = [UIColor redColor].CGColor;
+ _shapeLayer.borderColor = [UIColor redColor].CGColor;
#endif
- shape.borderWidth = 1.0f;
+ _shapeLayer.borderWidth = 1.0f;
#endif
CGRect rect = CGRectIntegral(CGPathGetPathBoundingBox(_path));
CGPathRef path = CGPathCreateByOffsettingPath(_path, rect.origin.x, rect.origin.y);
- shape.path = path;
+ _shapeLayer.path = path;
CGPathRelease(path);
- shape.frame = rect;
+ _shapeLayer.frame = rect;
if (_strokeWidth) {
- shape.lineWidth = _strokeWidth;
- shape.strokeColor = CGColorWithSVGColor(_strokeColor);
+ _shapeLayer.lineWidth = _strokeWidth;
+ _shapeLayer.strokeColor = CGColorWithSVGColor(_strokeColor);
}
if (_fillType == SVGFillTypeNone) {
- shape.fillColor = nil;
+ _shapeLayer.fillColor = nil;
}
else if (_fillType == SVGFillTypeSolid) {
- shape.fillColor = CGColorWithSVGColor(_fillColor);
+ _shapeLayer.fillColor = CGColorWithSVGColor(_fillColor);
}
if (nil != _fillPattern) {
- shape.fillColor = [_fillPattern CGColor];
+ _shapeLayer.fillColor = [_fillPattern CGColor];
}
- if ([shape respondsToSelector:@selector(setShouldRasterize:)]) {
- [shape performSelector:@selector(setShouldRasterize:)
+ if ([_shapeLayer respondsToSelector:@selector(setShouldRasterize:)]) {
+ [_shapeLayer performSelector:@selector(setShouldRasterize:)
withObject:[NSNumber numberWithBool:YES]];
}
- return shape;
+ return _shapeLayer;
}
- (void)layoutLayer:(CALayer *)layer { }
View
2  Core/SVGTextElement.m
@@ -66,7 +66,7 @@ - (void)parseAttributes:(NSDictionary *)attributes {
}
-- (CALayer *)layer {
+- (CALayer *) newLayer {
#if TARGET_OS_IPHONE
NSString* textToDraw = self.stringValue;
View
6 Core/SVGUtils.h
@@ -7,6 +7,12 @@
#import <CoreFoundation/CoreFoundation.h>
+#if TARGET_OS_IPHONE
+
+#import <UIKit/UIKit.h>
+
+#endif
+
#define RGB_N(v) (v) / 255.0f
typedef struct {
View
58 README.mdown
@@ -1,16 +1,66 @@
SVGKit
======
-SVGKit is a Cocoa framework for rendering SVG files as Core Animation layers. All shapes are represented by instances of the `CAShapeLayer` class, and are, by design, animatable. SVGKit is compatible with the latest Mac OS X and iOS SDK's. To use SVGKit in your iOS application, simply drag the `Core` and `iOS` folders into your Xcode project. See `SVGPad` for a working sample. To use SVGKit in your Mac OS X application, build the SVGKit Xcode project and link your application against the built framework. Since `CAShapeLayer` does not support gradient fills, support for gradients has been temporarily removed.
+SVGKit is a Cocoa framework for rendering SVG files as Core Animation layers. All shapes are represented by instances of the `CAShapeLayer` class, and are, by design, animatable. SVGKit is compatible with the latest iOS SDK's.
-Usage
+Installation
+-----
+
+iOS (iPhone/iPad):
+ 1. Open the project "XcodeProjects/SVGKit/SVKit"
+ 2. Select the target "SVGKit Library" from the dropdown build selector at top left
+ 3. Build
+ 4. Look in your output directory for a folder named "debug-universal" - this contains a library + headers for: iPhone, iPad, iOS Simulator
+
+ 5. Drag/drop the library file, and the headers folder (should be called "usr") into your iPhone/iPad project.
+ 6. Edit your build settings and set "C/C++ Compiler Version" = "LLVM Compiler 2.0"
+ 7. Edit your build settings and add "Other Linker Flags" = "-ObjC"
+
+ 8. (Optional but recommended): Edit your build settings and add "Header Search Paths" = "/usr/include/libxml2"
+ 9. (Optional but recommended): Add the framework "libxml2.dylib"
+
+OS X: ...this needs updating; some minor code changes are needed to "fix" this project. The OS X framework currently DOES NOT BUILD because iOS classes are being referenced in a couple of places.
+
+
+Usage - iPhone/iPad
+-----
+
+To use this, you must:
+ 1. Load an SVG file, using SVGDocument (this parses the SVG)
+ 2. Convert the document to CALayer's which Apple can render, using SVGDocumentView
+
+NB: if you want to render the same SVG in different places on screen, create an additional SVGDocumentView for each instance. That way, you don't have to re-parse the SVG source file each time.
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+ [self.window makeKeyAndVisible];
+
+ NSString* svgFilename = @"Monkey";
+
+ NSLog( @"[%@] Loading SVG document, filename = %@", [self class], svgFilename );
+
+ /** Optional: if you're using the parser extensions, add them here
+ [SVGDocument addSVGParserExtension:[[SVGParserConquest alloc] init]];
+ */
+
+ SVGDocument* svgDocument = [SVGDocument documentNamed:svgFilename];
+
+ SVGDocumentView* docView = [SVGDocumentView documentViewWithDocument:svgDocument];
+
+ [self.window.layer addSublayer:docView.rootLayer];
+
+ return YES;
+}
+
+Usage - OS X
-----
First, initialize an instance of `SVGDocument`, the model object which encompasses the entire SVG element tree. This can be accomplished using the `initWithContentsOfFile:` initializer. To load a SVG file which resides in your application bundle, use the `documentNamed:` class method and pass in a file name (without the extension). The `SVGDocument` class encapsulates certain document metadata, including width, height, version, title, and description.
SVGDocument *document = [SVGDocument documentNamed:@"Monkey"]; // located in the application bundle
-To render the document in a view, we need to access the document's Core Animation layer tree. On Mac OS X, make sure your instance of `NSView` is layer-backed. The layer tree can be accessed using the `layerTree` method on `SVGDocument`, for example:
+On Mac OS X, make sure your instance of `NSView` is layer-backed. The layer tree can be accessed using the `layerTree` method on `SVGDocument`, for example:
NSView *ourView = ... ;
[ourView setWantsLayer:YES];
@@ -18,4 +68,4 @@ To render the document in a view, we need to access the document's Core Animatio
Your SVG file should now be rendered on-screen. You can query for specific layers by using the `layerWithIdentifier:` method, also defined on `SVGDocument`. The identifier corresponds to the `id` attribute defined on elements. Once a reference to a subclass of `CALayer` is returned, its properties can be animated using implicit or explicit [Core Animation](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/AnimatingLayers.html%23//apple_ref/doc/uid/TP40006085-SW1) animations.
-Feel free to report any issues or suggest improvements in the [issue tracker](https://github.com/mattrajca/SVGKit/issues).
+Feel free to report any issues or suggest improvements in the issue tracker
View
499 SVGKit.xcodeproj/project.pbxproj
@@ -1,499 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 3B716A1B148438DA00984357 /* SVGImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B716A15148438DA00984357 /* SVGImageElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3B716A1C148438DA00984357 /* SVGImageElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B716A16148438DA00984357 /* SVGImageElement.m */; };
- 3B716A1D148438DA00984357 /* SVGPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B716A17148438DA00984357 /* SVGPattern.h */; };
- 3B716A1E148438DA00984357 /* SVGPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B716A18148438DA00984357 /* SVGPattern.m */; };
- 3B716A1F148438DA00984357 /* SVGTextElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B716A19148438DA00984357 /* SVGTextElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3B716A20148438DA00984357 /* SVGTextElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B716A1A148438DA00984357 /* SVGTextElement.m */; };
- 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
- C9001997127C66270001CA21 /* SVGLineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9001995127C66270001CA21 /* SVGLineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9001998127C66270001CA21 /* SVGLineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C9001996127C66270001CA21 /* SVGLineElement.m */; };
- C91BF6D6133D6DDD0054E0FF /* SVGPolylineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C91BF6D4133D6DDD0054E0FF /* SVGPolylineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C91BF6D7133D6DDD0054E0FF /* SVGPolylineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C91BF6D5133D6DDD0054E0FF /* SVGPolylineElement.m */; };
- C9221147127B802C0007174D /* SVGEllipseElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9221145127B802C0007174D /* SVGEllipseElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9221148127B802C0007174D /* SVGEllipseElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C9221146127B802C0007174D /* SVGEllipseElement.m */; };
- C922114B127B80940007174D /* SVGShapeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9221149127B80940007174D /* SVGShapeElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C922114C127B80940007174D /* SVGShapeElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C922114A127B80940007174D /* SVGShapeElement.m */; };
- C9221290127B93490007174D /* SVGShapeElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C922128E127B93490007174D /* SVGShapeElement+Private.h */; };
- C9221308127BA2CA0007174D /* SVGElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C9221306127BA2CA0007174D /* SVGElement+Private.h */; };
- C9221345127BA40B0007174D /* SVGCircleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9221343127BA40B0007174D /* SVGCircleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9221346127BA40B0007174D /* SVGCircleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C9221344127BA40B0007174D /* SVGCircleElement.m */; };
- C92418C71273358A00403FA7 /* SVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = C92418C51273358A00403FA7 /* SVGDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92418C81273358A00403FA7 /* SVGDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = C92418C61273358A00403FA7 /* SVGDocument.m */; };
- C92418D3127335AB00403FA7 /* SVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C92418D1127335AB00403FA7 /* SVGElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92418D4127335AB00403FA7 /* SVGElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C92418D2127335AB00403FA7 /* SVGElement.m */; };
- C92418DB1273369000403FA7 /* SVGGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C92418D91273369000403FA7 /* SVGGroupElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92418DC1273369000403FA7 /* SVGGroupElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C92418DA1273369000403FA7 /* SVGGroupElement.m */; };
- C92418DF127336A500403FA7 /* SVGParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C92418DD127336A500403FA7 /* SVGParser.h */; settings = {ATTRIBUTES = (); }; };
- C92418E0127336A500403FA7 /* SVGParser.m in Sources */ = {isa = PBXBuildFile; fileRef = C92418DE127336A500403FA7 /* SVGParser.m */; };
- C92418E5127336D000403FA7 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C95263281271228F00434805 /* libxml2.dylib */; };
- C92418F0127337E400403FA7 /* SVGPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C92418EE127337E400403FA7 /* SVGPathElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92418F1127337E400403FA7 /* SVGPathElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C92418EF127337E400403FA7 /* SVGPathElement.m */; };
- C924193112733BF300403FA7 /* SVGTitleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C924192F12733BF300403FA7 /* SVGTitleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C924193212733BF300403FA7 /* SVGTitleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C924193012733BF300403FA7 /* SVGTitleElement.m */; };
- C924197012733E0C00403FA7 /* SVGDescriptionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C924196E12733E0C00403FA7 /* SVGDescriptionElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C924197112733E0C00403FA7 /* SVGDescriptionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C924196F12733E0C00403FA7 /* SVGDescriptionElement.m */; };
- C92419DB127342CD00403FA7 /* SVGUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C92419D9127342CD00403FA7 /* SVGUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92419DC127342CD00403FA7 /* SVGUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = C92419DA127342CD00403FA7 /* SVGUtils.m */; };
- C9241A19127345C900403FA7 /* SVGKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C9241A18127345C900403FA7 /* SVGKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92FDD50127E09B00027F90A /* SVGRectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C92FDD4E127E09B00027F90A /* SVGRectElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C92FDD51127E09B00027F90A /* SVGRectElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C92FDD4F127E09B00027F90A /* SVGRectElement.m */; };
- C935BF9313475EC6009110C3 /* CGPathAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = C935BF9113475EC6009110C3 /* CGPathAdditions.h */; };
- C935BF9413475EC6009110C3 /* CGPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = C935BF9213475EC6009110C3 /* CGPathAdditions.m */; };
- C936332D133AB491004E14B9 /* SVGDocument+CA.h in Headers */ = {isa = PBXBuildFile; fileRef = C936332B133AB48F004E14B9 /* SVGDocument+CA.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C936332E133AB491004E14B9 /* SVGDocument+CA.m in Sources */ = {isa = PBXBuildFile; fileRef = C936332C133AB490004E14B9 /* SVGDocument+CA.m */; };
- C9379C5A12777AEC00B0589E /* SVGView.h in Headers */ = {isa = PBXBuildFile; fileRef = C9379C5812777AEC00B0589E /* SVGView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9379C5B12777AEC00B0589E /* SVGView.m in Sources */ = {isa = PBXBuildFile; fileRef = C9379C5912777AEC00B0589E /* SVGView.m */; };
- C996E4BC1336CBC200EC3F18 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */; };
- C9A5B19C1277850C0073038C /* SVGDefsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9A5B19A1277850C0073038C /* SVGDefsElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9A5B19D1277850C0073038C /* SVGDefsElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C9A5B19B1277850C0073038C /* SVGDefsElement.m */; };
- C9FB1668133D44CB005A4DC5 /* SVGPolygonElement.h in Headers */ = {isa = PBXBuildFile; fileRef = C9FB1666133D44CB005A4DC5 /* SVGPolygonElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C9FB1669133D44CB005A4DC5 /* SVGPolygonElement.m in Sources */ = {isa = PBXBuildFile; fileRef = C9FB1667133D44CB005A4DC5 /* SVGPolygonElement.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
- 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
- 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
- 32DBCF5E0370ADEE00C91783 /* SVGKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKit_Prefix.pch; sourceTree = "<group>"; };
- 3B716A15148438DA00984357 /* SVGImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageElement.h; sourceTree = "<group>"; };
- 3B716A16148438DA00984357 /* SVGImageElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGImageElement.m; sourceTree = "<group>"; };
- 3B716A17148438DA00984357 /* SVGPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPattern.h; sourceTree = "<group>"; };
- 3B716A18148438DA00984357 /* SVGPattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPattern.m; sourceTree = "<group>"; };
- 3B716A19148438DA00984357 /* SVGTextElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextElement.h; sourceTree = "<group>"; };
- 3B716A1A148438DA00984357 /* SVGTextElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGTextElement.m; sourceTree = "<group>"; };
- 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
- 8DC2EF5B0486A6940098B216 /* SVGKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SVGKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- C9001995127C66270001CA21 /* SVGLineElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGLineElement.h; sourceTree = "<group>"; };
- C9001996127C66270001CA21 /* SVGLineElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGLineElement.m; sourceTree = "<group>"; };
- C91BF6D4133D6DDD0054E0FF /* SVGPolylineElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPolylineElement.h; sourceTree = "<group>"; };
- C91BF6D5133D6DDD0054E0FF /* SVGPolylineElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPolylineElement.m; sourceTree = "<group>"; };
- C9221145127B802C0007174D /* SVGEllipseElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGEllipseElement.h; sourceTree = "<group>"; };
- C9221146127B802C0007174D /* SVGEllipseElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGEllipseElement.m; sourceTree = "<group>"; };
- C9221149127B80940007174D /* SVGShapeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGShapeElement.h; sourceTree = "<group>"; };
- C922114A127B80940007174D /* SVGShapeElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGShapeElement.m; sourceTree = "<group>"; };
- C922128E127B93490007174D /* SVGShapeElement+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGShapeElement+Private.h"; sourceTree = "<group>"; };
- C9221306127BA2CA0007174D /* SVGElement+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGElement+Private.h"; sourceTree = "<group>"; };
- C9221343127BA40B0007174D /* SVGCircleElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGCircleElement.h; sourceTree = "<group>"; };
- C9221344127BA40B0007174D /* SVGCircleElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGCircleElement.m; sourceTree = "<group>"; };
- C92418C51273358A00403FA7 /* SVGDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDocument.h; sourceTree = "<group>"; };
- C92418C61273358A00403FA7 /* SVGDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDocument.m; sourceTree = "<group>"; };
- C92418D1127335AB00403FA7 /* SVGElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGElement.h; sourceTree = "<group>"; };
- C92418D2127335AB00403FA7 /* SVGElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGElement.m; sourceTree = "<group>"; };
- C92418D91273369000403FA7 /* SVGGroupElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGGroupElement.h; sourceTree = "<group>"; };
- C92418DA1273369000403FA7 /* SVGGroupElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGGroupElement.m; sourceTree = "<group>"; };
- C92418DD127336A500403FA7 /* SVGParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGParser.h; sourceTree = "<group>"; };
- C92418DE127336A500403FA7 /* SVGParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGParser.m; sourceTree = "<group>"; };
- C92418EE127337E400403FA7 /* SVGPathElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathElement.h; sourceTree = "<group>"; };
- C92418EF127337E400403FA7 /* SVGPathElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPathElement.m; sourceTree = "<group>"; };
- C924192F12733BF300403FA7 /* SVGTitleElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTitleElement.h; sourceTree = "<group>"; };
- C924193012733BF300403FA7 /* SVGTitleElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGTitleElement.m; sourceTree = "<group>"; };
- C924196E12733E0C00403FA7 /* SVGDescriptionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDescriptionElement.h; sourceTree = "<group>"; };
- C924196F12733E0C00403FA7 /* SVGDescriptionElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDescriptionElement.m; sourceTree = "<group>"; };
- C92419D9127342CD00403FA7 /* SVGUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGUtils.h; sourceTree = "<group>"; };
- C92419DA127342CD00403FA7 /* SVGUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGUtils.m; sourceTree = "<group>"; };
- C9241A18127345C900403FA7 /* SVGKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKit.h; sourceTree = "<group>"; };
- C92FDD4E127E09B00027F90A /* SVGRectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRectElement.h; sourceTree = "<group>"; };
- C92FDD4F127E09B00027F90A /* SVGRectElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGRectElement.m; sourceTree = "<group>"; };
- C935BF9113475EC6009110C3 /* CGPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPathAdditions.h; sourceTree = "<group>"; };
- C935BF9213475EC6009110C3 /* CGPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPathAdditions.m; sourceTree = "<group>"; };
- C936332B133AB48F004E14B9 /* SVGDocument+CA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGDocument+CA.h"; sourceTree = "<group>"; };
- C936332C133AB490004E14B9 /* SVGDocument+CA.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SVGDocument+CA.m"; sourceTree = "<group>"; };
- C9379C5812777AEC00B0589E /* SVGView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGView.h; sourceTree = "<group>"; };
- C9379C5912777AEC00B0589E /* SVGView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGView.m; sourceTree = "<group>"; };
- C95263281271228F00434805 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
- C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- C9A5B19A1277850C0073038C /* SVGDefsElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDefsElement.h; sourceTree = "<group>"; };
- C9A5B19B1277850C0073038C /* SVGDefsElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDefsElement.m; sourceTree = "<group>"; };
- C9FB1666133D44CB005A4DC5 /* SVGPolygonElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPolygonElement.h; sourceTree = "<group>"; };
- C9FB1667133D44CB005A4DC5 /* SVGPolygonElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPolygonElement.m; sourceTree = "<group>"; };
- D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8DC2EF560486A6940098B216 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
- C996E4BC1336CBC200EC3F18 /* QuartzCore.framework in Frameworks */,
- C92418E5127336D000403FA7 /* libxml2.dylib in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 034768DFFF38A50411DB9C8B /* Products */ = {
- isa = PBXGroup;
- children = (
- 8DC2EF5B0486A6940098B216 /* SVGKit.framework */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 0867D691FE84028FC02AAC07 /* SVGKit */ = {
- isa = PBXGroup;
- children = (
- C952623F12711D8600434805 /* Framework */,
- );
- name = SVGKit;
- sourceTree = "<group>";
- };
- 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
- 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 089C1665FE841158C02AAC07 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 8DC2EF5A0486A6940098B216 /* Info.plist */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
- C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */,
- C95263281271228F00434805 /* libxml2.dylib */,
- );
- name = "Linked Frameworks";
- sourceTree = "<group>";
- };
- 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 0867D6A5FE840307C02AAC07 /* AppKit.framework */,
- D2F7E79907B2D74100F64583 /* CoreData.framework */,
- 0867D69BFE84028FC02AAC07 /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "<group>";
- };
- 32C88DFF0371C24200C91783 /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32DBCF5E0370ADEE00C91783 /* SVGKit_Prefix.pch */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- C900199D127C663C0001CA21 /* Shapes */ = {
- isa = PBXGroup;
- children = (
- C9221343127BA40B0007174D /* SVGCircleElement.h */,
- C9221344127BA40B0007174D /* SVGCircleElement.m */,
- C9221145127B802C0007174D /* SVGEllipseElement.h */,
- C9221146127B802C0007174D /* SVGEllipseElement.m */,
- C9001995127C66270001CA21 /* SVGLineElement.h */,
- C9001996127C66270001CA21 /* SVGLineElement.m */,
- C92418EE127337E400403FA7 /* SVGPathElement.h */,
- C92418EF127337E400403FA7 /* SVGPathElement.m */,
- C9FB1666133D44CB005A4DC5 /* SVGPolygonElement.h */,
- C9FB1667133D44CB005A4DC5 /* SVGPolygonElement.m */,
- C91BF6D4133D6DDD0054E0FF /* SVGPolylineElement.h */,
- C91BF6D5133D6DDD0054E0FF /* SVGPolylineElement.m */,
- C92FDD4E127E09B00027F90A /* SVGRectElement.h */,
- C92FDD4F127E09B00027F90A /* SVGRectElement.m */,
- C922128E127B93490007174D /* SVGShapeElement+Private.h */,
- C9221149127B80940007174D /* SVGShapeElement.h */,
- C922114A127B80940007174D /* SVGShapeElement.m */,
- );
- name = Shapes;
- sourceTree = "<group>";
- };
- C952623F12711D8600434805 /* Framework */ = {
- isa = PBXGroup;
- children = (
- C952631B1271225F00434805 /* Core */,
- C9DA5C5E1273D26A000CB487 /* Mac */,
- 32C88DFF0371C24200C91783 /* Other Sources */,
- 089C1665FE841158C02AAC07 /* Resources */,
- 0867D69AFE84028FC02AAC07 /* Frameworks */,
- 034768DFFF38A50411DB9C8B /* Products */,
- );
- name = Framework;
- sourceTree = "<group>";
- };
- C952631B1271225F00434805 /* Core */ = {
- isa = PBXGroup;
- children = (
- C935BF9113475EC6009110C3 /* CGPathAdditions.h */,
- C935BF9213475EC6009110C3 /* CGPathAdditions.m */,
- C900199D127C663C0001CA21 /* Shapes */,
- C9A5B19A1277850C0073038C /* SVGDefsElement.h */,
- C9A5B19B1277850C0073038C /* SVGDefsElement.m */,
- C924196E12733E0C00403FA7 /* SVGDescriptionElement.h */,
- C924196F12733E0C00403FA7 /* SVGDescriptionElement.m */,
- C936332B133AB48F004E14B9 /* SVGDocument+CA.h */,
- C936332C133AB490004E14B9 /* SVGDocument+CA.m */,
- C92418C51273358A00403FA7 /* SVGDocument.h */,
- C92418C61273358A00403FA7 /* SVGDocument.m */,
- C9221306127BA2CA0007174D /* SVGElement+Private.h */,
- C92418D1127335AB00403FA7 /* SVGElement.h */,
- C92418D2127335AB00403FA7 /* SVGElement.m */,
- C92418D91273369000403FA7 /* SVGGroupElement.h */,
- C92418DA1273369000403FA7 /* SVGGroupElement.m */,
- 3B716A15148438DA00984357 /* SVGImageElement.h */,
- 3B716A16148438DA00984357 /* SVGImageElement.m */,
- C9241A18127345C900403FA7 /* SVGKit.h */,
- C92418DD127336A500403FA7 /* SVGParser.h */,
- C92418DE127336A500403FA7 /* SVGParser.m */,
- 3B716A17148438DA00984357 /* SVGPattern.h */,
- 3B716A18148438DA00984357 /* SVGPattern.m */,
- 3B716A19148438DA00984357 /* SVGTextElement.h */,
- 3B716A1A148438DA00984357 /* SVGTextElement.m */,
- C924192F12733BF300403FA7 /* SVGTitleElement.h */,
- C924193012733BF300403FA7 /* SVGTitleElement.m */,
- C92419D9127342CD00403FA7 /* SVGUtils.h */,
- C92419DA127342CD00403FA7 /* SVGUtils.m */,
- );
- path = Core;
- sourceTree = "<group>";
- };
- C9DA5C5E1273D26A000CB487 /* Mac */ = {
- isa = PBXGroup;
- children = (
- C9379C5812777AEC00B0589E /* SVGView.h */,
- C9379C5912777AEC00B0589E /* SVGView.m */,
- );
- path = Mac;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
- 8DC2EF500486A6940098B216 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- C9221345127BA40B0007174D /* SVGCircleElement.h in Headers */,
- C9A5B19C1277850C0073038C /* SVGDefsElement.h in Headers */,
- C924197012733E0C00403FA7 /* SVGDescriptionElement.h in Headers */,
- C92418C71273358A00403FA7 /* SVGDocument.h in Headers */,
- C936332D133AB491004E14B9 /* SVGDocument+CA.h in Headers */,
- C92418D3127335AB00403FA7 /* SVGElement.h in Headers */,
- C9221147127B802C0007174D /* SVGEllipseElement.h in Headers */,
- C92418DB1273369000403FA7 /* SVGGroupElement.h in Headers */,
- C9241A19127345C900403FA7 /* SVGKit.h in Headers */,
- C9001997127C66270001CA21 /* SVGLineElement.h in Headers */,
- C9FB1668133D44CB005A4DC5 /* SVGPolygonElement.h in Headers */,
- C91BF6D6133D6DDD0054E0FF /* SVGPolylineElement.h in Headers */,
- C92FDD50127E09B00027F90A /* SVGRectElement.h in Headers */,
- C922114B127B80940007174D /* SVGShapeElement.h in Headers */,
- C92418F0127337E400403FA7 /* SVGPathElement.h in Headers */,
- C924193112733BF300403FA7 /* SVGTitleElement.h in Headers */,
- 3B716A1B148438DA00984357 /* SVGImageElement.h in Headers */,
- 3B716A1F148438DA00984357 /* SVGTextElement.h in Headers */,
- C92419DB127342CD00403FA7 /* SVGUtils.h in Headers */,
- C9221308127BA2CA0007174D /* SVGElement+Private.h in Headers */,
- C9379C5A12777AEC00B0589E /* SVGView.h in Headers */,
- C92418DF127336A500403FA7 /* SVGParser.h in Headers */,
- C9221290127B93490007174D /* SVGShapeElement+Private.h in Headers */,
- C935BF9313475EC6009110C3 /* CGPathAdditions.h in Headers */,
- 3B716A1D148438DA00984357 /* SVGPattern.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
- 8DC2EF4F0486A6940098B216 /* SVGKit */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "SVGKit" */;
- buildPhases = (
- 8DC2EF500486A6940098B216 /* Headers */,
- 8DC2EF520486A6940098B216 /* Resources */,
- 8DC2EF540486A6940098B216 /* Sources */,
- 8DC2EF560486A6940098B216 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SVGKit;
- productInstallPath = "$(HOME)/Library/Frameworks";
- productName = SVGKit;
- productReference = 8DC2EF5B0486A6940098B216 /* SVGKit.framework */;
- productType = "com.apple.product-type.framework";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0867D690FE84028FC02AAC07 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0420;
- };
- buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "SVGKit" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- );
- mainGroup = 0867D691FE84028FC02AAC07 /* SVGKit */;
- productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 8DC2EF4F0486A6940098B216 /* SVGKit */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8DC2EF520486A6940098B216 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8DC2EF540486A6940098B216 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- C92418C81273358A00403FA7 /* SVGDocument.m in Sources */,
- C92418D4127335AB00403FA7 /* SVGElement.m in Sources */,
- C92418DC1273369000403FA7 /* SVGGroupElement.m in Sources */,
- C92418E0127336A500403FA7 /* SVGParser.m in Sources */,
- C92418F1127337E400403FA7 /* SVGPathElement.m in Sources */,
- C924193212733BF300403FA7 /* SVGTitleElement.m in Sources */,
- C924197112733E0C00403FA7 /* SVGDescriptionElement.m in Sources */,
- C92419DC127342CD00403FA7 /* SVGUtils.m in Sources */,
- C9379C5B12777AEC00B0589E /* SVGView.m in Sources */,
- C9A5B19D1277850C0073038C /* SVGDefsElement.m in Sources */,
- C9221148127B802C0007174D /* SVGEllipseElement.m in Sources */,
- C922114C127B80940007174D /* SVGShapeElement.m in Sources */,
- C9221346127BA40B0007174D /* SVGCircleElement.m in Sources */,
- C9001998127C66270001CA21 /* SVGLineElement.m in Sources */,
- C92FDD51127E09B00027F90A /* SVGRectElement.m in Sources */,
- C936332E133AB491004E14B9 /* SVGDocument+CA.m in Sources */,
- C9FB1669133D44CB005A4DC5 /* SVGPolygonElement.m in Sources */,
- C91BF6D7133D6DDD0054E0FF /* SVGPolylineElement.m in Sources */,
- C935BF9413475EC6009110C3 /* CGPathAdditions.m in Sources */,
- 3B716A1C148438DA00984357 /* SVGImageElement.m in Sources */,
- 3B716A1E148438DA00984357 /* SVGPattern.m in Sources */,
- 3B716A20148438DA00984357 /* SVGTextElement.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 1DEB91AE08733DA50010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- COPY_PHASE_STRIP = NO;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = SVGKit_Prefix.pch;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- HEADER_SEARCH_PATHS = /usr/include/libxml2;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "@executable_path/../Frameworks";
- PRODUCT_NAME = SVGKit;
- WRAPPER_EXTENSION = framework;
- };
- name = Debug;
- };
- 1DEB91AF08733DA50010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = SVGKit_Prefix.pch;
- HEADER_SEARCH_PATHS = /usr/include/libxml2;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "@executable_path/../Frameworks";
- PRODUCT_NAME = SVGKit;
- WRAPPER_EXTENSION = framework;
- };
- name = Release;
- };
- 1DEB91B208733DA50010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_GC = supported;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 1DEB91B308733DA50010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_GC = supported;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- SDKROOT = macosx;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "SVGKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB91AE08733DA50010E9CD /* Debug */,
- 1DEB91AF08733DA50010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "SVGKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB91B208733DA50010E9CD /* Debug */,
- 1DEB91B308733DA50010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
View
36 SVGPad/Classes/CALayerExporter.h
@@ -1,36 +0,0 @@
-//
-// CALayerExporter.h
-// SVGPad
-//
-// Created by Steven Fusco on 11/28/11.
-// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@protocol CALayerExporterDelegate;
-
-@interface CALayerExporter : NSObject
-{
- @private
- NSMutableDictionary* propertyRegistry;
-}
-
-@property (readwrite,nonatomic,retain) UIView* rootView;
-@property (readwrite,nonatomic,assign) id<CALayerExporterDelegate> delegate;
-
-- (CALayerExporter*) initWithView:(UIView*)v;
-- (void) startExport;
-
-@end
-
-
-@protocol CALayerExporterDelegate <NSObject>
-
-- (void) layerExporter:(CALayerExporter*)exporter didParseLayer:(CALayer*)layer withStatement:(NSString*)statement;
-
-@optional
-
-- (void) layerExporterDidFinish:(CALayerExporter*)exporter;
-
-@end
View
283 SVGPad/Classes/CALayerExporter.m
@@ -1,283 +0,0 @@
-//
-// CALayerExporter.m
-// SVGPad
-//
-// Created by Steven Fusco on 11/28/11.
-// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
-//
-
-#import "CALayerExporter.h"
-
-typedef struct ExportPathCommandsContext {
- NSString* pathName;
- NSMutableString* pathCommands;
-} ExportPathCommandsContext;
-
-void exportPathCommands(void *exportPathCommandsConextPtr, const CGPathElement *element)
-{
- ExportPathCommandsContext* ctx = (ExportPathCommandsContext*) exportPathCommandsConextPtr;
- NSMutableString* pathCommands = ctx->pathCommands;
- NSString* pathName = ctx-> pathName;
- CGPoint* pathPoints = element->points;
- switch (element->type) {
- case kCGPathElementMoveToPoint:
- [pathCommands appendFormat:@"\nCGPathMoveToPoint(%@, NULL, %f, %f);", pathName, pathPoints[0].x, pathPoints[0].y];
- break;
- case kCGPathElementAddLineToPoint:
- [pathCommands appendFormat:@"\nCGPathAddLineToPoint(%@, NULL, %f, %f);", pathName, pathPoints[0].x, pathPoints[0].y];
- break;
- case kCGPathElementAddQuadCurveToPoint:
- {
- CGFloat cpx = pathPoints[0].x;
- CGFloat cpy = pathPoints[0].y;
- CGFloat x = pathPoints[1].x;
- CGFloat y = pathPoints[1].y;
- [pathCommands appendFormat:@"\nCGPathAddQuadCurveToPoint(%@, NULL, %f, %f, %f, %f);", pathName, cpx, cpy, x, y];
- }
- break;
- case kCGPathElementAddCurveToPoint:
- {
- CGFloat cp1x = pathPoints[0].x;
- CGFloat cp1y = pathPoints[0].y;
- CGFloat cp2x = pathPoints[1].x;
- CGFloat cp2y = pathPoints[1].y;
- CGFloat x = pathPoints[2].x;
- CGFloat y = pathPoints[2].y;
- [pathCommands appendFormat:@"\nCGPathAddCurveToPoint(%@, NULL, %f, %f, %f, %f, %f, %f);", pathName, cp1x, cp1y, cp2x, cp2y, x, y];
- }
- break;
- case kCGPathElementCloseSubpath:
- [pathCommands appendFormat:@"\nCGPathCloseSubpath(%@);", pathName];
- break;
-
- default:
- break;
- }
-}
-
-@interface CALayerExporter(Private)
-
-- (void)processLayer:(CALayer *)currentLayer index:(NSInteger)index parent:(NSString*)parentName;
-
-@end
-
-
-@implementation CALayerExporter
-
-@synthesize delegate;
-@synthesize rootView;
-
-- (id)initWithView:(UIView*)v
-{
- self = [super init];
- if (self) {
- self.rootView = v;
-
- propertyRegistry = [[NSMutableDictionary dictionary] retain];
-
- NSArray* CALayerProperties = [NSArray arrayWithObjects:@"name", @"bounds", @"frame", nil];
- [propertyRegistry setObject:CALayerProperties
- forKey:NSStringFromClass([CALayer class])];
-
- NSArray* CAShapeLayerProperties = [NSArray arrayWithObjects:@"path", @"fillColor", @"fillRule", @"strokeColor", @"lineWidth", @"miterLimit", @"lineCap", @"lineJoin", @"lineDashPhase", @"lineDashPattern", nil];
- [propertyRegistry setObject:CAShapeLayerProperties
- forKey:NSStringFromClass([CAShapeLayer class])];
- }
- return self;
-}
-
-- (void)dealloc {
- [rootView release];
- [super dealloc];
-}
-
-- (void)startExport
-{
- if (nil == rootView) {
- return;
- }
-
- [self processLayer:self.rootView.layer index:0 parent:@"root"];
-
- if ([self.delegate respondsToSelector:@selector(layerExporterDidFinish:)]) {
- [self.delegate layerExporterDidFinish:self];
- }
-}
-
-- (void)processLayer:(CALayer *)currentLayer index:(NSInteger)index parent:(NSString*)parentName
-{
- NSString* className = NSStringFromClass([currentLayer class]);
- NSString* layerName = [NSString stringWithFormat:@"%@_layer%d", parentName, index];
- NSString* createStatement = [NSString stringWithFormat:@"%@* %@ = [[%@ alloc] init];", className, layerName, className];
-
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:createStatement];
-
- for (NSString* registeredClassName in [propertyRegistry allKeys]) {
-
- Class registeredClass = NSClassFromString(registeredClassName);
- if ([currentLayer isKindOfClass:registeredClass]) {
-
- for (NSString* propertyName in [propertyRegistry objectForKey:registeredClassName]) {
-
- SEL message = NSSelectorFromString(propertyName);
-
- NSMethodSignature* methodSig = [currentLayer methodSignatureForSelector:message];
-
- NSString* propertyValue = nil;
- const char * methodReturnType = [methodSig methodReturnType];
-
- if (0 == strcmp("@", methodReturnType)) {
-
- id v = [currentLayer performSelector:message];
-
- if (nil == v) {
- propertyValue = @"nil";
- } else if ([v isKindOfClass:[NSString class]]) {
- propertyValue = [NSString stringWithFormat:@"@\"%@\"", v];
- } else {
- propertyValue = NSStringFromClass([v class]);
- }
- } else {
- NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSig];
- [inv setSelector:message];
- [inv setTarget:currentLayer];
- [inv invoke];
-
- if (0 == strcmp("f", methodReturnType)) {
- float r;
- [inv getReturnValue:&r];
- propertyValue = [NSString stringWithFormat:@"%f", r];
- } else if (0 == strcmp("{CGRect={CGPoint=ff}{CGSize=ff}}", methodReturnType)) {
- CGRect r;
- [inv getReturnValue:&r];
- propertyValue = [NSString stringWithFormat:@"CGRectMake(%f, %f, %f, %f)", r.origin.x, r.origin.y, r.size.width, r.size.height];
- } else if (0 == strcmp("^{CGColor=}", methodReturnType)) {
-
- CGColorRef color;
- [inv getReturnValue:&color];
-
- if (0 == color) {
- propertyValue = @"0";
- } else {
- NSString* colorName = [NSString stringWithFormat:@"%@_%@_colorref", layerName, propertyName];
- NSString* spaceName = [colorName stringByAppendingString:@"_colorSpace"];
- NSString* componentsName = [colorName stringByAppendingString:@"_colorComponents"];
-
- CGColorSpaceRef colorSpace = CGColorGetColorSpace(color);
-
- NSMutableString* colorSpaceCreateStatement = [NSMutableString stringWithFormat:@"CGColorSpaceRef %@ = ", spaceName];
-
- CGColorSpaceModel colorSpaceModel = CGColorSpaceGetModel(colorSpace);
- switch (colorSpaceModel) {
- case kCGColorSpaceModelMonochrome:
- [colorSpaceCreateStatement appendString:@"CGColorSpaceCreateDeviceGray();"];
- break;
- case kCGColorSpaceModelRGB:
- [colorSpaceCreateStatement appendString:@"CGColorSpaceCreateDeviceRGB();"];
- break;
- case kCGColorSpaceModelCMYK:
- [colorSpaceCreateStatement appendString:@"CGColorSpaceCreateDeviceCMYK();"];
- break;
- case kCGColorSpaceModelLab:
- // CGColorSpaceCreateLab(<#const CGFloat *whitePoint#>, <#const CGFloat *blackPoint#>, <#const CGFloat *range#>)
- break;
- case kCGColorSpaceModelDeviceN:
- // CGColorSpaceCreateWithICCProfile(<#CFDataRef data#>)
- break;
- case kCGColorSpaceModelIndexed:
- // CGColorSpaceCreateIndexed(<#CGColorSpaceRef baseSpace#>, <#size_t lastIndex#>, <#const unsigned char *colorTable#>)
- break;
- case kCGColorSpaceModelPattern:
- // CGColorSpaceCreatePattern(<#CGColorSpaceRef baseSpace#>)
- break;
- default:
- break;
- }
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:colorSpaceCreateStatement];
-
- const CGFloat* colorComponents = CGColorGetComponents(color);
- size_t colorComponentsCount = CGColorGetNumberOfComponents(color);
- NSMutableString* colorComponentsCreateStatement = [NSMutableString stringWithFormat:@"CGFloat %@[] = ", componentsName];
- [colorComponentsCreateStatement appendString:@"{"];
- for (int i=0; i != colorComponentsCount; ++i) {
- [colorComponentsCreateStatement appendFormat:@"%@%f", ((i != 0) ? @"," : @""), colorComponents[i]];
- }
- [colorComponentsCreateStatement appendString:@"};"];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:colorComponentsCreateStatement];
-
- NSString* colorCreateStatement = [NSString stringWithFormat:@"CGColorRef %@ = CGColorCreate(%@, %@);", colorName, spaceName, componentsName];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:colorCreateStatement];
-
- propertyValue = colorName;
- }
-
- } else if (0 == strcmp("^{CGPath=}", methodReturnType)) {
- CGPathRef path;
- [inv getReturnValue:&path];
-
- if (0 == path) {
- propertyValue = @"0";
- } else {
-
- NSString* pathName = [NSString stringWithFormat:@"%@_%@_pathref", layerName, propertyName];
- NSString* pathCreateStatement = [NSString stringWithFormat:@"CGMutablePathRef %@ = CGPathCreateMutable();", pathName];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:pathCreateStatement];
-
- NSMutableString* pathCommands = [NSMutableString string];
- ExportPathCommandsContext exportPathContext;
- exportPathContext.pathName = pathName;
- exportPathContext.pathCommands = pathCommands;
-
- CGPathApply(path, &exportPathContext, exportPathCommands);
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:pathCommands];
-
- propertyValue = pathName;
- }
- } else {
- propertyValue = [NSString stringWithCString:methodReturnType encoding:NSUTF8StringEncoding];
- }
- }
-
- NSString* propertyAssignmentStatement = [NSString stringWithFormat:@"%@.%@ = %@;", layerName, propertyName, propertyValue];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:propertyAssignmentStatement];
- }
- }
- }
-
-
- NSString* addSublayerStatement = [NSString stringWithFormat:@"[%@ addSublayer:%@];", parentName, layerName];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:addSublayerStatement];
-
- NSString* releaseStatement = [NSString stringWithFormat:@"[%@ release];", layerName];
- [self.delegate layerExporter:self
- didParseLayer:currentLayer
- withStatement:releaseStatement];
-
- int i = index;
- for (CALayer* childLayer in currentLayer.sublayers) {
- [self processLayer:childLayer index:++i parent:layerName];
- }
-}
-
-
-
-
-
-@end
-
View
7 SVGPad/SVGPad.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
- version = "1.0">
- <FileRef
- location = "self:SVGPad.xcodeproj">
- </FileRef>
-</Workspace>
View
0  Info.plist → XCodeProjects/SVGKit/Info.plist
File renamed without changes
View
790 XCodeProjects/SVGKit/SVGKit.xcodeproj/project.pbxproj
@@ -0,0 +1,790 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 3BF5039E148C5FBC00CC7D17 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF5039D148C5FBC00CC7D17 /* libxml2.dylib */; };
+ 3BF503A0148C5FC600CC7D17 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF5039F148C5FC600CC7D17 /* UIKit.framework */; };
+ 3BF503A2148C5FCE00CC7D17 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF503A1148C5FCE00CC7D17 /* CoreGraphics.framework */; };
+ 3BF503A4148C5FD400CC7D17 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF503A3148C5FD400CC7D17 /* QuartzCore.framework */; };
+ 3BF503A5148C612100CC7D17 /* CAShapeLayerWithHitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213548148AF80A006881E1 /* CAShapeLayerWithHitTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3BF503A6148C612F00CC7D17 /* CAShapeLayerWithHitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213549148AF80A006881E1 /* CAShapeLayerWithHitTest.m */; };
+ 3BF503A7148C614600CC7D17 /* CALayerWithChildHitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213547148AF80A006881E1 /* CALayerWithChildHitTest.m */; };
+ 3BF503A8148C614D00CC7D17 /* CALayerWithChildHitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213546148AF80A006881E1 /* CALayerWithChildHitTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213433148AF2CF006881E1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66226B53148AEAB100EF4A6D /* Foundation.framework */; };
+ 662134C3148AF4F7006881E1 /* SVGPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213496148AF4F7006881E1 /* SVGPattern.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134C4148AF4F7006881E1 /* SVGPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213496148AF4F7006881E1 /* SVGPattern.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134C5148AF4F7006881E1 /* SVGUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213497148AF4F7006881E1 /* SVGUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134C6148AF4F7006881E1 /* SVGUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213497148AF4F7006881E1 /* SVGUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134C7148AF4F7006881E1 /* SVGImageElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213498148AF4F7006881E1 /* SVGImageElement.m */; };
+ 662134C8148AF4F7006881E1 /* SVGImageElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213498148AF4F7006881E1 /* SVGImageElement.m */; };
+ 662134C9148AF4F7006881E1 /* CGPathAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213499148AF4F7006881E1 /* CGPathAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134CA148AF4F7006881E1 /* CGPathAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213499148AF4F7006881E1 /* CGPathAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134CB148AF4F7006881E1 /* SVGUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349A148AF4F7006881E1 /* SVGUtils.m */; };
+ 662134CC148AF4F7006881E1 /* SVGUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349A148AF4F7006881E1 /* SVGUtils.m */; };
+ 662134CD148AF4F7006881E1 /* SVGTitleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349B148AF4F7006881E1 /* SVGTitleElement.m */; };
+ 662134CE148AF4F7006881E1 /* SVGTitleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349B148AF4F7006881E1 /* SVGTitleElement.m */; };
+ 662134CF148AF4F7006881E1 /* SVGTitleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349C148AF4F7006881E1 /* SVGTitleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D0148AF4F7006881E1 /* SVGTitleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349C148AF4F7006881E1 /* SVGTitleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D1148AF4F7006881E1 /* SVGShapeElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349D148AF4F7006881E1 /* SVGShapeElement+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D2148AF4F7006881E1 /* SVGShapeElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349D148AF4F7006881E1 /* SVGShapeElement+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D3148AF4F7006881E1 /* SVGShapeElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349E148AF4F7006881E1 /* SVGShapeElement.m */; };
+ 662134D4148AF4F7006881E1 /* SVGShapeElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621349E148AF4F7006881E1 /* SVGShapeElement.m */; };
+ 662134D5148AF4F7006881E1 /* SVGShapeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349F148AF4F7006881E1 /* SVGShapeElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D6148AF4F7006881E1 /* SVGShapeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621349F148AF4F7006881E1 /* SVGShapeElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134D7148AF4F7006881E1 /* SVGRectElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A0148AF4F7006881E1 /* SVGRectElement.m */; };
+ 662134D8148AF4F7006881E1 /* SVGRectElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A0148AF4F7006881E1 /* SVGRectElement.m */; };
+ 662134D9148AF4F7006881E1 /* SVGRectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A1148AF4F7006881E1 /* SVGRectElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134DA148AF4F7006881E1 /* SVGRectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A1148AF4F7006881E1 /* SVGRectElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134DB148AF4F7006881E1 /* SVGPolylineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A2148AF4F7006881E1 /* SVGPolylineElement.m */; };
+ 662134DC148AF4F7006881E1 /* SVGPolylineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A2148AF4F7006881E1 /* SVGPolylineElement.m */; };
+ 662134DD148AF4F7006881E1 /* SVGPolylineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A3148AF4F7006881E1 /* SVGPolylineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134DE148AF4F7006881E1 /* SVGPolylineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A3148AF4F7006881E1 /* SVGPolylineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134DF148AF4F7006881E1 /* SVGPolygonElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A4148AF4F7006881E1 /* SVGPolygonElement.m */; };
+ 662134E0148AF4F7006881E1 /* SVGPolygonElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A4148AF4F7006881E1 /* SVGPolygonElement.m */; };
+ 662134E1148AF4F7006881E1 /* SVGPolygonElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A5148AF4F7006881E1 /* SVGPolygonElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134E2148AF4F7006881E1 /* SVGPolygonElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A5148AF4F7006881E1 /* SVGPolygonElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134E3148AF4F7006881E1 /* SVGPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A6148AF4F7006881E1 /* SVGPattern.m */; };
+ 662134E4148AF4F7006881E1 /* SVGPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A6148AF4F7006881E1 /* SVGPattern.m */; };
+ 662134E5148AF4F7006881E1 /* SVGPathElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A7148AF4F7006881E1 /* SVGPathElement.m */; };
+ 662134E6148AF4F7006881E1 /* SVGPathElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A7148AF4F7006881E1 /* SVGPathElement.m */; };
+ 662134E7148AF4F7006881E1 /* SVGPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A8148AF4F7006881E1 /* SVGPathElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134E8148AF4F7006881E1 /* SVGPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134A8148AF4F7006881E1 /* SVGPathElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134E9148AF4F7006881E1 /* SVGParserSVG.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A9148AF4F7006881E1 /* SVGParserSVG.m */; };
+ 662134EA148AF4F7006881E1 /* SVGParserSVG.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134A9148AF4F7006881E1 /* SVGParserSVG.m */; };
+ 662134EB148AF4F7006881E1 /* SVGParserSVG.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AA148AF4F7006881E1 /* SVGParserSVG.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134EC148AF4F7006881E1 /* SVGParserSVG.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AA148AF4F7006881E1 /* SVGParserSVG.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134ED148AF4F7006881E1 /* SVGParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134AB148AF4F7006881E1 /* SVGParser.m */; };
+ 662134EE148AF4F7006881E1 /* SVGParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134AB148AF4F7006881E1 /* SVGParser.m */; };
+ 662134EF148AF4F7006881E1 /* SVGParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AC148AF4F7006881E1 /* SVGParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F0148AF4F7006881E1 /* SVGParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AC148AF4F7006881E1 /* SVGParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F1148AF4F7006881E1 /* SVGLineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134AD148AF4F7006881E1 /* SVGLineElement.m */; };
+ 662134F2148AF4F7006881E1 /* SVGLineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134AD148AF4F7006881E1 /* SVGLineElement.m */; };
+ 662134F3148AF4F7006881E1 /* SVGLineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AE148AF4F7006881E1 /* SVGLineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F4148AF4F7006881E1 /* SVGLineElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AE148AF4F7006881E1 /* SVGLineElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F5148AF4F7006881E1 /* SVGKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AF148AF4F7006881E1 /* SVGKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F6148AF4F7006881E1 /* SVGKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134AF148AF4F7006881E1 /* SVGKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F7148AF4F7006881E1 /* SVGImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B0148AF4F7006881E1 /* SVGImageElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F8148AF4F7006881E1 /* SVGImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B0148AF4F7006881E1 /* SVGImageElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134F9148AF4F7006881E1 /* SVGGroupElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B1148AF4F7006881E1 /* SVGGroupElement.m */; };
+ 662134FA148AF4F7006881E1 /* SVGGroupElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B1148AF4F7006881E1 /* SVGGroupElement.m */; };
+ 662134FB148AF4F7006881E1 /* SVGGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B2148AF4F7006881E1 /* SVGGroupElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134FC148AF4F7006881E1 /* SVGGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B2148AF4F7006881E1 /* SVGGroupElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 662134FD148AF4F7006881E1 /* SVGEllipseElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B3148AF4F7006881E1 /* SVGEllipseElement.m */; };
+ 662134FE148AF4F7006881E1 /* SVGEllipseElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B3148AF4F7006881E1 /* SVGEllipseElement.m */; };
+ 662134FF148AF4F7006881E1 /* SVGEllipseElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B4148AF4F7006881E1 /* SVGEllipseElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213500148AF4F7006881E1 /* SVGEllipseElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B4148AF4F7006881E1 /* SVGEllipseElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213501148AF4F7006881E1 /* SVGElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B5148AF4F7006881E1 /* SVGElement+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213502148AF4F7006881E1 /* SVGElement+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B5148AF4F7006881E1 /* SVGElement+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213503148AF4F7006881E1 /* SVGElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B6148AF4F7006881E1 /* SVGElement.m */; };
+ 66213504148AF4F7006881E1 /* SVGElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B6148AF4F7006881E1 /* SVGElement.m */; };
+ 66213505148AF4F7006881E1 /* SVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B7148AF4F7006881E1 /* SVGElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213506148AF4F7006881E1 /* SVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B7148AF4F7006881E1 /* SVGElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213507148AF4F7006881E1 /* SVGDocument+CA.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B8148AF4F7006881E1 /* SVGDocument+CA.m */; };
+ 66213508148AF4F7006881E1 /* SVGDocument+CA.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134B8148AF4F7006881E1 /* SVGDocument+CA.m */; };
+ 66213509148AF4F7006881E1 /* SVGDocument+CA.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B9148AF4F7006881E1 /* SVGDocument+CA.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621350A148AF4F7006881E1 /* SVGDocument+CA.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134B9148AF4F7006881E1 /* SVGDocument+CA.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621350B148AF4F7006881E1 /* SVGDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BA148AF4F7006881E1 /* SVGDocument.m */; };
+ 6621350C148AF4F7006881E1 /* SVGDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BA148AF4F7006881E1 /* SVGDocument.m */; };
+ 6621350D148AF4F7006881E1 /* SVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BB148AF4F7006881E1 /* SVGDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621350E148AF4F7006881E1 /* SVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BB148AF4F7006881E1 /* SVGDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621350F148AF4F7006881E1 /* SVGDescriptionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BC148AF4F7006881E1 /* SVGDescriptionElement.m */; };
+ 66213510148AF4F7006881E1 /* SVGDescriptionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BC148AF4F7006881E1 /* SVGDescriptionElement.m */; };
+ 66213511148AF4F7006881E1 /* SVGDescriptionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BD148AF4F7006881E1 /* SVGDescriptionElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213512148AF4F7006881E1 /* SVGDescriptionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BD148AF4F7006881E1 /* SVGDescriptionElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213513148AF4F7006881E1 /* SVGDefsElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BE148AF4F7006881E1 /* SVGDefsElement.m */; };
+ 66213514148AF4F7006881E1 /* SVGDefsElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134BE148AF4F7006881E1 /* SVGDefsElement.m */; };
+ 66213515148AF4F7006881E1 /* SVGDefsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BF148AF4F7006881E1 /* SVGDefsElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213516148AF4F7006881E1 /* SVGDefsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134BF148AF4F7006881E1 /* SVGDefsElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213517148AF4F7006881E1 /* SVGCircleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134C0148AF4F7006881E1 /* SVGCircleElement.m */; };
+ 66213518148AF4F7006881E1 /* SVGCircleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134C0148AF4F7006881E1 /* SVGCircleElement.m */; };
+ 66213519148AF4F7006881E1 /* SVGCircleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134C1148AF4F7006881E1 /* SVGCircleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621351A148AF4F7006881E1 /* SVGCircleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 662134C1148AF4F7006881E1 /* SVGCircleElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6621351B148AF4F7006881E1 /* CGPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134C2148AF4F7006881E1 /* CGPathAdditions.m */; };
+ 6621351C148AF4F7006881E1 /* CGPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 662134C2148AF4F7006881E1 /* CGPathAdditions.m */; };
+ 66213550148AF80B006881E1 /* CALayerWithChildHitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213546148AF80A006881E1 /* CALayerWithChildHitTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213551148AF80B006881E1 /* CALayerWithChildHitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213547148AF80A006881E1 /* CALayerWithChildHitTest.m */; };
+ 66213552148AF80B006881E1 /* CAShapeLayerWithHitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 66213548148AF80A006881E1 /* CAShapeLayerWithHitTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213553148AF80B006881E1 /* CAShapeLayerWithHitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 66213549148AF80A006881E1 /* CAShapeLayerWithHitTest.m */; };
+ 66213554148AF80B006881E1 /* SVGDocumentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621354A148AF80A006881E1 /* SVGDocumentView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213555148AF80B006881E1 /* SVGDocumentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621354B148AF80A006881E1 /* SVGDocumentView.m */; };
+ 66213556148AF80B006881E1 /* SVGPathView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621354C148AF80A006881E1 /* SVGPathView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213557148AF80B006881E1 /* SVGPathView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621354D148AF80A006881E1 /* SVGPathView.m */; };
+ 66213558148AF80B006881E1 /* SVGView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6621354E148AF80A006881E1 /* SVGView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 66213559148AF80B006881E1 /* SVGView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6621354F148AF80A006881E1 /* SVGView.m */; };
+ 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
+ C92418E5127336D000403FA7 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C95263281271228F00434805 /* libxml2.dylib */; };
+ C9379C5A12777AEC00B0589E /* SVGView.h in Headers */ = {isa = PBXBuildFile; fileRef = C9379C5812777AEC00B0589E /* SVGView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C9379C5B12777AEC00B0589E /* SVGView.m in Sources */ = {isa = PBXBuildFile; fileRef = C9379C5912777AEC00B0589E /* SVGView.m */; };
+ C996E4BC1336CBC200EC3F18 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 32DBCF5E0370ADEE00C91783 /* SVGKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKit_Prefix.pch; sourceTree = "<group>"; };
+ 3BF5039D148C5FBC00CC7D17 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/libxml2.dylib; sourceTree = DEVELOPER_DIR; };
+ 3BF5039F148C5FC600CC7D17 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+ 3BF503A1148C5FCE00CC7D17 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
+ 3BF503A3148C5FD400CC7D17 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
+ 66213432148AF2CF006881E1 /* libSVGKitLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSVGKitLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 66213436148AF2CF006881E1 /* SVGKitLibrary-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SVGKitLibrary-Prefix.pch"; sourceTree = "<group>"; };
+ 66213496148AF4F7006881E1 /* SVGPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPattern.h; sourceTree = "<group>"; };
+ 66213497148AF4F7006881E1 /* SVGUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGUtils.h; sourceTree = "<group>"; };
+ 66213498148AF4F7006881E1 /* SVGImageElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGImageElement.m; sourceTree = "<group>"; };
+ 66213499148AF4F7006881E1 /* CGPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPathAdditions.h; sourceTree = "<group>"; };
+ 6621349A148AF4F7006881E1 /* SVGUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGUtils.m; sourceTree = "<group>"; };
+ 6621349B148AF4F7006881E1 /* SVGTitleElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGTitleElement.m; sourceTree = "<group>"; };
+ 6621349C148AF4F7006881E1 /* SVGTitleElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTitleElement.h; sourceTree = "<group>"; };
+ 6621349D148AF4F7006881E1 /* SVGShapeElement+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGShapeElement+Private.h"; sourceTree = "<group>"; };
+ 6621349E148AF4F7006881E1 /* SVGShapeElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGShapeElement.m; sourceTree = "<group>"; };
+ 6621349F148AF4F7006881E1 /* SVGShapeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGShapeElement.h; sourceTree = "<group>"; };
+ 662134A0148AF4F7006881E1 /* SVGRectElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGRectElement.m; sourceTree = "<group>"; };
+ 662134A1148AF4F7006881E1 /* SVGRectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRectElement.h; sourceTree = "<group>"; };
+ 662134A2148AF4F7006881E1 /* SVGPolylineElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPolylineElement.m; sourceTree = "<group>"; };
+ 662134A3148AF4F7006881E1 /* SVGPolylineElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPolylineElement.h; sourceTree = "<group>"; };
+ 662134A4148AF4F7006881E1 /* SVGPolygonElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPolygonElement.m; sourceTree = "<group>"; };
+ 662134A5148AF4F7006881E1 /* SVGPolygonElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPolygonElement.h; sourceTree = "<group>"; };
+ 662134A6148AF4F7006881E1 /* SVGPattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPattern.m; sourceTree = "<group>"; };
+ 662134A7148AF4F7006881E1 /* SVGPathElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPathElement.m; sourceTree = "<group>"; };
+ 662134A8148AF4F7006881E1 /* SVGPathElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathElement.h; sourceTree = "<group>"; };
+ 662134A9148AF4F7006881E1 /* SVGParserSVG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGParserSVG.m; sourceTree = "<group>"; };
+ 662134AA148AF4F7006881E1 /* SVGParserSVG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGParserSVG.h; sourceTree = "<group>"; };
+ 662134AB148AF4F7006881E1 /* SVGParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGParser.m; sourceTree = "<group>"; };
+ 662134AC148AF4F7006881E1 /* SVGParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGParser.h; sourceTree = "<group>"; };
+ 662134AD148AF4F7006881E1 /* SVGLineElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGLineElement.m; sourceTree = "<group>"; };
+ 662134AE148AF4F7006881E1 /* SVGLineElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGLineElement.h; sourceTree = "<group>"; };
+ 662134AF148AF4F7006881E1 /* SVGKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGKit.h; sourceTree = "<group>"; };
+ 662134B0148AF4F7006881E1 /* SVGImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageElement.h; sourceTree = "<group>"; };
+ 662134B1148AF4F7006881E1 /* SVGGroupElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGGroupElement.m; sourceTree = "<group>"; };
+ 662134B2148AF4F7006881E1 /* SVGGroupElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGGroupElement.h; sourceTree = "<group>"; };
+ 662134B3148AF4F7006881E1 /* SVGEllipseElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGEllipseElement.m; sourceTree = "<group>"; };
+ 662134B4148AF4F7006881E1 /* SVGEllipseElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGEllipseElement.h; sourceTree = "<group>"; };
+ 662134B5148AF4F7006881E1 /* SVGElement+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGElement+Private.h"; sourceTree = "<group>"; };
+ 662134B6148AF4F7006881E1 /* SVGElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGElement.m; sourceTree = "<group>"; };
+ 662134B7148AF4F7006881E1 /* SVGElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGElement.h; sourceTree = "<group>"; };
+ 662134B8148AF4F7006881E1 /* SVGDocument+CA.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SVGDocument+CA.m"; sourceTree = "<group>"; };
+ 662134B9148AF4F7006881E1 /* SVGDocument+CA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVGDocument+CA.h"; sourceTree = "<group>"; };
+ 662134BA148AF4F7006881E1 /* SVGDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDocument.m; sourceTree = "<group>"; };
+ 662134BB148AF4F7006881E1 /* SVGDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDocument.h; sourceTree = "<group>"; };
+ 662134BC148AF4F7006881E1 /* SVGDescriptionElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDescriptionElement.m; sourceTree = "<group>"; };
+ 662134BD148AF4F7006881E1 /* SVGDescriptionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDescriptionElement.h; sourceTree = "<group>"; };
+ 662134BE148AF4F7006881E1 /* SVGDefsElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDefsElement.m; sourceTree = "<group>"; };
+ 662134BF148AF4F7006881E1 /* SVGDefsElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDefsElement.h; sourceTree = "<group>"; };
+ 662134C0148AF4F7006881E1 /* SVGCircleElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGCircleElement.m; sourceTree = "<group>"; };
+ 662134C1148AF4F7006881E1 /* SVGCircleElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGCircleElement.h; sourceTree = "<group>"; };
+ 662134C2148AF4F7006881E1 /* CGPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPathAdditions.m; sourceTree = "<group>"; };
+ 66213546148AF80A006881E1 /* CALayerWithChildHitTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALayerWithChildHitTest.h; sourceTree = "<group>"; };
+ 66213547148AF80A006881E1 /* CALayerWithChildHitTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CALayerWithChildHitTest.m; sourceTree = "<group>"; };
+ 66213548148AF80A006881E1 /* CAShapeLayerWithHitTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAShapeLayerWithHitTest.h; sourceTree = "<group>"; };
+ 66213549148AF80A006881E1 /* CAShapeLayerWithHitTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAShapeLayerWithHitTest.m; sourceTree = "<group>"; };
+ 6621354A148AF80A006881E1 /* SVGDocumentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDocumentView.h; sourceTree = "<group>"; };
+ 6621354B148AF80A006881E1 /* SVGDocumentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGDocumentView.m; sourceTree = "<group>"; };
+ 6621354C148AF80A006881E1 /* SVGPathView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathView.h; sourceTree = "<group>"; };
+ 6621354D148AF80A006881E1 /* SVGPathView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGPathView.m; sourceTree = "<group>"; };
+ 6621354E148AF80A006881E1 /* SVGView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGView.h; sourceTree = "<group>"; };
+ 6621354F148AF80A006881E1 /* SVGView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGView.m; sourceTree = "<group>"; };
+ 66226B53148AEAB100EF4A6D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 8DC2EF5B0486A6940098B216 /* SVGKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SVGKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C9379C5812777AEC00B0589E /* SVGView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGView.h; sourceTree = "<group>"; };
+ C9379C5912777AEC00B0589E /* SVGView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGView.m; sourceTree = "<group>"; };
+ C95263281271228F00434805 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
+ C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 6621342F148AF2CF006881E1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 3BF503A4148C5FD400CC7D17 /* QuartzCore.framework in Frameworks */,
+ 3BF503A2148C5FCE00CC7D17 /* CoreGraphics.framework in Frameworks */,
+ 3BF503A0148C5FC600CC7D17 /* UIKit.framework in Frameworks */,
+ 3BF5039E148C5FBC00CC7D17 /* libxml2.dylib in Frameworks */,
+ 66213433148AF2CF006881E1 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8DC2EF560486A6940098B216 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
+ C996E4BC1336CBC200EC3F18 /* QuartzCore.framework in Frameworks */,
+ C92418E5127336D000403FA7 /* libxml2.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8DC2EF5B0486A6940098B216 /* SVGKit.framework */,
+ 66213432148AF2CF006881E1 /* libSVGKitLibrary.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* SVGKit */ = {
+ isa = PBXGroup;
+ children = (
+ C952623F12711D8600434805 /* Framework */,
+ 66213434148AF2CF006881E1 /* SVGKitLibrary */,
+ );
+ name = SVGKit;
+ sourceTree = "<group>";
+ };
+ 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
+ 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 089C1665FE841158C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8DC2EF5A0486A6940098B216 /* Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
+ C996E4BB1336CBC100EC3F18 /* QuartzCore.framework */,
+ C95263281271228F00434805 /* libxml2.dylib */,
+ );
+ name = "Linked Frameworks";
+ sourceTree = "<group>";
+ };
+ 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 0867D6A5FE840307C02AAC07 /* AppKit.framework */,
+ D2F7E79907B2D74100F64583 /* CoreData.framework */,
+ 0867D69BFE84028FC02AAC07 /* Foundation.framework */,
+ );
+ name = "Other Frameworks";
+ sourceTree = "<group>";
+ };
+ 32C88DFF0371C24200C91783 /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 32DBCF5E0370ADEE00C91783 /* SVGKit_Prefix.pch */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ 66213434148AF2CF006881E1 /* SVGKitLibrary */ = {
+ isa = PBXGroup;
+ children = (
+ 66226B52148AEAB100EF4A6D /* Linked Frameworks */,
+ 66213435148AF2CF006881E1 /* Supporting Files */,
+ );
+ path = SVGKitLibrary;
+ sourceTree = "<group>";
+ };
+ 66213435148AF2CF006881E1 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 66213436148AF2CF006881E1 /* SVGKitLibrary-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ 66213545148AF80A006881E1 /* iOS */ = {
+ isa = PBXGroup;
+ children = (
+ 66213546148AF80A006881E1 /* CALayerWithChildHitTest.h */,
+ 66213547148AF80A006881E1 /* CALayerWithChildHitTest.m */,
+ 66213548148AF80A006881E1 /* CAShapeLayerWithHitTest.h */,
+ 66213549148AF80A006881E1 /* CAShapeLayerWithHitTest.m */,
+ 6621354A148AF80A006881E1 /* SVGDocumentView.h */,
+ 6621354B148AF80A006881E1 /* SVGDocumentView.m */,
+ 6621354C148AF80A006881E1 /* SVGPathView.h */,
+ 6621354D148AF80A006881E1 /* SVGPathView.m */,
+ 6621354E148AF80A006881E1 /* SVGView.h */,
+ 6621354F148AF80A006881E1 /* SVGView.m */,
+ );
+ name = iOS;
+ path = ../../iOS;
+ sourceTree = "<group>";
+ };
+ 66226B52148AEAB100EF4A6D /* Linked Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 3BF5039D148C5FBC00CC7D17 /* libxml2.dylib */,
+ 3BF503A3148C5FD400CC7D17 /* QuartzCore.framework */,
+ 3BF503A1148C5FCE00CC7D17 /* CoreGraphics.framework */,
+ 3BF5039F148C5FC600CC7D17 /* UIKit.framework */,
+ 66226B53148AEAB100EF4A6D /* Foundation.framework */,
+ );
+ name = "Linked Frameworks";
+ path = ..;
+ sourceTree = "<group>";
+ };
+ C952623F12711D8600434805 /* Framework */ = {
+ isa = PBXGroup;
+ children = (
+ C952631B1271225F00434805 /* Core */,
+ C9DA5C5E1273D26A000CB487 /* Mac */,
+ 66213545148AF80A006881E1 /* iOS */,
+ 32C88DFF0371C24200C91783 /* Other Sources */,
+ 089C1665FE841158C02AAC07 /* Resources */,
+ 0867D69AFE84028FC02AAC07 /* Frameworks */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = Framework;
+ sourceTree = "<group>";
+ };
+ C952631B1271225F00434805 /* Core */ = {
+ isa = PBXGroup;
+ children = (
+ 66213496148AF4F7006881E1 /* SVGPattern.h */,
+ 66213497148AF4F7006881E1 /* SVGUtils.h */,
+ 66213498148AF4F7006881E1 /* SVGImageElement.m */,
+ 66213499148AF4F7006881E1 /* CGPathAdditions.h */,
+ 6621349A148AF4F7006881E1 /* SVGUtils.m */,
+ 6621349B148AF4F7006881E1 /* SVGTitleElement.m */,
+ 6621349C148AF4F7006881E1 /* SVGTitleElement.h */,
+ 6621349D148AF4F7006881E1 /* SVGShapeElement+Private.h */,
+ 6621349E148AF4F7006881E1 /* SVGShapeElement.m */,
+ 6621349F148AF4F7006881E1 /* SVGShapeElement.h */,
+ 662134A0148AF4F7006881E1 /* SVGRectElement.m */,
+ 662134A1148AF4F7006881E1 /* SVGRectElement.h */,
+ 662134A2148AF4F7006881E1 /* SVGPolylineElement.m */,
+ 662134A3148AF4F7006881E1 /* SVGPolylineElement.h */,
+ 662134A4148AF4F7006881E1 /* SVGPolygonElement.m */,
+ 662134A5148AF4F7006881E1 /* SVGPolygonElement.h */,
+ 662134A6148AF4F7006881E1 /* SVGPattern.m */,
+ 662134A7148AF4F7006881E1 /* SVGPathElement.m */,
+ 662134A8148AF4F7006881E1 /* SVGPathElement.h */,
+ 662134A9148AF4F7006881E1 /* SVGParserSVG.m */,
+ 662134AA148AF4F7006881E1 /* SVGParserSVG.h */,
+ 662134AB148AF4F7006881E1 /* SVGParser.m */,
+ 662134AC148AF4F7006881E1 /* SVGParser.h */,
+ 662134AD148AF4F7006881E1 /* SVGLineElement.m */,
+ 662134AE148AF4F7006881E1 /* SVGLineElement.h */,
+ 662134AF148AF4F7006881E1 /* SVGKit.h */,
+ 662134B0148AF4F7006881E1 /* SVGImageElement.h */,
+ 662134B1148AF4F7006881E1 /* SVGGroupElement.m */,
+ 662134B2148AF4F7006881E1 /* SVGGroupElement.h */,
+ 662134B3148AF4F7006881E1 /* SVGEllipseElement.m */,
+ 662134B4148AF4F7006881E1 /* SVGEllipseElement.h */,
+ 662134B5148AF4F7006881E1 /* SVGElement+Private.h */,
+ 662134B6148AF4F7006881E1 /* SVGElement.m */,
+ 662134B7148AF4F7006881E1 /* SVGElement.h */,
+ 662134B8148AF4F7006881E1 /* SVGDocument+CA.m */,
+ 662134B9148AF4F7006881E1 /* SVGDocument+CA.h */,
+ 662134BA148AF4F7006881E1 /* SVGDocument.m */,
+ 662134BB148AF4F7006881E1 /* SVGDocument.h */,
+ 662134BC148AF4F7006881E1 /* SVGDescriptionElement.m */,
+ 662134BD148AF4F7006881E1 /* SVGDescriptionElement.h */,
+ 662134BE148AF4F7006881E1 /* SVGDefsElement.m */,
+ 662134BF148AF4F7006881E1 /* SVGDefsElement.h */,
+ 662134C0148AF4F7006881E1 /* SVGCircleElement.m */,
+ 662134C1148AF4F7006881E1 /* SVGCircleElement.h */,
+ 662134C2148AF4F7006881E1 /* CGPathAdditions.m */,
+ );
+ name = Core;
+ path = ../../Core;
+ sourceTree = "<group>";
+ };
+ C9DA5C5E1273D26A000CB487 /* Mac */ = {
+ isa = PBXGroup;
+ children = (
+ C9379C5812777AEC00B0589E /* SVGView.h */,
+ C9379C5912777AEC00B0589E /* SVGView.m */,
+ );
+ name = Mac;
+ path = ../../Mac;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 66213430148AF2CF006881E1 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 662134C4148AF4F7006881E1 /* SVGPattern.h in Headers */,
+ 662134C6148AF4F7006881E1 /* SVGUtils.h in Headers */,
+ 662134CA148AF4F7006881E1 /* CGPathAdditions.h in Headers */,
+ 662134D0148AF4F7006881E1 /* SVGTitleElement.h in Headers */,
+ 662134D2148AF4F7006881E1 /* SVGShapeElement+Private.h in Headers */,
+ 662134D6148AF4F7006881E1 /* SVGShapeElement.h in Headers */,
+ 662134DA148AF4F7006881E1 /* SVGRectElement.h in Headers */,
+ 662134DE148AF4F7006881E1 /* SVGPolylineElement.h in Headers */,
+ 662134E2148AF4F7006881E1 /* SVGPolygonElement.h in Headers */,
+ 662134E8148AF4F7006881E1 /* SVGPathElement.h in Headers */,
+ 662134EC148AF4F7006881E1 /* SVGParserSVG.h in Headers */,
+ 662134F0148AF4F7006881E1 /* SVGParser.h in Headers */,
+ 662134F4148AF4F7006881E1 /* SVGLineElement.h in Headers */,
+ 662134F6148AF4F7006881E1 /* SVGKit.h in Headers */,
+ 662134F8148AF4F7006881E1 /* SVGImageElement.h in Headers */,
+ 662134FC148AF4F7006881E1 /* SVGGroupElement.h in Headers */,
+ 66213500148AF4F7006881E1 /* SVGEllipseElement.h in Headers */,
+ 66213502148AF4F7006881E1 /* SVGElement+Private.h in Headers */,
+ 66213506148AF4F7006881E1 /* SVGElement.h in Headers */,
+ 6621350A148AF4F7006881E1 /* SVGDocument+CA.h in Headers */,
+ 6621350E148AF4F7006881E1 /* SVGDocument.h in Headers */,
+ 66213512148AF4F7006881E1 /* SVGDescriptionElement.h in Headers */,
+ 66213516148AF4F7006881E1 /* SVGDefsElement.h in Headers */,
+ 6621351A148AF4F7006881E1 /* SVGCircleElement.h in Headers */,
+ 66213550148AF80B006881E1 /* CALayerWithChildHitTest.h in Headers */,
+ 66213552148AF80B006881E1 /* CAShapeLayerWithHitTest.h in Headers */,
+ 66213554148AF80B006881E1 /* SVGDocumentView.h in Headers */,
+ 66213556148AF80B006881E1 /* SVGPathView.h in Headers */,
+ 66213558148AF80B006881E1 /* SVGView.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 8DC2EF500486A6940098B216 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;