LibHTML: Implement basic support for background-color

This commit is contained in:
Andreas Kling 2019-09-29 18:05:37 +02:00
parent a4fccc02ec
commit 37a37accd4
Notes: sideshowbarker 2024-07-19 11:53:13 +09:00
2 changed files with 9 additions and 1 deletions

View File

@ -24,9 +24,11 @@ public:
bool is_inherit() const { return type() == Type::Inherit; }
bool is_initial() const { return type() == Type::Initial; }
bool is_color() const { return type() == Type::Color; }
virtual String to_string() const = 0;
virtual Length to_length() const { return {}; }
virtual Color to_color() const { return {}; }
virtual bool is_auto() const { return false; }
@ -120,6 +122,7 @@ public:
Color color() const { return m_color; }
String to_string() const override { return String::format("COLOR: %s", m_color.to_string().characters()); }
Color to_color() const override { return m_color; }
private:
explicit ColorStyleValue(Color color)

View File

@ -42,7 +42,12 @@ void LayoutNode::render(RenderingContext& context)
if (!is_anonymous() && node() == document().hovered_node())
context.painter().draw_rect(m_rect, Color::Red);
#endif
// TODO: render our background and border
auto bgcolor = style_properties().property("background-color");
if (bgcolor.has_value() && bgcolor.value()->is_color())
context.painter().fill_rect(rect(), bgcolor.value()->to_color());
// TODO: render our border
for_each_child([&](auto& child) {
child.render(context);
});