LibHTML: Add HTMLHeadingElement for <h1> through <h6>

This commit is contained in:
Andreas Kling 2019-09-29 12:24:58 +02:00
parent f38b0f667e
commit 5b942b519c
Notes: sideshowbarker 2024-07-19 11:53:43 +09:00
4 changed files with 31 additions and 1 deletions

View file

@ -0,0 +1,10 @@
#include <LibHTML/DOM/HTMLHeadingElement.h>
HTMLHeadingElement::HTMLHeadingElement(Document& document, const String& tag_name)
: HTMLElement(document, tag_name)
{
}
HTMLHeadingElement::~HTMLHeadingElement()
{
}

View file

@ -0,0 +1,9 @@
#pragma once
#include <LibHTML/DOM/HTMLElement.h>
class HTMLHeadingElement : public HTMLElement {
public:
HTMLHeadingElement(Document&, const String& tag_name);
virtual ~HTMLHeadingElement() override;
};

View file

@ -4,6 +4,7 @@ LIBHTML_OBJS = \
DOM/Element.o \
DOM/HTMLElement.o \
DOM/HTMLAnchorElement.o \
DOM/HTMLHeadingElement.o \
DOM/Document.o \
DOM/Text.o \
CSS/Selector.o \

View file

@ -2,6 +2,7 @@
#include <AK/StringBuilder.h>
#include <LibHTML/DOM/Element.h>
#include <LibHTML/DOM/HTMLAnchorElement.h>
#include <LibHTML/DOM/HTMLHeadingElement.h>
#include <LibHTML/DOM/Text.h>
#include <LibHTML/Parser/HTMLParser.h>
#include <ctype.h>
@ -9,8 +10,17 @@
static NonnullRefPtr<Element> create_element(Document& document, const String& tag_name)
{
if (tag_name.to_lowercase() == "a")
auto lowercase_tag_name = tag_name.to_lowercase();
if (lowercase_tag_name == "a")
return adopt(*new HTMLAnchorElement(document, tag_name));
if (lowercase_tag_name == "h1"
|| lowercase_tag_name == "h2"
|| lowercase_tag_name == "h3"
|| lowercase_tag_name == "h4"
|| lowercase_tag_name == "h5"
|| lowercase_tag_name == "h6") {
return adopt(*new HTMLHeadingElement(document, tag_name));
}
return adopt(*new Element(document, tag_name));
}