diff --git a/lua/librsvg-helper.h b/lua/librsvg-helper.h new file mode 100644 index 00000000..26916bc2 --- /dev/null +++ b/lua/librsvg-helper.h @@ -0,0 +1,42 @@ +/* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*- + * + * Conky, a system monitor, based on torsmo + * + * Please see COPYING for details + * + * Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. + * (see AUTHORS) + * All rights reserved. + * + * This program 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. + * + * This program 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 this program. If not, see . + * + */ + +#ifndef _LIBRSVG_HELPER_H_ +#define _LIBRSVG_HELPER_H_ + +#include + +cairo_text_extents_t *create_cairo_text_extents_t(void) { + return calloc(1, sizeof(cairo_text_extents_t)); +} + +cairo_font_extents_t *create_cairo_font_extents_t(void) { + return calloc(1, sizeof(cairo_font_extents_t)); +} + +cairo_matrix_t *create_cairo_matrix_t(void) { + return calloc(1, sizeof(cairo_matrix_t)); +} + +#endif /* _LIBRSVG_HELPER_H_ */ diff --git a/lua/rsvg.pkg b/lua/rsvg.pkg new file mode 100644 index 00000000..10092783 --- /dev/null +++ b/lua/rsvg.pkg @@ -0,0 +1,128 @@ +/* + rsvg.h: SAX-based renderer for SVG files into a GdkPixbuf. + + Copyright (C) 2000 Eazel, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + Author: Raph Levien + + rsvg-cairo.h: SAX-based renderer for SVG files using cairo + + Copyright (C) 2005 Red Hat, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + Author: Carl Worth +*/ + +$#include +$#include + +typedef struct _RsvgHandle RsvgHandle; +typedef struct RsvgHandlePrivate RsvgHandlePrivate; +typedef struct _RsvgHandleClass RsvgHandleClass; +typedef struct _RsvgDimensionData RsvgDimensionData; +typedef struct _RsvgPositionData RsvgPositionData; + +/** + * RsvgDimensionData: + * @width: SVG's width, in pixels + * @height: SVG's height, in pixels + * @em: em + * @ex: ex + */ +struct _RsvgDimensionData { + int width; + int height; + gdouble em; + gdouble ex; +}; + +/** + * RsvgPositionData: + * Position of an SVG fragment. + */ +struct _RsvgPositionData { + int x; + int y; +}; + +void rsvg_set_default_dpi (double dpi); +void rsvg_set_default_dpi_x_y (double dpi_x, double dpi_y); + +void rsvg_handle_set_dpi (RsvgHandle * handle, double dpi); +void rsvg_handle_set_dpi_x_y (RsvgHandle * handle, double dpi_x, double dpi_y); + +RsvgHandle *rsvg_handle_new (void); +gboolean rsvg_handle_write (RsvgHandle * handle, const guchar * buf, + gsize count, GError ** error); +gboolean rsvg_handle_close (RsvgHandle * handle, GError ** error); +GdkPixbuf *rsvg_handle_get_pixbuf (RsvgHandle * handle); +GdkPixbuf *rsvg_handle_get_pixbuf_sub (RsvgHandle * handle, const char *id); + +const char *rsvg_handle_get_base_uri (RsvgHandle * handle); +void rsvg_handle_set_base_uri (RsvgHandle * handle, const char *base_uri); + +void rsvg_handle_get_dimensions (RsvgHandle * handle, RsvgDimensionData * dimension_data); + +gboolean rsvg_handle_get_dimensions_sub (RsvgHandle * handle, RsvgDimensionData * dimension_data, const char *id); +gboolean rsvg_handle_get_position_sub (RsvgHandle * handle, RsvgPositionData * position_data, const char *id); + +gboolean rsvg_handle_has_sub (RsvgHandle * handle, const char *id); + +RsvgHandle *rsvg_handle_new_with_flags (RsvgHandleFlags flags); + +void rsvg_handle_set_base_gfile (RsvgHandle *handle, + GFile *base_file); + +gboolean rsvg_handle_read_stream_sync (RsvgHandle *handle, + GInputStream *stream, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_gfile_sync (GFile *file, + RsvgHandleFlags flags, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_stream_sync (GInputStream *input_stream, + GFile *base_file, + RsvgHandleFlags flags, + GCancellable *cancellable, + GError **error); + +RsvgHandle *rsvg_handle_new_from_data (const guint8 * data, gsize data_len, GError ** error); +RsvgHandle *rsvg_handle_new_from_file (const gchar * file_name, GError ** error); + +gboolean rsvg_handle_render_cairo (RsvgHandle * handle, cairo_t * cr); +gboolean rsvg_handle_render_cairo_sub (RsvgHandle * handle, cairo_t * cr, const char *id); + +void g_type_init(void); +void g_object_unref(gpointer object);