diff options
Diffstat (limited to 'Libraries/LibWeb/CSS/StyleValue.h')
-rw-r--r-- | Libraries/LibWeb/CSS/StyleValue.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Libraries/LibWeb/CSS/StyleValue.h b/Libraries/LibWeb/CSS/StyleValue.h index 1d8da443e9..61b119bad1 100644 --- a/Libraries/LibWeb/CSS/StyleValue.h +++ b/Libraries/LibWeb/CSS/StyleValue.h @@ -202,6 +202,16 @@ public: virtual bool is_auto() const { return false; } + bool operator==(const StyleValue& other) const { return equals(other); } + bool operator!=(const StyleValue& other) const { return !(*this == other); } + + virtual bool equals(const StyleValue& other) const + { + if (type() != other.type()) + return false; + return to_string() == other.to_string(); + } + protected: explicit StyleValue(Type); @@ -317,6 +327,13 @@ public: virtual String to_string() const override; virtual Color to_color(const DOM::Document&) const override; + virtual bool equals(const StyleValue& other) const override + { + if (type() != other.type()) + return false; + return m_id == static_cast<const IdentifierStyleValue&>(other).m_id; + } + private: explicit IdentifierStyleValue(CSS::ValueID id) : StyleValue(Type::Identifier) |