mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-27 04:32:55 +00:00
589b240360
We need an interface to be able to create/destroy/set/get the RsvgRectangle and RsvgDimensionData structs via Lua, which were missing or incomplete. Documentation was also missing, which has been updated.
154 lines
6.3 KiB
Plaintext
154 lines
6.3 KiB
Plaintext
/*
|
|
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 <raph@artofcode.com>
|
|
|
|
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 <cworth@cworth.org>
|
|
*/
|
|
|
|
$#include <glib.h>
|
|
$#include <librsvg/rsvg.h>
|
|
$#include "librsvg-helper.h"
|
|
|
|
typedef struct _RsvgHandle RsvgHandle;
|
|
typedef struct _RsvgHandleClass RsvgHandleClass;
|
|
|
|
/**
|
|
* RsvgDimensionData:
|
|
* @width: SVG's width, in pixels
|
|
* @height: SVG's height, in pixels
|
|
* @em: em
|
|
* @ex: ex
|
|
*/
|
|
typedef struct _RsvgDimensionData {
|
|
int width;
|
|
int height;
|
|
double em;
|
|
double ex;
|
|
static tolua_outside RsvgDimensionData* rsvg_dimension_data_create @ create();
|
|
static tolua_outside void rsvg_dimension_data_destroy @ destroy(RsvgDimensionData *);
|
|
tolua_outside void rsvg_dimension_data_get @ get(int * width, int * height,
|
|
double * em, double * ex);
|
|
tolua_outside void rsvg_dimension_data_set @ get(int width, int height,
|
|
double em, double ex);
|
|
} RsvgDimensionData;
|
|
|
|
/**
|
|
* RsvgRectangle:
|
|
* @x: X coordinate of the left side of the rectangle
|
|
* @y: Y coordinate of the the top side of the rectangle
|
|
* @width: width of the rectangle
|
|
* @height: height of the rectangle
|
|
*
|
|
* A data structure for holding a rectangle.
|
|
*
|
|
* Since: 2.46
|
|
*/
|
|
typedef struct _RsvgRectangle {
|
|
double x;
|
|
double y;
|
|
double width;
|
|
double height;
|
|
|
|
static tolua_outside RsvgRectangle* rsvg_rectangle_create @ create();
|
|
static tolua_outside void rsvg_rectangle_destroy @ destroy(RsvgRectangle *pointer);
|
|
tolua_outside void rsvg_rectangle_set @ set(double x, double y, double width, double height);
|
|
tolua_outside void rsvg_rectangle_get @ get(double *x, double *y, double *width, double *height);
|
|
} RsvgRectangle;
|
|
|
|
const char *rsvg_handle_get_base_uri (RsvgHandle * handle);
|
|
void rsvg_handle_set_base_uri (RsvgHandle * handle, const char *base_uri);
|
|
|
|
gboolean rsvg_handle_get_intrinsic_size_in_pixels (RsvgHandle *handle,
|
|
gdouble *out_width,
|
|
gdouble *out_height);
|
|
|
|
gboolean rsvg_handle_get_geometry_for_layer(RsvgHandle *handle,
|
|
const char *id,
|
|
const RsvgRectangle *viewport,
|
|
RsvgRectangle *out_ink_rect,
|
|
RsvgRectangle *out_logical_rect,
|
|
GError **error);
|
|
|
|
int rsvg_handle_has_sub (RsvgHandle * handle, const char *id);
|
|
|
|
RsvgHandle *rsvg_handle_new_with_flags (RsvgHandleFlags flags);
|
|
|
|
RsvgHandle *rsvg_handle_new_from_data (const unsigned char * data, unsigned long data_len, GError ** error);
|
|
RsvgHandle *rsvg_handle_new_from_file (const char * file_name, GError ** error);
|
|
|
|
gboolean rsvg_handle_render_document(RsvgHandle *handle,
|
|
cairo_t *cr,
|
|
const RsvgRectangle *viewport,
|
|
GError **error);
|
|
gboolean rsvg_handle_render_layer (RsvgHandle *handle,
|
|
cairo_t *cr,
|
|
const char *id,
|
|
const RsvgRectangle *viewport,
|
|
GError **error);
|
|
|
|
void g_object_unref(gpointer object);
|
|
|
|
RsvgHandle * rsvg_create_handle_from_file(const char *);
|
|
int rsvg_destroy_handle(RsvgHandle *);
|
|
|
|
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 *filename, GError **error);
|