diff --git a/AppKit/CPBezierPath.j b/AppKit/CPBezierPath.j index d08580f62..c763e2da8 100644 --- a/AppKit/CPBezierPath.j +++ b/AppKit/CPBezierPath.j @@ -384,35 +384,40 @@ var DefaultLineWidth = 1.0; - (CPString)SVGString { - var pathString = "", - points = _points, - i = 0, - count = [self elementCount]; + var pathString = ""; + var elements = _path.elements; + var count = _path.count; - for (var elementIndex = 0; elementIndex < count; ++elementIndex) + for (var i = 0; i < count; i++) { - var type = [self elementAtIndex:elementIndex associatedPoints:points]; + var element = elements[i]; - switch (type) + // Use the kCGPathElement* constants defined in CGPath.j + switch (element.type) { - case CPMoveToBezierPathElement: - pathString += "M" + points[0].x + " " + points[0].y + " "; + case kCGPathElementMoveToPoint: + pathString += "M " + element.x + " " + element.y + " "; break; - case CPLineToBezierPathElement: - pathString += "L" + points[0].x + " " + points[0].y + " "; + case kCGPathElementAddLineToPoint: + pathString += "L " + element.x + " " + element.y + " "; break; - case CPCurveToBezierPathElement: - pathString += "C" + points[0].x + " " + points[0].y + " " + points[1].x + " " + points[1].y + " " + points[2].x + " " + points[2].y + " "; + case kCGPathElementAddQuadCurveToPoint: + pathString += "Q " + element.cpx + " " + element.cpy + " " + element.x + " " + element.y + " "; break; - case CPClosePathBezierPathElement: - pathString += "Z"; + case kCGPathElementAddCurveToPoint: + pathString += "C " + element.cp1x + " " + element.cp1y + " " + element.cp2x + " " + element.cp2y + " " + element.x + " " + element.y + " "; + break; + + case kCGPathElementCloseSubpath: + pathString += "Z "; break; } } - return pathString; + + return pathString.trim(); } @end diff --git a/Tests/Manual/CPAnimationContextTest/AppController.j b/Tests/Manual/CPAnimationContextTest/AppController.j index 5ef05a8a9..f65d6f8cd 100644 --- a/Tests/Manual/CPAnimationContextTest/AppController.j +++ b/Tests/Manual/CPAnimationContextTest/AppController.j @@ -115,7 +115,7 @@ [CPAnimationContext beginGrouping]; var context = [CPAnimationContext currentContext]; [context setDuration:2.0]; - var self = this; + [context setCompletionHandler:function() { var finalOrigin = [_testView frame].origin; @@ -145,7 +145,7 @@ [CPAnimationContext beginGrouping]; var context = [CPAnimationContext currentContext]; [context setDuration:2.0]; - var self = this; + [context setCompletionHandler:function() { var finalOrigin = [_testView frame].origin; @@ -175,7 +175,7 @@ [CPAnimationContext beginGrouping]; var context = [CPAnimationContext currentContext]; [context setDuration:2.0]; - var self = this; + [context setCompletionHandler:function() { var finalOrigin = [_testView frame].origin;