summaryrefslogtreecommitdiff
path: root/LibHTML/Frame.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-06-16 21:35:03 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-06-16 21:35:03 +0200
commit0db2f3cbe6a7ed9ae2e6c25d9fbb6e9f55b92796 (patch)
treeb2d3f9c44ba278c9d19e937be249c0950c5cf463 /LibHTML/Frame.cpp
parentf49e5c673280ee10a08618df69bf985bb4d5284a (diff)
downloadserenity-0db2f3cbe6a7ed9ae2e6c25d9fbb6e9f55b92796.zip
LibHTML: Add a Frame class, start fleshing out recursive layout.
Layout is initiated from Frame::layout(). It makes the document's layout node as wide as the frame, and then we'll take it from there.
Diffstat (limited to 'LibHTML/Frame.cpp')
-rw-r--r--LibHTML/Frame.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/LibHTML/Frame.cpp b/LibHTML/Frame.cpp
new file mode 100644
index 0000000000..73e35b0665
--- /dev/null
+++ b/LibHTML/Frame.cpp
@@ -0,0 +1,31 @@
+#include <LibHTML/Frame.h>
+#include <LibHTML/Layout/LayoutNode.h>
+
+Frame::Frame()
+ : m_size(800, 600)
+{
+}
+
+Frame::~Frame()
+{
+}
+
+void Frame::set_document(Document* document)
+{
+ m_document = document;
+}
+
+void Frame::layout()
+{
+ if (!m_document)
+ return;
+
+ if (!m_document->layout_node())
+ m_document->create_layout_node();
+
+ ASSERT(m_document->layout_node());
+
+ m_document->layout_node()->style().size().set_width(m_size.width());
+
+ m_document->layout_node()->layout();
+}