From 7d72cf067a30c6f66b9c5fbdce76e7d555cbb88f Mon Sep 17 00:00:00 2001 From: daboe01 Date: Thu, 27 Aug 2026 08:07:21 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20cappucci?= =?UTF-8?q?no/cappuccino@e107e2d8046ba84e0af7cc03372edee4af4f710d=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppKit/Browser.environment/AppKit.sj | 244 +++++---------- .../AppKit/CommonJS.environment/AppKit.sj | 244 +++++---------- Resources/recipes.txt | 296 +++++++++--------- 3 files changed, 308 insertions(+), 476 deletions(-) diff --git a/Frameworks/AppKit/Browser.environment/AppKit.sj b/Frameworks/AppKit/Browser.environment/AppKit.sj index 58a01f911..62d95b4da 100644 --- a/Frameworks/AppKit/Browser.environment/AppKit.sj +++ b/Frameworks/AppKit/Browser.environment/AppKit.sj @@ -55119,7 +55119,7 @@ CGColorSpaceStandardizeComponents = function(aColorSpace, components) break; } } -p;11;CGContext.jt;40163;@STATIC;1.0;i;19;CGAffineTransform.ji;17;CPCompatibility.ji;12;CGGeometry.ji;8;CGPath.ji;15;CGContextText.jt;40048;objj_executeFile("CGAffineTransform.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CGPath.j", YES);objj_executeFile("CGContextText.j", YES);{var the_typedef = objj_allocateTypeDef("CGContext"); +p;11;CGContext.jt;36450;@STATIC;1.0;i;19;CGAffineTransform.ji;17;CPCompatibility.ji;12;CGGeometry.ji;8;CGPath.ji;15;CGContextText.jt;36335;objj_executeFile("CGAffineTransform.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CGPath.j", YES);objj_executeFile("CGContextText.j", YES);{var the_typedef = objj_allocateTypeDef("CGContext"); objj_registerTypeDef(the_typedef); }kCGLineCapButt = 0; kCGLineCapRound = 1; @@ -55423,13 +55423,15 @@ CGContextStrokeRoundedRectangleInRect = function(aContext, aRect, aRadius, ne, s } if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) { - var CANVAS_LINECAP_TABLE = ["butt", "round", "square"], - CANVAS_LINEJOIN_TABLE = ["miter", "round", "bevel"], - CANVAS_COMPOSITE_TABLE = ["source-over", "source-over", "source-over", "source-over", "darker", "lighter", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "copy", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "source-over", "source-over"]; - var hasPath = function(aContext, methodName) + const CANVAS_LINECAP_TABLE = ["butt", "round", "square"]; + const CANVAS_LINEJOIN_TABLE = ["miter", "round", "bevel"]; + const CANVAS_COMPOSITE_TABLE = ["source-over", "source-over", "source-over", "source-over", "darker", "lighter", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "copy", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "source-over", "source-over"]; + const hasPath = function(aContext, methodName) { if (!aContext.hasPath) + { CPLog.error(methodName + ": no current point"); + } return aContext.hasPath; }; CGContextSaveGState = function(aContext) @@ -55451,16 +55453,6 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) aContext.setLineDash(someDashes); aContext.lineDashOffset = aPhase; } - else if (typeof aContext['webkitLineDash'] !== 'undefined') - { - aContext.webkitLineDash = someDashes; - aContext.webkitLineDashOffset = aPhase; - } - else if (typeof aContext['mozDash'] !== 'undefined') - { - aContext.mozDash = someDashes; - aContext.mozDashOffset = aPhase; - } else if (someDashes) { CPLog.warn("CGContextSetLineDash not implemented in this environment."); @@ -55490,45 +55482,60 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextAddArcToPoint = function(aContext, x1, y1, x2, y2, radius) { if (!hasPath(aContext, "CGContextAddArcToPoint")) + { return; + } aContext.arcTo(x1, y1, x2, y2, radius); } CGContextAddCurveToPoint = function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) { if (!hasPath(aContext, "CGContextAddCurveToPoint")) + { return; + } aContext.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); } CGContextAddLines = function(aContext, points, count) { if (count == null) + { count = points.length; + } if (count < 1) + { return; + } aContext.moveTo(points[0].x, points[0].y); - for (var i = 1; i < count; ++i) + for (let i = 1; i < count; ++i) + { aContext.lineTo(points[i].x, points[i].y); + } aContext.hasPath = YES; } CGContextAddLineToPoint = function(aContext, x, y) { if (!hasPath(aContext, "CGContextAddLineToPoint")) + { return; + } aContext.lineTo(x, y); } CGContextAddPath = function(aContext, aPath) { if (!aContext || CGPathIsEmpty(aPath)) - return; - if (!aContext.hasPath) - aContext.beginPath(); - aContext.moveTo(aPath.start.x, aPath.start.y); - var elements = aPath.elements, - i = 0, - count = aPath.count; - for (; i < count; ++i) { - var element = elements[i], + return; + } + if (!aContext.hasPath) + { + aContext.beginPath(); + } + aContext.moveTo(aPath.start.x, aPath.start.y); + const elements = aPath.elements, + count = aPath.count; + for (let i = 0; i < count; ++i) + { + const element = elements[i], type = element.type; switch(type) { case kCGPathElementMoveToPoint: @@ -55564,16 +55571,20 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextAddQuadCurveToPoint = function(aContext, cpx, cpy, x, y) { if (!hasPath(aContext, "CGContextAddQuadCurveToPoint")) + { return; + } aContext.quadraticCurveTo(cpx, cpy, x, y); } CGContextAddRects = function(aContext, rects, count) { if (count == null) - count = rects.length; - for (var i = 0; i < count; ++i) { - var rect = rects[i]; + count = rects.length; + } + for (let i = 0; i < count; ++i) + { + const rect = rects[i]; aContext.rect(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect), CGRectGetHeight(rect)); } aContext.hasPath = YES; @@ -55604,13 +55615,21 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextDrawPath = function(aContext, aMode) { if (!aContext.hasPath) + { return; + } if (aMode === kCGPathFill || aMode === kCGPathFillStroke) + { aContext.fill(); + } else if (aMode === kCGPathStroke || aMode === kCGPathFillStroke || aMode === kCGPathEOFillStroke) + { aContext.stroke(); + } else if (aMode === kCGPathEOFill || aMode === kCGPathEOFillStroke) + { CPLog.warn("Unimplemented fill mode in CGContextDrawPath: %d", aMode); + } aContext.hasPath = NO; } CGContextFillRect = function(aContext, aRect) @@ -55621,10 +55640,12 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextFillRects = function(aContext, rects, count) { if (count == null) - count = rects.length; - for (var i = 0; i < count; ++i) { - var rect = rects[i]; + count = rects.length; + } + for (let i = 0; i < count; ++i) + { + const rect = rects[i]; aContext.fillRect(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect), CGRectGetHeight(rect)); } aContext.hasPath = NO; @@ -55650,7 +55671,9 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextClipToRects = function(aContext, rects, count) { if (count == null) + { count = rects.length; + } aContext.beginPath(); CGContextAddRects(aContext, rects, count); aContext.clip(); @@ -55662,42 +55685,46 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) } CGContextSetFillColor = function(aContext, aColor) { - var patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); + const patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); if ((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["isSingleImage"] || _objj_forward)(patternImage, "isSingleImage"))) { - var pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); + const pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); aContext.fillStyle = pattern; } else + { aContext.fillStyle = (aColor == null ? aColor : (aColor.isa.method_msgSend["cssString"] || _objj_forward)(aColor, "cssString")); + } } CGContextCreatePatternContext = function(aContext, aSize) { - var pattern = document.createElement("canvas"); + const pattern = document.createElement("canvas"); pattern.width = aSize.width; pattern.height = aSize.height; return pattern.getContext("2d"); } CGContextSetFillPattern = function(aContext, aPatternContext) { - var pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); + const pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); aContext.fillStyle = pattern; } CGContextSetStrokePattern = function(aContext, aPatternContext) { - var pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); + const pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); aContext.strokeStyle = pattern; } CGContextSetStrokeColor = function(aContext, aColor) { - var patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); + const patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); if ((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["isSingleImage"] || _objj_forward)(patternImage, "isSingleImage"))) { - var pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); + const pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); aContext.strokeStyle = pattern; } else + { aContext.strokeStyle = (aColor == null ? aColor : (aColor.isa.method_msgSend["cssString"] || _objj_forward)(aColor, "cssString")); + } } CGContextSetShadow = function(aContext, aSize, aBlur) { @@ -55726,124 +55753,9 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) { aContext.translate(tx, ty); } - var scale_rotate = function(a, b, c, d) + CGContextConcatCTM = function(aContext, anAffineTransform) { - var sign = a * d < 0.0 || b * c > 0.0 ? -1.0 : 1.0, - a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, - cos = COS(a2), - sin = SIN(a2); - if (cos === 0) - { - sx = -c / sin; - sy = b / sin; - } - else if (sin === 0) - { - sx = a / cos; - sy = d / cos; - } - else - { - abs_cos = ABS(cos); - abs_sin = ABS(sin); - sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); - sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); - } - }; - var rotate_scale = function(a, b, c, d) - { - var sign = a * d < 0.0 || b * c > 0.0 ? -1.0 : 1.0, - a1 = (ATAN2(sign * b, sign * a) + ATAN2(-c, d)) / 2.0, - cos = COS(a1), - sin = SIN(a1); - if (cos === 0) - { - sx = b / sin; - sy = -c / sin; - } - else if (sin === 0) - { - sx = a / cos; - sy = d / cos; - } - else - { - abs_cos = ABS(cos); - abs_sin = ABS(sin); - sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); - sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); - } - }; - eigen = function(anAffineTransform) - { - CPLog.warn("Unimplemented function: eigen"); - } - if (CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)) - { - CGContextConcatCTM = function(aContext, anAffineTransform) - { - aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); - }; - } - else - { - CGContextConcatCTM = function(aContext, anAffineTransform) - { - var a = anAffineTransform.a, - b = anAffineTransform.b, - c = anAffineTransform.c, - d = anAffineTransform.d, - tx = anAffineTransform.tx, - ty = anAffineTransform.ty, - sx = 1.0, - sy = 1.0, - a1 = 0.0, - a2 = 0.0; - if (b === 0.0 && c === 0.0) - { - sx = a; - sy = d; - } - else if (a * b === -c * d) - { - scale_rotate(a, b, c, d); - } - else if (a * c === -b * d) - { - rotate_scale(a, b, c, d); - } - else - { - var transpose = CGAffineTransformMake(a, c, b, d, 0.0, 0.0), - u = eigen(CGAffineTransformConcat(anAffineTransform, transpose)), - v = eigen(CGAffineTransformConcat(transpose, anAffineTransform)), - U = CGAffineTransformMake(u.vector_1.x, u.vector_2.x, u.vector_1.y, u.vector_2.y, 0.0, 0.0), - VT = CGAffineTransformMake(v.vector_1.x, v.vector_1.y, v.vector_2.x, v.vector_2.y, 0.0, 0.0), - S = CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U), anAffineTransform), CGAffineTransformInvert(VT)); - a = VT.a; - b = VT.b; - c = VT.c; - d = VT.d; - scale_rotate(a, b, c, d); - S.a *= sx; - S.d *= sy; - a = U.a; - b = U.b; - c = U.c; - d = U.d; - rotate_scale(a, b, c, d); - sx = S.a * sx; - sy = S.d * sy; - } - if (tx != 0 || ty != 0) - CGContextTranslateCTM(aContext, tx, ty); - if (a1 != 0.0) - CGContextRotateCTM(aContext, a1); - if (sx != 1.0 || sy != 1.0) - CGContextScaleCTM(aContext, sx, sy); - if (a2 != 0.0) - CGContextRotateCTM(aContext, a2); - }; + aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); } CGContextDrawImage = function(aContext, aRect, anImage) { @@ -55852,34 +55764,38 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) } to_string = function(aColor) { - return "rgba(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; + return "rgba(" + Math.round(aColor.components[0] * 255) + ", " + Math.round(aColor.components[1] * 255) + ", " + Math.round(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; } CGContextDrawLinearGradient = function(aContext, aGradient, aStartPoint, anEndPoint, options) { - var colors = aGradient.colors, - count = colors.length, - linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + const colors = aGradient.colors; + const linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + let count = colors.length; while (count--) + { linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + } aContext.fillStyle = linearGradient; aContext.fill(); aContext.hasPath = NO; } CGContextDrawRadialGradient = function(aContext, aGradient, aStartCenter, aStartRadius, anEndCenter, anEndRadius, options) { - var colors = aGradient.colors, - count = colors.length, - linearGradient = aContext.createRadialGradient(aStartCenter.x, aStartCenter.y, aStartRadius, anEndCenter.x, anEndCenter.y, anEndRadius); + const colors = aGradient.colors; + const linearGradient = aContext.createRadialGradient(aStartCenter.x, aStartCenter.y, aStartRadius, anEndCenter.x, anEndCenter.y, anEndRadius); + let count = colors.length; while (count--) + { linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + } aContext.fillStyle = linearGradient; aContext.fill(); aContext.hasPath = NO; } CGBitmapGraphicsContextCreate = function() { - var DOMElement = document.createElement("canvas"), - context = DOMElement.getContext("2d"); + const DOMElement = document.createElement("canvas"); + const context = DOMElement.getContext("2d"); context.DOMElement = DOMElement; context.hasPath = NO; return context; diff --git a/Frameworks/AppKit/CommonJS.environment/AppKit.sj b/Frameworks/AppKit/CommonJS.environment/AppKit.sj index 96ce1fadb..33d353173 100644 --- a/Frameworks/AppKit/CommonJS.environment/AppKit.sj +++ b/Frameworks/AppKit/CommonJS.environment/AppKit.sj @@ -53022,7 +53022,7 @@ CGColorSpaceStandardizeComponents = function(aColorSpace, components) break; } } -p;11;CGContext.jt;40163;@STATIC;1.0;i;19;CGAffineTransform.ji;17;CPCompatibility.ji;12;CGGeometry.ji;8;CGPath.ji;15;CGContextText.jt;40048;objj_executeFile("CGAffineTransform.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CGPath.j", YES);objj_executeFile("CGContextText.j", YES);{var the_typedef = objj_allocateTypeDef("CGContext"); +p;11;CGContext.jt;36450;@STATIC;1.0;i;19;CGAffineTransform.ji;17;CPCompatibility.ji;12;CGGeometry.ji;8;CGPath.ji;15;CGContextText.jt;36335;objj_executeFile("CGAffineTransform.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CGPath.j", YES);objj_executeFile("CGContextText.j", YES);{var the_typedef = objj_allocateTypeDef("CGContext"); objj_registerTypeDef(the_typedef); }kCGLineCapButt = 0; kCGLineCapRound = 1; @@ -53326,13 +53326,15 @@ CGContextStrokeRoundedRectangleInRect = function(aContext, aRect, aRadius, ne, s } if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) { - var CANVAS_LINECAP_TABLE = ["butt", "round", "square"], - CANVAS_LINEJOIN_TABLE = ["miter", "round", "bevel"], - CANVAS_COMPOSITE_TABLE = ["source-over", "source-over", "source-over", "source-over", "darker", "lighter", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "copy", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "source-over", "source-over"]; - var hasPath = function(aContext, methodName) + const CANVAS_LINECAP_TABLE = ["butt", "round", "square"]; + const CANVAS_LINEJOIN_TABLE = ["miter", "round", "bevel"]; + const CANVAS_COMPOSITE_TABLE = ["source-over", "source-over", "source-over", "source-over", "darker", "lighter", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "source-over", "copy", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "source-over", "source-over"]; + const hasPath = function(aContext, methodName) { if (!aContext.hasPath) + { CPLog.error(methodName + ": no current point"); + } return aContext.hasPath; }; CGContextSaveGState = function(aContext) @@ -53354,16 +53356,6 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) aContext.setLineDash(someDashes); aContext.lineDashOffset = aPhase; } - else if (typeof aContext['webkitLineDash'] !== 'undefined') - { - aContext.webkitLineDash = someDashes; - aContext.webkitLineDashOffset = aPhase; - } - else if (typeof aContext['mozDash'] !== 'undefined') - { - aContext.mozDash = someDashes; - aContext.mozDashOffset = aPhase; - } else if (someDashes) { CPLog.warn("CGContextSetLineDash not implemented in this environment."); @@ -53393,45 +53385,60 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextAddArcToPoint = function(aContext, x1, y1, x2, y2, radius) { if (!hasPath(aContext, "CGContextAddArcToPoint")) + { return; + } aContext.arcTo(x1, y1, x2, y2, radius); } CGContextAddCurveToPoint = function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) { if (!hasPath(aContext, "CGContextAddCurveToPoint")) + { return; + } aContext.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); } CGContextAddLines = function(aContext, points, count) { if (count == null) + { count = points.length; + } if (count < 1) + { return; + } aContext.moveTo(points[0].x, points[0].y); - for (var i = 1; i < count; ++i) + for (let i = 1; i < count; ++i) + { aContext.lineTo(points[i].x, points[i].y); + } aContext.hasPath = YES; } CGContextAddLineToPoint = function(aContext, x, y) { if (!hasPath(aContext, "CGContextAddLineToPoint")) + { return; + } aContext.lineTo(x, y); } CGContextAddPath = function(aContext, aPath) { if (!aContext || CGPathIsEmpty(aPath)) - return; - if (!aContext.hasPath) - aContext.beginPath(); - aContext.moveTo(aPath.start.x, aPath.start.y); - var elements = aPath.elements, - i = 0, - count = aPath.count; - for (; i < count; ++i) { - var element = elements[i], + return; + } + if (!aContext.hasPath) + { + aContext.beginPath(); + } + aContext.moveTo(aPath.start.x, aPath.start.y); + const elements = aPath.elements, + count = aPath.count; + for (let i = 0; i < count; ++i) + { + const element = elements[i], type = element.type; switch(type) { case kCGPathElementMoveToPoint: @@ -53467,16 +53474,20 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextAddQuadCurveToPoint = function(aContext, cpx, cpy, x, y) { if (!hasPath(aContext, "CGContextAddQuadCurveToPoint")) + { return; + } aContext.quadraticCurveTo(cpx, cpy, x, y); } CGContextAddRects = function(aContext, rects, count) { if (count == null) - count = rects.length; - for (var i = 0; i < count; ++i) { - var rect = rects[i]; + count = rects.length; + } + for (let i = 0; i < count; ++i) + { + const rect = rects[i]; aContext.rect(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect), CGRectGetHeight(rect)); } aContext.hasPath = YES; @@ -53507,13 +53518,21 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextDrawPath = function(aContext, aMode) { if (!aContext.hasPath) + { return; + } if (aMode === kCGPathFill || aMode === kCGPathFillStroke) + { aContext.fill(); + } else if (aMode === kCGPathStroke || aMode === kCGPathFillStroke || aMode === kCGPathEOFillStroke) + { aContext.stroke(); + } else if (aMode === kCGPathEOFill || aMode === kCGPathEOFillStroke) + { CPLog.warn("Unimplemented fill mode in CGContextDrawPath: %d", aMode); + } aContext.hasPath = NO; } CGContextFillRect = function(aContext, aRect) @@ -53524,10 +53543,12 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextFillRects = function(aContext, rects, count) { if (count == null) - count = rects.length; - for (var i = 0; i < count; ++i) { - var rect = rects[i]; + count = rects.length; + } + for (let i = 0; i < count; ++i) + { + const rect = rects[i]; aContext.fillRect(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect), CGRectGetHeight(rect)); } aContext.hasPath = NO; @@ -53553,7 +53574,9 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) CGContextClipToRects = function(aContext, rects, count) { if (count == null) + { count = rects.length; + } aContext.beginPath(); CGContextAddRects(aContext, rects, count); aContext.clip(); @@ -53565,42 +53588,46 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) } CGContextSetFillColor = function(aContext, aColor) { - var patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); + const patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); if ((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["isSingleImage"] || _objj_forward)(patternImage, "isSingleImage"))) { - var pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); + const pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); aContext.fillStyle = pattern; } else + { aContext.fillStyle = (aColor == null ? aColor : (aColor.isa.method_msgSend["cssString"] || _objj_forward)(aColor, "cssString")); + } } CGContextCreatePatternContext = function(aContext, aSize) { - var pattern = document.createElement("canvas"); + const pattern = document.createElement("canvas"); pattern.width = aSize.width; pattern.height = aSize.height; return pattern.getContext("2d"); } CGContextSetFillPattern = function(aContext, aPatternContext) { - var pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); + const pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); aContext.fillStyle = pattern; } CGContextSetStrokePattern = function(aContext, aPatternContext) { - var pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); + const pattern = aContext.createPattern(aPatternContext.canvas, "repeat"); aContext.strokeStyle = pattern; } CGContextSetStrokeColor = function(aContext, aColor) { - var patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); + const patternImage = (aColor == null ? aColor : (aColor.isa.method_msgSend["patternImage"] || _objj_forward)(aColor, "patternImage")); if ((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["isSingleImage"] || _objj_forward)(patternImage, "isSingleImage"))) { - var pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); + const pattern = aContext.createPattern((patternImage == null ? patternImage : (patternImage.isa.method_msgSend["image"] || _objj_forward)(patternImage, "image")), "repeat"); aContext.strokeStyle = pattern; } else + { aContext.strokeStyle = (aColor == null ? aColor : (aColor.isa.method_msgSend["cssString"] || _objj_forward)(aColor, "cssString")); + } } CGContextSetShadow = function(aContext, aSize, aBlur) { @@ -53629,124 +53656,9 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) { aContext.translate(tx, ty); } - var scale_rotate = function(a, b, c, d) + CGContextConcatCTM = function(aContext, anAffineTransform) { - var sign = a * d < 0.0 || b * c > 0.0 ? -1.0 : 1.0, - a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, - cos = COS(a2), - sin = SIN(a2); - if (cos === 0) - { - sx = -c / sin; - sy = b / sin; - } - else if (sin === 0) - { - sx = a / cos; - sy = d / cos; - } - else - { - abs_cos = ABS(cos); - abs_sin = ABS(sin); - sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); - sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); - } - }; - var rotate_scale = function(a, b, c, d) - { - var sign = a * d < 0.0 || b * c > 0.0 ? -1.0 : 1.0, - a1 = (ATAN2(sign * b, sign * a) + ATAN2(-c, d)) / 2.0, - cos = COS(a1), - sin = SIN(a1); - if (cos === 0) - { - sx = b / sin; - sy = -c / sin; - } - else if (sin === 0) - { - sx = a / cos; - sy = d / cos; - } - else - { - abs_cos = ABS(cos); - abs_sin = ABS(sin); - sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); - sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); - } - }; - eigen = function(anAffineTransform) - { - CPLog.warn("Unimplemented function: eigen"); - } - if (CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)) - { - CGContextConcatCTM = function(aContext, anAffineTransform) - { - aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); - }; - } - else - { - CGContextConcatCTM = function(aContext, anAffineTransform) - { - var a = anAffineTransform.a, - b = anAffineTransform.b, - c = anAffineTransform.c, - d = anAffineTransform.d, - tx = anAffineTransform.tx, - ty = anAffineTransform.ty, - sx = 1.0, - sy = 1.0, - a1 = 0.0, - a2 = 0.0; - if (b === 0.0 && c === 0.0) - { - sx = a; - sy = d; - } - else if (a * b === -c * d) - { - scale_rotate(a, b, c, d); - } - else if (a * c === -b * d) - { - rotate_scale(a, b, c, d); - } - else - { - var transpose = CGAffineTransformMake(a, c, b, d, 0.0, 0.0), - u = eigen(CGAffineTransformConcat(anAffineTransform, transpose)), - v = eigen(CGAffineTransformConcat(transpose, anAffineTransform)), - U = CGAffineTransformMake(u.vector_1.x, u.vector_2.x, u.vector_1.y, u.vector_2.y, 0.0, 0.0), - VT = CGAffineTransformMake(v.vector_1.x, v.vector_1.y, v.vector_2.x, v.vector_2.y, 0.0, 0.0), - S = CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U), anAffineTransform), CGAffineTransformInvert(VT)); - a = VT.a; - b = VT.b; - c = VT.c; - d = VT.d; - scale_rotate(a, b, c, d); - S.a *= sx; - S.d *= sy; - a = U.a; - b = U.b; - c = U.c; - d = U.d; - rotate_scale(a, b, c, d); - sx = S.a * sx; - sy = S.d * sy; - } - if (tx != 0 || ty != 0) - CGContextTranslateCTM(aContext, tx, ty); - if (a1 != 0.0) - CGContextRotateCTM(aContext, a1); - if (sx != 1.0 || sy != 1.0) - CGContextScaleCTM(aContext, sx, sy); - if (a2 != 0.0) - CGContextRotateCTM(aContext, a2); - }; + aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); } CGContextDrawImage = function(aContext, aRect, anImage) { @@ -53755,34 +53667,38 @@ if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) } to_string = function(aColor) { - return "rgba(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; + return "rgba(" + Math.round(aColor.components[0] * 255) + ", " + Math.round(aColor.components[1] * 255) + ", " + Math.round(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; } CGContextDrawLinearGradient = function(aContext, aGradient, aStartPoint, anEndPoint, options) { - var colors = aGradient.colors, - count = colors.length, - linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + const colors = aGradient.colors; + const linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + let count = colors.length; while (count--) + { linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + } aContext.fillStyle = linearGradient; aContext.fill(); aContext.hasPath = NO; } CGContextDrawRadialGradient = function(aContext, aGradient, aStartCenter, aStartRadius, anEndCenter, anEndRadius, options) { - var colors = aGradient.colors, - count = colors.length, - linearGradient = aContext.createRadialGradient(aStartCenter.x, aStartCenter.y, aStartRadius, anEndCenter.x, anEndCenter.y, anEndRadius); + const colors = aGradient.colors; + const linearGradient = aContext.createRadialGradient(aStartCenter.x, aStartCenter.y, aStartRadius, anEndCenter.x, anEndCenter.y, anEndRadius); + let count = colors.length; while (count--) + { linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + } aContext.fillStyle = linearGradient; aContext.fill(); aContext.hasPath = NO; } CGBitmapGraphicsContextCreate = function() { - var DOMElement = document.createElement("canvas"), - context = DOMElement.getContext("2d"); + const DOMElement = document.createElement("canvas"); + const context = DOMElement.getContext("2d"); context.DOMElement = DOMElement; context.hasPath = NO; return context; diff --git a/Resources/recipes.txt b/Resources/recipes.txt index 7029df161..0faec3c2c 100644 --- a/Resources/recipes.txt +++ b/Resources/recipes.txt @@ -1,148 +1,148 @@ -1787817683598|ArrayController1| -1787817683612|ArrayControllerInitialSelectionTest| -1787817683626|ArrayControllerRemovingFirstTest| -1787817683639|AttachedSheet| -1787817683652|AttachedSheet2| -1787817683666|Bindings| -1787817683679|CGCanvasContext| -1787817683692|CGPath| -1787817683706|CPAlertTest| -1787817683719|CPAnimatablePropertyContainerTest| -1787817683732|CPAnimationContextTest| -1787817683746|CPAnimationTest| -1787817683759|CPBinder-echo-bug| -1787817683772|CPBoxCibTest| -1787817683786|CPBoxTest| -1787817683799|CPBrowserTest| -1787817683813|CPButtonBarTest| -1787817683826|CPButtonKeyEquivalentDefaultTest| -1787817683839|CPButtonTest| -1787817683852|CPByteCountFormatter| -1787817683866|CPCollectionViewNibTest| -1787817683879|CPColor-CPImage-description| -1787817683893|CPColorWellBindings| -1787817683906|CPComboBoxTest| -1787817683919|CPControlPerformClickExceptionTest| -1787817683933|CPControlSize| -1787817683946|CPCursor| -1787817683959|CPDateFormatterTest| -1787817683973|CPDatePickerTest| -1787817683986|CPDictionaryControllerTest| -1787817684000|CPDocumentControllerTest| -1787817684013|CPFormatterTest| -1787817684026|CPGraphicsTest| -1787817684040|CPImageAndTextViewImageScaling| -1787817684053|CPImageViewAlignmentScaling| -1787817684067|CPImageViewTest| -1787817684080|CPImageViewbindingsTest| -1787817684093|CPLanguageModelChatbot| -1787817684107|CPLevelIndicator| -1787817684120|CPLocalizationTest| -1787817684133|CPLogTest| -1787817684147|CPMarkdownParser| -1787817684161|CPMenuCALayerTest| -1787817684174|CPMenuEnabledBindingsTest| -1787817684188|CPMenuKeyEquivalents| -1787817684201|CPMenuRemoveAllTest| -1787817684214|CPMenuSubmenuPlacementConstraints| -1787817684227|CPMenuTest| -1787817684241|CPOutlineViewCibTest| -1787817684254|CPOutlineViewTest| -1787817684268|CPOutlineViewViewBasedCibTest| -1787817684282|CPPanelTest| -1787817684295|CPPlatformWindow| -1787817684309|CPPlattformWindowMinSize| -1787817684322|CPPopUpButtonBindings| -1787817684336|CPPopUpButtonTest| -1787817684349|CPPopover| -1787817684363|CPPredicateEditorCibTest| -1787817684376|CPProgressIndicator| -1787817684390|CPPropertyListSerializationTest| -1787817684403|CPRadioBindings| -1787817684416|CPRuleEditorCibTest| -1787817684430|CPRuleEditorTestI8N| -1787817684443|CPScrollView| -1787817684457|CPScrollView2| -1787817684470|CPSearchField| -1787817684483|CPSearchFieldPredicateBinding| -1787817684497|CPSegmentedControlBindings| -1787817684510|CPSegmentedControlTest| -1787817684524|CPSoundTest| -1787817684537|CPSplitViewDivider| -1787817684551|CPSplitViewTest| -1787817684564|CPStackViewTest| -1787817684578|CPStepperBindings| -1787817684591|CPStepperNibTest| -1787817684605|CPTabView2| -1787817684618|CPTabViewBindings| -1787817684632|CPTabViewNib| -1787817684645|CPTableViewGroupRows| -1787817684659|CPTextField| -1787817684672|CPTextFieldEditingStyleTest| -1787817684686|CPTextFieldHeightTest| -1787817684699|CPTextFieldMovementsTest| -1787817684712|CPTextFieldMultiline| -1787817684726|CPTextView| -1787817684739|CPTextViewCibTest| -1787817684753|CPTextViewDelegateAndNotifications| -1787817684766|CPTimeZone| -1787817684780|CPTokenFieldTest| -1787817684793|CPToolTip| -1787817684807|CPToolbarTest| -1787817684820|CPTreeControllerTest| -1787817684834|CPURLConnectionAsyncTest| -1787817684847|CPURLConnectionSynchronousTest| -1787817684860|CPUserDefaults| -1787817684874|CPUserDefaultsControllerTest| -1787817684887|CPUserNotificationTest| -1787817684901|CPViewController| -1787817684915|CPVisualEffectViewTest| -1787817684928|CPWebViewTest| -1787817684941|CPWebViewTest2| -1787817684955|CPWindowLiveResizeTest| -1787817684968|CPWindowMovableTest| -1787817684982|CPWindowResizeStyle| -1787817684995|ChildWindows| -1787817685009|CompilationTests| -1787817685022|ContinuouslyUpdatesValueBinding| -1787817685036|CopyAndPaste| -1787817685049|CrossOriginTest| -1787817685063|FF4096Test| -1787817685076|FontEnhancementTest| -1787817685090|FontMetricsExplorer| -1787817685103|KeyEquivalents| -1787817685116|KeyViewLoopTest| -1787817685130|KeyWindowInTheBackgroundActivation| -1787817685143|LayoutTest| -1787817685157|LoadTimeTest| -1787817685170|LongBindings| -1787817685184|MobileTest| -1787817685197|MultipleValueBindings| -1787817685210|NSBoxTest| -1787817685224|NSBrowserTest| -1787817685237|NewTextFieldBezel| -1787817685251|Nib2CibAlignment| -1787817685265|Nib2CibBaselineAlignementTest| -1787817685278|Nib2CibSubviewsOrderTest| -1787817685292|NibAppRemixed| -1787817685305|PatternFillTest| -1787817685319|PlatformWindows| -1787817685332|PopUpButtonEscTest| -1787817685346|ScalingTest| -1787817685359|ScalingTest2| -1787817685373|ScrollviewTheming| -1787817685387|SheetWindowOrderFrontIssue| -1787817685400|SimpleBindings2| -1787817685414|SmartFoldersDemo| -1787817685427|TableTest| -1787817685440|ThemeBrowser| -1787817685454|ThemeKitchenSink| -1787817685467|TrackingArea| -1787817685481|UndoRedoWithMenuUpdate| -1787817685494|UserlandNSTest| -1787817685508|layoutEphemeralSubviewTest| -1787817685521|loadDynamicFrameworks| -1787817685534|performKeyEquivalentTest| -1787817685548|predicateWithFormat| -1787817685561|resignFirstResponder-CPControlTextDidEndEditing| -1787817685575|sizeToFitFix| +1787818036101|ArrayController1| +1787818036113|ArrayControllerInitialSelectionTest| +1787818036125|ArrayControllerRemovingFirstTest| +1787818036138|AttachedSheet| +1787818036150|AttachedSheet2| +1787818036162|Bindings| +1787818036174|CGCanvasContext| +1787818036186|CGPath| +1787818036198|CPAlertTest| +1787818036210|CPAnimatablePropertyContainerTest| +1787818036222|CPAnimationContextTest| +1787818036234|CPAnimationTest| +1787818036246|CPBinder-echo-bug| +1787818036259|CPBoxCibTest| +1787818036271|CPBoxTest| +1787818036283|CPBrowserTest| +1787818036295|CPButtonBarTest| +1787818036307|CPButtonKeyEquivalentDefaultTest| +1787818036320|CPButtonTest| +1787818036332|CPByteCountFormatter| +1787818036344|CPCollectionViewNibTest| +1787818036357|CPColor-CPImage-description| +1787818036369|CPColorWellBindings| +1787818036381|CPComboBoxTest| +1787818036393|CPControlPerformClickExceptionTest| +1787818036405|CPControlSize| +1787818036418|CPCursor| +1787818036430|CPDateFormatterTest| +1787818036442|CPDatePickerTest| +1787818036454|CPDictionaryControllerTest| +1787818036467|CPDocumentControllerTest| +1787818036479|CPFormatterTest| +1787818036491|CPGraphicsTest| +1787818036503|CPImageAndTextViewImageScaling| +1787818036516|CPImageViewAlignmentScaling| +1787818036528|CPImageViewTest| +1787818036540|CPImageViewbindingsTest| +1787818036552|CPLanguageModelChatbot| +1787818036565|CPLevelIndicator| +1787818036577|CPLocalizationTest| +1787818036589|CPLogTest| +1787818036602|CPMarkdownParser| +1787818036614|CPMenuCALayerTest| +1787818036626|CPMenuEnabledBindingsTest| +1787818036639|CPMenuKeyEquivalents| +1787818036651|CPMenuRemoveAllTest| +1787818036663|CPMenuSubmenuPlacementConstraints| +1787818036675|CPMenuTest| +1787818036688|CPOutlineViewCibTest| +1787818036700|CPOutlineViewTest| +1787818036712|CPOutlineViewViewBasedCibTest| +1787818036724|CPPanelTest| +1787818036737|CPPlatformWindow| +1787818036749|CPPlattformWindowMinSize| +1787818036761|CPPopUpButtonBindings| +1787818036773|CPPopUpButtonTest| +1787818036786|CPPopover| +1787818036798|CPPredicateEditorCibTest| +1787818036810|CPProgressIndicator| +1787818036822|CPPropertyListSerializationTest| +1787818036835|CPRadioBindings| +1787818036847|CPRuleEditorCibTest| +1787818036859|CPRuleEditorTestI8N| +1787818036871|CPScrollView| +1787818036884|CPScrollView2| +1787818036896|CPSearchField| +1787818036908|CPSearchFieldPredicateBinding| +1787818036920|CPSegmentedControlBindings| +1787818036933|CPSegmentedControlTest| +1787818036945|CPSoundTest| +1787818036957|CPSplitViewDivider| +1787818036969|CPSplitViewTest| +1787818036982|CPStackViewTest| +1787818036994|CPStepperBindings| +1787818037006|CPStepperNibTest| +1787818037018|CPTabView2| +1787818037031|CPTabViewBindings| +1787818037043|CPTabViewNib| +1787818037055|CPTableViewGroupRows| +1787818037067|CPTextField| +1787818037080|CPTextFieldEditingStyleTest| +1787818037092|CPTextFieldHeightTest| +1787818037104|CPTextFieldMovementsTest| +1787818037116|CPTextFieldMultiline| +1787818037129|CPTextView| +1787818037141|CPTextViewCibTest| +1787818037153|CPTextViewDelegateAndNotifications| +1787818037165|CPTimeZone| +1787818037178|CPTokenFieldTest| +1787818037190|CPToolTip| +1787818037202|CPToolbarTest| +1787818037214|CPTreeControllerTest| +1787818037226|CPURLConnectionAsyncTest| +1787818037239|CPURLConnectionSynchronousTest| +1787818037251|CPUserDefaults| +1787818037263|CPUserDefaultsControllerTest| +1787818037275|CPUserNotificationTest| +1787818037288|CPViewController| +1787818037300|CPVisualEffectViewTest| +1787818037312|CPWebViewTest| +1787818037325|CPWebViewTest2| +1787818037337|CPWindowLiveResizeTest| +1787818037349|CPWindowMovableTest| +1787818037362|CPWindowResizeStyle| +1787818037374|ChildWindows| +1787818037386|CompilationTests| +1787818037399|ContinuouslyUpdatesValueBinding| +1787818037411|CopyAndPaste| +1787818037423|CrossOriginTest| +1787818037435|FF4096Test| +1787818037448|FontEnhancementTest| +1787818037460|FontMetricsExplorer| +1787818037472|KeyEquivalents| +1787818037485|KeyViewLoopTest| +1787818037497|KeyWindowInTheBackgroundActivation| +1787818037509|LayoutTest| +1787818037521|LoadTimeTest| +1787818037534|LongBindings| +1787818037546|MobileTest| +1787818037558|MultipleValueBindings| +1787818037571|NSBoxTest| +1787818037583|NSBrowserTest| +1787818037595|NewTextFieldBezel| +1787818037607|Nib2CibAlignment| +1787818037620|Nib2CibBaselineAlignementTest| +1787818037632|Nib2CibSubviewsOrderTest| +1787818037644|NibAppRemixed| +1787818037656|PatternFillTest| +1787818037668|PlatformWindows| +1787818037680|PopUpButtonEscTest| +1787818037693|ScalingTest| +1787818037705|ScalingTest2| +1787818037717|ScrollviewTheming| +1787818037729|SheetWindowOrderFrontIssue| +1787818037741|SimpleBindings2| +1787818037753|SmartFoldersDemo| +1787818037765|TableTest| +1787818037778|ThemeBrowser| +1787818037790|ThemeKitchenSink| +1787818037802|TrackingArea| +1787818037815|UndoRedoWithMenuUpdate| +1787818037827|UserlandNSTest| +1787818037839|layoutEphemeralSubviewTest| +1787818037851|loadDynamicFrameworks| +1787818037864|performKeyEquivalentTest| +1787818037876|predicateWithFormat| +1787818037888|resignFirstResponder-CPControlTextDidEndEditing| +1787818037900|sizeToFitFix|