
It's now possible to set a page background image via <body background>. Also, HtmlView now officially handles rendering the body element's background (color, image or both.) LayoutBox is responsible for all other background rendering. Note that it's not yet possible to use CSS background-image properties directly, since we can't parse them yet. :^)
47 lines
1.7 KiB
C++
47 lines
1.7 KiB
C++
#include <LibHTML/CSS/StyleProperties.h>
|
|
#include <LibHTML/CSS/StyleValue.h>
|
|
#include <LibHTML/DOM/Document.h>
|
|
#include <LibHTML/DOM/HTMLBodyElement.h>
|
|
|
|
HTMLBodyElement::HTMLBodyElement(Document& document, const String& tag_name)
|
|
: HTMLElement(document, tag_name)
|
|
{
|
|
}
|
|
|
|
HTMLBodyElement::~HTMLBodyElement()
|
|
{
|
|
}
|
|
|
|
void HTMLBodyElement::apply_presentational_hints(StyleProperties& style) const
|
|
{
|
|
for_each_attribute([&](auto& name, auto& value) {
|
|
if (name == "bgcolor") {
|
|
auto color = Color::from_string(value);
|
|
if (color.has_value())
|
|
style.set_property(CSS::PropertyID::BackgroundColor, ColorStyleValue::create(color.value()));
|
|
} else if (name == "text") {
|
|
auto color = Color::from_string(value);
|
|
if (color.has_value())
|
|
style.set_property(CSS::PropertyID::Color, ColorStyleValue::create(color.value()));
|
|
} else if (name == "background") {
|
|
style.set_property(CSS::PropertyID::BackgroundImage, ImageStyleValue::create(document().complete_url(value), const_cast<Document&>(document())));
|
|
}
|
|
});
|
|
}
|
|
|
|
void HTMLBodyElement::parse_attribute(const String& name, const String& value)
|
|
{
|
|
if (name == "link") {
|
|
auto color = Color::from_string(value);
|
|
if (color.has_value())
|
|
document().set_link_color(color.value());
|
|
} else if (name == "alink") {
|
|
auto color = Color::from_string(value);
|
|
if (color.has_value())
|
|
document().set_active_link_color(color.value());
|
|
} else if (name == "vlink") {
|
|
auto color = Color::from_string(value);
|
|
if (color.has_value())
|
|
document().set_visited_link_color(color.value());
|
|
}
|
|
}
|