diff --git a/LibHTML/CSS/StyleResolver.cpp b/LibHTML/CSS/StyleResolver.cpp new file mode 100644 index 00000000000..07e9e636d96 --- /dev/null +++ b/LibHTML/CSS/StyleResolver.cpp @@ -0,0 +1,23 @@ +#include +#include + +StyleResolver::StyleResolver(Document& document) + : m_document(document) +{ +} + +StyleResolver::~StyleResolver() +{ +} + +OwnPtr StyleResolver::resolve_document_style(const Document& document) +{ + UNUSED_PARAM(document); + return nullptr; +} + +OwnPtr StyleResolver::resolve_element_style(const Element& element) +{ + UNUSED_PARAM(element); + return nullptr; +} diff --git a/LibHTML/CSS/StyleResolver.h b/LibHTML/CSS/StyleResolver.h new file mode 100644 index 00000000000..2875d81700e --- /dev/null +++ b/LibHTML/CSS/StyleResolver.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include +#include + +class Document; +class Element; +class StyleSheet; + +class StyleResolver { +public: + explicit StyleResolver(Document&); + ~StyleResolver(); + + Document& document() { return m_document; } + const Document& document() const { return m_document; } + + void add_sheet(const StyleSheet& sheet) { m_sheets.append(sheet); } + + OwnPtr resolve_element_style(const Element&); + OwnPtr resolve_document_style(const Document&); + +private: + Document& m_document; + + NonnullRefPtrVector m_sheets; +}; diff --git a/LibHTML/Makefile.shared b/LibHTML/Makefile.shared index fd30a0521c1..df6e17befc8 100644 --- a/LibHTML/Makefile.shared +++ b/LibHTML/Makefile.shared @@ -10,6 +10,7 @@ LIBHTML_OBJS = \ CSS/StyleDeclaration.o \ CSS/StyleValue.o \ CSS/StyledNode.o \ + CSS/StyleResolver.o \ CSS/DefaultStyleSheetSource.o \ Parser/HTMLParser.o \ Parser/CSSParser.o \ diff --git a/LibHTML/test.cpp b/LibHTML/test.cpp index 2e426dea228..c5ba6d73fdc 100644 --- a/LibHTML/test.cpp +++ b/LibHTML/test.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -23,6 +24,11 @@ int main(int argc, char** argv) auto doc = parse_html(html); dump_tree(doc); + StyleResolver resolver(*doc); + resolver.add_sheet(*sheet); + + auto doc_style = resolver.resolve_document_style(*doc); + doc->build_layout_tree(); ASSERT(doc->layout_node());