/* * Profile icon * * 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 "profile-icon.h" #include #include #include #include #include #include "svg.h" #define PROFILE_SVG_WIDTH 16 #define PROFILE_SVG_HEIGHT 16 static const gchar *profile_svg = "\n" "\n" "\n" "\n" "\n"; gchar * mq_profile_icon_new(const gchar *color) { if (!mq_svg_is_color_valid(color)) { color = "#ff0000"; } return mq_svg_set_color(profile_svg, color); } GdkPixbuf * mq_profile_icon_new_pixbuf(const gchar *color) { cairo_surface_t *surface; cairo_t *cr; gchar *data; RsvgHandle *handle; GdkPixbuf *pixbuf; surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, PROFILE_SVG_WIDTH, PROFILE_SVG_HEIGHT); cr = cairo_create(surface); data = mq_profile_icon_new(color); handle = rsvg_handle_new_from_data((guint8 *) data, strlen(data), NULL); rsvg_handle_render_cairo(handle, cr); pixbuf = gdk_pixbuf_get_from_surface(surface, 0, 0, cairo_image_surface_get_width(surface), cairo_image_surface_get_height(surface)); cairo_destroy(cr); cairo_surface_destroy(surface); return pixbuf; }