svg_status_t _svg_text_init (svg_text_t *text) { text->chars = NULL; text->len = 0; _svg_length_init_unit (&text->x, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_HORIZONTAL); _svg_length_init_unit (&text->y, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_VERTICAL); return SVG_STATUS_SUCCESS; }
svg_status_t _svg_group_init (svg_group_t *group) { group->element = NULL; group->num_elements = 0; group->element_size = 0; _svg_length_init_unit (&group->width, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_HORIZONTAL); _svg_length_init_unit (&group->height, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_VERTICAL); group->view_box.aspect_ratio = SVG_PRESERVE_ASPECT_RATIO_UNKNOWN; group->view_box.meet_or_slice = SVG_MEET_OR_SLICE_UNKNOWN; _svg_length_init_unit (&group->x, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_HORIZONTAL); _svg_length_init_unit (&group->y, 0, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_VERTICAL); return SVG_STATUS_SUCCESS; }
svg_status_t _svg_length_init_from_str (svg_length_t *length, const char *str) { double value; svg_length_unit_t unit; const char *unit_str; value = _svg_ascii_strtod (str, &unit_str); if (unit_str == str) return SVG_STATUS_PARSE_ERROR; if (unit_str) { if (strcmp (unit_str, "px") == 0) unit = SVG_LENGTH_UNIT_PX; else if (strcmp (unit_str, "pt") == 0) unit = SVG_LENGTH_UNIT_PT; else if (strcmp (unit_str, "in") == 0) unit = SVG_LENGTH_UNIT_IN; else if (strcmp (unit_str, "cm") == 0) unit = SVG_LENGTH_UNIT_CM; else if (strcmp (unit_str, "mm") == 0) unit = SVG_LENGTH_UNIT_MM; else if (strcmp (unit_str, "pc") == 0) unit = SVG_LENGTH_UNIT_PC; else if (strcmp (unit_str, "em") == 0) unit = SVG_LENGTH_UNIT_EM; else if (strcmp (unit_str, "ex") == 0) unit = SVG_LENGTH_UNIT_EX; else if (strcmp (unit_str, "%") == 0) unit = SVG_LENGTH_UNIT_PCT; else { unit = SVG_LENGTH_UNIT_PX; } } else { unit = SVG_LENGTH_UNIT_PX; } return _svg_length_init_unit (length, value, unit, length->orientation); }
svg_status_t _svg_length_init (svg_length_t *length, double value) { return _svg_length_init_unit (length, value, SVG_LENGTH_UNIT_PX, SVG_LENGTH_ORIENTATION_OTHER); }