1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-18 10:55:07 +00:00
serenity/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
sin-ack 9121cc7cae LibWeb: Implement CanvasRenderingContext2D.measureText
This requires an implementation of the "text preparation algorithm" as
specified here:

html.spec.whatwg.org/multipage/canvas.html#text-preparation-algorithm

However, we're missing a lot of things such as the
CanvasTextDrawingStyles interface, so most of the algorithm was not
implemented. Additionally, we also are not able to use a LineBox like
the algorithm suggests, because our layouting infra is not up to the
task yet. The prepare_text function does nothing other than figuring out
the width of the given text and return glyphs with offsets at the
moment.
2022-01-04 22:41:07 +00:00

42 lines
1.6 KiB
Text

interface CanvasRenderingContext2D {
undefined fillRect(double x, double y, double w, double h);
undefined strokeRect(double x, double y, double w, double h);
undefined clearRect(double x, double y, double w, double h);
undefined scale(double x, double y);
undefined translate(double x, double y);
undefined rotate(double radians);
undefined beginPath();
undefined closePath();
undefined fill(optional DOMString fillRule = "nonzero");
undefined stroke();
undefined moveTo(double x, double y);
undefined lineTo(double x, double y);
undefined quadraticCurveTo(double cpx, double cpy, double x, double y);
undefined arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean counterclockwise = false);
undefined ellipse(double x, double y, double radiusX, double radiusY, double rotation, double startAngle, double endAngle, optional boolean counterclockwise = false);
undefined rect(double x, double y, double width, double height);
undefined fillText(DOMString text, double x, double y, optional double maxWidth);
undefined drawImage(HTMLImageElement image, double dx, double dy);
attribute DOMString fillStyle;
attribute DOMString strokeStyle;
attribute double lineWidth;
ImageData createImageData(double sw, double sh);
undefined putImageData(ImageData imagedata, double dx, double dy);
undefined save();
undefined restore();
undefined reset();
boolean isContextLost();
readonly attribute HTMLCanvasElement canvas;
TextMetrics measureText(DOMString text);
};