diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2012-03-25 16:38:17 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2012-03-25 16:38:17 +0000 |
commit | 903f4565473da7d46390dc53d9562b771c750f2b (patch) | |
tree | de5b604ac751e3c50f5f15b8d31c01c828193361 /css/select.c | |
parent | 61716fc4f93c7b033e43eccf4d2a058116b10144 (diff) | |
download | netsurf-903f4565473da7d46390dc53d9562b771c750f2b.tar.gz netsurf-903f4565473da7d46390dc53d9562b771c750f2b.tar.bz2 |
two more presentational hints
svn path=/trunk/netsurf/; revision=13699
Diffstat (limited to 'css/select.c')
-rw-r--r-- | css/select.c | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/css/select.c b/css/select.c index 0cd2a790f..fc4558e0b 100644 --- a/css/select.c +++ b/css/select.c @@ -2679,26 +2679,35 @@ node_presentational_hint_caption_side(nscss_select_ctx *ctx, dom_node *node, css_hint *hint) { -#ifdef FIXME - xmlChar *align = NULL; + dom_exception err; + dom_string *node_name = NULL; + dom_string *align = NULL; - if (strcmp((const char *) n->name, "caption") == 0) - align = xmlGetProp(n, (const xmlChar *) "align"); + err = dom_node_get_node_name(node, &node_name); + if ((err != DOM_NO_ERR) || (node_name == NULL)) { + return CSS_PROPERTY_NOT_SET; + } - if (align == NULL) + if (!dom_string_caseless_isequal(node_name, nscss_dom_string_caption)) { + dom_string_unref(node_name); return CSS_PROPERTY_NOT_SET; + } - if (strcasecmp((const char *) align, "bottom") == 0) { - hint->status = CSS_CAPTION_SIDE_BOTTOM; - } else { - xmlFree(align); + dom_string_unref(node_name); + + err = dom_element_get_attribute(node, nscss_dom_string_align, &align); + if ((err != DOM_NO_ERR) || (align == NULL)) { return CSS_PROPERTY_NOT_SET; } - xmlFree(align); + if (dom_string_caseless_isequal(align, nscss_dom_string_bottom)) { + hint->status = CSS_CAPTION_SIDE_BOTTOM; + dom_string_unref(align); + return CSS_OK; + } + + dom_string_unref(align); - return CSS_OK; -#endif return CSS_PROPERTY_NOT_SET; } @@ -2707,23 +2716,23 @@ node_presentational_hint_background_color(nscss_select_ctx *ctx, dom_node *node, css_hint *hint) { -#ifdef FIXME - xmlChar *bgcol = xmlGetProp(n, (const xmlChar *) "bgcolor"); - if (bgcol == NULL) + dom_exception err; + dom_string *bgcolor; + + err = dom_element_get_attribute(node, nscss_dom_string_bgcolor, &bgcolor); + if ((err != DOM_NO_ERR) || (bgcolor == NULL)) { return CSS_PROPERTY_NOT_SET; + } - if (nscss_parse_colour((const char *) bgcol, + if (nscss_parse_colour((const char *)dom_string_data(bgcolor), &hint->data.color)) { hint->status = CSS_BACKGROUND_COLOR_COLOR; - } else { - xmlFree(bgcol); - return CSS_PROPERTY_NOT_SET; + dom_string_unref(bgcolor); + return CSS_OK; } - xmlFree(bgcol); + dom_string_unref(bgcolor); - return CSS_OK; -#endif return CSS_PROPERTY_NOT_SET; } |