Prechádzať zdrojové kódy

LibWeb: Stub `SVGTextContentElement.getStartPositionOfChar()`

MacDue 1 rok pred
rodič
commit
329262d54f

+ 8 - 2
Userland/Libraries/LibWeb/SVG/SVGTextContentElement.cpp

@@ -51,10 +51,16 @@ ByteString SVGTextContentElement::text_contents() const
 }
 
 // https://svgwg.org/svg2-draft/text.html#__svg__SVGTextContentElement__getNumberOfChars
-WebIDL::ExceptionOr<int> SVGTextContentElement::get_number_of_chars() const
+WebIDL::ExceptionOr<WebIDL::Long> SVGTextContentElement::get_number_of_chars() const
 {
     auto chars = TRY_OR_THROW_OOM(vm(), utf8_to_utf16(text_contents()));
-    return static_cast<int>(chars.size());
+    return static_cast<WebIDL::Long>(chars.size());
+}
+
+JS::NonnullGCPtr<Geometry::DOMPoint> SVGTextContentElement::get_start_position_of_char(WebIDL::UnsignedLong charnum)
+{
+    dbgln("(STUBBED) SVGTextContentElement::get_start_position_of_char(charnum={}). Called on: {}", charnum, debug_description());
+    return Geometry::DOMPoint::from_point(vm(), Geometry::DOMPointInit {});
 }
 
 }

+ 5 - 1
Userland/Libraries/LibWeb/SVG/SVGTextContentElement.h

@@ -6,9 +6,11 @@
 
 #pragma once
 
+#include <LibWeb/Geometry/DOMPoint.h>
 #include <LibWeb/SVG/AttributeParser.h>
 #include <LibWeb/SVG/SVGGraphicsElement.h>
 #include <LibWeb/WebIDL/ExceptionOr.h>
+#include <LibWeb/WebIDL/Types.h>
 
 namespace Web::SVG {
 
@@ -17,12 +19,14 @@ class SVGTextContentElement : public SVGGraphicsElement {
     WEB_PLATFORM_OBJECT(SVGTextContentElement, SVGGraphicsElement);
 
 public:
-    WebIDL::ExceptionOr<int> get_number_of_chars() const;
+    WebIDL::ExceptionOr<WebIDL::Long> get_number_of_chars() const;
 
     Optional<TextAnchor> text_anchor() const;
 
     ByteString text_contents() const;
 
+    JS::NonnullGCPtr<Geometry::DOMPoint> get_start_position_of_char(WebIDL::UnsignedLong charnum);
+
 protected:
     SVGTextContentElement(DOM::Document&, DOM::QualifiedName);
 

+ 1 - 1
Userland/Libraries/LibWeb/SVG/SVGTextContentElement.idl

@@ -15,7 +15,7 @@ interface SVGTextContentElement : SVGGraphicsElement {
     long getNumberOfChars();
     // FIXME: float getComputedTextLength();
     // FIXME: float getSubStringLength(unsigned long charnum, unsigned long nchars);
-    // FIXME: DOMPoint getStartPositionOfChar(unsigned long charnum);
+    DOMPoint getStartPositionOfChar(unsigned long charnum);
     // FIXME: DOMPoint getEndPositionOfChar(unsigned long charnum);
     // FIXME: DOMRect getExtentOfChar(unsigned long charnum);
     // FIXME: float getRotationOfChar(unsigned long charnum);