/* * SVG coloring * * Copyright (C) 2017 Patrick McDermott * * This file is part of Marquee. * * Marquee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Marquee is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Marquee. If not, see . */ #include "svg.h" #include #include gboolean mq_svg_is_color_valid(const gchar *color) { gsize i; if (!color || color[0] != '#') { return FALSE; } for (i = 1; i <= 6; ++i) { if (!g_ascii_isxdigit(color[i])) { return FALSE; } } if (color[7] != '\0') { return FALSE; } return TRUE; } gchar * mq_svg_set_color(const gchar *svg, const gchar *color) { gchar *colored_svg; gchar *occurrence; gsize i; colored_svg = g_strdup(svg); occurrence = colored_svg; while ((occurrence = strstr(occurrence, "@COLOR@"))) { for (i = 0; i < 7; ++i) { occurrence[i] = color[i]; } occurrence += i; } return colored_svg; }