ladybird/Userland/Libraries/LibWeb/SVG/SVGLength.cpp
Timothy Flynn ebf3829f1c LibWeb: Begin implementing the SVGLength type
There are a few unimplemented features for this type:

1. The value setter should throw a DOMException if it is invoked on an
   SVGLength that was declared readonly in another IDL file.

2. SVG::AttributeParser does not parse unit types when it parses lengths
   so all SVGLength will have an "unknown" unit for now.

3. Due to (2), methods which convert between units are unimplemented.
2022-03-21 21:04:39 +01:00

30 lines
633 B
C++

/*
* Copyright (c) 2022, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/SVG/SVGLength.h>
namespace Web::SVG {
NonnullRefPtr<SVGLength> SVGLength::create(u8 unit_type, float value)
{
return adopt_ref(*new SVGLength(unit_type, value));
}
SVGLength::SVGLength(u8 unit_type, float value)
: m_unit_type(unit_type)
, m_value(value)
{
}
// https://www.w3.org/TR/SVG11/types.html#__svg__SVGLength__value
DOM::ExceptionOr<void> SVGLength::set_value(float value)
{
// FIXME: Raise an exception if this <length> is read-only.
m_value = value;
return {};
}
}