rsvg.pas 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. {
  2. Translation of the librsvg headers for FreePascal
  3. Copyright (C) 2009 by Ivo Steinmann
  4. }
  5. (*
  6. rsvg.h: SAX-based renderer for SVG files into a GdkPixbuf.
  7. Copyright (C) 2000 Eazel, Inc.
  8. This program is free software; you can redistribute it and/or
  9. modify it under the terms of the GNU Library General Public License as
  10. published by the Free Software Foundation; either version 2 of the
  11. License, or (at your option) any later version.
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. Library General Public License for more details.
  16. You should have received a copy of the GNU Library General Public
  17. License along with this program; if not, write to the
  18. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.
  20. Author: Raph Levien <[email protected]>
  21. *)
  22. unit rsvg;
  23. {$mode objfpc}
  24. {$MINENUMSIZE 4}
  25. interface
  26. uses
  27. ctypes,
  28. glib2,
  29. gdk2pixbuf;
  30. {$IFDEF WINDOWS}
  31. {$DEFINE DYNLINK}
  32. {$ENDIF}
  33. {.$DEFINE DYNLINK}
  34. {$IFDEF DYNLINK}
  35. const
  36. {$IF Defined(WINDOWS)}
  37. proj4lib = 'librsvg-2.dll';
  38. {$ELSEIF Defined(UNIX)}
  39. proj4lib = 'librsvg-2.so';
  40. {$ELSE}
  41. {$MESSAGE ERROR 'DYNLINK not supported'}
  42. {$IFEND}
  43. {$ELSE}
  44. {$LINKLIB rsvg-2}
  45. {$ENDIF}
  46. (***********************************************************************)
  47. (* Header : rsvg.h *)
  48. (***********************************************************************)
  49. //#include <gdk-pixbuf/gdk-pixbuf.h>
  50. {G_BEGIN_DECLS
  51. #define RSVG_TYPE_HANDLE (rsvg_handle_get_type ())
  52. #define RSVG_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RSVG_TYPE_HANDLE, RsvgHandle))
  53. #define RSVG_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RSVG_TYPE_HANDLE, RsvgHandleClass))
  54. #define RSVG_IS_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RSVG_TYPE_HANDLE))
  55. #define RSVG_IS_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RSVG_TYPE_HANDLE))
  56. #define RSVG_HANDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RSVG_TYPE_HANDLE, RsvgHandleClass))
  57. GType rsvg_handle_get_type (void);}
  58. (**
  59. * An enumeration representing possible error domains
  60. *)
  61. type
  62. RsvgError = (
  63. RSVG_ERROR_FAILED
  64. );
  65. (**
  66. *
  67. *)
  68. {#define RSVG_ERROR (rsvg_error_quark ())
  69. GQuark rsvg_error_quark (void) G_GNUC_CONST;}
  70. (**
  71. * The RsvgHandle is an object representing the parsed form of a SVG
  72. *)
  73. type
  74. PRsvgHandle = ^RsvgHandle;
  75. RsvgHandle = record
  76. parent: TGObjectClass;
  77. _abi_padding: array[0..14] of gpointer;
  78. end;
  79. PRsvgHandlePrivate = ^RsvgHandlePrivate;
  80. RsvgHandlePrivate = record
  81. parent: TGObject;
  82. priv: PRsvgHandlePrivate;
  83. _abi_padding: array[0..14] of gpointer;
  84. end;
  85. (* RsvgDimensionData
  86. *)
  87. PRsvgDimensionData = ^RsvgDimensionData;
  88. RsvgDimensionData = record
  89. (**
  90. * SVG's width, in pixels
  91. *)
  92. width: cint;
  93. (**
  94. * SVG's height, in pixels
  95. *)
  96. height: cint;
  97. (**
  98. * em
  99. *)
  100. em: gdouble;
  101. (**
  102. * ex
  103. *)
  104. ex: gdouble;
  105. end;
  106. procedure rsvg_init(); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  107. procedure rsvg_term(); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  108. procedure rsvg_set_default_dpi(dpi: double); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  109. procedure rsvg_set_default_dpi_x_y(dpi_x: double; dpi_y: double); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  110. procedure rsvg_handle_set_dpi(handle: PRsvgHandle; dpi: double); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  111. procedure rsvg_handle_set_dpi_x_y(handle: PRsvgHandle; dpi_x: double; dpi_y: double); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  112. function rsvg_handle_new(): PRsvgHandle; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  113. function rsvg_handle_write(handle: PRsvgHandle; buf: pguchar; count: gsize; var error: PGError): gboolean; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  114. function rsvg_handle_close(handle: PRsvgHandle; var error: PGError): gboolean; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  115. function rsvg_handle_get_pixbuf(handle: PRsvgHandle): PGdkPixbuf; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  116. function rsvg_handle_get_pixbuf_sub(handle: PRsvgHandle; id: pchar): PGdkPixbuf; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  117. function rsvg_handle_get_base_uri(handle: PRsvgHandle): pchar; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  118. procedure rsvg_handle_set_base_uri(handle: PRsvgHandle; base_uri: pchar); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  119. procedure rsvg_handle_get_dimensions(handle: PRsvgHandle; dimension_data: PRsvgDimensionData); cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  120. (* Accessibility API *)
  121. function rsvg_handle_get_title(handle: PRsvgHandle): pchar; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  122. function rsvg_handle_get_desc(handle: PRsvgHandle): pchar; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  123. function rsvg_handle_get_metadata(handle: PRsvgHandle): pchar; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  124. function rsvg_handle_new_from_data(data: Pguint8; data_len: gsize; var error: PGError): PRsvgHandle; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  125. function rsvg_handle_new_from_file(file_name: pgchar; var error: PGError): PRsvgHandle; cdecl; external {$IFDEF DYNLIB}proj4lib{$ENDIF};
  126. implementation
  127. end.