diff options
Diffstat (limited to 'tikzit/src')
60 files changed, 1509 insertions, 227 deletions
diff --git a/tikzit/src/common/ColorRGB.m b/tikzit/src/common/ColorRGB.m index c108cfe..840d716 100644 --- a/tikzit/src/common/ColorRGB.m +++ b/tikzit/src/common/ColorRGB.m @@ -25,7 +25,11 @@ #import "util.h" typedef struct { - NSString *name; +#if __has_feature(objc_arc) + __unsafe_unretained NSString *name; +#else + NSString *name; +#endif unsigned short r, g, b; } ColorRGBEntry; @@ -278,17 +282,29 @@ static NSMapTable *colorHash = nil; + (ColorRGB*)colorWithRed:(unsigned short)r green:(unsigned short)g blue:(unsigned short)b { ColorRGB *col = [[ColorRGB alloc] initWithRed:r green:g blue:b]; - return [col autorelease]; +#if __has_feature(objc_arc) + return col; +#else + return [col autorelease]; +#endif } + (ColorRGB*)colorWithFloatRed:(float)r green:(float)g blue:(float)b { ColorRGB *col = [[ColorRGB alloc] initWithFloatRed:r green:g blue:b]; - return [col autorelease]; +#if __has_feature(objc_arc) + return col; +#else + return [col autorelease]; +#endif } + (ColorRGB*) colorWithRColor:(RColor)color { +#if __has_feature(objc_arc) + return [[self alloc] initWithRColor:color]; +#else return [[[self alloc] initWithRColor:color] autorelease]; +#endif } + (void)makeColorHash { @@ -300,13 +316,17 @@ static NSMapTable *colorHash = nil; blue:kColors[i].b]; [h setObject:kColors[i].name forKey:col]; //NSLog(@"adding color %@ (%d)", kColors[i].name, [col hash]); +#if ! __has_feature(objc_arc) [col release]; +#endif } colorHash = h; } + (void)releaseColorHash { +#if ! __has_feature(objc_arc) [colorHash release]; +#endif } - (void)setToClosestHashed { diff --git a/tikzit/src/common/Edge.m b/tikzit/src/common/Edge.m index ba80aef..0c88e9d 100644 --- a/tikzit/src/common/Edge.m +++ b/tikzit/src/common/Edge.m @@ -72,7 +72,11 @@ } // if we didn't find a style, fill in a default one +#if __has_feature(objc_arc) + style = [EdgeStyle defaultEdgeStyleWithName:style_name]; +#else style = [[EdgeStyle defaultEdgeStyleWithName:style_name] retain]; +#endif return NO; } @@ -318,8 +322,12 @@ - (EdgeStyle*)style {return style;} - (void)setStyle:(EdgeStyle*)s { if (style != s) { +#if __has_feature(objc_arc) + style = s; +#else [style release]; style = [s retain]; +#endif } } @@ -335,9 +343,13 @@ [self setSourceAnchor:@""]; } +#if __has_feature(objc_arc) + source = s; +#else [source release]; source = [s retain]; - +#endif + if (source==target) { bendMode = EdgeBendModeInOut; weight = 1.0f; @@ -365,9 +377,13 @@ [self setTargetAnchor:@""]; } +#if __has_feature(objc_arc) + target = t; +#else [target release]; target = [t retain]; - +#endif + if (source==target) { bendMode = EdgeBendModeInOut; weight = 1.0f; @@ -422,8 +438,12 @@ [self willChangeValueForKey:@"hasEdgeNode"]; if (edgeNode != n) { hasEdgeNode = (n != nil); +#if __has_feature(objc_arc) + edgeNode = n; +#else [edgeNode release]; edgeNode = [n retain]; +#endif // don't set dirty bit, because control points don't need update } [self didChangeValueForKey:@"edgeNode"]; @@ -450,7 +470,9 @@ }else{ sourceAnchor = @""; } +#if ! __has_feature(objc_arc) [oldSourceAnchor release]; +#endif } - (NSString*) targetAnchor { return targetAnchor; } @@ -461,7 +483,9 @@ }else{ targetAnchor = @""; } +#if ! __has_feature(objc_arc) [oldTargetAnchor release]; +#endif } @synthesize data; @@ -558,11 +582,15 @@ - (void)setPropertiesFromEdge:(Edge*)e { Node *en = [[e edgeNode] copy]; [self setEdgeNode:en]; +#if ! __has_feature(objc_arc) [en release]; +#endif GraphElementData *d = [[e data] copy]; [self setData:d]; +#if ! __has_feature(objc_arc) [d release]; +#endif [self setStyle:[e style]]; [self setBend:[e bend]]; @@ -664,6 +692,7 @@ - (void)reverse { Node *n; float f; + NSString *a; n = source; source = target; @@ -673,6 +702,10 @@ inAngle = outAngle; outAngle = f; + a = sourceAnchor; + sourceAnchor = targetAnchor; + targetAnchor = a; + [self setBend:-bend]; dirty = YES; @@ -683,12 +716,14 @@ forKeyPath:@"style"]; [target removeObserver:self forKeyPath:@"style"]; +#if ! __has_feature(objc_arc) [source release]; [target release]; [data release]; [sourceAnchor release]; [targetAnchor release]; [super dealloc]; +#endif } - (id)copyWithZone:(NSZone*)zone { @@ -702,11 +737,19 @@ } + (Edge*)edge { +#if __has_feature(objc_arc) + return [[Edge alloc] init]; +#else return [[[Edge alloc] init] autorelease]; +#endif } + (Edge*)edgeWithSource:(Node*)s andTarget:(Node*)t { - return [[[Edge alloc] initWithSource:s andTarget:t] autorelease]; +#if __has_feature(objc_arc) + return [[Edge alloc] initWithSource:s andTarget:t]; +#else + return [[[Edge alloc] initWithSource:s andTarget:t] autorelease]; +#endif } @end diff --git a/tikzit/src/common/EdgeStyle.m b/tikzit/src/common/EdgeStyle.m index 39810fa..c61e94a 100644 --- a/tikzit/src/common/EdgeStyle.m +++ b/tikzit/src/common/EdgeStyle.m @@ -77,10 +77,12 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [name release]; [category release]; [colorRGB release]; [super dealloc]; +#endif } - (NSString*) description { @@ -98,7 +100,11 @@ } + (EdgeStyle*)defaultEdgeStyleWithName:(NSString*)nm { +#if __has_feature(objc_arc) + return [[EdgeStyle alloc] initWithName:nm]; +#else return [[[EdgeStyle alloc] initWithName:nm] autorelease]; +#endif } - (NSString*)name { return name; } @@ -107,7 +113,9 @@ NSString *oldValue = name; name = [s copy]; [self postPropertyChanged:@"name" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; +#endif } } @@ -147,8 +155,10 @@ NSString *oldValue = category; category = [s copy]; [self postPropertyChanged:@"category" oldValue:oldValue]; - [oldValue release]; - } +#if ! __has_feature(objc_arc) + [oldValue release]; +#endif + } } - (ColorRGB*)colorRGB { @@ -160,8 +170,10 @@ ColorRGB *oldValue = colorRGB; colorRGB = [c copy]; [self postPropertyChanged:@"colorRGB" oldValue:oldValue]; - [oldValue release]; - } +#if ! __has_feature(objc_arc) + [oldValue release]; +#endif + } } - (NSString*)tikz { diff --git a/tikzit/src/common/Graph.m b/tikzit/src/common/Graph.m index 2d07ccc..cf09a69 100644 --- a/tikzit/src/common/Graph.m +++ b/tikzit/src/common/Graph.m @@ -51,8 +51,12 @@ } - (id)initFromTikz:(NSString*)tikz error:(NSError**)e { - [self release]; - return [[TikzGraphAssembler parseTikz:tikz error:e] retain]; +#if __has_feature(objc_arc) + return [TikzGraphAssembler parseTikz:tikz error:e]; +#else + [self release]; + return [[TikzGraphAssembler parseTikz:tikz error:e] retain]; +#endif } - (id)initFromTikz:(NSString*)tikz { @@ -69,7 +73,8 @@ [[NSNotificationCenter defaultCenter] removeObserver:self]; [graphLock lock]; - [inEdges release]; +#if ! __has_feature(objc_arc) + [inEdges release]; [outEdges release]; [edges release]; [nodes release]; @@ -78,18 +83,23 @@ [graphLock release]; [super dealloc]; +#endif } - (void)sync { [graphLock lock]; if (dirty) { - [inEdges release]; - [outEdges release]; +#if ! __has_feature(objc_arc) + [inEdges release]; + [outEdges release]; +#endif inEdges = [[NSMapTable alloc] initWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory capacity:10]; outEdges = [[NSMapTable alloc] initWithKeyOptions:NSMapTableStrongMemory valueOptions:NSMapTableStrongMemory capacity:10]; +#if ! __has_feature(objc_arc) NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - +#endif + for (Edge *e in edges) { NSMutableSet *ie = [inEdges objectForKey:[e target]]; NSMutableSet *oe = [outEdges objectForKey:[e source]]; @@ -108,8 +118,9 @@ [oe addObject:e]; } +#if ! __has_feature(objc_arc) [pool drain]; - +#endif dirty = NO; } @@ -150,12 +161,20 @@ - (NSSet*)inEdgesForNode:(Node*)nd { [self sync]; - return [[[inEdges objectForKey:nd] retain] autorelease]; +#if __has_feature(objc_arc) + return [inEdges objectForKey:nd]; +#else + return [[[inEdges objectForKey:nd] retain] autorelease]; +#endif } - (NSSet*)outEdgesForNode:(Node*)nd { [self sync]; - return [[[outEdges objectForKey:nd] retain] autorelease]; +#if __has_feature(objc_arc) + return [outEdges objectForKey:nd]; +#else + return [[[outEdges objectForKey:nd] retain] autorelease]; +#endif } - (NSSet*)incidentEdgesForNodes:(NSSet*)nds { @@ -347,7 +366,10 @@ } GraphChange *change = [GraphChange nodeOrderChangeFrom:oldOrder to:nodes moved:nodeSet]; [graphLock unlock]; - [oldOrder release]; + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif return change; } @@ -365,8 +387,11 @@ } } GraphChange *change = [GraphChange nodeOrderChangeFrom:oldOrder to:nodes moved:nodeSet]; - [oldOrder release]; - + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif + return change; } @@ -383,7 +408,10 @@ } GraphChange *change = [GraphChange edgeOrderChangeFrom:oldOrder to:edges moved:edgeSet]; [graphLock unlock]; - [oldOrder release]; + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif return change; } @@ -401,8 +429,11 @@ } } GraphChange *change = [GraphChange edgeOrderChangeFrom:oldOrder to:edges moved:edgeSet]; - [oldOrder release]; - + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif + return change; } @@ -419,7 +450,10 @@ } GraphChange *change = [GraphChange nodeOrderChangeFrom:oldOrder to:nodes moved:nodeSet]; [graphLock unlock]; - [oldOrder release]; + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif return change; } @@ -437,7 +471,10 @@ } GraphChange *change = [GraphChange edgeOrderChangeFrom:oldOrder to:edges moved:edgeSet]; [graphLock unlock]; - [oldOrder release]; + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif return change; } @@ -455,8 +492,11 @@ } } GraphChange *change = [GraphChange nodeOrderChangeFrom:oldOrder to:nodes moved:nodeSet]; - [oldOrder release]; - + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif + return change; } @@ -473,8 +513,11 @@ } } GraphChange *change = [GraphChange edgeOrderChangeFrom:oldOrder to:edges moved:edgeSet]; - [oldOrder release]; - + +#if ! __has_feature(objc_arc) + [oldOrder release]; +#endif + return change; } @@ -571,7 +614,9 @@ [e1 setSource:[newNds objectForKey:[e source]]]; [e1 setTarget:[newNds objectForKey:[e target]]]; [newGraph addEdge:e1]; - [e1 release]; // e1 belongs to newGraph +#if ! __has_feature(objc_arc) + [e1 release]; // e1 belongs to newGraph +#endif } } @@ -584,8 +629,9 @@ [self sync]; NSMutableSet *cover = [NSMutableSet set]; +#if ! __has_feature(objc_arc) NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - +#endif NSMutableSet *remainingEdges = [NSMutableSet setWithArray:edges]; while ([remainingEdges count] != 0) { @@ -610,10 +656,14 @@ } [cover addObject:path]; +#if ! __has_feature(objc_arc) [path release]; +#endif } - + +#if ! __has_feature(objc_arc) [pool drain]; +#endif return cover; } @@ -780,7 +830,11 @@ } + (Graph*)graph { +#if __has_feature(objc_arc) + return [[self alloc] init]; +#else return [[[self alloc] init] autorelease]; +#endif } + (Graph*)graphFromTikz:(NSString*)tikz error:(NSError**)e { @@ -803,9 +857,15 @@ for (Node *n in nds) { Node *ncopy = [n copyWithZone:zone]; [tab setObject:ncopy forKey:n]; +#if ! __has_feature(objc_arc) [ncopy release]; // tab should still retain ncopy. +#endif } - return [tab autorelease]; +#if __has_feature(objc_arc) + return tab; +#else + return [tab autorelease]; +#endif } + (NSMapTable*)edgeTableForEdges:(NSSet*)es { @@ -820,7 +880,9 @@ for (Edge *e in es) { Edge *ecopy = [e copyWithZone:zone]; [tab setObject:ecopy forKey:e]; +#if ! __has_feature(objc_arc) [ecopy release]; // tab should still retain ecopy. +#endif } return tab; } diff --git a/tikzit/src/common/GraphChange.m b/tikzit/src/common/GraphChange.m index 239ae23..29a3939 100644 --- a/tikzit/src/common/GraphChange.m +++ b/tikzit/src/common/GraphChange.m @@ -36,6 +36,7 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [affectedNodes release]; [affectedEdges release]; [nodeRef release]; @@ -56,6 +57,7 @@ [nwEdgeOrder release]; [super dealloc]; +#endif } @synthesize changeType; @@ -77,65 +79,128 @@ switch ([self changeType]) { case GraphAddition: [inverse setChangeType:GraphDeletion]; - inverse->affectedNodes = [affectedNodes retain]; - inverse->affectedEdges = [affectedEdges retain]; +#if __has_feature(objc_arc) + inverse->affectedNodes = affectedNodes; + inverse->affectedEdges = affectedEdges; +#else + inverse->affectedNodes = [affectedNodes retain]; + inverse->affectedEdges = [affectedEdges retain]; +#endif break; case GraphDeletion: [inverse setChangeType:GraphAddition]; - inverse->affectedNodes = [affectedNodes retain]; - inverse->affectedEdges = [affectedEdges retain]; +#if __has_feature(objc_arc) + inverse->affectedNodes = affectedNodes; + inverse->affectedEdges = affectedEdges; +#else + inverse->affectedNodes = [affectedNodes retain]; + inverse->affectedEdges = [affectedEdges retain]; +#endif break; case NodePropertyChange: - inverse->nodeRef = [nodeRef retain]; - inverse->oldNode = [nwNode retain]; - inverse->nwNode = [oldNode retain]; +#if __has_feature(objc_arc) + inverse->nodeRef = nodeRef; + inverse->oldNode = nwNode; + inverse->nwNode = oldNode; +#else + inverse->nodeRef = [nodeRef retain]; + inverse->oldNode = [nwNode retain]; + inverse->nwNode = [oldNode retain]; +#endif break; case NodesPropertyChange: - inverse->oldNodeTable = [nwNodeTable retain]; - inverse->nwNodeTable = [oldNodeTable retain]; +#if __has_feature(objc_arc) + +#else + inverse->oldNodeTable = [nwNodeTable retain]; + inverse->nwNodeTable = [oldNodeTable retain]; +#endif break; case EdgePropertyChange: - inverse->edgeRef = [edgeRef retain]; - inverse->oldEdge = [nwEdge retain]; - inverse->nwEdge = [oldEdge retain]; +#if __has_feature(objc_arc) + inverse->edgeRef = edgeRef; + inverse->oldEdge = nwEdge; + inverse->nwEdge = oldEdge; +#else + inverse->edgeRef = [edgeRef retain]; + inverse->oldEdge = [nwEdge retain]; + inverse->nwEdge = [oldEdge retain]; +#endif break; case EdgesPropertyChange: - inverse->oldEdgeTable = [nwEdgeTable retain]; - inverse->nwEdgeTable = [oldEdgeTable retain]; +#if __has_feature(objc_arc) + inverse->oldEdgeTable = nwEdgeTable; + inverse->nwEdgeTable = oldEdgeTable; +#else + inverse->oldEdgeTable = [nwEdgeTable retain]; + inverse->nwEdgeTable = [oldEdgeTable retain]; +#endif break; case NodesShift: - inverse->affectedNodes = [affectedNodes retain]; - [inverse setShiftPoint:NSMakePoint(-[self shiftPoint].x, - -[self shiftPoint].y)]; +#if __has_feature(objc_arc) + inverse->affectedNodes = affectedNodes; +#else + inverse->affectedNodes = [affectedNodes retain]; +#endif + [inverse setShiftPoint:NSMakePoint(-[self shiftPoint].x, + -[self shiftPoint].y)]; break; case NodesFlip: - inverse->affectedNodes = [affectedNodes retain]; - [inverse setHorizontal:[self horizontal]]; +#if __has_feature(objc_arc) + inverse->affectedNodes = affectedNodes; +#else + inverse->affectedNodes = [affectedNodes retain]; +#endif + [inverse setHorizontal:[self horizontal]]; break; case EdgesReverse: - inverse->affectedEdges = [affectedEdges retain]; +#if __has_feature(objc_arc) + inverse->affectedEdges = affectedEdges; +#else + inverse->affectedEdges = [affectedEdges retain]; +#endif break; case BoundingBoxChange: inverse->oldBoundingBox = nwBoundingBox; inverse->nwBoundingBox = oldBoundingBox; break; case GraphPropertyChange: - inverse->oldGraphData = [nwGraphData retain]; - inverse->nwGraphData = [oldGraphData retain]; +#if __has_feature(objc_arc) + inverse->oldGraphData = nwGraphData; + inverse->nwGraphData = oldGraphData; +#else + inverse->oldGraphData = [nwGraphData retain]; + inverse->nwGraphData = [oldGraphData retain]; +#endif break; case NodeOrderChange: - inverse->affectedNodes = [affectedNodes retain]; - inverse->oldNodeOrder = [nwNodeOrder retain]; - inverse->nwNodeOrder = [oldNodeOrder retain]; +#if __has_feature(objc_arc) + inverse->affectedNodes = affectedNodes; + inverse->oldNodeOrder = nwNodeOrder; + inverse->nwNodeOrder = oldNodeOrder; +#else + inverse->affectedNodes = [affectedNodes retain]; + inverse->oldNodeOrder = [nwNodeOrder retain]; + inverse->nwNodeOrder = [oldNodeOrder retain]; +#endif break; case EdgeOrderChange: - inverse->affectedEdges = [affectedEdges retain]; - inverse->oldEdgeOrder = [nwEdgeOrder retain]; - inverse->nwEdgeOrder = [oldEdgeOrder retain]; +#if __has_feature(objc_arc) + inverse->affectedEdges = affectedEdges; + inverse->oldEdgeOrder = nwEdgeOrder; + inverse->nwEdgeOrder = oldEdgeOrder; +#else + inverse->affectedEdges = [affectedEdges retain]; + inverse->oldEdgeOrder = [nwEdgeOrder retain]; + inverse->nwEdgeOrder = [oldEdgeOrder retain]; +#endif break; } - +#if __has_feature(objc_arc) + return inverse; +#else return [inverse autorelease]; +#endif } + (GraphChange*)graphAdditionWithNodes:(NSSet *)ns edges:(NSSet *)es { @@ -143,7 +208,11 @@ [gc setChangeType:GraphAddition]; [gc setAffectedNodes:ns]; [gc setAffectedEdges:es]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)graphDeletionWithNodes:(NSSet *)ns edges:(NSSet *)es { @@ -151,7 +220,11 @@ [gc setChangeType:GraphDeletion]; [gc setAffectedNodes:ns]; [gc setAffectedEdges:es]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)propertyChangeOfNode:(Node*)nd fromOld:(Node*)old toNew:(Node*)nw { @@ -160,7 +233,11 @@ [gc setNodeRef:nd]; [gc setOldNode:old]; [gc setNwNode:nw]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)propertyChangeOfNodesFromOldCopies:(NSMapTable*)oldC @@ -169,7 +246,11 @@ [gc setChangeType:NodesPropertyChange]; [gc setOldNodeTable:oldC]; [gc setNwNodeTable:newC]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)propertyChangeOfEdge:(Edge*)e fromOld:(Edge *)old toNew:(Edge *)nw { @@ -178,7 +259,11 @@ [gc setEdgeRef:e]; [gc setOldEdge:old]; [gc setNwEdge:nw]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)propertyChangeOfEdgesFromOldCopies:(NSMapTable*)oldC @@ -187,7 +272,11 @@ [gc setChangeType:EdgesPropertyChange]; [gc setOldEdgeTable:oldC]; [gc setNwEdgeTable:newC]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)shiftNodes:(NSSet*)ns byPoint:(NSPoint)p { @@ -195,7 +284,11 @@ [gc setChangeType:NodesShift]; [gc setAffectedNodes:ns]; [gc setShiftPoint:p]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)flipNodes:(NSSet*)ns horizontal:(BOOL)b { @@ -203,14 +296,22 @@ [gc setChangeType:NodesFlip]; [gc setAffectedNodes:ns]; [gc setHorizontal:b]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)reverseEdges:(NSSet*)es { GraphChange *gc = [[GraphChange alloc] init]; [gc setChangeType:EdgesReverse]; [gc setAffectedEdges:es]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)changeBoundingBoxFrom:(NSRect)oldBB to:(NSRect)newBB { @@ -218,7 +319,11 @@ [gc setChangeType:BoundingBoxChange]; [gc setOldBoundingBox:oldBB]; [gc setNwBoundingBox:newBB]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)propertyChangeOfGraphFrom:(GraphElementData*)oldData to:(GraphElementData*)newData { @@ -226,7 +331,11 @@ [gc setChangeType:GraphPropertyChange]; [gc setOldGraphData:oldData]; [gc setNwGraphData:newData]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)nodeOrderChangeFrom:(NSArray*)old to:(NSArray*)new moved:(NSSet*)affected { @@ -235,7 +344,11 @@ [gc setAffectedNodes:affected]; [gc setOldNodeOrder:old]; [gc setNwNodeOrder:new]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } + (GraphChange*)edgeOrderChangeFrom:(NSArray*)old to:(NSArray*)new moved:(NSSet*)affected { @@ -244,7 +357,11 @@ [gc setAffectedEdges:affected]; [gc setOldEdgeOrder:old]; [gc setNwEdgeOrder:new]; - return [gc autorelease]; +#if __has_feature(objc_arc) + return gc; +#else + return [gc autorelease]; +#endif } @end diff --git a/tikzit/src/common/GraphElementData.m b/tikzit/src/common/GraphElementData.m index 0750296..41dc9aa 100644 --- a/tikzit/src/common/GraphElementData.m +++ b/tikzit/src/common/GraphElementData.m @@ -28,7 +28,11 @@ @implementation GraphElementData + (id)data { +#if __has_feature(objc_arc) + return [[self alloc] init]; +#else return [[[self alloc] init] autorelease]; +#endif } - (id)init { @@ -48,9 +52,15 @@ - (NSArray*)objectsAtIndexes:(NSIndexSet*)indexes { return [properties objectsAtIndexes:indexes]; } + +#if __has_feature(objc_arc) +- (void) getObjects:(__unsafe_unretained id*)buffer range:(NSRange)range { +#else - (void) getObjects:(id*)buffer range:(NSRange)range { +#endif [properties getObjects:buffer range:range]; } + - (void)insertObject:(id)anObject atIndex:(NSUInteger)index { [properties insertObject:anObject atIndex:index]; } @@ -66,22 +76,33 @@ - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject { [properties replaceObjectAtIndex:index withObject:anObject]; } + +#if __has_feature(objc_arc) +- (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state + objects:(__unsafe_unretained id [])stackbuf + count:(NSUInteger)len { +#else - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len { - return [properties countByEnumeratingWithState:state objects:stackbuf count:len]; +#endif + return [properties countByEnumeratingWithState:state objects:stackbuf count:len]; } - (void)setProperty:(NSString*)val forKey:(NSString*)key { GraphElementProperty *m = [[GraphElementProperty alloc] initWithKeyMatching:key]; NSInteger idx = [properties indexOfObject:m]; - [m release]; +#if !__has_feature(objc_arc) + [m release]; +#endif GraphElementProperty *p; if (idx == NSNotFound) { p = [[GraphElementProperty alloc] initWithPropertyValue:val forKey:key]; [properties addObject:p]; - [p release]; +#if !__has_feature(objc_arc) + [p release]; +#endif } else { p = [properties objectAtIndex:idx]; [p setValue:val]; @@ -91,13 +112,19 @@ - (void)unsetProperty:(NSString*)key { GraphElementProperty *m = [[GraphElementProperty alloc] initWithKeyMatching:key]; [properties removeObject:m]; - [m release]; +#if !__has_feature(objc_arc) + [m release]; +#endif + } - (NSString*)propertyForKey:(NSString*)key { GraphElementProperty *m = [[GraphElementProperty alloc] initWithKeyMatching:key]; NSInteger idx = [properties indexOfObject:m]; - [m release]; +#if !__has_feature(objc_arc) + [m release]; +#endif + if (idx == NSNotFound) { return nil; @@ -110,19 +137,25 @@ - (void)setAtom:(NSString*)atom { GraphElementProperty *a = [[GraphElementProperty alloc] initWithAtomName:atom]; if (![properties containsObject:a]) [properties addObject:a]; - [a release]; +#if !__has_feature(objc_arc) + [a release]; +#endif } - (void)unsetAtom:(NSString*)atom { GraphElementProperty *a = [[GraphElementProperty alloc] initWithAtomName:atom]; [properties removeObject:a]; - [a release]; +#if !__has_feature(objc_arc) + [a release]; +#endif } - (BOOL)isAtomSet:(NSString*)atom { GraphElementProperty *a = [[GraphElementProperty alloc] initWithAtomName:atom]; BOOL set = [properties containsObject:a]; - [a release]; +#if !__has_feature(objc_arc) + [a release]; +#endif return set; } @@ -136,14 +169,18 @@ for (GraphElementProperty *p in properties) { GraphElementProperty *p2 = [p copy]; [cp addObject:p2]; - [p2 release]; +#if !__has_feature(objc_arc) + [p2 release]; +#endif } return cp; } - (void)dealloc { - [properties release]; - [super dealloc]; +#if !__has_feature(objc_arc) + [properties release]; + [super dealloc]; +#endif } @end diff --git a/tikzit/src/common/GraphElementProperty.m b/tikzit/src/common/GraphElementProperty.m index 3cf6632..25e1b15 100644 --- a/tikzit/src/common/GraphElementProperty.m +++ b/tikzit/src/common/GraphElementProperty.m @@ -28,13 +28,25 @@ @implementation GraphElementProperty + (id)atom:(NSString*)n { - return [[[self alloc] initWithAtomName:n] autorelease]; +#if __has_feature(objc_arc) + return [[self alloc] initWithAtomName:n]; +#else + return [[[self alloc] initWithAtomName:n] autorelease]; +#endif } + (id)property:(NSString*)k withValue:(NSString*)v { +#if __has_feature(objc_arc) + return [[self alloc] initWithPropertyValue:v forKey:k]; +#else return [[[self alloc] initWithPropertyValue:v forKey:k] autorelease]; +#endif } + (id)keyMatching:(NSString*)k { +#if __has_feature(objc_arc) + return [[self alloc] initWithKeyMatching:k]; +#else return [[[self alloc] initWithKeyMatching:k] autorelease]; +#endif } - (id)initWithAtomName:(NSString*)n { @@ -65,14 +77,18 @@ } - (void) dealloc { +#if ! __has_feature(objc_arc) [key release]; [value release]; [super dealloc]; +#endif } - (void)setValue:(NSString *)v { if (value != v) { +#if ! __has_feature(objc_arc) [value release]; +#endif value = [v copy]; } } @@ -88,7 +104,9 @@ - (void)setKey:(NSString *)k { if (key != k) { +#if ! __has_feature(objc_arc) [key release]; +#endif key = [k copy]; } if (key == nil) diff --git a/tikzit/src/common/NSString+LatexConstants.m b/tikzit/src/common/NSString+LatexConstants.m index bd598b7..634c189 100644 --- a/tikzit/src/common/NSString+LatexConstants.m +++ b/tikzit/src/common/NSString+LatexConstants.m @@ -197,10 +197,14 @@ static NSSet *texModifiers = nil; } NSString *ret = [buf copy]; +#if __has_feature(objc_arc) + return ret; +#else [buf release]; [wordBuf release]; return [ret autorelease]; +#endif } @end diff --git a/tikzit/src/common/NSString+Tikz.m b/tikzit/src/common/NSString+Tikz.m index 520ffd3..1e3073b 100644 --- a/tikzit/src/common/NSString+Tikz.m +++ b/tikzit/src/common/NSString+Tikz.m @@ -23,12 +23,21 @@ - (NSString*) tikzEscapedString { static NSCharacterSet *avoid = nil; if (avoid == nil) - avoid = [[[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<>-'0123456789. "] invertedSet] retain]; +#if __has_feature(objc_arc) + avoid = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<>-'0123456789. "] invertedSet]; +#else + avoid = [[[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<>-'0123456789. "] invertedSet] retain]; +#endif + if ([self rangeOfCharacterFromSet:avoid].length > 0) { return [NSString stringWithFormat:@"{%@}", self]; } else { +#if __has_feature(objc_arc) + return self; +#else return [[self retain] autorelease]; +#endif } } diff --git a/tikzit/src/common/Node.m b/tikzit/src/common/Node.m index 8c64b6b..c5b11d1 100644 --- a/tikzit/src/common/Node.m +++ b/tikzit/src/common/Node.m @@ -50,11 +50,13 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [name release]; [style release]; [data release]; [label release]; [super dealloc]; +#endif } - (Shape*) shape { @@ -67,7 +69,11 @@ - (Transformer*) shapeTransformerFromTransformer:(Transformer*)t { // we take a copy to keep the reflection attributes +#if ! __has_feature(objc_arc) Transformer *transformer = [[t copy] autorelease]; +#else + Transformer *transformer = [t copy]; +#endif NSPoint screenPos = [t toScreen:point]; [transformer setOrigin:screenPos]; float scale = [t scale]; @@ -101,7 +107,11 @@ } - (BOOL)attachStyleFromTable:(NSArray*)styles { - NSString *style_name = [[[data propertyForKey:@"style"] retain] autorelease]; +#if __has_feature(objc_arc) + NSString *style_name = [data propertyForKey:@"style"]; +#else + NSString *style_name = [[[data propertyForKey:@"style"] retain] autorelease]; +#endif [self setStyle:nil]; @@ -137,11 +147,19 @@ } + (Node*)nodeWithPoint:(NSPoint)p { - return [[[Node alloc] initWithPoint:p] autorelease]; +#if __has_feature(objc_arc) + return [[Node alloc] initWithPoint:p]; +#else + return [[[Node alloc] initWithPoint:p] autorelease]; +#endif } + (Node*)node { - return [[[Node alloc] init] autorelease]; +#if __has_feature(objc_arc) + return [[Node alloc] init]; +#else + return [[[Node alloc] init] autorelease]; +#endif } @@ -180,9 +198,13 @@ - (void)setStyle:(NodeStyle *)st { if (style != st) { - NodeStyle *oldStyle = style; - style = [st retain]; - [oldStyle release]; +#if __has_feature(objc_arc) + style = st; +#else + NodeStyle *oldStyle = style; + style = [st retain]; + [oldStyle release]; +#endif } [self updateData]; } diff --git a/tikzit/src/common/NodeStyle.m b/tikzit/src/common/NodeStyle.m index 26ab793..193d44d 100644 --- a/tikzit/src/common/NodeStyle.m +++ b/tikzit/src/common/NodeStyle.m @@ -87,12 +87,14 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [name release]; [category release]; [shapeName release]; [strokeColorRGB release]; [fillColorRGB release]; [super dealloc]; +#endif } - (NSString*) description { @@ -110,7 +112,11 @@ } + (NodeStyle*)defaultNodeStyleWithName:(NSString*)nm { - return [[[NodeStyle alloc] initWithName:nm] autorelease]; +#if __has_feature(objc_arc) + return [[NodeStyle alloc] initWithName:nm]; +#else + return [[[NodeStyle alloc] initWithName:nm] autorelease]; +#endif } - (NSString*)name { @@ -122,7 +128,9 @@ NSString *oldValue = name; name = [s copy]; [self postPropertyChanged:@"name" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; +#endif } } @@ -135,7 +143,9 @@ NSString *oldValue = shapeName; shapeName = [s copy]; [self postPropertyChanged:@"shapeName" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; +#endif } } @@ -148,8 +158,10 @@ NSString *oldValue = category; category = [s copy]; [self postPropertyChanged:@"category" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; - } +#endif + } } - (int)strokeThickness { return strokeThickness; } @@ -175,8 +187,10 @@ ColorRGB *oldValue = strokeColorRGB; strokeColorRGB = [c copy]; [self postPropertyChanged:@"strokeColorRGB" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; - } +#endif + } } - (ColorRGB*)fillColorRGB { @@ -188,8 +202,10 @@ ColorRGB *oldValue = fillColorRGB; fillColorRGB = [c copy]; [self postPropertyChanged:@"fillColorRGB" oldValue:oldValue]; +#if ! __has_feature(objc_arc) [oldValue release]; - } +#endif + } } - (NSString*)tikz { diff --git a/tikzit/src/common/PickSupport.m b/tikzit/src/common/PickSupport.m index 6470214..560fc2c 100644 --- a/tikzit/src/common/PickSupport.m +++ b/tikzit/src/common/PickSupport.m @@ -42,15 +42,24 @@ self = [super init]; if (self) { - selectedNodes = [[NSMutableSet set] retain]; - selectedEdges = [[NSMutableSet set] retain]; +#if __has_feature(objc_arc) + selectedNodes = [NSMutableSet set]; + selectedEdges = [NSMutableSet set]; +#else + selectedNodes = [[NSMutableSet set] retain]; + selectedEdges = [[NSMutableSet set] retain]; +#endif } return self; } + (PickSupport*)pickSupport { - return [[[PickSupport alloc] init] autorelease]; +#if __has_feature(objc_arc) + return [[PickSupport alloc] init]; +#else + return [[[PickSupport alloc] init] autorelease]; +#endif } @synthesize selectedNodes; @@ -176,7 +185,9 @@ } if (replace) { +#if ! __has_feature(objc_arc) [selectedNodes release]; +#endif selectedNodes = [nodes mutableCopy]; } else { [selectedNodes unionSet:nodes]; @@ -208,10 +219,12 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [selectedNodes release]; [selectedEdges release]; [super dealloc]; +#endif } @end diff --git a/tikzit/src/common/Preambles.m b/tikzit/src/common/Preambles.m index 651bbcd..922fc30 100644 --- a/tikzit/src/common/Preambles.m +++ b/tikzit/src/common/Preambles.m @@ -55,7 +55,11 @@ static NSString *POSTAMBLE = @implementation Preambles + (Preambles*)preambles { +#if __has_feature(objc_arc) + return [[self alloc] init]; +#else return [[[self alloc] init] autorelease]; +#endif } - (id)init { @@ -72,10 +76,12 @@ static NSString *POSTAMBLE = } - (void)dealloc { +#if ! __has_feature(objc_arc) [selectedPreambleName release]; [styles release]; [styleManager release]; [super dealloc]; +#endif } - (NSString*)preambleForName:(NSString*)name { @@ -101,14 +107,18 @@ static NSString *POSTAMBLE = } - (void)setStyles:(NSArray*)sty { +#if ! __has_feature(objc_arc) [sty retain]; [styles release]; +#endif styles = sty; } - (void)setEdges:(NSArray*)edg { +#if ! __has_feature(objc_arc) [edg retain]; [edges release]; +#endif edges = edg; } @@ -116,7 +126,9 @@ static NSString *POSTAMBLE = if (styleManager != nil) { [self setStyles:[styleManager nodeStyles]]; } +#if ! __has_feature(objc_arc) NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +#endif NSMutableString *buf = [NSMutableString string]; NSMutableString *colbuf = [NSMutableString string]; NSMutableSet *colors = [NSMutableSet setWithCapacity:2*[styles count]]; @@ -154,8 +166,12 @@ static NSString *POSTAMBLE = NSString *defs = [[NSString alloc] initWithFormat:@"%@\n%@", colbuf, buf]; +#if __has_feature(objc_arc) + return defs; +#else [pool drain]; return [defs autorelease]; +#endif } - (NSString*)defaultPreamble { @@ -170,7 +186,9 @@ static NSString *POSTAMBLE = - (NSString*)selectedPreambleName { return selectedPreambleName; } - (void)setSelectedPreambleName:(NSString *)sel { if (sel != selectedPreambleName) { +#if ! __has_feature(objc_arc) [selectedPreambleName release]; +#endif selectedPreambleName = [sel copy]; } } @@ -190,8 +208,10 @@ static NSString *POSTAMBLE = } - (void)setStyleManager:(StyleManager *)manager { +#if ! __has_feature(objc_arc) [manager retain]; [styleManager release]; +#endif styleManager = manager; } @@ -240,10 +260,14 @@ static NSString *POSTAMBLE = isSelected = YES; } NSString *preamble = [preambleDict objectForKey:old]; +#if ! __has_feature(objc_arc) [preamble retain]; +#endif [preambleDict removeObjectForKey:old]; [preambleDict setObject:preamble forKey:new]; +#if ! __has_feature(objc_arc) [preamble release]; +#endif if (isSelected) { [self setSelectedPreambleName:new]; } @@ -254,11 +278,15 @@ static NSString *POSTAMBLE = if ([name isEqualToString:@"default"]) return NO; // "name" may be held only by being the selected preamble... +#if ! __has_feature(objc_arc) [name retain]; +#endif if ([name isEqualToString:selectedPreambleName]) [self setSelectedPreambleName:nil]; [preambleDict removeObjectForKey:name]; +#if ! __has_feature(objc_arc) [name release]; +#endif return YES; } diff --git a/tikzit/src/common/PropertyHolder.m b/tikzit/src/common/PropertyHolder.m index 2b3442f..6aaf125 100644 --- a/tikzit/src/common/PropertyHolder.m +++ b/tikzit/src/common/PropertyHolder.m @@ -63,8 +63,10 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [notificationName release]; [super dealloc]; +#endif } @end diff --git a/tikzit/src/common/Shape.m b/tikzit/src/common/Shape.m index eb466e2..e887688 100644 --- a/tikzit/src/common/Shape.m +++ b/tikzit/src/common/Shape.m @@ -61,8 +61,12 @@ - (NSSet*)paths {return paths;} - (void)setPaths:(NSSet *)p { if (paths != p) { +#if __has_feature(objc_arc) + paths = p; +#else [paths release]; paths = [p retain]; +#endif [self calcBoundingRect]; } } @@ -79,16 +83,19 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [paths release]; [styleTikz release]; [super dealloc]; +#endif } NSDictionary *shapeDictionary = nil; + (void)addShapesInDir:(NSString*)shapeDir to:(NSMutableDictionary*)shapeDict { NSFileManager *fileManager = [NSFileManager defaultManager]; - NSArray *files = [fileManager directoryContentsAtPath:shapeDir]; + NSError *err = nil; + NSArray *files = [fileManager contentsOfDirectoryAtPath:shapeDir error:&err]; if (files != nil) { NSString *nm; @@ -100,7 +107,9 @@ NSDictionary *shapeDictionary = nil; [shapeDir stringByAppendingPathComponent:f]]; if (sh != nil) { [shapeDict setObject:sh forKey:nm]; +#if ! __has_feature(objc_arc) [sh release]; +#endif } } } @@ -121,7 +130,9 @@ NSDictionary *shapeDictionary = nil; shapes[3], SHAPE_UP_TRIANGLE, shapes[4], SHAPE_DOWN_TRIANGLE, nil]; +#if ! __has_feature(objc_arc) for (int i = 0; i<5; ++i) [shapes[i] release]; +#endif NSString *systemShapeDir = [[SupportDir systemSupportDir] stringByAppendingPathComponent:@"shapes"]; NSString *userShapeDir = [[SupportDir userSupportDir] stringByAppendingPathComponent:@"shapes"]; @@ -136,7 +147,9 @@ NSDictionary *shapeDictionary = nil; postNotificationName:@"ShapeDictionaryReplaced" object:self]; +#if ! __has_feature(objc_arc) [oldShapeDictionary release]; +#endif } + (NSDictionary*)shapeDictionary { @@ -146,7 +159,11 @@ NSDictionary *shapeDictionary = nil; + (Shape*)shapeForName:(NSString*)shapeName { Shape *s = [[[self shapeDictionary] objectForKey:shapeName] copy]; +#if __has_feature(objc_arc) + return s; +#else return [s autorelease]; +#endif } @end diff --git a/tikzit/src/common/StyleManager.m b/tikzit/src/common/StyleManager.m index ae0d488..05c6c86 100644 --- a/tikzit/src/common/StyleManager.m +++ b/tikzit/src/common/StyleManager.m @@ -90,7 +90,11 @@ } + (StyleManager*) manager { +#if __has_feature(objc_arc) + return [[self alloc] init]; +#else return [[[self alloc] init] autorelease]; +#endif } - (id) init { @@ -107,15 +111,18 @@ - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; - +#if ! __has_feature(objc_arc) [nodeStyles release]; [edgeStyles release]; [super dealloc]; +#endif } - (void) loadDefaultEdgeStyles { +#if ! __has_feature(objc_arc) [edgeStyles release]; +#endif edgeStyles = [[NSMutableArray alloc] initWithCapacity:3]; EdgeStyle *simple = [EdgeStyle defaultEdgeStyleWithName:@"simple"]; @@ -138,7 +145,9 @@ } - (void) loadDefaultNodeStyles { +#if ! __has_feature(objc_arc) [nodeStyles release]; +#endif nodeStyles = [[NSMutableArray alloc] initWithCapacity:3]; NodeStyle *rn = [NodeStyle defaultNodeStyleWithName:@"rn"]; @@ -212,8 +221,10 @@ - (void) _setNodeStyles:(NSMutableArray*)styles { [self ignoreAllNodeStyles]; +#if ! __has_feature(objc_arc) [nodeStyles release]; [styles retain]; +#endif nodeStyles = styles; for (NodeStyle *style in styles) { [self listenToNodeStyle:style]; @@ -223,8 +234,10 @@ - (void) _setEdgeStyles:(NSMutableArray*)styles { [self ignoreAllEdgeStyles]; +#if ! __has_feature(objc_arc) [edgeStyles release]; [styles retain]; +#endif edgeStyles = styles; for (EdgeStyle *style in styles) { [self listenToEdgeStyle:style]; @@ -257,10 +270,14 @@ } [self ignoreNodeStyle:style]; +#if ! __has_feature(objc_arc) [style retain]; +#endif [nodeStyles removeObject:style]; [self postNodeStyleRemoved:style]; +#if ! __has_feature(objc_arc) [style release]; +#endif } - (EdgeStyle*) edgeStyleForName:(NSString*)name { @@ -288,10 +305,14 @@ } [self ignoreEdgeStyle:style]; +#if ! __has_feature(objc_arc) [style retain]; +#endif [edgeStyles removeObject:style]; [self postEdgeStyleRemoved:style]; +#if ! __has_feature(objc_arc) [style release]; +#endif } - (void) updateFromManager:(StyleManager*)m { @@ -302,7 +323,11 @@ [currentStyle updateFromStyle:style]; [ns addObject:currentStyle]; } else { +#if __has_feature(objc_arc) + [ns addObject:[style copy]]; +#else [ns addObject:[[style copy] autorelease]]; +#endif } } NSMutableArray *es = [NSMutableArray arrayWithCapacity:[[m edgeStyles] count]]; @@ -312,8 +337,12 @@ [currentStyle updateFromStyle:style]; [es addObject:currentStyle]; } else { - [es addObject:[[style copy] autorelease]]; - } +#if __has_feature(objc_arc) + [es addObject:[style copy]]; +#else + [es addObject:[[style copy] autorelease]]; +#endif + } } [self _setNodeStyles:ns]; [self _setEdgeStyles:es]; @@ -324,11 +353,19 @@ NSMutableArray *ns = [NSMutableArray arrayWithCapacity:[nodeStyles count]]; for (NodeStyle *style in nodeStyles) { - [ns addObject:[[style copyWithZone:zone] autorelease]]; +#if __has_feature(objc_arc) + [ns addObject:[style copyWithZone:zone]]; +#else + [ns addObject:[[style copyWithZone:zone] autorelease]]; +#endif } NSMutableArray *es = [NSMutableArray arrayWithCapacity:[edgeStyles count]]; for (EdgeStyle *style in edgeStyles) { - [es addObject:[[style copyWithZone:zone] autorelease]]; +#if __has_feature(objc_arc) + [es addObject:[style copyWithZone:zone]]; +#else + [es addObject:[[style copyWithZone:zone] autorelease]]; +#endif } [m _setNodeStyles:ns]; [m _setEdgeStyles:es]; diff --git a/tikzit/src/common/TikzGraphAssembler.m b/tikzit/src/common/TikzGraphAssembler.m index 380b71c..c5d2811 100644 --- a/tikzit/src/common/TikzGraphAssembler.m +++ b/tikzit/src/common/TikzGraphAssembler.m @@ -31,14 +31,20 @@ @implementation TikzGraphAssembler - (id)init { +#if ! __has_feature(objc_arc) [self release]; +#endif return nil; } - (id)initWithGraph:(Graph*)g { self = [super init]; if (self) { +#if __has_feature(objc_arc) + graph = g; +#else graph = [g retain]; +#endif nodeMap = [[NSMutableDictionary alloc] init]; yylex_init (&scanner); yyset_extra(self, scanner); @@ -47,29 +53,39 @@ } - (void)dealloc { +#if ! __has_feature(objc_arc) [graph release]; [nodeMap release]; [lastError release]; yylex_destroy (scanner); [super dealloc]; +#endif } - (BOOL) parseTikz:(NSString*)t error:(NSError**)error { +#if ! __has_feature(objc_arc) NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +#endif tikzStr = [t UTF8String]; yy_scan_string(tikzStr, scanner); int result = yyparse(scanner); tikzStr = NULL; +#if ! __has_feature(objc_arc) [pool drain]; +#endif if (result == 0) { return YES; } else { if (error) { if (lastError) { +#if __has_feature(objc_arc) + *error = lastError; +#else *error = [[lastError retain] autorelease]; +#endif } else if (result == 1) { *error = [NSError errorWithMessage:@"Syntax error" code:TZ_ERR_PARSE]; @@ -91,10 +107,16 @@ + (Graph*) parseTikz:(NSString*)tikz error:(NSError**)e { Graph *gr = [[Graph alloc] init]; if ([self parseTikz:tikz forGraph:gr error:e]) { +#if __has_feature(objc_arc) + return gr; +#else return [gr autorelease]; +#endif } else { +#if ! __has_feature(objc_arc) [gr release]; - return nil; +#endif + return nil; } } + (Graph*) parseTikz:(NSString*)tikz { @@ -109,8 +131,10 @@ TikzGraphAssembler *assembler = [[self alloc] initWithGraph:gr]; BOOL success = [assembler parseTikz:tikz error:error]; +#if ! __has_feature(objc_arc) [assembler release]; - return success; +#endif + return success; } + (BOOL)validateTikzPropertyNameOrValue:(NSString*)tikz { @@ -171,8 +195,10 @@ } - (void) setLastError:(NSError*)error { +#if ! __has_feature(objc_arc) [error retain]; [lastError release]; +#endif lastError = error; } diff --git a/tikzit/src/common/TikzShape.h b/tikzit/src/common/TikzShape.h index 1ccf658..6a91f91 100644 --- a/tikzit/src/common/TikzShape.h +++ b/tikzit/src/common/TikzShape.h @@ -25,8 +25,11 @@ #import "Shape.h" @interface TikzShape : Shape { + NSString *tikzSrc; } +@property (copy) NSString *tikzSrc; + - (id)initWithTikzFile:(NSString*)file; @end diff --git a/tikzit/src/common/TikzShape.m b/tikzit/src/common/TikzShape.m index 9735371..555a7df 100644 --- a/tikzit/src/common/TikzShape.m +++ b/tikzit/src/common/TikzShape.m @@ -26,6 +26,8 @@ @implementation TikzShape +@synthesize tikzSrc; + - (id)initWithTikzFile:(NSString*)file { self = [super init]; if (self) { @@ -33,6 +35,8 @@ encoding:NSUTF8StringEncoding error:NULL]; if (tikz == nil) return nil; + + tikzSrc = [tikz copy]; Graph *graph = [Graph graphFromTikz:tikz]; if (graph == nil) return nil; @@ -51,7 +55,11 @@ -NSMidY(bds)); [t setOrigin:shift]; [graph applyTransformer:t]; +#if __has_feature(objc_arc) + paths = [graph pathCover]; +#else paths = [[graph pathCover] retain]; +#endif } return self; } diff --git a/tikzit/src/common/Transformer.m b/tikzit/src/common/Transformer.m index 403ae87..2b56813 100644 --- a/tikzit/src/common/Transformer.m +++ b/tikzit/src/common/Transformer.m @@ -28,11 +28,19 @@ float const PIXELS_PER_UNIT = 50; @implementation Transformer + (Transformer*)transformer { - return [[[Transformer alloc] init] autorelease]; +#if __has_feature(objc_arc) + return [[Transformer alloc] init]; +#else + return [[[Transformer alloc] init] autorelease]; +#endif } + (Transformer*)transformerWithTransformer:(Transformer*)t { - return [[t copy] autorelease]; +#if __has_feature(objc_arc) + return [t copy]; +#else + return [[t copy] autorelease]; +#endif } + (Transformer*)transformerWithOrigin:(NSPoint)o andScale:(float)scale { diff --git a/tikzit/src/common/tikzlexer.lm b/tikzit/src/common/tikzlexer.lm index 96690d2..1e92f73 100644 --- a/tikzit/src/common/tikzlexer.lm +++ b/tikzit/src/common/tikzlexer.lm @@ -37,6 +37,7 @@ %option header-file="common/tikzlexer.h" %option extra-type="TikzGraphAssembler *" + %s props %s xcoord %s ycoord diff --git a/tikzit/src/common/tikzparser.ym b/tikzit/src/common/tikzparser.ym index a6dc1ee..344e969 100644 --- a/tikzit/src/common/tikzparser.ym +++ b/tikzit/src/common/tikzparser.ym @@ -41,11 +41,11 @@ /* possible data types for semantic values */ %union { - NSPoint pt; - NSString *nsstr; - GraphElementProperty *prop; - GraphElementData *data; - Node *node; + NSString *nsstr; + GraphElementProperty *prop; + GraphElementData *data; + Node *node; + NSPoint pt; struct noderef noderef; } @@ -166,7 +166,9 @@ node: "\\node" optproperties nodename "at" COORD DELIMITEDSTRING ";" [node setLabel:$6]; [assembler addNodeToMap:node]; [[assembler graph] addNode:node]; +#if ! __has_feature(objc_arc) [node release]; +#endif }; optanchor: { $$ = nil; } | "." REFSTRING { $$ = $2; }; @@ -204,7 +206,9 @@ edge: "\\draw" optproperties noderef "to" optedgenode optnoderef ";" } [edge setAttributesFromData]; [[assembler graph] addEdge:edge]; +#if ! __has_feature(objc_arc) [edge release]; +#endif }; ignoreprop: val | val "=" val; diff --git a/tikzit/src/common/tikzparserdefs.h b/tikzit/src/common/tikzparserdefs.h index 587bcd6..cde3345 100644 --- a/tikzit/src/common/tikzparserdefs.h +++ b/tikzit/src/common/tikzparserdefs.h @@ -37,8 +37,13 @@ @class Node; struct noderef { - Node *node; - NSString *anchor; +#if __has_feature(objc_arc) + __unsafe_unretained Node *node; + __unsafe_unretained NSString *anchor; +#else + Node *node; + NSString *anchor; +#endif }; // vi:ft=objc:noet:ts=4:sts=4:sw=4 diff --git a/tikzit/src/osx/AppDelegate.h b/tikzit/src/osx/AppDelegate.h index 64acc38..92d9add 100644 --- a/tikzit/src/osx/AppDelegate.h +++ b/tikzit/src/osx/AppDelegate.h @@ -28,7 +28,7 @@ #import "PreambleController.h" #import "PreviewController.h" #import "GraphicsView.h" -#import "PreferenceController.h"; +#import "PreferenceController.h" @interface AppDelegate : NSObject { NSMapTable *table; @@ -43,7 +43,7 @@ } @property IBOutlet StylePaletteController *stylePaletteController; -@property IBOutlet ToolPaletteController *toolPaletteController; +@property (strong) IBOutlet ToolPaletteController *toolPaletteController; - (void)awakeFromNib; + (void)setDefaults; diff --git a/tikzit/src/osx/AppDelegate.m b/tikzit/src/osx/AppDelegate.m index 35484b7..94f5507 100644 --- a/tikzit/src/osx/AppDelegate.m +++ b/tikzit/src/osx/AppDelegate.m @@ -110,7 +110,7 @@ } - (IBAction)togglePreamble:(id)sender { - [self toggleController:preambleController]; + [self toggleController:(NSWindowController *) preambleController]; } - (IBAction)togglePreferences:(id)sender { diff --git a/tikzit/src/osx/CustomNodeCellView.h b/tikzit/src/osx/CustomNodeCellView.h new file mode 100644 index 0000000..22606d7 --- /dev/null +++ b/tikzit/src/osx/CustomNodeCellView.h @@ -0,0 +1,23 @@ +// +// CustomNodeCellView.h +// TikZiT +// +// Created by Johan Paulsson on 12/12/13. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import <Cocoa/Cocoa.h> + +#import "NodeLayer.h" +#import "NodeStyle.h" +#import "NodeStyle+Coder.h" + +@interface CustomNodeCellView : NSTableCellView{ + NodeLayer *nodeLayer; + NodeStyle *nodeStyle; + BOOL selected; +} + +@property (strong) id objectValue; + +@end diff --git a/tikzit/src/osx/CustomNodeCellView.m b/tikzit/src/osx/CustomNodeCellView.m new file mode 100644 index 0000000..612394b --- /dev/null +++ b/tikzit/src/osx/CustomNodeCellView.m @@ -0,0 +1,83 @@ +// +// CustomNodeCellView.m +// TikZiT +// +// Created by Johan Paulsson on 12/12/13. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import "CustomNodeCellView.h" + +@implementation CustomNodeCellView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + // Initialization code here. + } + return self; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [super drawRect:dirtyRect]; + + // Drawing code here. +} + +- (id) objectValue{ + return [super objectValue]; +} + +-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context { + if (nodeLayer!=nil) { + if (![[[self layer] sublayers] containsObject:nodeLayer]) { + [[self layer] addSublayer:nodeLayer]; + NSPoint c = NSMakePoint((CGRectGetMinX([[self layer] frame])+CGRectGetWidth([nodeLayer bounds])/2), + CGRectGetMidY([[self layer] frame])); + //c = NSMakePoint(-16.5,-16.5); + [nodeLayer setCenter:c andAnimateWhen:NO]; + [[self textField] setFrame:NSMakeRect(CGRectGetWidth([nodeLayer bounds]), CGRectGetMidY([[self layer] frame]), CGRectGetWidth([[self textField] frame]), CGRectGetHeight([[self textField] frame]))]; + } + + if (selected){ + [nodeStyle setStrokeColor:[NSColor whiteColor]]; + [[nodeLayer node] setStyle:nodeStyle]; + }else{ + [nodeStyle setStrokeColor:[NSColor blackColor]]; + [[nodeLayer node] setStyle:nodeStyle]; + } + + [nodeLayer updateFrame]; + } +} + +- (void) setObjectValue:(id)objectValue{ + if(objectValue == nil) + return; + + nodeStyle = (NodeStyle *)objectValue; + [[self textField] setStringValue:[nodeStyle shapeName]]; + + if (nodeLayer == nil) { + nodeLayer = [[NodeLayer alloc] initWithNode:[Node node] + transformer:[Transformer defaultTransformer]]; + [nodeLayer setRescale:NO]; + } + [nodeStyle setName:[nodeStyle shapeName]]; + + [[nodeLayer node] setStyle:nodeStyle]; + [nodeLayer updateFrame]; + + NSLog(@"asd"); +} + +- (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle { + [super setBackgroundStyle:backgroundStyle]; + + selected = (backgroundStyle == NSBackgroundStyleDark); + [self setNeedsDisplay:YES]; +} + +@end diff --git a/tikzit/src/osx/CustomNodeController.h b/tikzit/src/osx/CustomNodeController.h new file mode 100644 index 0000000..67adf0b --- /dev/null +++ b/tikzit/src/osx/CustomNodeController.h @@ -0,0 +1,35 @@ +// +// CustomNodeController.h +// TikZiT +// +// Created by Johan Paulsson on 12/4/13. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import <Cocoa/Cocoa.h> +#import "Shape.h" +#import "TikzShape.h" + +#import "GraphicsView.h" +#import "TikzSourceController.h" + +#import "SupportDir.h" + +@interface CustomNodeController : NSViewController <NSTableViewDelegate>{ + NSDictionary *nodeStyles; + NSMutableArray* customNodeStyles; + + GraphicsView *__weak graphicsView; + TikzSourceController *__weak tikzSourceController; + NSTableView *customNodeTable; +} + +@property NSDictionary *nodeStyles; +@property NSMutableArray* customNodeStyles; + +@property IBOutlet NSTableView *customNodeTable; + +@property (weak) IBOutlet GraphicsView *graphicsView; +@property (weak) IBOutlet TikzSourceController *tikzSourceController; + +@end diff --git a/tikzit/src/osx/CustomNodeController.m b/tikzit/src/osx/CustomNodeController.m new file mode 100644 index 0000000..4f46acc --- /dev/null +++ b/tikzit/src/osx/CustomNodeController.m @@ -0,0 +1,58 @@ +// +// CustomNodeController.m +// TikZiT +// +// Created by Johan Paulsson on 12/4/13. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import "CustomNodeController.h" +#import "NodeStyle.h" + +@interface CustomNodeController () + +@end + +@implementation CustomNodeController + +@synthesize nodeStyles, customNodeStyles; +@synthesize graphicsView, tikzSourceController; +@synthesize customNodeTable; + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { + nodeStyles = [Shape shapeDictionary]; + customNodeStyles = [NSMutableArray array]; + + for(id key in nodeStyles) { + Shape *value = [nodeStyles objectForKey:key]; + + if([value isKindOfClass:[TikzShape class]]){ + NodeStyle *newNodeStyle = [[NodeStyle alloc] init]; + [newNodeStyle setShapeName:key]; + + [customNodeStyles addObject:newNodeStyle]; + } + } + } + + return self; +} + +- (void)tableViewSelectionDidChange:(NSNotification *)aNotification{ + NSInteger selectedRow = [customNodeTable selectedRow]; + + NodeStyle* selectedNodeStyle = [customNodeStyles objectAtIndex:selectedRow]; + TikzShape *tikzshape = (TikzShape *) [nodeStyles objectForKey:[selectedNodeStyle shapeName]]; + + [[tikzSourceController graphicsView] setEnabled:NO]; + [tikzSourceController setTikz:[tikzshape tikzSrc]]; + [tikzSourceController parseTikz:self]; +} + +- (id)valueForUndefinedKey:(NSString *)key{ + return nil; +} + +@end diff --git a/tikzit/src/osx/CustomNodes.xib b/tikzit/src/osx/CustomNodes.xib new file mode 100644 index 0000000..1cc8db2 --- /dev/null +++ b/tikzit/src/osx/CustomNodes.xib @@ -0,0 +1,249 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5053" systemVersion="13B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> + <dependencies> + <deployment defaultVersion="1070" identifier="macosx"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5053"/> + </dependencies> + <objects> + <customObject id="-2" userLabel="File's Owner" customClass="CustomNodeController"> + <connections> + <outlet property="graphicsView" destination="3MT-Yc-Dhv" id="9gg-fS-oBl"/> + <outlet property="tikzSourceController" destination="il5-cQ-3oh" id="Wny-jd-sKZ"/> + <outlet property="view" destination="1" id="sH5-DU-xwB"/> + </connections> + </customObject> + <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> + <customObject id="-3" userLabel="Application"/> + <arrayController objectClassName="NodeStyle" id="iyU-U5-XAU" userLabel="Node Style Array Controller"> + <declaredKeys> + <string>name</string> + <string>strokeThickness</string> + <string>strokeColor</string> + <string>fillColor</string> + <string>strokeColorIsKnown</string> + <string>fillColorIsKnown</string> + <string>representedObject.name</string> + <string>shapeName</string> + <string>scale</string> + <string>@distinctUnionOfObjects.category</string> + <string>category</string> + </declaredKeys> + <connections> + <binding destination="-2" name="contentArray" keyPath="onodeStyles" id="Yzy-xv-qEa"/> + </connections> + </arrayController> + <customObject id="il5-cQ-3oh" customClass="TikzSourceController"> + <connections> + <outlet property="errorMessage" destination="6rJ-4b-syy" id="cin-Wb-6uD"/> + <outlet property="errorNotification" destination="R3k-mz-hMn" id="jtn-fQ-Amk"/> + <outlet property="graphicsView" destination="3MT-Yc-Dhv" id="hK1-h1-Dsr"/> + <outlet property="sourceView" destination="QXu-0d-uF0" id="SEj-FL-5Ac"/> + <outlet property="status" destination="6rJ-4b-syy" id="lVN-cK-3Cb"/> + </connections> + </customObject> + <customView id="1"> + <rect key="frame" x="0.0" y="0.0" width="480" height="272"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <subviews> + <splitView dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DO1-FS-fZd"> + <rect key="frame" x="0.0" y="0.0" width="480" height="272"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <subviews> + <scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="32" horizontalPageScroll="10" verticalLineScroll="32" verticalPageScroll="10" usesPredominantAxisScrolling="NO" id="Ry0-48-577"> + <rect key="frame" x="0.0" y="0.0" width="117" height="272"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <clipView key="contentView" id="9D3-br-lEi"> + <rect key="frame" x="1" y="1" width="115" height="270"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="30" rowSizeStyle="automatic" viewBased="YES" id="ieg-vU-MzM"> + <rect key="frame" x="0.0" y="0.0" width="115" height="270"/> + <autoresizingMask key="autoresizingMask"/> + <size key="intercellSpacing" width="3" height="2"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/> + <tableColumns> + <tableColumn width="112" minWidth="40" maxWidth="1000" id="k91-pc-nbl"> + <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/> + </tableHeaderCell> + <textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="ZaR-9P-sAp"> + <font key="font" metaFont="system"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> + <prototypeCellViews> + <tableCellView id="0ce-nA-hcl" customClass="CustomNodeCellView"> + <rect key="frame" x="1" y="1" width="112" height="30"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KUl-Qh-CHH"> + <rect key="frame" x="36" y="3" width="87" height="17"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> + <textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Table View Cell" id="92K-au-Qpa"> + <font key="font" metaFont="system"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + <connections> + <binding destination="0ce-nA-hcl" name="value" keyPath="objectValue" id="06y-KE-8wP"/> + </connections> + </textFieldCell> + </textField> + </subviews> + <connections> + <outlet property="textField" destination="KUl-Qh-CHH" id="Cze-5m-UmF"/> + </connections> + </tableCellView> + </prototypeCellViews> + </tableColumn> + </tableColumns> + <connections> + <binding destination="-2" name="selectionIndexes" keyPath="selectedNode" id="C4J-62-GDG"/> + <outlet property="delegate" destination="-2" id="M05-fU-pjz"/> + </connections> + </tableView> + </subviews> + <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> + </clipView> + <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="QIL-7j-JmC"> + <rect key="frame" x="1" y="256" width="0.0" height="15"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="ElP-ub-Uwa"> + <rect key="frame" x="224" y="17" width="15" height="102"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + </scrollView> + <view fixedFrame="YES" id="F5P-T2-9eB"> + <rect key="frame" x="118" y="0.0" width="362" height="272"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <splitView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KKi-SZ-dS6"> + <rect key="frame" x="0.0" y="0.0" width="362" height="272"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <customView fixedFrame="YES" id="d61-FR-v2c"> + <rect key="frame" x="0.0" y="0.0" width="362" height="156"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <customView wantsLayer="YES" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3MT-Yc-Dhv" customClass="GraphicsView"> + <rect key="frame" x="0.0" y="0.0" width="362" height="155"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + </customView> + <customView wantsLayer="YES" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="R3k-mz-hMn" customClass="ParseErrorView"> + <rect key="frame" x="0.0" y="113" width="361" height="42"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> + <subviews> + <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6rJ-4b-syy"> + <rect key="frame" x="5" y="10" width="354" height="27"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="left" placeholderString="parser information" allowsEditingTextAttributes="YES" id="3y1-Zn-Hv4"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> + <button wantsLayer="YES" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Et8-Cc-Xac"> + <rect key="frame" x="340" y="21" width="17" height="19"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> + <buttonCell key="cell" type="squareTextured" bezelStyle="texturedSquare" image="NSStopProgressFreestandingTemplate" imagePosition="only" alignment="center" state="on" imageScaling="proportionallyDown" id="7vB-Le-tP4"> + <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="closeParseError:" target="il5-cQ-3oh" id="jdZ-7K-cwe"/> + </connections> + </button> + </subviews> + </customView> + </subviews> + </customView> + <customView fixedFrame="YES" id="Fal-9S-dwR"> + <rect key="frame" x="0.0" y="165" width="362" height="107"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <scrollView fixedFrame="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yLp-gf-r49"> + <rect key="frame" x="0.0" y="0.0" width="362" height="107"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <clipView key="contentView" ambiguous="YES" misplaced="YES" id="qOT-id-lqk"> + <rect key="frame" x="1" y="1" width="345" height="105"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <textView ambiguous="YES" importsGraphics="NO" richText="NO" findStyle="panel" allowsUndo="YES" usesRuler="YES" verticallyResizable="YES" allowsNonContiguousLayout="YES" spellingCorrection="YES" smartInsertDelete="YES" id="QXu-0d-uF0"> + <rect key="frame" x="0.0" y="0.0" width="345" height="105"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <size key="minSize" width="345" height="105"/> + <size key="maxSize" width="877" height="10000000"/> + <attributedString key="textStorage"> + <fragment> + <string key="content">\begin{tikzpicture} + +\end{tikzpicture}</string> + <attributes> + <font key="NSFont" metaFont="toolTip"/> + <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural"/> + </attributes> + </fragment> + </attributedString> + <color key="insertionPointColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> + <size key="minSize" width="345" height="105"/> + <size key="maxSize" width="877" height="10000000"/> + <connections> + <binding destination="il5-cQ-3oh" name="attributedString" keyPath="source" id="15z-o3-4ni"/> + <outlet property="delegate" destination="il5-cQ-3oh" id="9Mr-J3-zvR"/> + </connections> + </textView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </clipView> + <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="BYM-Xm-JpT"> + <rect key="frame" x="-100" y="-100" width="87" height="18"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + <scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="0.90909090909090906" horizontal="NO" id="SEU-Jq-fwu"> + <rect key="frame" x="346" y="1" width="15" height="105"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + </scrollView> + </subviews> + </customView> + </subviews> + <holdingPriorities> + <real value="250"/> + <real value="250"/> + </holdingPriorities> + </splitView> + <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="esG-a3-KD7"> + <rect key="frame" x="220" y="-184" width="128" height="14"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" id="7uu-y8-NcI"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> + </subviews> + </view> + </subviews> + <holdingPriorities> + <real value="250"/> + <real value="250"/> + </holdingPriorities> + </splitView> + </subviews> + <constraints> + <constraint firstAttribute="trailing" secondItem="DO1-FS-fZd" secondAttribute="trailing" id="Bow-1P-jx4"/> + <constraint firstAttribute="bottom" secondItem="DO1-FS-fZd" secondAttribute="bottom" id="c94-eC-Rhp"/> + <constraint firstItem="DO1-FS-fZd" firstAttribute="leading" secondItem="1" secondAttribute="leading" id="j1G-Ag-RLs"/> + <constraint firstItem="DO1-FS-fZd" firstAttribute="top" secondItem="1" secondAttribute="top" id="tBr-89-Ipp"/> + </constraints> + </customView> + </objects> + <resources> + <image name="NSStopProgressFreestandingTemplate" width="12" height="12"/> + </resources> +</document> diff --git a/tikzit/src/osx/EdgeControlLayer.m b/tikzit/src/osx/EdgeControlLayer.m index 377cde4..facdd84 100644 --- a/tikzit/src/osx/EdgeControlLayer.m +++ b/tikzit/src/osx/EdgeControlLayer.m @@ -29,7 +29,7 @@ - (id)initWithEdge:(Edge*)e andTransformer:(Transformer*)t { - [super init]; + if (!(self = [super init])) return nil; transformer = t; edge = e; self.opacity = 0.0f; diff --git a/tikzit/src/osx/EdgeStyle+Coder.m b/tikzit/src/osx/EdgeStyle+Coder.m index 208fac0..039344d 100644 --- a/tikzit/src/osx/EdgeStyle+Coder.m +++ b/tikzit/src/osx/EdgeStyle+Coder.m @@ -26,7 +26,7 @@ @implementation EdgeStyle (Coder) - (id)initWithCoder:(NSCoder*)coder { - [super init]; + if (!(self = [super init])) return nil; name = [coder decodeObjectForKey:@"name"]; category = [coder decodeObjectForKey:@"category"]; diff --git a/tikzit/src/osx/GraphicsView.h b/tikzit/src/osx/GraphicsView.h index e963ac7..329b1e5 100644 --- a/tikzit/src/osx/GraphicsView.h +++ b/tikzit/src/osx/GraphicsView.h @@ -96,7 +96,7 @@ typedef enum { } @property BOOL enabled; -@property Graph *graph; +@property (weak) Graph *graph; @property IBOutlet TikzSourceController *tikzSourceController; @property (readonly) Transformer *transformer; @property (readonly) PickSupport *pickSupport; diff --git a/tikzit/src/osx/Grid.m b/tikzit/src/osx/Grid.m index 3e412a3..aa35c1f 100644 --- a/tikzit/src/osx/Grid.m +++ b/tikzit/src/osx/Grid.m @@ -32,7 +32,7 @@ subdivisions:(int)subs transformer:(Transformer*)t { - [super init]; + if (!(self = [super init])) return nil; gridX = spacing; gridY = spacing; subdivisions = subs; diff --git a/tikzit/src/osx/NilToEmptyStringTransformer.m b/tikzit/src/osx/NilToEmptyStringTransformer.m index 97267e3..413f404 100644 --- a/tikzit/src/osx/NilToEmptyStringTransformer.m +++ b/tikzit/src/osx/NilToEmptyStringTransformer.m @@ -26,7 +26,7 @@ @implementation NilToEmptyStringTransformer - (id)init { - [super init]; + if (!(self = [super init])) return nil; return self; } diff --git a/tikzit/src/osx/NodeLayer.h b/tikzit/src/osx/NodeLayer.h index dfe05e8..dbcdac5 100644 --- a/tikzit/src/osx/NodeLayer.h +++ b/tikzit/src/osx/NodeLayer.h @@ -42,10 +42,10 @@ BOOL dirty; // need to rebuild CGBezierPath of the shape } -@property Node *node; +@property (strong) Node *node; @property (assign) NSPoint center; @property (assign) BOOL rescale; -@property (retain) NodeSelectionLayer *selection; +@property (strong) NodeSelectionLayer *selection; @property (readonly) CGMutablePathRef path; - (id)initWithNode:(Node*)n transformer:(Transformer*)t; diff --git a/tikzit/src/osx/NodeLayer.m b/tikzit/src/osx/NodeLayer.m index 2c37c26..5d15585 100644 --- a/tikzit/src/osx/NodeLayer.m +++ b/tikzit/src/osx/NodeLayer.m @@ -34,7 +34,7 @@ @synthesize node, selection, rescale; - (id)initWithNode:(Node *)n transformer:(Transformer*)t { - [super init]; + if (!(self = [super init])) return nil; node = n; selection = [[NodeSelectionLayer alloc] init]; [selection setNodeLayer:self]; @@ -233,7 +233,6 @@ - (void)dealloc { if (path != NULL) CFRelease(path); - [super dealloc]; } @end diff --git a/tikzit/src/osx/NodeSelectionLayer.m b/tikzit/src/osx/NodeSelectionLayer.m index 5efcbf7..02b8ac2 100644 --- a/tikzit/src/osx/NodeSelectionLayer.m +++ b/tikzit/src/osx/NodeSelectionLayer.m @@ -30,7 +30,7 @@ @synthesize nodeLayer; - (id)init { - [super init]; + if (!(self = [super init])) return nil; selected = NO; drawLock = [[NSLock alloc] init]; nodeLayer = nil; diff --git a/tikzit/src/osx/NodeStyle+Coder.m b/tikzit/src/osx/NodeStyle+Coder.m index 8da91c1..d3623f5 100644 --- a/tikzit/src/osx/NodeStyle+Coder.m +++ b/tikzit/src/osx/NodeStyle+Coder.m @@ -59,7 +59,7 @@ } - (id)initWithCoder:(NSCoder *)coder { - [super init]; + if (!(self = [super init])) return nil; // decode keys name = [coder decodeObjectForKey:@"name"]; diff --git a/tikzit/src/osx/PreambleController.h b/tikzit/src/osx/PreambleController.h index 3c7a7c3..5b0931d 100644 --- a/tikzit/src/osx/PreambleController.h +++ b/tikzit/src/osx/PreambleController.h @@ -38,8 +38,8 @@ @property (readonly) BOOL useDefaultPreamble; @property (readonly) Preambles *preambles; -@property (retain) NSAttributedString *preambleText; -@property (retain) NSIndexSet *selectionIndexes; +@property (strong) NSAttributedString *preambleText; +@property (strong) NSIndexSet *selectionIndexes; - (id)initWithNibName:(NSString *)nibName plist:(NSString*)plist styles:(NSArray*)sty edges:(NSArray*)edg; - (void)savePreambles:(NSString*)plist; diff --git a/tikzit/src/osx/PreambleController.m b/tikzit/src/osx/PreambleController.m index 3e55eaf..206bb30 100644 --- a/tikzit/src/osx/PreambleController.m +++ b/tikzit/src/osx/PreambleController.m @@ -29,7 +29,7 @@ @synthesize preambleText, preambles; - (id)initWithNibName:(NSString *)nibName plist:(NSString*)plist styles:(NSArray*)sty edges:(NSArray*)edg { - [super initWithNibName:nibName bundle:Nil]; + if (!(self = [super initWithNibName:nibName bundle:Nil])) return nil; preambles = (Preambles*)[NSKeyedUnarchiver unarchiveObjectWithFile:plist]; [preambles setStyles:sty]; diff --git a/tikzit/src/osx/Preambles+Coder.m b/tikzit/src/osx/Preambles+Coder.m index 6b9768a..5e468b2 100644 --- a/tikzit/src/osx/Preambles+Coder.m +++ b/tikzit/src/osx/Preambles+Coder.m @@ -27,7 +27,7 @@ @implementation Preambles (Coder) - (id)initWithCoder:(NSCoder *)coder { - [super init]; + if (!(self = [super init])) return nil; selectedPreambleName = [coder decodeObjectForKey:@"selectedPreamble"]; preambleDict = [coder decodeObjectForKey:@"preambles"]; return self; diff --git a/tikzit/src/osx/PreferenceController.h b/tikzit/src/osx/PreferenceController.h index 5a14b72..b2b23f3 100644 --- a/tikzit/src/osx/PreferenceController.h +++ b/tikzit/src/osx/PreferenceController.h @@ -25,6 +25,7 @@ #import <Cocoa/Cocoa.h> #import "UpdatePreferenceController.h" #import "PreambleController.h" +#import "CustomNodeController.h" @interface PreferenceController : NSWindowController{ @@ -32,13 +33,17 @@ IBOutlet NSView *generalView; IBOutlet NSView *updateView; IBOutlet NSView *preambleView; + IBOutlet NSView *customNodeView; UpdatePreferenceController *updateController; PreambleController *preambleController; + CustomNodeController *customNodeController; int currentViewTag; } +- (id)initWithWindowNibName:(NSString *)windowNibName preambleController:(PreambleController *)pc; + - (IBAction)switchView:(id)sender; @end diff --git a/tikzit/src/osx/PreferenceController.m b/tikzit/src/osx/PreferenceController.m index ab992ed..e785358 100644 --- a/tikzit/src/osx/PreferenceController.m +++ b/tikzit/src/osx/PreferenceController.m @@ -30,8 +30,8 @@ @implementation PreferenceController -- (id)initWithWindowNibName:(NSString *)windowNibName preambleController:(PreambleController*)pc{ - [super initWithWindowNibName:windowNibName]; +- (id)initWithWindowNibName:(NSString *)windowNibName preambleController:(PreambleController *)pc{ + if (!(self = [super initWithWindowNibName:windowNibName])) return nil; preambleController = pc; @@ -69,6 +69,9 @@ case 3: view = preambleView; break; + case 4: + view = customNodeView; + break; } return view; @@ -96,9 +99,14 @@ [[[self window] contentView] replaceSubview:preambleView with:[preambleController view]]; preambleView = [preambleController view]; - [[self window] setContentSize:[preambleView frame].size]; - [[[self window] contentView] addSubview:preambleView]; - currentViewTag = 3; + customNodeController = [[CustomNodeController alloc] initWithNibName:@"CustomNodes" bundle:nil]; + [[customNodeController view] setFrame:[customNodeView frame]]; + [[[self window] contentView] replaceSubview:customNodeView with:[customNodeController view]]; + customNodeView = [customNodeController view]; + + [[self window] setContentSize:[engineView frame].size]; + [[[self window] contentView] addSubview:engineView]; + currentViewTag = 1; } - (IBAction)switchView:(id)sender { diff --git a/tikzit/src/osx/Preferences.xib b/tikzit/src/osx/Preferences.xib index 8247c8d..1be3f9f 100644 --- a/tikzit/src/osx/Preferences.xib +++ b/tikzit/src/osx/Preferences.xib @@ -2,13 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <data> <int key="IBDocument.SystemTarget">1070</int> - <string key="IBDocument.SystemVersion">13A603</string> - <string key="IBDocument.InterfaceBuilderVersion">4514</string> - <string key="IBDocument.AppKitVersion">1265</string> - <string key="IBDocument.HIToolboxVersion">695.00</string> + <string key="IBDocument.SystemVersion">13C64</string> + <string key="IBDocument.InterfaceBuilderVersion">5053</string> + <string key="IBDocument.AppKitVersion">1265.19</string> + <string key="IBDocument.HIToolboxVersion">697.40</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">4514</string> + <string key="NS.object.0">5053</string> </object> <array key="IBDocument.IntegratedClassDependencies"> <string>IBNSLayoutConstraint</string> @@ -100,7 +100,7 @@ <string key="NSToolbarItemMaxSize">{0, 0}</string> <bool key="NSToolbarItemEnabled">YES</bool> <bool key="NSToolbarItemAutovalidates">YES</bool> - <int key="NSToolbarItemTag">0</int> + <int key="NSToolbarItemTag">1</int> <bool key="NSToolbarIsUserRemovable">YES</bool> <int key="NSToolbarItemVisibilityPriority">0</int> </object> @@ -126,6 +126,28 @@ <bool key="NSToolbarIsUserRemovable">YES</bool> <int key="NSToolbarItemVisibilityPriority">0</int> </object> + <object class="NSToolbarItem" key="CBA2626C-DD4C-4ADD-BD5D-26D21216D9A8" id="845520355"> + <object class="NSMutableString" key="NSToolbarItemIdentifier"> + <characters key="NS.bytes">CBA2626C-DD4C-4ADD-BD5D-26D21216D9A8</characters> + </object> + <string key="NSToolbarItemLabel">Custom Nodes</string> + <string key="NSToolbarItemPaletteLabel">Custom Nodes</string> + <string key="NSToolbarItemToolTip"/> + <nil key="NSToolbarItemView"/> + <object class="NSCustomResource" key="NSToolbarItemImage"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">customshape</string> + </object> + <nil key="NSToolbarItemTarget"/> + <nil key="NSToolbarItemAction"/> + <string key="NSToolbarItemMinSize">{0, 0}</string> + <string key="NSToolbarItemMaxSize">{0, 0}</string> + <bool key="NSToolbarItemEnabled">YES</bool> + <bool key="NSToolbarItemAutovalidates">YES</bool> + <int key="NSToolbarItemTag">4</int> + <bool key="NSToolbarIsUserRemovable">YES</bool> + <int key="NSToolbarItemVisibilityPriority">0</int> + </object> <object class="NSToolbarItem" key="F85FE7C2-9847-4E58-8BF6-BE334E918CA7" id="641338426"> <object class="NSMutableString" key="NSToolbarItemIdentifier"> <characters key="NS.bytes">F85FE7C2-9847-4E58-8BF6-BE334E918CA7</characters> @@ -149,15 +171,17 @@ <int key="NSToolbarItemVisibilityPriority">0</int> </object> </dictionary> - <array key="NSToolbarIBAllowedItems"> + <array class="NSMutableArray" key="NSToolbarIBAllowedItems"> <reference ref="914743654"/> <reference ref="224936444"/> <reference ref="641338426"/> <reference ref="265637031"/> + <reference ref="845520355"/> </array> <array key="NSToolbarIBDefaultItems"> + <reference ref="914743654"/> <reference ref="265637031"/> - <reference ref="641338426"/> + <reference ref="845520355"/> <reference ref="224936444"/> </array> <array key="NSToolbarIBSelectableItems" id="0"/> @@ -178,33 +202,33 @@ <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <array class="NSMutableArray" key="NSSubviews"> - <object class="NSButton" id="764495169"> + <object class="NSButton" id="521024449"> <reference key="NSNextResponder" ref="103531975"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{18, 15}, {214, 18}}</string> + <string key="NSFrame">{{18, 106}, {219, 18}}</string> <reference key="NSSuperview" ref="103531975"/> <reference key="NSWindow"/> <reference key="NSNextKeyView"/> <string key="NSReuseIdentifierKey">_NS:9</string> <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="292348615"> + <object class="NSButtonCell" key="NSCell" id="550678479"> <int key="NSCellFlags">-2080374784</int> <int key="NSCellFlags2">268435456</int> - <string key="NSContents">Bring preview window to focus</string> + <string key="NSContents">Keep inspector windows on top</string> <object class="NSFont" key="NSSupport" id="924461577"> <string key="NSName">.LucidaGrandeUI</string> <double key="NSSize">13</double> <int key="NSfFlags">1044</int> </object> <string key="NSCellIdentifier">_NS:9</string> - <reference key="NSControlView" ref="764495169"/> + <reference key="NSControlView" ref="521024449"/> <int key="NSButtonFlags">1211912448</int> <int key="NSButtonFlags2">2</int> - <object class="NSCustomResource" key="NSNormalImage"> + <object class="NSCustomResource" key="NSNormalImage" id="959728078"> <string key="NSClassName">NSImage</string> <string key="NSResourceName">NSSwitch</string> </object> - <object class="NSButtonImageSource" key="NSAlternateImage"> + <object class="NSButtonImageSource" key="NSAlternateImage" id="808033943"> <string key="NSImageName">NSSwitch</string> </object> <string key="NSAlternateContents"/> @@ -214,10 +238,64 @@ </object> <bool key="NSAllowsLogicalLayoutDirection">NO</bool> </object> + <object class="NSButton" id="118735803"> + <reference key="NSNextResponder" ref="103531975"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 126}, {168, 18}}</string> + <reference key="NSSuperview" ref="103531975"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="521024449"/> + <string key="NSReuseIdentifierKey">_NS:9</string> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="63691474"> + <int key="NSCellFlags">-2080374784</int> + <int key="NSCellFlags2">268435456</int> + <string key="NSContents">Autocomplete brackets</string> + <reference key="NSSupport" ref="924461577"/> + <string key="NSCellIdentifier">_NS:9</string> + <reference key="NSControlView" ref="118735803"/> + <int key="NSButtonFlags">1211912448</int> + <int key="NSButtonFlags2">2</int> + <reference key="NSNormalImage" ref="959728078"/> + <reference key="NSAlternateImage" ref="808033943"/> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + <bool key="NSAllowsLogicalLayoutDirection">NO</bool> + </object> + <object class="NSButton" id="764495169"> + <reference key="NSNextResponder" ref="103531975"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 18}, {214, 18}}</string> + <reference key="NSSuperview" ref="103531975"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> + <string key="NSReuseIdentifierKey">_NS:9</string> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="292348615"> + <int key="NSCellFlags">-2080374784</int> + <int key="NSCellFlags2">268435456</int> + <string key="NSContents">Bring preview window to focus</string> + <reference key="NSSupport" ref="924461577"/> + <string key="NSCellIdentifier">_NS:9</string> + <reference key="NSControlView" ref="764495169"/> + <int key="NSButtonFlags">1211912448</int> + <int key="NSButtonFlags2">2</int> + <reference key="NSNormalImage" ref="959728078"/> + <reference key="NSAlternateImage" ref="808033943"/> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + <bool key="NSAllowsLogicalLayoutDirection">NO</bool> + </object> <object class="NSTextField" id="762565485"> <reference key="NSNextResponder" ref="103531975"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 39}, {440, 22}}</string> + <string key="NSFrame">{{20, 42}, {440, 22}}</string> <reference key="NSSuperview" ref="103531975"/> <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="764495169"/> @@ -256,7 +334,7 @@ <object class="NSTextField" id="539123669"> <reference key="NSNextResponder" ref="103531975"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{18, 69}, {140, 17}}</string> + <string key="NSFrame">{{18, 72}, {140, 17}}</string> <reference key="NSSuperview" ref="103531975"/> <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="762565485"/> @@ -289,10 +367,10 @@ <int key="NSTextFieldAlignmentRectInsetsVersion">1</int> </object> </array> - <string key="NSFrameSize">{480, 96}</string> + <string key="NSFrameSize">{480, 162}</string> <reference key="NSSuperview"/> <reference key="NSWindow"/> - <reference key="NSNextKeyView" ref="539123669"/> + <reference key="NSNextKeyView" ref="118735803"/> <string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSClassName">NSView</string> </object> @@ -329,6 +407,17 @@ <string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSClassName">NSView</string> </object> + <object class="NSCustomView" id="443314002"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">12</int> + <array class="NSMutableArray" key="NSSubviews"/> + <string key="NSFrameSize">{557, 354}</string> + <reference key="NSSuperview"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> + <string key="NSReuseIdentifierKey">_NS:9</string> + <string key="NSClassName">NSView</string> + </object> <object class="NSUserDefaultsController" id="706090457"> <bool key="NSSharedInstance">YES</bool> </object> @@ -409,6 +498,22 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> + <string key="label">customNodeView</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="443314002"/> + </object> + <int key="connectionID">123</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">switchView:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="845520355"/> + </object> + <int key="connectionID">125</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> <string key="label">delegate</string> <reference key="source" ref="1005"/> <reference key="destination" ref="1001"/> @@ -447,6 +552,38 @@ </object> <int key="connectionID">62</int> </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: values.net.sourceforge.tikzit.autocomplete</string> + <reference key="source" ref="118735803"/> + <reference key="destination" ref="706090457"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="118735803"/> + <reference key="NSDestination" ref="706090457"/> + <string key="NSLabel">value: values.net.sourceforge.tikzit.autocomplete</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">values.net.sourceforge.tikzit.autocomplete</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">149</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: values.net.sourceforge.tikzit.inspectorsontop</string> + <reference key="source" ref="521024449"/> + <reference key="destination" ref="706090457"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="521024449"/> + <reference key="NSDestination" ref="706090457"/> + <string key="NSLabel">value: values.net.sourceforge.tikzit.inspectorsontop</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">values.net.sourceforge.tikzit.inspectorsontop</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">150</int> + </object> </array> <object class="IBMutableOrderedSet" key="objectRecords"> <array key="orderedObjects"> @@ -496,6 +633,7 @@ <reference ref="914743654"/> <reference ref="224936444"/> <reference ref="265637031"/> + <reference ref="845520355"/> </array> <reference key="parent" ref="1005"/> </object> @@ -513,6 +651,24 @@ <int key="objectID">13</int> <reference key="object" ref="103531975"/> <array class="NSMutableArray" key="children"> + <object class="IBNSLayoutConstraint" id="727314944"> + <reference key="firstItem" ref="103531975"/> + <int key="firstAttribute">4</int> + <int key="relation">0</int> + <reference key="secondItem" ref="764495169"/> + <int key="secondAttribute">4</int> + <float key="multiplier">1</float> + <string key="multiplierString">1</string> + <object class="IBNSLayoutSymbolicConstant" key="constant"> + <double key="value">20</double> + </object> + <float key="priority">1000</float> + <reference key="containingView" ref="103531975"/> + <int key="scoringType">8</int> + <float key="scoringTypeFloat">23</float> + <int key="contentType">3</int> + <bool key="placeholder">NO</bool> + </object> <object class="IBNSLayoutConstraint" id="728277728"> <reference key="firstItem" ref="764495169"/> <int key="firstAttribute">3</int> @@ -520,6 +676,7 @@ <reference key="secondItem" ref="762565485"/> <int key="secondAttribute">4</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">8</double> </object> @@ -537,6 +694,7 @@ <reference key="secondItem" ref="103531975"/> <int key="secondAttribute">5</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">20</double> </object> @@ -554,6 +712,7 @@ <reference key="secondItem" ref="762565485"/> <int key="secondAttribute">6</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">20</double> </object> @@ -571,6 +730,7 @@ <reference key="secondItem" ref="539123669"/> <int key="secondAttribute">4</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">8</double> </object> @@ -588,6 +748,7 @@ <reference key="secondItem" ref="103531975"/> <int key="secondAttribute">5</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">20</double> </object> @@ -598,43 +759,101 @@ <int key="contentType">3</int> <bool key="placeholder">NO</bool> </object> - <object class="IBNSLayoutConstraint" id="338893657"> + <object class="IBNSLayoutConstraint" id="559306534"> <reference key="firstItem" ref="539123669"/> - <int key="firstAttribute">3</int> + <int key="firstAttribute">5</int> <int key="relation">0</int> <reference key="secondItem" ref="103531975"/> - <int key="secondAttribute">3</int> + <int key="secondAttribute">5</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> + <object class="IBNSLayoutSymbolicConstant" key="constant"> + <double key="value">20</double> + </object> + <float key="priority">1000</float> + <reference key="containingView" ref="103531975"/> + <int key="scoringType">0</int> + <float key="scoringTypeFloat">29</float> + <int key="contentType">3</int> + <bool key="placeholder">NO</bool> + </object> + <object class="IBNSLayoutConstraint" id="852545348"> + <reference key="firstItem" ref="521024449"/> + <int key="firstAttribute">5</int> + <int key="relation">0</int> + <reference key="secondItem" ref="539123669"/> + <int key="secondAttribute">5</int> + <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBLayoutConstant" key="constant"> - <double key="value">10</double> + <double key="value">0.0</double> + </object> + <float key="priority">1000</float> + <reference key="containingView" ref="103531975"/> + <int key="scoringType">6</int> + <float key="scoringTypeFloat">24</float> + <int key="contentType">2</int> + <bool key="placeholder">NO</bool> + </object> + <object class="IBNSLayoutConstraint" id="750010708"> + <reference key="firstItem" ref="521024449"/> + <int key="firstAttribute">3</int> + <int key="relation">0</int> + <reference key="secondItem" ref="118735803"/> + <int key="secondAttribute">4</int> + <float key="multiplier">1</float> + <string key="multiplierString">1</string> + <object class="IBNSLayoutSymbolicConstant" key="constant"> + <double key="value">6</double> </object> <float key="priority">1000</float> <reference key="containingView" ref="103531975"/> - <int key="scoringType">3</int> - <float key="scoringTypeFloat">9</float> + <int key="scoringType">6</int> + <float key="scoringTypeFloat">24</float> <int key="contentType">3</int> <bool key="placeholder">NO</bool> </object> - <object class="IBNSLayoutConstraint" id="559306534"> - <reference key="firstItem" ref="539123669"/> + <object class="IBNSLayoutConstraint" id="295298081"> + <reference key="firstItem" ref="521024449"/> <int key="firstAttribute">5</int> <int key="relation">0</int> - <reference key="secondItem" ref="103531975"/> + <reference key="secondItem" ref="118735803"/> <int key="secondAttribute">5</int> <float key="multiplier">1</float> + <string key="multiplierString">1</string> + <object class="IBLayoutConstant" key="constant"> + <double key="value">0.0</double> + </object> + <float key="priority">1000</float> + <reference key="containingView" ref="103531975"/> + <int key="scoringType">6</int> + <float key="scoringTypeFloat">24</float> + <int key="contentType">2</int> + <bool key="placeholder">NO</bool> + </object> + <object class="IBNSLayoutConstraint" id="956205451"> + <reference key="firstItem" ref="118735803"/> + <int key="firstAttribute">3</int> + <int key="relation">0</int> + <reference key="secondItem" ref="103531975"/> + <int key="secondAttribute">3</int> + <float key="multiplier">1</float> + <string key="multiplierString">1</string> <object class="IBNSLayoutSymbolicConstant" key="constant"> <double key="value">20</double> </object> <float key="priority">1000</float> <reference key="containingView" ref="103531975"/> - <int key="scoringType">0</int> - <float key="scoringTypeFloat">29</float> + <int key="scoringType">8</int> + <float key="scoringTypeFloat">23</float> <int key="contentType">3</int> <bool key="placeholder">NO</bool> </object> <reference ref="539123669"/> <reference ref="762565485"/> <reference ref="764495169"/> + <reference ref="118735803"/> + <reference ref="521024449"/> </array> <reference key="parent" ref="0"/> </object> @@ -663,11 +882,6 @@ <reference key="parent" ref="103531975"/> </object> <object class="IBObjectRecord"> - <int key="objectID">31</int> - <reference key="object" ref="338893657"/> - <reference key="parent" ref="103531975"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">32</int> <reference key="object" ref="762565485"/> <array class="NSMutableArray" key="children"> @@ -744,6 +958,67 @@ <reference key="object" ref="265637031"/> <reference key="parent" ref="338765480"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">122</int> + <reference key="object" ref="443314002"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">124</int> + <reference key="object" ref="845520355"/> + <reference key="parent" ref="338765480"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">126</int> + <reference key="object" ref="727314944"/> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">127</int> + <reference key="object" ref="118735803"/> + <array class="NSMutableArray" key="children"> + <reference ref="63691474"/> + </array> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">128</int> + <reference key="object" ref="63691474"/> + <reference key="parent" ref="118735803"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">130</int> + <reference key="object" ref="956205451"/> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">131</int> + <reference key="object" ref="521024449"/> + <array class="NSMutableArray" key="children"> + <reference ref="550678479"/> + </array> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">132</int> + <reference key="object" ref="550678479"/> + <reference key="parent" ref="521024449"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">134</int> + <reference key="object" ref="295298081"/> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">135</int> + <reference key="object" ref="750010708"/> + <reference key="parent" ref="103531975"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">153</int> + <reference key="object" ref="852545348"/> + <reference key="parent" ref="103531975"/> + </object> </array> </object> <dictionary class="NSMutableDictionary" key="flattenedProperties"> @@ -758,23 +1033,39 @@ <string key="118.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="119.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="12.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="122.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <boolean value="NO" key="127.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> + <string key="127.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="128.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <array key="13.IBNSViewMetadataConstraints"> + <reference ref="956205451"/> + <reference ref="295298081"/> + <reference ref="750010708"/> + <reference ref="852545348"/> <reference ref="559306534"/> - <reference ref="338893657"/> <reference ref="783720041"/> <reference ref="921593038"/> <reference ref="206376115"/> <reference ref="116293249"/> <reference ref="728277728"/> + <reference ref="727314944"/> </array> <string key="13.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <boolean value="NO" key="131.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> + <string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="132.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="135.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="NO" key="15.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <string key="15.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="153.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="30.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="31.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="NO" key="32.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <string key="32.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="33.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -794,7 +1085,7 @@ <nil key="activeLocalization"/> <dictionary class="NSMutableDictionary" key="localizations"/> <nil key="sourceID"/> - <int key="maxID">121</int> + <int key="maxID">153</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <array class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -813,12 +1104,17 @@ </object> </object> <dictionary class="NSMutableDictionary" key="outlets"> + <string key="customNodeView">NSView</string> <string key="engineView">NSView</string> <string key="generalView">NSView</string> <string key="preambleView">NSView</string> <string key="updateView">NSView</string> </dictionary> <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> + <object class="IBToOneOutletInfo" key="customNodeView"> + <string key="name">customNodeView</string> + <string key="candidateClassName">NSView</string> + </object> <object class="IBToOneOutletInfo" key="engineView"> <string key="name">engineView</string> <string key="candidateClassName">NSView</string> @@ -859,6 +1155,7 @@ <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> <string key="NSPreferencesGeneral">{32, 32}</string> <string key="NSSwitch">{15, 15}</string> + <string key="customshape">{32, 32}</string> <string key="engine">{32, 32}</string> <string key="preamble">{32, 32}</string> <string key="updates">{32, 32}</string> diff --git a/tikzit/src/osx/PreviewController.m b/tikzit/src/osx/PreviewController.m index 310c2ab..cf069b1 100644 --- a/tikzit/src/osx/PreviewController.m +++ b/tikzit/src/osx/PreviewController.m @@ -33,7 +33,7 @@ static PreviewController *preview = nil; - (id)initWithWindowNibName:(NSString*)nib preambleController:(PreambleController*)pc tempDir:(NSString*)dir { - [super initWithWindowNibName:nib]; + if (!(self = [super initWithWindowNibName:nib])) return nil; tempDir = [dir copy]; typesetCount = 0; preambleController = pc; diff --git a/tikzit/src/osx/PropertyInspectorController.h b/tikzit/src/osx/PropertyInspectorController.h index 0625f9b..663ee4a 100644 --- a/tikzit/src/osx/PropertyInspectorController.h +++ b/tikzit/src/osx/PropertyInspectorController.h @@ -52,11 +52,11 @@ //@property (readonly) BOOL enableNodeDataControls; //@property (readonly) BOOL enableEdgeDataControls; -@property (retain) NSMutableArray *selectedNodes; -@property (retain) NSMutableArray *selectedEdges; -@property (retain) NSMutableArray *sourceAnchorNames; -@property (retain) NSMutableArray *targetAnchorNames; -@property (retain) StylePaletteController *stylePaletteController; +@property (strong) NSMutableArray *selectedNodes; +@property (strong) NSMutableArray *selectedEdges; +@property (strong) NSMutableArray *sourceAnchorNames; +@property (strong) NSMutableArray *targetAnchorNames; +@property (strong) StylePaletteController *stylePaletteController; - (id)initWithWindowNibName:(NSString *)windowNibName; - (void)graphSelectionChanged:(NSNotification*)notification; diff --git a/tikzit/src/osx/PropertyInspectorController.m b/tikzit/src/osx/PropertyInspectorController.m index 1411549..039a30f 100644 --- a/tikzit/src/osx/PropertyInspectorController.m +++ b/tikzit/src/osx/PropertyInspectorController.m @@ -25,7 +25,7 @@ @synthesize sourceAnchorNames, targetAnchorNames; - (id)initWithWindowNibName:(NSString *)windowNibName { - [super initWithWindowNibName:windowNibName]; + if (!(self = [super initWithWindowNibName:windowNibName])) return nil; noSelection = [[GraphElementData alloc] init]; [noSelection setProperty:@"" forKey:@"No Selection"]; @@ -56,7 +56,12 @@ [self setTargetAnchorNames: [[NSMutableArray alloc] initWithArray:[@"north south west east" componentsSeparatedByString:@" "]]]; - [[self window] setLevel:NSNormalWindowLevel]; + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"net.sourceforge.tikzit.inspectorsontop"] == YES) { + [[self window] setLevel:NSFloatingWindowLevel]; + } else { + [[self window] setLevel:NSNormalWindowLevel]; + } + [self showWindow:self]; return self; } diff --git a/tikzit/src/osx/SelectBoxLayer.m b/tikzit/src/osx/SelectBoxLayer.m index c198ffa..a7abe33 100644 --- a/tikzit/src/osx/SelectBoxLayer.m +++ b/tikzit/src/osx/SelectBoxLayer.m @@ -14,7 +14,7 @@ @synthesize active; - (id)init { - [super init]; + if (!(self = [super init])) return nil; box = CGRectMake(0.0f, 0.0f, 0.0f, 0.0f); active = NO; return self; @@ -42,7 +42,7 @@ } + (SelectBoxLayer*)layer { - return [[[SelectBoxLayer alloc] init] autorelease]; + return [[SelectBoxLayer alloc] init]; } @end diff --git a/tikzit/src/osx/SelectableNodeView.h b/tikzit/src/osx/SelectableNodeView.h index be7d1a1..6b0841d 100644 --- a/tikzit/src/osx/SelectableNodeView.h +++ b/tikzit/src/osx/SelectableNodeView.h @@ -32,7 +32,7 @@ } @property (assign) BOOL selected; -@property (retain) NodeStyle *nodeStyle; +@property (strong) NodeStyle *nodeStyle; @end diff --git a/tikzit/src/osx/SelectableNodeView.m b/tikzit/src/osx/SelectableNodeView.m index 6fdd283..797a137 100644 --- a/tikzit/src/osx/SelectableNodeView.m +++ b/tikzit/src/osx/SelectableNodeView.m @@ -30,7 +30,7 @@ @synthesize selected; - (id)initWithFrame:(NSRect)frameRect { - [super initWithFrame:frameRect]; + if (!(self = [super initWithFrame:frameRect])) return nil; nodeLayer = nil; return self; } diff --git a/tikzit/src/osx/StylePaletteController.h b/tikzit/src/osx/StylePaletteController.h index ed30b58..05f0684 100644 --- a/tikzit/src/osx/StylePaletteController.h +++ b/tikzit/src/osx/StylePaletteController.h @@ -43,11 +43,11 @@ NSString *displayedEdgeStyleCategory; } -@property (readonly) NSMutableArray *nodeStyles; -@property (readonly) NSMutableArray *edgeStyles; +@property (strong) NSMutableArray *nodeStyles; +@property (strong) NSMutableArray *edgeStyles; @property (readonly) BOOL documentActive; -@property (assign) NodeStyle *activeNodeStyle; -@property (assign) EdgeStyle *activeEdgeStyle; +@property (strong) NodeStyle *activeNodeStyle; +@property (strong) EdgeStyle *activeEdgeStyle; @property (copy) NSString *displayedNodeStyleCategory; @property (copy) NSString *displayedEdgeStyleCategory; @property (readonly) NSPredicate *displayedNodeStylePredicate; diff --git a/tikzit/src/osx/StylePaletteController.m b/tikzit/src/osx/StylePaletteController.m index 8f87bd9..4fe46be 100644 --- a/tikzit/src/osx/StylePaletteController.m +++ b/tikzit/src/osx/StylePaletteController.m @@ -50,7 +50,12 @@ if (nodeStyles == nil) nodeStyles = [NSMutableArray array]; if (edgeStyles == nil) edgeStyles = [NSMutableArray array]; - [[self window] setLevel:NSNormalWindowLevel]; + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"net.sourceforge.tikzit.inspectorsontop"] == YES) { + [[self window] setLevel:NSFloatingWindowLevel]; + } else { + [[self window] setLevel:NSNormalWindowLevel]; + } + [self showWindow:self]; } diff --git a/tikzit/src/osx/TikzDocument.h b/tikzit/src/osx/TikzDocument.h index d817b2e..1881994 100644 --- a/tikzit/src/osx/TikzDocument.h +++ b/tikzit/src/osx/TikzDocument.h @@ -32,6 +32,6 @@ } @property (readonly) NSString *tikz; -@property (readonly) GraphicsView *graphicsView; +@property (weak, readonly) GraphicsView *graphicsView; @end diff --git a/tikzit/src/osx/TikzFormatter.m b/tikzit/src/osx/TikzFormatter.m index 8972706..cb0865d 100644 --- a/tikzit/src/osx/TikzFormatter.m +++ b/tikzit/src/osx/TikzFormatter.m @@ -50,6 +50,10 @@ NSRange addedRange; NSString *addedString; + if(![[NSUserDefaults standardUserDefaults] boolForKey:@"net.sourceforge.tikzit.autocomplete"]){ + return YES; + } + addedRange = NSMakeRange(origSelRange.location, proposedSelRangePtr->location - origSelRange.location); addedString = [*partialStringPtr substringWithRange: addedRange]; @@ -76,10 +80,6 @@ } } - [cs autorelease]; - [scanner autorelease]; - [strippedString autorelease]; - if([strippedString length] % 2 == 1){ return NO; } diff --git a/tikzit/src/osx/TikzSourceController.h b/tikzit/src/osx/TikzSourceController.h index 3408d9f..84d36da 100644 --- a/tikzit/src/osx/TikzSourceController.h +++ b/tikzit/src/osx/TikzSourceController.h @@ -27,17 +27,17 @@ #import "ParseErrorView.h" @interface TikzSourceController : NSObject { - GraphicsView *graphicsView; - NSTextView *sourceView; + GraphicsView *__weak graphicsView; + NSTextView *__unsafe_unretained sourceView; NSAttributedString *source; - NSTextField *status; + NSTextField *__weak status; NSDictionary *textAttrs; NSColor *successColor; NSColor *failedColor; - NSTextField *errorMessage; - ParseErrorView *errorNotification; + NSTextField *__weak errorMessage; + ParseErrorView *__weak errorNotification; - NSUndoManager *documentUndoManager; + NSUndoManager *__weak documentUndoManager; BOOL tikzChanged; BOOL justUndid; @@ -46,14 +46,14 @@ } @property BOOL tikzChanged; -@property IBOutlet GraphicsView *graphicsView; -@property IBOutlet NSTextView *sourceView; -@property IBOutlet NSTextField *status; -@property NSUndoManager *documentUndoManager; +@property (weak) IBOutlet GraphicsView *graphicsView; +@property (unsafe_unretained) IBOutlet NSTextView *sourceView; +@property (weak) IBOutlet NSTextField *status; +@property (weak) NSUndoManager *documentUndoManager; @property (copy) NSAttributedString *source; @property (copy) NSString *tikz; -@property IBOutlet ParseErrorView *errorNotification; -@property IBOutlet NSTextField *errorMessage; +@property (weak) IBOutlet ParseErrorView *errorNotification; +@property (weak) IBOutlet NSTextField *errorMessage; - (void)updateTikzFromGraph; - (void)graphChanged:(NSNotification*)n; diff --git a/tikzit/src/osx/TikzSourceController.m b/tikzit/src/osx/TikzSourceController.m index 737d771..84eb3a5 100644 --- a/tikzit/src/osx/TikzSourceController.m +++ b/tikzit/src/osx/TikzSourceController.m @@ -142,8 +142,12 @@ } - (BOOL)tryParseTikz { + NSError *thisError; + Graph *g = [TikzGraphAssembler parseTikz:[self tikz] - error:&lastError]; + error:&thisError]; + + lastError = thisError; if (g) { [graphicsView deselectAll:self]; @@ -230,9 +234,8 @@ } } -- (void)finalize { +- (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; - [super finalize]; } @end diff --git a/tikzit/src/osx/TikzWindowController.h b/tikzit/src/osx/TikzWindowController.h index e35b7eb..eab427c 100644 --- a/tikzit/src/osx/TikzWindowController.h +++ b/tikzit/src/osx/TikzWindowController.h @@ -11,13 +11,13 @@ @class TikzDocument, GraphicsView, TikzSourceController; @interface TikzWindowController : NSWindowController { - GraphicsView *graphicsView; - TikzSourceController *tikzSourceController; + GraphicsView *__weak graphicsView; + TikzSourceController *__weak tikzSourceController; TikzDocument *document; } -@property IBOutlet GraphicsView *graphicsView; -@property IBOutlet TikzSourceController *tikzSourceController; +@property (weak) IBOutlet GraphicsView *graphicsView; +@property (weak) IBOutlet TikzSourceController *tikzSourceController; - (id)initWithDocument:(TikzDocument*)doc; diff --git a/tikzit/src/osx/TikzWindowController.m b/tikzit/src/osx/TikzWindowController.m index 2e672d2..bfacbfb 100644 --- a/tikzit/src/osx/TikzWindowController.m +++ b/tikzit/src/osx/TikzWindowController.m @@ -16,7 +16,7 @@ @synthesize graphicsView, tikzSourceController; - (id)initWithDocument:(TikzDocument*)doc { - [super initWithWindowNibName:@"TikzDocument"]; + if (!(self = [super initWithWindowNibName:@"TikzDocument"])) return nil; document = doc; return self; } diff --git a/tikzit/src/osx/ToolPaletteController.h b/tikzit/src/osx/ToolPaletteController.h index e45c08d..6301c6b 100644 --- a/tikzit/src/osx/ToolPaletteController.h +++ b/tikzit/src/osx/ToolPaletteController.h @@ -30,13 +30,13 @@ typedef enum { } TikzTool; @interface ToolPaletteController : NSObject { - NSPanel *toolPalette; - NSMatrix *toolMatrix; + NSPanel *__weak toolPalette; + NSMatrix *__weak toolMatrix; } @property TikzTool selectedTool; -@property IBOutlet NSPanel *toolPalette; -@property IBOutlet NSMatrix *toolMatrix; +@property (weak) IBOutlet NSPanel *toolPalette; +@property (weak) IBOutlet NSMatrix *toolMatrix; @end |