System/Libraries/Html/Renderer: Apply bgcolor/color element attribute values to CSS
This commit is contained in:
parent
17910faac2
commit
603e1d15ab
1 changed files with 23 additions and 1 deletions
|
@ -248,6 +248,13 @@ Bool @render_css_for_node(@html_dom_node* node, HtmlRenderer* renderer)
|
||||||
U8 node_ptr_string[32];
|
U8 node_ptr_string[32];
|
||||||
U8* tmpmd5;
|
U8* tmpmd5;
|
||||||
|
|
||||||
|
if (!node)
|
||||||
|
return FALSE;
|
||||||
|
if (node->parentNode) {
|
||||||
|
node->backgroundColor = node->parentNode->backgroundColor;
|
||||||
|
node->color = node->parentNode->color;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < renderer->css_rules->length; i++) {
|
for (i = 0; i < renderer->css_rules->length; i++) {
|
||||||
rule = renderer->css_rules->@(i);
|
rule = renderer->css_rules->@(i);
|
||||||
matched = FALSE;
|
matched = FALSE;
|
||||||
|
@ -584,7 +591,7 @@ U0 @render_node_text(@html_dom_node* node, HtmlRenderer* renderer)
|
||||||
fragment_widget = Gui.CreateWidget(renderer->win, WIDGET_TYPE_CONTEXT2D,
|
fragment_widget = Gui.CreateWidget(renderer->win, WIDGET_TYPE_CONTEXT2D,
|
||||||
U64_MAX, U64_MAX, 0, 0);
|
U64_MAX, U64_MAX, 0, 0);
|
||||||
fragment_widget->data = node;
|
fragment_widget->data = node;
|
||||||
fragment_widget->ctx = NewContext2D(text_width, ToI64(font_size * 1.5))->fill(Color(255, 255, 255))->text(font_name, 0, 0, font_size, node->parentNode->color, fragment[i]);
|
fragment_widget->ctx = NewContext2D(text_width, ToI64(font_size * 1.5))->fill(node->parentNode->backgroundColor)->text(font_name, 0, 0, font_size, node->parentNode->color, fragment[i]);
|
||||||
fragment_widget->width = fragment_widget->ctx->width;
|
fragment_widget->width = fragment_widget->ctx->width;
|
||||||
fragment_widget->height = fragment_widget->ctx->height;
|
fragment_widget->height = fragment_widget->ctx->height;
|
||||||
}
|
}
|
||||||
|
@ -623,6 +630,21 @@ U0 @render_node_list(@html_dom_node* node, HtmlRenderer* renderer)
|
||||||
if (!@render_css_for_node(node, renderer))
|
if (!@render_css_for_node(node, renderer))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (node->attributes->@("bgcolor")) {
|
||||||
|
if (@css_named_colors->@(node->attributes->@("bgcolor"))) {
|
||||||
|
node->backgroundColor = @css_resolve_color_from_rrggbb(@css_named_colors->@(node->attributes->@("bgcolor")));
|
||||||
|
} else if (node->attributes->@("bgcolor")(U8*)[0] == '#') {
|
||||||
|
node->backgroundColor = @css_resolve_color_from_rrggbb(node->attributes->@("bgcolor"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (node->attributes->@("color")) {
|
||||||
|
if (@css_named_colors->@(node->attributes->@("color"))) {
|
||||||
|
node->color = @css_resolve_color_from_rrggbb(@css_named_colors->@(node->attributes->@("color")));
|
||||||
|
} else if (node->attributes->@("color")(U8*)[0] == '#') {
|
||||||
|
node->color = @css_resolve_color_from_rrggbb(node->attributes->@("color"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Context2DWidget* block_widget;
|
Context2DWidget* block_widget;
|
||||||
|
|
||||||
// FIXME: Resolve if display: block is set
|
// FIXME: Resolve if display: block is set
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue