diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-02-06 19:00:51 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-02-06 19:00:51 +0100 |
commit | 2f4c8b74ebe3ccf0569eda982bbd2afc5473687b (patch) | |
tree | 50fec6031b11bd8e50188eabc350ac9c7a86bf25 /src/html.cc | |
parent | bc624c1fdb57712c71fa3c98b562924a5a27e32b (diff) |
add type to CSS properties
Diffstat (limited to 'src/html.cc')
-rw-r--r-- | src/html.cc | 89 |
1 files changed, 51 insertions, 38 deletions
diff --git a/src/html.cc b/src/html.cc index 6542f5bc..d59afe97 100644 --- a/src/html.cc +++ b/src/html.cc @@ -340,7 +340,7 @@ void a_Html_tag_set_align_attr(DilloHtml *html, style_attrs.textAlignChar = '.'; } #endif - props->set (CSS_PROPERTY_TEXT_ALIGN, textAlignType); + props->set (CSS_PROPERTY_TEXT_ALIGN, CSS_TYPE_ENUM, textAlignType); } } @@ -364,7 +364,7 @@ bool a_Html_tag_set_valign_attr(DilloHtml *html, const char *tag, else valign = VALIGN_MIDDLE; - props->set (CSS_PROPERTY_VERTICAL_ALIGN, valign); + props->set (CSS_PROPERTY_VERTICAL_ALIGN, CSS_TYPE_ENUM, valign); return true; } else return false; @@ -1700,12 +1700,12 @@ static void Html_tag_open_body(DilloHtml *html, const char *tag, int tagsize) if (color == 0xffffff && !prefs.allow_white_bg) color = prefs.bg_color; S_TOP(html)->current_bg_color = color; - props.set (CSS_PROPERTY_BACKGROUND_COLOR, color); + props.set (CSS_PROPERTY_BACKGROUND_COLOR, CSS_TYPE_COLOR, color); } if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "text"))) { color = a_Html_color_parse(html, attrbuf, prefs.text_color); - props.set (CSS_PROPERTY_COLOR, color); + props.set (CSS_PROPERTY_COLOR, CSS_TYPE_COLOR, color); } if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "link"))) @@ -1790,7 +1790,7 @@ static void Html_tag_open_frame (DilloHtml *html, const char *tag, int tagsize) html->styleEngine->setPseudoLink (); } - props.set (PROPERTY_X_LINK, Html_set_new_link(html, &url)); + props.set (PROPERTY_X_LINK, CSS_TYPE_INTEGER, Html_set_new_link(html, &url)); html->styleEngine->setNonCssHints (&props); textblock->addParbreak (5, html->styleEngine->wordStyle ()); @@ -1888,12 +1888,12 @@ static void Html_tag_open_font(DilloHtml *html, const char *tag, int tagsize) color = a_Html_color_parse(html, attrbuf, -1); } if (color != -1) - props.set (CSS_PROPERTY_COLOR, color); + props.set (CSS_PROPERTY_COLOR, CSS_TYPE_COLOR, color); } // \todo reenable font face handling when font selection is implemented // if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "face"))) -// props.set (CSS_PROPERTY_FONT_FAMILY, attrbuf); +// props.set (CSS_PROPERTY_FONT_FAMILY, CSS_TYPE_SYMBOL, attrbuf); html->styleEngine->setNonCssHints (&props); } @@ -1978,9 +1978,9 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag, MSG("a_Html_add_new_image: suspicious image size request %dx%d\n", w, h); } else { if (CSS_LENGTH_TYPE(l_w) != CSS_LENGTH_TYPE_AUTO) - props.set (CSS_PROPERTY_WIDTH, l_w); + props.set (CSS_PROPERTY_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, l_w); if (CSS_LENGTH_TYPE(l_h) != CSS_LENGTH_TYPE_AUTO) - props.set (CSS_PROPERTY_HEIGHT, l_h); + props.set (CSS_PROPERTY_HEIGHT, CSS_TYPE_LENGTH_PERCENTAGE, l_h); } /* TODO: we should scale the image respecting its ratio. @@ -1995,8 +1995,8 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag, space = strtol(attrbuf, NULL, 10); if (space > 0) { space = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); - props.set (CSS_PROPERTY_MARGIN_LEFT, space); - props.set (CSS_PROPERTY_MARGIN_RIGHT, space); + props.set (CSS_PROPERTY_MARGIN_LEFT, CSS_TYPE_LENGTH_PERCENTAGE, space); + props.set (CSS_PROPERTY_MARGIN_RIGHT, CSS_TYPE_LENGTH_PERCENTAGE, space); } } @@ -2005,8 +2005,8 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag, space = strtol(attrbuf, NULL, 10); if (space > 0) { space = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); - props.set (CSS_PROPERTY_MARGIN_TOP, space); - props.set (CSS_PROPERTY_MARGIN_BOTTOM, space); + props.set (CSS_PROPERTY_MARGIN_TOP, CSS_TYPE_LENGTH_PERCENTAGE, space); + props.set (CSS_PROPERTY_MARGIN_BOTTOM, CSS_TYPE_LENGTH_PERCENTAGE, space); } } @@ -2015,22 +2015,29 @@ DilloImage *a_Html_add_new_image(DilloHtml *html, const char *tag, border = strtol(attrbuf, NULL, 10); if (border >= 0) { border = CSS_CREATE_LENGTH(border, CSS_LENGTH_TYPE_PX); - props.set (CSS_PROPERTY_BORDER_TOP_WIDTH, border); - props.set (CSS_PROPERTY_BORDER_BOTTOM_WIDTH, border); - props.set (CSS_PROPERTY_BORDER_LEFT_WIDTH, border); - props.set (CSS_PROPERTY_BORDER_RIGHT_WIDTH, border); - - props.set (CSS_PROPERTY_BORDER_TOP_STYLE, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_BOTTOM_STYLE, + props.set (CSS_PROPERTY_BORDER_TOP_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + border); + props.set (CSS_PROPERTY_BORDER_BOTTOM_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + border); + props.set (CSS_PROPERTY_BORDER_LEFT_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + border); + props.set (CSS_PROPERTY_BORDER_RIGHT_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + border); + + props.set (CSS_PROPERTY_BORDER_TOP_STYLE, CSS_TYPE_ENUM, + BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_BOTTOM_STYLE, CSS_TYPE_ENUM, + BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_LEFT_STYLE, CSS_TYPE_ENUM, + BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_RIGHT_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_LEFT_STYLE, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_RIGHT_STYLE,BORDER_SOLID); } } /* x_img is an index to a list of {url,image} pairs. * We know Html_add_new_linkimage() will use size() as its next index */ - props.set (PROPERTY_X_IMG, html->images->size()); + props.set (PROPERTY_X_IMG, CSS_TYPE_INTEGER, html->images->size()); html->styleEngine->setNonCssHints(&props); @@ -2294,7 +2301,8 @@ static void Html_tag_open_object(DilloHtml *html, const char *tag, int tagsize) html->styleEngine->setPseudoLink (); } - props.set(PROPERTY_X_LINK, Html_set_new_link(html, &url)); + props.set(PROPERTY_X_LINK, CSS_TYPE_INTEGER, + Html_set_new_link(html, &url)); html->styleEngine->setNonCssHints (&props); DW2TB(html->dw)->addText("[OBJECT]", html->styleEngine->wordStyle ()); @@ -2368,14 +2376,15 @@ static void Html_tag_open_a(DilloHtml *html, const char *tag, int tagsize) html->InVisitedLink = true; html->styleEngine->setPseudoVisited (); if (html->visited_color != -1) - props.set (CSS_PROPERTY_COLOR, html->visited_color); + props.set (CSS_PROPERTY_COLOR, CSS_TYPE_COLOR, html->visited_color); } else { html->styleEngine->setPseudoLink (); if (html->link_color != -1) - props.set (CSS_PROPERTY_COLOR, html->link_color); + props.set (CSS_PROPERTY_COLOR, CSS_TYPE_COLOR, html->link_color); } - props.set (PROPERTY_X_LINK, Html_set_new_link(html, &url)); + props.set (PROPERTY_X_LINK, CSS_TYPE_INTEGER, + Html_set_new_link(html, &url)); html->styleEngine->setNonCssHints (&props); } @@ -2456,7 +2465,7 @@ static void Html_tag_open_ul(DilloHtml *html, const char *tag, int tagsize) /* invalid value */ list_style_type = LIST_STYLE_TYPE_DISC; - props.set(CSS_PROPERTY_LIST_STYLE_TYPE, list_style_type); + props.set(CSS_PROPERTY_LIST_STYLE_TYPE, CSS_TYPE_ENUM, list_style_type); html->styleEngine->setNonCssHints (&props); } @@ -2515,7 +2524,7 @@ static void Html_tag_open_ol(DilloHtml *html, const char *tag, int tagsize) else if (*attrbuf == 'I') listStyleType = LIST_STYLE_TYPE_UPPER_ROMAN; - props.set (CSS_PROPERTY_LIST_STYLE_TYPE, listStyleType); + props.set (CSS_PROPERTY_LIST_STYLE_TYPE, CSS_TYPE_ENUM, listStyleType); html->styleEngine->setNonCssHints (&props); } @@ -2609,7 +2618,7 @@ static void Html_tag_open_hr(DilloHtml *html, const char *tag, int tagsize) width_ptr = a_Html_get_attr_wdef(html, tag, tagsize, "width", NULL); if (width_ptr) { - props.set (CSS_PROPERTY_WIDTH, + props.set (CSS_PROPERTY_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, a_Html_parse_length (html, width_ptr)); dFree(width_ptr); } @@ -2621,10 +2630,10 @@ static void Html_tag_open_hr(DilloHtml *html, const char *tag, int tagsize) /* TODO: evaluate attribute */ if (a_Html_get_attr(html, tag, tagsize, "noshade")) { - props.set (CSS_PROPERTY_BORDER_TOP_STYLE, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_BOTTOM_STYLE, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_LEFT_STYLE, BORDER_SOLID); - props.set (CSS_PROPERTY_BORDER_RIGHT_STYLE, BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_TOP_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_BOTTOM_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_LEFT_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); + props.set (CSS_PROPERTY_BORDER_RIGHT_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); if (size <= 0) size = 1; @@ -2633,10 +2642,14 @@ static void Html_tag_open_hr(DilloHtml *html, const char *tag, int tagsize) if (size > 0) { CssLength size_top = CSS_CREATE_LENGTH ((size+1)/2, CSS_LENGTH_TYPE_PX); CssLength size_bottom = CSS_CREATE_LENGTH (size / 2, CSS_LENGTH_TYPE_PX); - props.set (CSS_PROPERTY_BORDER_TOP_WIDTH, size_top); - props.set (CSS_PROPERTY_BORDER_LEFT_WIDTH, size_top); - props.set (CSS_PROPERTY_BORDER_BOTTOM_WIDTH, size_bottom); - props.set (CSS_PROPERTY_BORDER_RIGHT_WIDTH, size_bottom); + props.set (CSS_PROPERTY_BORDER_TOP_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + size_top); + props.set (CSS_PROPERTY_BORDER_LEFT_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + size_top); + props.set (CSS_PROPERTY_BORDER_BOTTOM_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + size_bottom); + props.set (CSS_PROPERTY_BORDER_RIGHT_WIDTH, CSS_TYPE_LENGTH_PERCENTAGE, + size_bottom); } DW2TB(html->dw)->addParbreak (5, html->styleEngine->wordStyle ()); |