diff options
Diffstat (limited to 'Libraries')
-rw-r--r-- | Libraries/LibWeb/CSS/Length.h | 10 | ||||
-rw-r--r-- | Libraries/LibWeb/CSS/StyleValue.h | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/Libraries/LibWeb/CSS/Length.h b/Libraries/LibWeb/CSS/Length.h index ec781aee6d..ff1d2897b0 100644 --- a/Libraries/LibWeb/CSS/Length.h +++ b/Libraries/LibWeb/CSS/Length.h @@ -154,6 +154,16 @@ public: return String::format("[%g %s]", m_value, unit_name()); } + bool operator==(const Length& other) const + { + return m_type == other.m_type && m_value == other.m_value; + } + + bool operator!=(const Length& other) const + { + return !(*this == other); + } + private: float relative_length_to_px(const Layout::Node&) const; diff --git a/Libraries/LibWeb/CSS/StyleValue.h b/Libraries/LibWeb/CSS/StyleValue.h index 52b724c57c..2fba93a988 100644 --- a/Libraries/LibWeb/CSS/StyleValue.h +++ b/Libraries/LibWeb/CSS/StyleValue.h @@ -338,6 +338,13 @@ public: virtual bool is_auto() const override { return m_length.is_auto(); } + virtual bool equals(const StyleValue& other) const override + { + if (type() != other.type()) + return false; + return m_length == static_cast<const LengthStyleValue&>(other).m_length; + } + private: explicit LengthStyleValue(const Length& length) : StyleValue(Type::Length) @@ -388,6 +395,13 @@ public: String to_string() const override { return m_color.to_string(); } Color to_color(const DOM::Document&) const override { return m_color; } + virtual bool equals(const StyleValue& other) const override + { + if (type() != other.type()) + return false; + return m_color == static_cast<const ColorStyleValue&>(other).m_color; + } + private: explicit ColorStyleValue(Color color) : StyleValue(Type::Color) |