StyleResolver.h 774 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <AK/NonnullRefPtrVector.h>
  3. #include <AK/OwnPtr.h>
  4. #include <LibHTML/CSS/StyleProperties.h>
  5. class Document;
  6. class Element;
  7. class ParentNode;
  8. class StyleRule;
  9. class StyleSheet;
  10. class StyleResolver {
  11. public:
  12. explicit StyleResolver(Document&);
  13. ~StyleResolver();
  14. Document& document() { return m_document; }
  15. const Document& document() const { return m_document; }
  16. NonnullRefPtr<StyleProperties> resolve_style(const Element&, const StyleProperties* parent_properties) const;
  17. NonnullRefPtrVector<StyleRule> collect_matching_rules(const Element&) const;
  18. static bool is_inherited_property(const StringView&);
  19. private:
  20. template<typename Callback>
  21. void for_each_stylesheet(Callback) const;
  22. Document& m_document;
  23. };