X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fsvgtiny_internal.h;h=5ece69d42c1ab66cfa52a46321e31d3f9b67fe8e;hb=7b8fc7bb381c266a4f1ecde5b10bb4c09e2f9bc0;hp=7480f233539cdeb11b89aa7c319ec5d084c74dc3;hpb=3e5238db0f40672c24530f2443f834c3f7b7ca1a;p=libsvgtiny.git diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index 7480f23..5ece69d 100644 --- a/src/svgtiny_internal.h +++ b/src/svgtiny_internal.h @@ -54,11 +54,24 @@ struct svgtiny_parse_state { * precede it. */ css_select_ctx *select_ctx; + /* A libcss unit context. This is used to compute and compose + * styles, and is convenient to create once and pass along + * with the rest of the state. */ + css_unit_ctx unit_ctx; + + /* Keep track of the parent element's computed style so that + * we can compose its children's computed styles with it. */ + css_computed_style *parent_style; + /* paint attributes */ svgtiny_colour fill; svgtiny_colour stroke; int stroke_width; + /* alpha */ + float fill_opacity; + float stroke_opacity; + /* gradients */ struct svgtiny_parse_state_gradient fill_grad; struct svgtiny_parse_state_gradient stroke_grad; @@ -68,6 +81,14 @@ struct svgtiny_parse_state { #include "svgtiny_strings.h" #undef SVGTINY_STRING_ACTION2 + /* Where we store the interned copy of the SVG XML namespace, + * + * http://www.w3.org/2000/svg + * + * We handle it separately it has a different type + * (lwc_string) than those above (dom_string). + */ + lwc_string *interned_svg_xmlns; }; struct svgtiny_list; @@ -91,6 +112,14 @@ char *svgtiny_strndup(const char *s, size_t n); #define strndup svgtiny_strndup #endif +/* svgtiny_css.c */ +css_error svgtiny_create_stylesheet(css_stylesheet **sheet, + bool inline_style); +css_error svgtiny_select_style(struct svgtiny_parse_state *state, + dom_element *node, + const css_stylesheet *inline_sheet, + css_select_results **result); + /* svgtiny_gradient.c */ void svgtiny_find_gradient(const char *id, struct svgtiny_parse_state_gradient *grad,