ElementFactory.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <LibHTML/DOM/ElementFactory.h>
  2. #include <LibHTML/DOM/HTMLAnchorElement.h>
  3. #include <LibHTML/DOM/HTMLBlinkElement.h>
  4. #include <LibHTML/DOM/HTMLBodyElement.h>
  5. #include <LibHTML/DOM/HTMLFontElement.h>
  6. #include <LibHTML/DOM/HTMLHRElement.h>
  7. #include <LibHTML/DOM/HTMLHeadElement.h>
  8. #include <LibHTML/DOM/HTMLHeadingElement.h>
  9. #include <LibHTML/DOM/HTMLHtmlElement.h>
  10. #include <LibHTML/DOM/HTMLImageElement.h>
  11. #include <LibHTML/DOM/HTMLLinkElement.h>
  12. #include <LibHTML/DOM/HTMLStyleElement.h>
  13. #include <LibHTML/DOM/HTMLTitleElement.h>
  14. NonnullRefPtr<Element> create_element(Document& document, const String& tag_name)
  15. {
  16. auto lowercase_tag_name = tag_name.to_lowercase();
  17. if (lowercase_tag_name == "a")
  18. return adopt(*new HTMLAnchorElement(document, tag_name));
  19. if (lowercase_tag_name == "html")
  20. return adopt(*new HTMLHtmlElement(document, tag_name));
  21. if (lowercase_tag_name == "head")
  22. return adopt(*new HTMLHeadElement(document, tag_name));
  23. if (lowercase_tag_name == "body")
  24. return adopt(*new HTMLBodyElement(document, tag_name));
  25. if (lowercase_tag_name == "font")
  26. return adopt(*new HTMLFontElement(document, tag_name));
  27. if (lowercase_tag_name == "hr")
  28. return adopt(*new HTMLHRElement(document, tag_name));
  29. if (lowercase_tag_name == "style")
  30. return adopt(*new HTMLStyleElement(document, tag_name));
  31. if (lowercase_tag_name == "title")
  32. return adopt(*new HTMLTitleElement(document, tag_name));
  33. if (lowercase_tag_name == "link")
  34. return adopt(*new HTMLLinkElement(document, tag_name));
  35. if (lowercase_tag_name == "img")
  36. return adopt(*new HTMLImageElement(document, tag_name));
  37. if (lowercase_tag_name == "blink")
  38. return adopt(*new HTMLBlinkElement(document, tag_name));
  39. if (lowercase_tag_name == "h1"
  40. || lowercase_tag_name == "h2"
  41. || lowercase_tag_name == "h3"
  42. || lowercase_tag_name == "h4"
  43. || lowercase_tag_name == "h5"
  44. || lowercase_tag_name == "h6") {
  45. return adopt(*new HTMLHeadingElement(document, tag_name));
  46. }
  47. return adopt(*new Element(document, tag_name));
  48. }