LibWeb/CSS: Implement converting CSSTransformValues to StyleValues

This commit is contained in:
Sam Atkins 2025-10-13 16:38:36 +01:00
commit 3716db1c61
Notes: github-actions[bot] 2025-10-14 12:42:50 +00:00
20 changed files with 198 additions and 5 deletions

View file

@ -7,6 +7,9 @@
#include "CSSMatrixComponent.h"
#include <LibWeb/Bindings/CSSMatrixComponentPrototype.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/CSS/PropertyNameAndID.h>
#include <LibWeb/CSS/StyleValues/NumberStyleValue.h>
#include <LibWeb/CSS/StyleValues/TransformationStyleValue.h>
#include <LibWeb/Geometry/DOMMatrix.h>
#include <LibWeb/WebIDL/ExceptionOr.h>
@ -82,4 +85,39 @@ WebIDL::ExceptionOr<void> CSSMatrixComponent::set_matrix(GC::Ref<Geometry::DOMMa
return {};
}
WebIDL::ExceptionOr<NonnullRefPtr<TransformationStyleValue const>> CSSMatrixComponent::create_style_value(PropertyNameAndID const& property) const
{
if (is_2d()) {
return TransformationStyleValue::create(property.id(), TransformFunction::Matrix,
{
NumberStyleValue::create(m_matrix->a()),
NumberStyleValue::create(m_matrix->b()),
NumberStyleValue::create(m_matrix->c()),
NumberStyleValue::create(m_matrix->d()),
NumberStyleValue::create(m_matrix->e()),
NumberStyleValue::create(m_matrix->f()),
});
}
return TransformationStyleValue::create(property.id(), TransformFunction::Matrix3d,
{
NumberStyleValue::create(m_matrix->m11()),
NumberStyleValue::create(m_matrix->m12()),
NumberStyleValue::create(m_matrix->m13()),
NumberStyleValue::create(m_matrix->m14()),
NumberStyleValue::create(m_matrix->m21()),
NumberStyleValue::create(m_matrix->m22()),
NumberStyleValue::create(m_matrix->m23()),
NumberStyleValue::create(m_matrix->m24()),
NumberStyleValue::create(m_matrix->m31()),
NumberStyleValue::create(m_matrix->m32()),
NumberStyleValue::create(m_matrix->m33()),
NumberStyleValue::create(m_matrix->m34()),
NumberStyleValue::create(m_matrix->m41()),
NumberStyleValue::create(m_matrix->m42()),
NumberStyleValue::create(m_matrix->m43()),
NumberStyleValue::create(m_matrix->m44()),
});
}
}