StyleProperties.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <LibHTML/CSS/StyleProperties.h>
  2. void StyleProperties::set_property(const String& name, NonnullRefPtr<StyleValue> value)
  3. {
  4. m_property_values.set(name, move(value));
  5. }
  6. Optional<NonnullRefPtr<StyleValue>> StyleProperties::property(const String& name) const
  7. {
  8. auto it = m_property_values.find(name);
  9. if (it == m_property_values.end())
  10. return {};
  11. return it->value;
  12. }
  13. Length StyleProperties::length_or_fallback(const StringView& property_name, const Length& fallback) const
  14. {
  15. auto value = property(property_name);
  16. if (!value.has_value())
  17. return fallback;
  18. return value.value()->to_length();
  19. }
  20. String StyleProperties::string_or_fallback(const StringView& property_name, const StringView& fallback) const
  21. {
  22. auto value = property(property_name);
  23. if (!value.has_value())
  24. return fallback;
  25. return value.value()->to_string();
  26. }
  27. Color StyleProperties::color_or_fallback(const StringView& property_name, const Document& document, Color fallback) const
  28. {
  29. auto value = property(property_name);
  30. if (!value.has_value())
  31. return fallback;
  32. return value.value()->to_color(document);
  33. }