diff --git a/src/index.tsx b/src/index.tsx index 802643fe1..dae46043c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -520,9 +520,7 @@ function renderScene( scrollBar.y, scrollBar.width, scrollBar.height, - SCROLLBAR_WIDTH / 2, - true, - true + SCROLLBAR_WIDTH / 2 ); }); context.strokeStyle = strokeStyle; diff --git a/src/roundRect.ts b/src/roundRect.ts index cfa32b854..bba0e6dec 100644 --- a/src/roundRect.ts +++ b/src/roundRect.ts @@ -1,66 +1,37 @@ /** * https://stackoverflow.com/a/3368118 * Draws a rounded rectangle using the current state of the canvas. - * If you omit the last three params, it will draw a rectangle - * outline with a 5 pixel border radius - * @param {CanvasRenderingContext2D} ctx + * @param {CanvasRenderingContext2D} context * @param {Number} x The top left x coordinate * @param {Number} y The top left y coordinate * @param {Number} width The width of the rectangle * @param {Number} height The height of the rectangle - * @param {Number} [radius = 5] The corner radius; It can also be an object - * to specify different radii for corners - * @param {Number} [radius.tl = 0] Top left - * @param {Number} [radius.tr = 0] Top right - * @param {Number} [radius.br = 0] Bottom right - * @param {Number} [radius.bl = 0] Bottom left - * @param {Boolean} [fill = false] Whether to fill the rectangle. - * @param {Boolean} [stroke = true] Whether to stroke the rectangle. + * @param {Number} radius The corner radius */ export function roundRect( - ctx: CanvasRenderingContext2D, + context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, - radius?: number | { tl: number; tr: number; br: number; bl: number }, - fill?: boolean, - stroke?: boolean + radius: number ) { - if (typeof stroke === "undefined") { - stroke = true; - } - if (typeof radius === "undefined") { - radius = 5; - } - if (typeof radius === "number") { - radius = { tl: radius, tr: radius, br: radius, bl: radius }; - } else { - const sides = ["tl", "tr", "br", "bl"] as const; - for (const side of sides) { - radius[side] = radius[side] || 0; - } - } - ctx.beginPath(); - ctx.moveTo(x + radius.tl, y); - ctx.lineTo(x + width - radius.tr, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius.tr); - ctx.lineTo(x + width, y + height - radius.br); - ctx.quadraticCurveTo( + context.beginPath(); + context.moveTo(x + radius, y); + context.lineTo(x + width - radius, y); + context.quadraticCurveTo(x + width, y, x + width, y + radius); + context.lineTo(x + width, y + height - radius); + context.quadraticCurveTo( x + width, y + height, - x + width - radius.br, + x + width - radius, y + height ); - ctx.lineTo(x + radius.bl, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius.bl); - ctx.lineTo(x, y + radius.tl); - ctx.quadraticCurveTo(x, y, x + radius.tl, y); - ctx.closePath(); - if (fill) { - ctx.fill(); - } - if (stroke) { - ctx.stroke(); - } + context.lineTo(x + radius, y + height); + context.quadraticCurveTo(x, y + height, x, y + height - radius); + context.lineTo(x, y + radius); + context.quadraticCurveTo(x, y, x + radius, y); + context.closePath(); + context.fill(); + context.stroke(); }