1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 06:47:34 +00:00

LibWeb: Implement CSS unset builtin value

This is equivalent to `initial` or `inherit`, depending on if the
property is inherited by default.
This commit is contained in:
Sam Atkins 2021-08-20 19:52:36 +01:00 committed by Andreas Kling
parent 3296fd70b3
commit b92a6d6542
3 changed files with 32 additions and 3 deletions

View file

@ -219,6 +219,7 @@ public:
Invalid,
Inherit,
Initial,
Unset,
String,
Length,
Color,
@ -245,6 +246,7 @@ public:
bool is_inherit() const { return type() == Type::Inherit; }
bool is_initial() const { return type() == Type::Initial; }
bool is_unset() const { return type() == Type::Unset; }
bool is_color() const { return type() == Type::Color; }
bool is_identifier() const { return type() == Type::Identifier || is_auto(); }
bool is_image() const { return type() == Type::Image; }
@ -266,11 +268,11 @@ public:
bool is_overflow() const { return type() == Type::Overflow; }
bool is_text_decoration() const { return type() == Type::TextDecoration; }
bool is_builtin() const { return is_inherit() || is_initial(); }
bool is_builtin() const { return is_inherit() || is_initial() || is_unset(); }
bool is_builtin_or_dynamic() const
{
return is_inherit() || is_initial() || is_custom_property() || is_calculated();
return is_builtin() || is_custom_property() || is_calculated();
}
virtual String to_string() const = 0;
@ -568,6 +570,24 @@ private:
}
};
class UnsetStyleValue final : public StyleValue {
public:
static NonnullRefPtr<UnsetStyleValue> the()
{
static NonnullRefPtr<UnsetStyleValue> instance = adopt_ref(*new UnsetStyleValue);
return instance;
}
virtual ~UnsetStyleValue() override { }
String to_string() const override { return "unset"; }
private:
UnsetStyleValue()
: StyleValue(Type::Unset)
{
}
};
class ColorStyleValue : public StyleValue {
public:
static NonnullRefPtr<ColorStyleValue> create(Color color)