///|
#cfg(target="js")
#external
type HTMLCanvasElement
///|
#cfg(target="js")
pub impl IsEventTarget for HTMLCanvasElement
///|
#cfg(target="js")
pub impl @js.Cast for HTMLCanvasElement with into(value) {
value |> ffi_to_html_canvas_element |> y => { y.to_option() }
}
///|
#cfg(target="js")
pub impl @js.Cast for HTMLCanvasElement with from(value) {
value |> js_identity
}
///|
#cfg(target="js")
pub impl IsNode for HTMLCanvasElement
///|
#cfg(target="js")
pub impl IsElement for HTMLCanvasElement
///|
#cfg(target="js")
pub impl IsHtmlElement for HTMLCanvasElement
///|
#cfg(target="js")
pub extern "js" fn HTMLCanvasElement::get_width(self : Self) -> Int = "(x) => x.width"
///|
#cfg(target="js")
pub extern "js" fn HTMLCanvasElement::get_height(self : Self) -> Int = "(x) => x.height"
///|
#cfg(target="js")
pub extern "js" fn HTMLCanvasElement::get_context(
self : Self,
context_id : String,
) -> @js.Union5[
CanvasRenderingContext2D,
ImageBitmapRenderingContext,
WebGLRenderingContext,
WebGL2RenderingContext,
GPUCanvasContext,
] = "(x, id) => x.getContext(id)"
// TODO: add CanvasText.measureText
// TODO: add TextMetrics