ladybird/Userland/Libraries/LibWeb/CSS/StyleValues/RevertStyleValue.h
Andreas Kling 8f29bdb62c LibWeb: Implement the CSS revert keyword
This is a universal value like `initial` and `inherit` and works by
reverting the current value to whatever we had at the start of the
current cascade origin.

The implementation is somewhat inefficient as we make a copy of all
current values at the start of each origin. I'm sure we can come up with
a way to make this faster eventually.
2023-07-29 19:16:08 +02:00

33 lines
837 B
C++

/*
* Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/CSS/StyleValue.h>
namespace Web::CSS {
class RevertStyleValue final : public StyleValueWithDefaultOperators<RevertStyleValue> {
public:
static ErrorOr<ValueComparingNonnullRefPtr<RevertStyleValue>> the()
{
static ValueComparingNonnullRefPtr<RevertStyleValue> instance = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) RevertStyleValue));
return instance;
}
virtual ~RevertStyleValue() override = default;
ErrorOr<String> to_string() const override { return "revert"_string; }
bool properties_equal(RevertStyleValue const&) const { return true; }
private:
RevertStyleValue()
: StyleValueWithDefaultOperators(Type::Revert)
{
}
};
}