mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-26 22:38:51 +00:00
LibWeb/CSS: Merge RotationStyleValue into TransformationStyleValue
Same again, although rotation is more complicated: `rotate` is "equivalent to" multiple different transform function depending on its arguments. So we can parse as one of those instead of the full `rotate3d()`, but then need to handle this when serializing.
This commit is contained in:
parent
03a4ecce19
commit
b3b9eea986
Notes:
github-actions[bot]
2025-01-17 09:15:17 +00:00
Author: https://github.com/AtkinsSJ
Commit: b3b9eea986
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3263
12 changed files with 69 additions and 166 deletions
|
@ -69,7 +69,6 @@
|
|||
#include <LibWeb/CSS/StyleValues/RatioStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/ResolutionStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/RotationStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/ScrollbarGutterStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/ShadowStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/ShorthandStyleValue.h>
|
||||
|
@ -5237,7 +5236,7 @@ RefPtr<CSSStyleValue> Parser::parse_rotate_value(TokenStream<ComponentValue>& to
|
|||
|
||||
// <angle>
|
||||
if (auto angle = parse_angle_value(tokens))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(0), NumberStyleValue::create(0), NumberStyleValue::create(1));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::Rotate, { angle.release_nonnull() });
|
||||
}
|
||||
|
||||
auto parse_one_of_xyz = [&]() -> Optional<ComponentValue const&> {
|
||||
|
@ -5258,11 +5257,11 @@ RefPtr<CSSStyleValue> Parser::parse_rotate_value(TokenStream<ComponentValue>& to
|
|||
if (auto axis = parse_one_of_xyz(); axis.has_value()) {
|
||||
if (auto angle = parse_angle_value(tokens); angle) {
|
||||
if (axis->is_ident("x"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(1), NumberStyleValue::create(0), NumberStyleValue::create(0));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateX, { angle.release_nonnull() });
|
||||
if (axis->is_ident("y"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(0), NumberStyleValue::create(1), NumberStyleValue::create(0));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateY, { angle.release_nonnull() });
|
||||
if (axis->is_ident("z"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(0), NumberStyleValue::create(0), NumberStyleValue::create(1));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateZ, { angle.release_nonnull() });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5270,11 +5269,11 @@ RefPtr<CSSStyleValue> Parser::parse_rotate_value(TokenStream<ComponentValue>& to
|
|||
if (auto angle = parse_angle_value(tokens); angle) {
|
||||
if (auto axis = parse_one_of_xyz(); axis.has_value()) {
|
||||
if (axis->is_ident("x"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(1), NumberStyleValue::create(0), NumberStyleValue::create(0));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateX, { angle.release_nonnull() });
|
||||
if (axis->is_ident("y"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(0), NumberStyleValue::create(1), NumberStyleValue::create(0));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateY, { angle.release_nonnull() });
|
||||
if (axis->is_ident("z"sv))
|
||||
return RotationStyleValue::create(angle.release_nonnull(), NumberStyleValue::create(0), NumberStyleValue::create(0), NumberStyleValue::create(1));
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::RotateZ, { angle.release_nonnull() });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5299,7 +5298,7 @@ RefPtr<CSSStyleValue> Parser::parse_rotate_value(TokenStream<ComponentValue>& to
|
|||
if (auto maybe_numbers = parse_three_numbers(); maybe_numbers.has_value()) {
|
||||
if (auto angle = parse_angle_value(tokens); angle) {
|
||||
auto numbers = maybe_numbers.release_value();
|
||||
return RotationStyleValue::create(angle.release_nonnull(), numbers[0], numbers[1], numbers[2]);
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::Rotate3d, { numbers[0], numbers[1], numbers[2], angle.release_nonnull() });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5307,7 +5306,7 @@ RefPtr<CSSStyleValue> Parser::parse_rotate_value(TokenStream<ComponentValue>& to
|
|||
if (auto angle = parse_angle_value(tokens); angle) {
|
||||
if (auto maybe_numbers = parse_three_numbers(); maybe_numbers.has_value()) {
|
||||
auto numbers = maybe_numbers.release_value();
|
||||
return RotationStyleValue::create(angle.release_nonnull(), numbers[0], numbers[1], numbers[2]);
|
||||
return TransformationStyleValue::create(PropertyID::Rotate, TransformFunction::Rotate3d, { numbers[0], numbers[1], numbers[2], angle.release_nonnull() });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue