diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-02-13 11:49:14 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-02-13 11:49:14 +0000 |
commit | c9899180b84909a15f3dcc17378a60d4e9e9fc3e (patch) | |
tree | 9b2b9a4fa3c9fc4e719b3e436f46be3be5d25986 /test/dump_computed.h | |
parent | cc46ab612c7b739d9ab4afc5b342ff4f0d5a56cc (diff) | |
download | libcss-c9899180b84909a15f3dcc17378a60d4e9e9fc3e.tar.gz libcss-c9899180b84909a15f3dcc17378a60d4e9e9fc3e.tar.bz2 |
Beginnings of a computed style dump routine.
It probably helps to process the stylesheets individually, rather than parsing them all into one sheet.
Fix test data somewhat.
svn path=/trunk/libcss/; revision=6468
Diffstat (limited to 'test/dump_computed.h')
-rw-r--r-- | test/dump_computed.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/test/dump_computed.h b/test/dump_computed.h new file mode 100644 index 0000000..dda07c1 --- /dev/null +++ b/test/dump_computed.h @@ -0,0 +1,106 @@ +#include <libcss/computed.h> +#include <libcss/properties.h> + +static void dump_computed_style(const css_computed_style *style, char *buf, + size_t *len) +{ + char *ptr = buf; + size_t wrote = 0; + uint8_t val; + css_color color; + + val = css_computed_background_attachment(style); + switch (val) { + case CSS_BACKGROUND_ATTACHMENT_FIXED: + wrote = snprintf(ptr, *len, "background-attachment: fixed\n"); + break; + case CSS_BACKGROUND_ATTACHMENT_SCROLL: + wrote = snprintf(ptr, *len, "background-attachment: scroll\n"); + break; + default: + wrote = 0; + break; + } + ptr += wrote; + *len -= wrote; + + val = css_computed_background_color(style, &color); + switch (val) { + case CSS_BACKGROUND_COLOR_TRANSPARENT: + wrote = snprintf(ptr, *len, "background-color: transparent\n"); + break; + case CSS_BACKGROUND_COLOR_COLOR: + wrote = snprintf(ptr, *len, "background-color: #%08x\n", color); + break; + default: + wrote = 0; + break; + } + ptr += wrote; + *len -= wrote; + + val = css_computed_color(style, &color); + if (val == CSS_COLOR_COLOR) { + wrote = snprintf(ptr, *len, "color: #%08x\n", color); + ptr += wrote; + *len -= wrote; + } + + val = css_computed_display(style); + switch (val) { + case CSS_DISPLAY_INLINE: + wrote = snprintf(ptr, *len, "display: inline\n"); + break; + case CSS_DISPLAY_BLOCK: + wrote = snprintf(ptr, *len, "display: block\n"); + break; + case CSS_DISPLAY_LIST_ITEM: + wrote = snprintf(ptr, *len, "display: list-item\n"); + break; + case CSS_DISPLAY_RUN_IN: + wrote = snprintf(ptr, *len, "display: run-in\n"); + break; + case CSS_DISPLAY_INLINE_BLOCK: + wrote = snprintf(ptr, *len, "display: inline-block\n"); + break; + case CSS_DISPLAY_TABLE: + wrote = snprintf(ptr, *len, "display: table\n"); + break; + case CSS_DISPLAY_INLINE_TABLE: + wrote = snprintf(ptr, *len, "display: inline-table\n"); + break; + case CSS_DISPLAY_TABLE_ROW_GROUP: + wrote = snprintf(ptr, *len, "display: table-row-group\n"); + break; + case CSS_DISPLAY_TABLE_HEADER_GROUP: + wrote = snprintf(ptr, *len, "display: table-header-group\n"); + break; + case CSS_DISPLAY_TABLE_FOOTER_GROUP: + wrote = snprintf(ptr, *len, "display: table-footer-group\n"); + break; + case CSS_DISPLAY_TABLE_ROW: + wrote = snprintf(ptr, *len, "display: table-row\n"); + break; + case CSS_DISPLAY_TABLE_COLUMN_GROUP: + wrote = snprintf(ptr, *len, "display: table-column-group\n"); + break; + case CSS_DISPLAY_TABLE_COLUMN: + wrote = snprintf(ptr, *len, "display: table-column\n"); + break; + case CSS_DISPLAY_TABLE_CELL: + wrote = snprintf(ptr, *len, "display: table-cell\n"); + break; + case CSS_DISPLAY_TABLE_CAPTION: + wrote = snprintf(ptr, *len, "display: table-caption\n"); + break; + case CSS_DISPLAY_NONE: + wrote = snprintf(ptr, *len, "display: none\n"); + break; + default: + wrote = 0; + break; + } + ptr += wrote; + *len -= wrote; +} + |