Andreas Kling
ffcbe8f0de
LibHTML: Start building the style tree.
...
Walk the DOM and construct a parallel style tree that points back to the DOM
and has the relevant CSS property values hanging off of them.
The values are picked based on naive selector matching. There's no cascade
or specificity taken into account yet.
2019-06-28 21:25:44 +02:00
Andreas Kling
e971f5604c
LibHTML: Implement some very simple selector matching.
...
We walk the entire DOM and check all selectors against all elements. Only
id, class and tag name are checked right now. There's no ancestor stack
or compound selectors. All in good time :^)
2019-06-27 20:40:21 +02:00
Andreas Kling
2b4eea5a50
LibHTML: Start fleshing out a StyleResolver class.
...
This will be responsible for matching selectors and creating LayoutStyle
objects for the document and its elements.
2019-06-27 17:47:59 +02:00
Andreas Kling
e2b8a2315e
LibHTML: Use NonnullRefPtrVector in the CSS and HTML parsers.
2019-06-27 13:23:22 +02:00
Andreas Kling
7cc9ce8380
LibHTML: Use NonnullRefPtrVector in LibHTML.
2019-06-27 12:16:20 +02:00
Andreas Kling
7a3f59ae3f
LibHTML: Add a StyledNode class.
...
I'd like to try doing DOM -> style tree -> layout tree. I'm not exactly sure
how it's gonna work, but we'll figure it out as we go.
2019-06-27 08:37:47 +02:00
Andreas Kling
8adae51b35
LibHTML: Add a simple TreeNode<T> template for making trees.
...
We'll be making a lot of trees here, so let's share code during bootstrap.
Eventually some of these classes are gonna want custom trees but for now
we can just fit them all into the same clothes.
2019-06-25 19:46:01 +02:00
Andreas Kling
6469d7f043
LibHTML: Flesh out the code to dump a StyleSheet object graph.
2019-06-25 06:31:47 +02:00
Andreas Kling
4573eb226e
LibHTML: Implement enough of the CSS parser to parse the default stylesheet.
2019-06-22 21:48:56 +02:00
Andreas Kling
7e1cb86da7
LibHTML: Make it possible to build LibHTML on the host.
...
- "make" builds the normal Serenity libhtml.a
- "make -f Makefile.host" builds a test program for the host machine.
2019-06-22 21:21:57 +02:00
Andreas Kling
ae8eff55a7
LibHTML: Some initial works towards a simple CSS parser.
2019-06-22 09:27:39 +02:00
Andreas Kling
891e668e35
LibHTML: Add an empty CSS parser.
2019-06-21 20:55:41 +02:00
Andreas Kling
85d71024f7
LibHTML: Add a basic default UA stylesheet.
...
We can't parse this yet, but we have to start somewhere. :^)
2019-06-21 20:27:11 +02:00
Andreas Kling
02e02ca3a5
LibHTML: More work on the CSS object model.
2019-06-21 19:19:49 +02:00
Andreas Kling
d343fb2429
AK: Rename Retainable.h => RefCounted.h.
2019-06-21 18:58:45 +02:00
Andreas Kling
550b0b062b
AK: Rename RetainPtr.h => RefPtr.h, Retained.h => NonnullRefPtr.h.
2019-06-21 18:45:59 +02:00
Andreas Kling
90b1354688
AK: Rename RetainPtr => RefPtr and Retained => NonnullRefPtr.
2019-06-21 18:37:47 +02:00
Andreas Kling
77b9fa89dd
AK: Rename Retainable => RefCounted.
...
(And various related renames that go along with it.)
2019-06-21 15:30:03 +02:00
Andreas Kling
d99b1a9ea0
LibHTML: Add the outline of a CSS stylesheet object graph.
2019-06-20 23:25:25 +02:00
Andreas Kling
2e2b97dc8a
LibHTML: Add layout() overrides for LayoutText and LayoutBlock.
2019-06-20 23:00:26 +02:00
Andreas Kling
0db2f3cbe6
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.
2019-06-16 21:35:03 +02:00
Andreas Kling
e3d3e431dc
LibHTML: Add a LayoutStyle object (computed style for a LayoutNode.)
2019-06-16 13:44:09 +02:00
Andreas Kling
fec098b5cd
LibHTML: Give LayoutNodes a rect.
...
Also improve the layout tree dump format somewhat.
2019-06-16 12:26:24 +02:00
Andreas Kling
1f51c2b7da
LibHTML: Create some subdirectories.
2019-06-15 23:41:15 +02:00
Andreas Kling
0522a8f71c
LibHTML: Collapse all-whitespace LayoutText into a single ' ' char.
2019-06-15 23:18:00 +02:00
Andreas Kling
8a0e21b22b
LibHTML: Start fleshing out a basic layout tree.
2019-06-15 22:49:44 +02:00
Andreas Kling
f8a86b5164
LibHTML: Basic element attribute parsing.
2019-06-15 21:08:36 +02:00
Andreas Kling
581d6b00c8
LibHTML: Start working on a very simplified HTML parser.
2019-06-15 20:21:57 +02:00
Andreas Kling
a67e823838
LibHTML: Start working on a simple HTML library.
...
I'd like to have rich text, and we might as well use HTML for that. :^)
2019-06-15 18:55:47 +02:00