summaryrefslogtreecommitdiff
path: root/tikzit/src/common/Graph.m
diff options
context:
space:
mode:
authorAlex Merry <dev@randomguy3.me.uk>2013-03-24 15:52:33 +0000
committerAlex Merry <dev@randomguy3.me.uk>2013-03-24 16:47:10 +0000
commit1a111979e01a6081cbea69e40accebe16e6155e5 (patch)
tree41b63d722c48a2ff5f6b8d69135f151c561de5bb /tikzit/src/common/Graph.m
parent2724cb0739c4b2b2187f31634f5a6c97b6f91c87 (diff)
Add methods to Graph to create from tikz
These are just convenience wrappers for TikzGraphAssembler. As a result, non of the GTK code uses TikzGraphAssembler directly.
Diffstat (limited to 'tikzit/src/common/Graph.m')
-rw-r--r--tikzit/src/common/Graph.m20
1 files changed, 19 insertions, 1 deletions
diff --git a/tikzit/src/common/Graph.m b/tikzit/src/common/Graph.m
index d18e4db..2a01bae 100644
--- a/tikzit/src/common/Graph.m
+++ b/tikzit/src/common/Graph.m
@@ -22,10 +22,11 @@
//
#import "Graph.h"
+#import "TikzGraphAssembler.h"
@implementation Graph
-- (Graph*)init {
+- (id)init {
self = [super init];
if (self != nil) {
data = [[GraphElementData alloc] init];
@@ -39,6 +40,15 @@
return self;
}
+- (id)initFromTikz:(NSString*)tikz error:(NSError**)e {
+ [self release];
+ return [[TikzGraphAssembler parseTikz:tikz error:e] retain];
+}
+
+- (id)initFromTikz:(NSString*)tikz {
+ return [self initFromTikz:tikz error:NULL];
+}
+
- (id) copyWithZone:(NSZone*)zone {
Graph *newGraph = [self copyOfSubgraphWithNodes:[NSSet setWithArray:nodes] zone:zone];
[newGraph setData:[self data]];
@@ -765,6 +775,14 @@
return [[[self alloc] init] autorelease];
}
++ (Graph*)graphFromTikz:(NSString*)tikz error:(NSError**)e {
+ return [TikzGraphAssembler parseTikz:tikz error:e];
+}
+
++ (Graph*)graphFromTikz:(NSString*)tikz {
+ return [self graphFromTikz:tikz error:NULL];
+}
+
+ (NSMapTable*)nodeTableForNodes:(NSSet*)nds {
return [self nodeTableForNodes:nds withZone:NSDefaultMallocZone()];
}