From 5552f2b06cfaa4c7daf1b6b224bd197e85f266fd Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 22 Aug 2009 09:56:41 +0000 Subject: Use new alignment scheme svn path=/trunk/netsurf/; revision=9390 --- css/select.c | 163 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 81 insertions(+), 82 deletions(-) (limited to 'css') diff --git a/css/select.c b/css/select.c index 12e25d536..5f20a30c4 100644 --- a/css/select.c +++ b/css/select.c @@ -1762,28 +1762,93 @@ css_error node_presentational_hint(void *pw, void *node, strcmp((const char *) n->name, "h3") == 0 || strcmp((const char *) n->name, "h4") == 0 || strcmp((const char *) n->name, "h5") == 0 || - strcmp((const char *) n->name, "h6") == 0) + strcmp((const char *) n->name, "h6") == 0) { align = xmlGetProp(n, (const xmlChar *) "align"); - if (align == NULL) - return CSS_PROPERTY_NOT_SET; + if (align == NULL) + return CSS_PROPERTY_NOT_SET; + + if (strcmp((const char *) align, "left") == 0) { + hint->status = CSS_TEXT_ALIGN_LEFT; + } else if (strcmp((const char *) align, + "center") == 0) { + hint->status = CSS_TEXT_ALIGN_CENTER; + } else if (strcmp((const char *) align, "right") == 0) { + hint->status = CSS_TEXT_ALIGN_RIGHT; + } else if (strcmp((const char *) align, + "justify") == 0) { + hint->status = CSS_TEXT_ALIGN_JUSTIFY; + } else { + xmlFree(align); + return CSS_PROPERTY_NOT_SET; + } - if (strcmp((const char *) align, "left") == 0) { - hint->status = CSS_TEXT_ALIGN_LEFT; - } else if (strcmp((const char *) align, "center") == 0) { - hint->status = CSS_TEXT_ALIGN_CENTER; - } else if (strcmp((const char *) align, "right") == 0) { - hint->status = CSS_TEXT_ALIGN_RIGHT; - } else if (strcmp((const char *) align, "justify") == 0) { - hint->status = CSS_TEXT_ALIGN_JUSTIFY; - } else { xmlFree(align); - return CSS_PROPERTY_NOT_SET; - } - xmlFree(align); + return CSS_OK; + } else if (strcmp((const char *) n->name, "center") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER; - return CSS_OK; + return CSS_OK; + } else if (strcmp((const char *) n->name, "caption") == 0) { + align = xmlGetProp(n, (const xmlChar *) "align"); + + if (align == NULL || strcmp((const char *) align, + "center") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER; + } else if (strcmp((const char *) align, "left") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT; + } else if (strcmp((const char *) align, "right") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT; + } else if (strcmp((const char *) align, + "justify") == 0) { + hint->status = CSS_TEXT_ALIGN_JUSTIFY; + } else { + xmlFree(align); + return CSS_PROPERTY_NOT_SET; + } + + if (align != NULL) + xmlFree(align); + + return CSS_OK; + } else if (strcmp((const char *) n->name, "div") == 0 || + strcmp((const char *) n->name, "thead") == 0 || + strcmp((const char *) n->name, "tbody") == 0 || + strcmp((const char *) n->name, "tfoot") == 0 || + strcmp((const char *) n->name, "tr") == 0 || + strcmp((const char *) n->name, "td") == 0 || + strcmp((const char *) n->name, "th") == 0) { + align = xmlGetProp(n, (const xmlChar *) "align"); + + if (align == NULL) + return CSS_PROPERTY_NOT_SET; + + if (strcmp((const char *) align, "center") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER; + } else if (strcmp((const char *) align, "left") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT; + } else if (strcmp((const char *) align, "right") == 0) { + hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT; + } else if (strcmp((const char *) align, + "justify") == 0) { + hint->status = CSS_TEXT_ALIGN_JUSTIFY; + } else { + xmlFree(align); + return CSS_PROPERTY_NOT_SET; + } + + xmlFree(align); + + return CSS_OK; + } else if (strcmp((const char *) n->name, "table") == 0) { + /* Tables reset alignment */ + hint->status = CSS_TEXT_ALIGN_DEFAULT; + + return CSS_OK; + } else { + return CSS_PROPERTY_NOT_SET; + } } else if (property == CSS_PROP_VERTICAL_ALIGN) { xmlChar *valign = NULL; @@ -1853,72 +1918,6 @@ css_error node_presentational_hint(void *pw, void *node, return CSS_OK; } - } else if (property == CSS_PROP_LIBCSS_ALIGN) { - xmlChar *align = NULL; - - if (strcmp((const char *) n->name, "center") == 0) { - hint->status = CSS_LIBCSS_ALIGN_CENTER; - - return CSS_OK; - } else if (strcmp((const char *) n->name, "caption") == 0) { - align = xmlGetProp(n, (const xmlChar *) "align"); - - if (align == NULL || strcmp((const char *) align, - "center") == 0) { - hint->status = CSS_LIBCSS_ALIGN_CENTER; - } else if (strcmp((const char *) align, "left") == 0) { - hint->status = CSS_LIBCSS_ALIGN_LEFT; - } else if (strcmp((const char *) align, "right") == 0) { - hint->status = CSS_LIBCSS_ALIGN_RIGHT; - } else if (strcmp((const char *) align, - "justify") == 0) { - hint->status = CSS_LIBCSS_ALIGN_JUSTIFY; - } else { - xmlFree(align); - return CSS_PROPERTY_NOT_SET; - } - - if (align != NULL) - xmlFree(align); - - return CSS_OK; - } else if (strcmp((const char *) n->name, "div") == 0 || - strcmp((const char *) n->name, "thead") == 0 || - strcmp((const char *) n->name, "tbody") == 0 || - strcmp((const char *) n->name, "tfoot") == 0 || - strcmp((const char *) n->name, "tr") == 0 || - strcmp((const char *) n->name, "td") == 0 || - strcmp((const char *) n->name, "th") == 0) { - align = xmlGetProp(n, (const xmlChar *) "align"); - - if (align == NULL) - return CSS_PROPERTY_NOT_SET; - - if (strcmp((const char *) align, "center") == 0) { - hint->status = CSS_LIBCSS_ALIGN_CENTER; - } else if (strcmp((const char *) align, "left") == 0) { - hint->status = CSS_LIBCSS_ALIGN_LEFT; - } else if (strcmp((const char *) align, "right") == 0) { - hint->status = CSS_LIBCSS_ALIGN_RIGHT; - } else if (strcmp((const char *) align, - "justify") == 0) { - hint->status = CSS_LIBCSS_ALIGN_JUSTIFY; - } else { - xmlFree(align); - return CSS_PROPERTY_NOT_SET; - } - - xmlFree(align); - - return CSS_OK; - } else if (strcmp((const char *) n->name, "table") == 0) { - /* Tables reset HTML alignment */ - hint->status = CSS_LIBCSS_ALIGN_DEFAULT; - - return CSS_OK; - } else { - return CSS_PROPERTY_NOT_SET; - } } return CSS_PROPERTY_NOT_SET; -- cgit v1.2.3