mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:57:35 +00:00
LibWeb: Port CanvasRenderingContext2D from DeprecatedString to String
This commit is contained in:
parent
da1f137967
commit
d312fdc2d3
8 changed files with 29 additions and 29 deletions
|
@ -18,14 +18,14 @@ public:
|
|||
|
||||
virtual void begin_path() = 0;
|
||||
|
||||
virtual void fill(DeprecatedString const& fill_rule) = 0;
|
||||
virtual void fill(Path2D& path, DeprecatedString const& fill_rule) = 0;
|
||||
virtual void fill(StringView fill_rule) = 0;
|
||||
virtual void fill(Path2D& path, StringView fill_rule) = 0;
|
||||
|
||||
virtual void stroke() = 0;
|
||||
virtual void stroke(Path2D const& path) = 0;
|
||||
|
||||
virtual void clip(DeprecatedString const& fill_rule) = 0;
|
||||
virtual void clip(Path2D& path, DeprecatedString const& fill_rule) = 0;
|
||||
virtual void clip(StringView fill_rule) = 0;
|
||||
virtual void clip(Path2D& path, StringView fill_rule) = 0;
|
||||
|
||||
protected:
|
||||
CanvasDrawPath() = default;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/String.h>
|
||||
#include <LibWeb/HTML/Canvas/CanvasState.h>
|
||||
#include <LibWeb/HTML/CanvasGradient.h>
|
||||
#include <LibWeb/HTML/CanvasPattern.h>
|
||||
|
@ -21,12 +21,12 @@ template<typename IncludingClass>
|
|||
class CanvasFillStrokeStyles {
|
||||
public:
|
||||
~CanvasFillStrokeStyles() = default;
|
||||
using FillOrStrokeStyleVariant = Variant<DeprecatedString, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
using FillOrStrokeStyleVariant = Variant<String, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
|
||||
static CanvasState::FillOrStrokeStyle to_canvas_state_fill_or_stroke_style(auto const& style)
|
||||
{
|
||||
return style.visit(
|
||||
[&](DeprecatedString const& string) -> CanvasState::FillOrStrokeStyle {
|
||||
[&](String const& string) -> CanvasState::FillOrStrokeStyle {
|
||||
return Gfx::Color::from_string(string).value_or(Color::Black);
|
||||
},
|
||||
[&](auto fill_or_stroke_style) -> CanvasState::FillOrStrokeStyle {
|
||||
|
|
|
@ -52,13 +52,13 @@ public:
|
|||
Optional<Gfx::Color> as_color() const;
|
||||
Gfx::Color to_color_but_fixme_should_accept_any_paint_style() const;
|
||||
|
||||
using JsFillOrStrokeStyle = Variant<DeprecatedString, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
using JsFillOrStrokeStyle = Variant<String, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
|
||||
JsFillOrStrokeStyle to_js_fill_or_stroke_style() const
|
||||
{
|
||||
return m_fill_or_stroke_style.visit(
|
||||
[&](Gfx::Color color) -> JsFillOrStrokeStyle {
|
||||
return color.to_deprecated_string();
|
||||
return MUST(String::from_deprecated_string(color.to_deprecated_string()));
|
||||
},
|
||||
[&](auto handle) -> JsFillOrStrokeStyle {
|
||||
return handle;
|
||||
|
|
|
@ -17,9 +17,9 @@ class CanvasText {
|
|||
public:
|
||||
virtual ~CanvasText() = default;
|
||||
|
||||
virtual void fill_text(DeprecatedString const&, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual void stroke_text(DeprecatedString const&, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual JS::NonnullGCPtr<TextMetrics> measure_text(DeprecatedString const& text) = 0;
|
||||
virtual void fill_text(StringView, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual void stroke_text(StringView, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual JS::NonnullGCPtr<TextMetrics> measure_text(StringView text) = 0;
|
||||
|
||||
protected:
|
||||
CanvasText() = default;
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
font_style_value.font_families()->to_string());
|
||||
}
|
||||
|
||||
void set_font(DeprecatedString const& font)
|
||||
void set_font(StringView font)
|
||||
{
|
||||
// The font IDL attribute, on setting, must be parsed as a CSS <'font'> value (but without supporting property-independent style sheet syntax like 'inherit'),
|
||||
// and the resulting font must be assigned to the context, with the 'line-height' component forced to 'normal', with the 'font-size' component converted to CSS pixels,
|
||||
|
|
|
@ -195,7 +195,7 @@ Optional<Gfx::AntiAliasingPainter> CanvasRenderingContext2D::antialiased_painter
|
|||
return {};
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::fill_text(DeprecatedString const& text, float x, float y, Optional<double> max_width)
|
||||
void CanvasRenderingContext2D::fill_text(StringView text, float x, float y, Optional<double> max_width)
|
||||
{
|
||||
if (max_width.has_value() && max_width.value() <= 0)
|
||||
return;
|
||||
|
@ -239,7 +239,7 @@ void CanvasRenderingContext2D::fill_text(DeprecatedString const& text, float x,
|
|||
});
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::stroke_text(DeprecatedString const& text, float x, float y, Optional<double> max_width)
|
||||
void CanvasRenderingContext2D::stroke_text(StringView text, float x, float y, Optional<double> max_width)
|
||||
{
|
||||
// FIXME: Stroke the text instead of filling it.
|
||||
fill_text(text, x, y, max_width);
|
||||
|
@ -299,12 +299,12 @@ void CanvasRenderingContext2D::fill_internal(Gfx::Path const& path, Gfx::Painter
|
|||
});
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::fill(DeprecatedString const& fill_rule)
|
||||
void CanvasRenderingContext2D::fill(StringView fill_rule)
|
||||
{
|
||||
return fill_internal(path(), parse_fill_rule(fill_rule));
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::fill(Path2D& path, DeprecatedString const& fill_rule)
|
||||
void CanvasRenderingContext2D::fill(Path2D& path, StringView fill_rule)
|
||||
{
|
||||
auto transformed_path = path.path().copy_transformed(drawing_state().transform);
|
||||
return fill_internal(transformed_path, parse_fill_rule(fill_rule));
|
||||
|
@ -386,7 +386,7 @@ void CanvasRenderingContext2D::reset_to_default_state()
|
|||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-measuretext
|
||||
JS::NonnullGCPtr<TextMetrics> CanvasRenderingContext2D::measure_text(DeprecatedString const& text)
|
||||
JS::NonnullGCPtr<TextMetrics> CanvasRenderingContext2D::measure_text(StringView text)
|
||||
{
|
||||
// The measureText(text) method steps are to run the text preparation
|
||||
// algorithm, passing it text and the object implementing the CanvasText
|
||||
|
@ -430,7 +430,7 @@ RefPtr<Gfx::Font const> CanvasRenderingContext2D::current_font()
|
|||
{
|
||||
// When font style value is empty load default font
|
||||
if (!drawing_state().font_style_value) {
|
||||
set_font("10px sans-serif");
|
||||
set_font("10px sans-serif"sv);
|
||||
}
|
||||
|
||||
// Get current loaded font
|
||||
|
@ -533,13 +533,13 @@ void CanvasRenderingContext2D::clip_internal(Gfx::Path& path, Gfx::Painter::Wind
|
|||
drawing_state().clip = CanvasClip { path, winding_rule };
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::clip(DeprecatedString const& fill_rule)
|
||||
void CanvasRenderingContext2D::clip(StringView fill_rule)
|
||||
{
|
||||
auto transformed_path = path().copy_transformed(drawing_state().transform);
|
||||
return clip_internal(transformed_path, parse_fill_rule(fill_rule));
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::clip(Path2D& path, DeprecatedString const& fill_rule)
|
||||
void CanvasRenderingContext2D::clip(Path2D& path, StringView fill_rule)
|
||||
{
|
||||
auto transformed_path = path.path().copy_transformed(drawing_state().transform);
|
||||
return clip_internal(transformed_path, parse_fill_rule(fill_rule));
|
||||
|
|
|
@ -73,11 +73,11 @@ public:
|
|||
virtual void stroke() override;
|
||||
virtual void stroke(Path2D const& path) override;
|
||||
|
||||
virtual void fill_text(DeprecatedString const&, float x, float y, Optional<double> max_width) override;
|
||||
virtual void stroke_text(DeprecatedString const&, float x, float y, Optional<double> max_width) override;
|
||||
virtual void fill_text(StringView, float x, float y, Optional<double> max_width) override;
|
||||
virtual void stroke_text(StringView, float x, float y, Optional<double> max_width) override;
|
||||
|
||||
virtual void fill(DeprecatedString const& fill_rule) override;
|
||||
virtual void fill(Path2D& path, DeprecatedString const& fill_rule) override;
|
||||
virtual void fill(StringView fill_rule) override;
|
||||
virtual void fill(Path2D& path, StringView fill_rule) override;
|
||||
|
||||
virtual JS::GCPtr<ImageData> create_image_data(int width, int height) const override;
|
||||
virtual WebIDL::ExceptionOr<JS::GCPtr<ImageData>> get_image_data(int x, int y, int width, int height) const override;
|
||||
|
@ -87,10 +87,10 @@ public:
|
|||
|
||||
JS::NonnullGCPtr<HTMLCanvasElement> canvas_for_binding() const;
|
||||
|
||||
virtual JS::NonnullGCPtr<TextMetrics> measure_text(DeprecatedString const& text) override;
|
||||
virtual JS::NonnullGCPtr<TextMetrics> measure_text(StringView text) override;
|
||||
|
||||
virtual void clip(DeprecatedString const& fill_rule) override;
|
||||
virtual void clip(Path2D& path, DeprecatedString const& fill_rule) override;
|
||||
virtual void clip(StringView fill_rule) override;
|
||||
virtual void clip(Path2D& path, StringView fill_rule) override;
|
||||
|
||||
virtual bool image_smoothing_enabled() const override;
|
||||
virtual void set_image_smoothing_enabled(bool) override;
|
||||
|
|
|
@ -20,7 +20,7 @@ enum CanvasTextAlign { "start", "end", "left", "right", "center" };
|
|||
enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" };
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#canvasrenderingcontext2d
|
||||
[Exposed=Window, UseDeprecatedAKString]
|
||||
[Exposed=Window]
|
||||
interface CanvasRenderingContext2D {
|
||||
[ImplementedAs=canvas_for_binding] readonly attribute HTMLCanvasElement canvas;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue