rsvg2 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +7 -0
  2. data/README +35 -0
  3. data/Rakefile +69 -0
  4. data/ext/rsvg2/depend +6 -0
  5. data/ext/rsvg2/extconf.rb +89 -0
  6. data/ext/rsvg2/rbrsvg.c +206 -0
  7. data/ext/rsvg2/rbrsvgdimensiondata.c +194 -0
  8. data/ext/rsvg2/rbrsvghandle.c +496 -0
  9. data/ext/rsvg2/rsvg2.def +2 -0
  10. data/ext/rsvg2/rsvg2.h +70 -0
  11. data/extconf.rb +49 -0
  12. data/lib/2.0/rsvg2.so +0 -0
  13. data/lib/2.1/rsvg2.so +0 -0
  14. data/lib/2.2/rsvg2.so +0 -0
  15. data/lib/rsvg2.rb +33 -0
  16. data/sample/svg-viewer.rb +44 -0
  17. data/sample/svg2.rb +60 -0
  18. data/test/rsvg2-test-utils.rb +23 -0
  19. data/test/run-test.rb +49 -0
  20. data/test/test-handle.rb +91 -0
  21. data/vendor/local/bin/croco-0.6-config +87 -0
  22. data/vendor/local/bin/csslint-0.6.exe +0 -0
  23. data/vendor/local/bin/libcroco-0.6-3.dll +0 -0
  24. data/vendor/local/bin/librsvg-2-2.dll +0 -0
  25. data/vendor/local/bin/rsvg-convert.exe +0 -0
  26. data/vendor/local/include/libcroco-0.6/libcroco/cr-additional-sel.h +98 -0
  27. data/vendor/local/include/libcroco-0.6/libcroco/cr-attr-sel.h +74 -0
  28. data/vendor/local/include/libcroco-0.6/libcroco/cr-cascade.h +74 -0
  29. data/vendor/local/include/libcroco-0.6/libcroco/cr-declaration.h +136 -0
  30. data/vendor/local/include/libcroco-0.6/libcroco/cr-doc-handler.h +298 -0
  31. data/vendor/local/include/libcroco-0.6/libcroco/cr-enc-handler.h +94 -0
  32. data/vendor/local/include/libcroco-0.6/libcroco/cr-fonts.h +315 -0
  33. data/vendor/local/include/libcroco-0.6/libcroco/cr-input.h +174 -0
  34. data/vendor/local/include/libcroco-0.6/libcroco/cr-num.h +127 -0
  35. data/vendor/local/include/libcroco-0.6/libcroco/cr-om-parser.h +98 -0
  36. data/vendor/local/include/libcroco-0.6/libcroco/cr-parser.h +128 -0
  37. data/vendor/local/include/libcroco-0.6/libcroco/cr-parsing-location.h +70 -0
  38. data/vendor/local/include/libcroco-0.6/libcroco/cr-prop-list.h +80 -0
  39. data/vendor/local/include/libcroco-0.6/libcroco/cr-pseudo.h +64 -0
  40. data/vendor/local/include/libcroco-0.6/libcroco/cr-rgb.h +94 -0
  41. data/vendor/local/include/libcroco-0.6/libcroco/cr-sel-eng.h +110 -0
  42. data/vendor/local/include/libcroco-0.6/libcroco/cr-selector.h +95 -0
  43. data/vendor/local/include/libcroco-0.6/libcroco/cr-simple-sel.h +130 -0
  44. data/vendor/local/include/libcroco-0.6/libcroco/cr-statement.h +440 -0
  45. data/vendor/local/include/libcroco-0.6/libcroco/cr-string.h +76 -0
  46. data/vendor/local/include/libcroco-0.6/libcroco/cr-style.h +339 -0
  47. data/vendor/local/include/libcroco-0.6/libcroco/cr-stylesheet.h +102 -0
  48. data/vendor/local/include/libcroco-0.6/libcroco/cr-term.h +190 -0
  49. data/vendor/local/include/libcroco-0.6/libcroco/cr-tknzr.h +115 -0
  50. data/vendor/local/include/libcroco-0.6/libcroco/cr-token.h +212 -0
  51. data/vendor/local/include/libcroco-0.6/libcroco/cr-utils.h +246 -0
  52. data/vendor/local/include/libcroco-0.6/libcroco/libcroco-config.h +17 -0
  53. data/vendor/local/include/libcroco-0.6/libcroco/libcroco.h +44 -0
  54. data/vendor/local/include/librsvg-2.0/librsvg/librsvg-enum-types.h +24 -0
  55. data/vendor/local/include/librsvg-2.0/librsvg/librsvg-features.h +28 -0
  56. data/vendor/local/include/librsvg-2.0/librsvg/rsvg-cairo.h +42 -0
  57. data/vendor/local/include/librsvg-2.0/librsvg/rsvg.h +264 -0
  58. data/vendor/local/lib/girepository-1.0/Rsvg-2.0.typelib +0 -0
  59. data/vendor/local/lib/libcroco-0.6.a +0 -0
  60. data/vendor/local/lib/libcroco-0.6.dll.a +0 -0
  61. data/vendor/local/lib/libcroco-0.6.la +41 -0
  62. data/vendor/local/lib/librsvg-2.a +0 -0
  63. data/vendor/local/lib/librsvg-2.dll.a +0 -0
  64. data/vendor/local/lib/librsvg-2.la +41 -0
  65. data/vendor/local/lib/pkgconfig/libcroco-0.6.pc +11 -0
  66. data/vendor/local/lib/pkgconfig/librsvg-2.0.pc +15 -0
  67. data/vendor/local/share/gir-1.0/Rsvg-2.0.gir +754 -0
  68. data/vendor/local/share/gtk-doc/html/libcroco/ch01.html +113 -0
  69. data/vendor/local/share/gtk-doc/html/libcroco/home.png +0 -0
  70. data/vendor/local/share/gtk-doc/html/libcroco/index.html +109 -0
  71. data/vendor/local/share/gtk-doc/html/libcroco/index.sgml +582 -0
  72. data/vendor/local/share/gtk-doc/html/libcroco/left.png +0 -0
  73. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-additional-sel.html +337 -0
  74. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-attr-sel.html +203 -0
  75. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-cascade.html +240 -0
  76. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-declaration.html +642 -0
  77. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-doc-handler.html +517 -0
  78. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-enc-handler.html +164 -0
  79. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-fonts.html +670 -0
  80. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-input.html +1102 -0
  81. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-num.html +265 -0
  82. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-om-parser.html +380 -0
  83. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-parser.html +913 -0
  84. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-parsing-location.html +205 -0
  85. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-prop-list.html +421 -0
  86. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-pseudo.html +141 -0
  87. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-rgb.html +503 -0
  88. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-sel-eng.html +346 -0
  89. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-selector.html +246 -0
  90. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-simple-sel.html +240 -0
  91. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-statement.html +1408 -0
  92. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-string.html +137 -0
  93. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-style.html +384 -0
  94. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-stylesheet.html +158 -0
  95. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-term.html +304 -0
  96. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-tknzr.html +312 -0
  97. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-token.html +428 -0
  98. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-utils.html +334 -0
  99. data/vendor/local/share/gtk-doc/html/libcroco/libcroco-libcroco-config.html +80 -0
  100. data/vendor/local/share/gtk-doc/html/libcroco/libcroco.devhelp2 +511 -0
  101. data/vendor/local/share/gtk-doc/html/libcroco/right.png +0 -0
  102. data/vendor/local/share/gtk-doc/html/libcroco/style.css +266 -0
  103. data/vendor/local/share/gtk-doc/html/libcroco/up.png +0 -0
  104. data/vendor/local/share/gtk-doc/html/rsvg-2.0/RsvgHandle.html +1420 -0
  105. data/vendor/local/share/gtk-doc/html/rsvg-2.0/annotation-glossary.html +55 -0
  106. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-14.html +55 -0
  107. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-22.html +43 -0
  108. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-32.html +47 -0
  109. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-36.html +46 -0
  110. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-4.html +39 -0
  111. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-8.html +54 -0
  112. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-9.html +53 -0
  113. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-deprecated.html +100 -0
  114. data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-full.html +323 -0
  115. data/vendor/local/share/gtk-doc/html/rsvg-2.0/home.png +0 -0
  116. data/vendor/local/share/gtk-doc/html/rsvg-2.0/index.html +88 -0
  117. data/vendor/local/share/gtk-doc/html/rsvg-2.0/index.sgml +106 -0
  118. data/vendor/local/share/gtk-doc/html/rsvg-2.0/left-insensitive.png +0 -0
  119. data/vendor/local/share/gtk-doc/html/rsvg-2.0/left.png +0 -0
  120. data/vendor/local/share/gtk-doc/html/rsvg-2.0/licence.html +57 -0
  121. data/vendor/local/share/gtk-doc/html/rsvg-2.0/object-tree.html +38 -0
  122. data/vendor/local/share/gtk-doc/html/rsvg-2.0/right-insensitive.png +0 -0
  123. data/vendor/local/share/gtk-doc/html/rsvg-2.0/right.png +0 -0
  124. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-2.0.devhelp2 +94 -0
  125. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GIO.html +360 -0
  126. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GdkPixbuf.html +484 -0
  127. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-cairo.html +154 -0
  128. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Version-check-and-feature-tests.html +142 -0
  129. data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg.html +57 -0
  130. data/vendor/local/share/gtk-doc/html/rsvg-2.0/style.css +476 -0
  131. data/vendor/local/share/gtk-doc/html/rsvg-2.0/up-insensitive.png +0 -0
  132. data/vendor/local/share/gtk-doc/html/rsvg-2.0/up.png +0 -0
  133. data/vendor/local/share/license/libcroco/AUTHORS +13 -0
  134. data/vendor/local/share/license/libcroco/COPYING +481 -0
  135. data/vendor/local/share/license/libcroco/COPYING.LIB +481 -0
  136. data/vendor/local/share/license/librsvg/AUTHORS +1 -0
  137. data/vendor/local/share/license/librsvg/COPYING +340 -0
  138. data/vendor/local/share/license/librsvg/COPYING.LIB +482 -0
  139. data/vendor/local/share/man/man1/rsvg-convert.1 +55 -0
  140. metadata +209 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 029d76f17e6b7a8330e7242f1829ccdb59edff5b
4
+ data.tar.gz: 0edd32c4a41cc0a24ed51e33e31e72da91cadb5f
5
+ SHA512:
6
+ metadata.gz: cb4384ffdd549d6fbb76c781c7a81f2854c7990ce842ee1173f23c070a97b892ef7917b60e3875de2b1bd6017378b334920f4f2e5e17e998e3f1e2485bc927e6
7
+ data.tar.gz: a97f4063e6f5a6e6ecd8a982d7ffc0e979a89ea8214bda40db71d572d932dfb6070cf07f0cbcefb2f6dc2402e441a92a8d0a1353cf2683a7e3fff8f94334e7f6
data/README ADDED
@@ -0,0 +1,35 @@
1
+ Ruby/RSVG
2
+ =========
3
+
4
+ Ruby/RSVG is a Ruby binding of librsvg.
5
+
6
+ Requirements
7
+ ------------
8
+
9
+ Ruby: http://www.ruby-lang.org/
10
+ librsvg [*]: http://librsvg.sourceforge.net/
11
+ Ruby/GLib2: http://ruby-gnome2.sourceforge.net/
12
+ Ruby/GdkPixbuf2: http://ruby-gnome2.sourceforge.net/
13
+
14
+ [*]: 2.8 or later is requried.
15
+
16
+ Install
17
+ -------
18
+
19
+ 0. install ruby and librsvg.
20
+ 1. ruby extconf.rb
21
+ 2. make
22
+ 3. su
23
+ 4. make install
24
+
25
+ Copying
26
+ -------
27
+ Copyright (c) 2002-2006 Ruby-GNOME2 Project Team
28
+
29
+ This program is free software.
30
+ You can distribute/modify this program under the terms of
31
+ the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
32
+
33
+ Project Website
34
+ ---------------
35
+ http://ruby-gnome2.sourceforge.jp/
@@ -0,0 +1,69 @@
1
+ # -*- ruby -*-
2
+ #
3
+ # Copyright (C) 2010-2013 Ruby-GNOME2 Project Team
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ $LOAD_PATH.unshift("./../glib2/lib")
20
+ require 'gnome2-raketask'
21
+
22
+ package_task = GNOME2::Rake::PackageTask.new do |package|
23
+ package.summary = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
24
+ package.description = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
25
+ package.dependency.gem.runtime = [["cairo", ">= 1.12.8"], "gdk_pixbuf2"]
26
+ package.windows.packages = []
27
+ package.windows.dependencies = []
28
+ package.windows.build_dependencies = [
29
+ "glib2",
30
+ "gobject-introspection",
31
+ "pango",
32
+ "gdk_pixbuf2",
33
+ ]
34
+ package.windows.gobject_introspection_dependencies = [
35
+ "gdk_pixbuf2",
36
+ ]
37
+ package.external_packages = [
38
+ {
39
+ :name => "libcroco",
40
+ :download_site => :gnome,
41
+ :label => "libcroco",
42
+ :version => "0.6.8",
43
+ :compression_method => "xz",
44
+ :windows => {
45
+ :configure_args => [
46
+ "--enable-introspection",
47
+ ],
48
+ :built_file => "bin/libcroco-0.6-3.dll",
49
+ },
50
+ },
51
+ {
52
+ :name => "librsvg",
53
+ :download_site => :gnome,
54
+ :label => "librsvg",
55
+ :version => "2.40.6",
56
+ :compression_method => "xz",
57
+ :windows => {
58
+ :configure_args => [
59
+ "--enable-introspection",
60
+ ],
61
+ :patches => [
62
+ ],
63
+ :built_file => "bin/librsvg-2-2.dll",
64
+ },
65
+ },
66
+ ]
67
+ end
68
+ package_task.define
69
+
@@ -0,0 +1,6 @@
1
+ install: install-pc
2
+ install-pc:
3
+ if test -n "$(pkgconfigdir)"; then \
4
+ $(MAKEDIRS) $(pkgconfigdir); \
5
+ $(INSTALL_DATA) ruby-rsvg2.pc $(pkgconfigdir); \
6
+ fi
@@ -0,0 +1,89 @@
1
+ =begin
2
+ extconf.rb for Ruby/RSVG extention library
3
+ =end
4
+
5
+ require 'pathname'
6
+
7
+ base_dir = Pathname(__FILE__).dirname.parent.parent.expand_path
8
+ top_dir = base_dir.parent
9
+ top_build_dir = Pathname(".").parent.parent.parent.expand_path
10
+
11
+ mkmf_gnome2_dir = top_dir + "glib2" + 'lib'
12
+ version_suffix = ""
13
+ unless mkmf_gnome2_dir.exist?
14
+ if /(-\d+\.\d+\.\d+)(?:\.\d+)?\z/ =~ base_dir.basename.to_s
15
+ version_suffix = $1
16
+ mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + 'lib'
17
+ end
18
+ end
19
+
20
+ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
21
+
22
+ module_name = "rsvg2"
23
+ package_id = "librsvg-2.0"
24
+
25
+ begin
26
+ require 'mkmf-gnome2'
27
+ rescue LoadError
28
+ require 'rubygems'
29
+ gem 'glib2'
30
+ require 'mkmf-gnome2'
31
+ end
32
+
33
+ ["glib2", "gdk_pixbuf2"].each do |package|
34
+ directory = "#{package}#{version_suffix}"
35
+ build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{package}/#{RUBY_VERSION}"
36
+ add_depend_package(package, "#{directory}/ext/#{package}",
37
+ top_dir.to_s,
38
+ :top_build_dir => top_build_dir.to_s,
39
+ :target_build_dir => build_dir)
40
+ end
41
+
42
+ unless check_cairo(:top_dir => top_dir)
43
+ exit(false)
44
+ end
45
+
46
+ setup_windows(module_name, base_dir)
47
+
48
+ unless required_pkg_config_package(package_id,
49
+ :debian => "librsvg2-dev",
50
+ :redhat => "librsvg2-devel",
51
+ :homebrew => "librsvg",
52
+ :macports => "librsvg")
53
+ exit(false)
54
+ end
55
+
56
+ rsvg_header = "librsvg/rsvg.h"
57
+ have_func("rsvg_set_default_dpi", rsvg_header)
58
+ have_func("rsvg_set_default_dpi_x_y", rsvg_header)
59
+ have_func("rsvg_handle_set_dpi", rsvg_header)
60
+ have_func("rsvg_handle_set_dpi_x_y", rsvg_header)
61
+ have_func("rsvg_handle_get_metadata", rsvg_header)
62
+ have_func("rsvg_handle_free", rsvg_header)
63
+ have_func("rsvg_handle_get_pixbuf_sub", rsvg_header)
64
+ have_header("librsvg/rsvg-gz.h")
65
+ have_type("RsvgDimensionData", "librsvg/rsvg.h")
66
+
67
+ have_header("librsvg/rsvg-cairo.h")
68
+
69
+ create_pkg_config_file("Ruby/RSVG", package_id, nil, "ruby-rsvg2.pc")
70
+
71
+ $defs << " -DRUBY_RSVG2_COMPILATION"
72
+ enum_type_prefix = "librsvg-enum-types"
73
+ unless have_header("librsvg/#{enum_type_prefix}.h")
74
+ include_paths = PKGConfig.cflags_only_I("librsvg-2.0")
75
+ include_path = include_paths.split.find do |x|
76
+ /librsvg/.match(x)
77
+ end.sub(/^-I/, "")
78
+ headers = Dir.glob(File.join(include_path, "librsvg", "*.h"))
79
+ glib_mkenums(enum_type_prefix, headers, "RSVG_TYPE_", ["librsvg/rsvg.h"])
80
+ end
81
+ create_makefile(module_name)
82
+
83
+ pkg_config_dir = with_config("pkg-config-dir")
84
+ if pkg_config_dir.is_a?(String)
85
+ File.open("Makefile", "ab") do |makefile|
86
+ makefile.puts
87
+ makefile.puts("pkgconfigdir=#{pkg_config_dir}")
88
+ end
89
+ end
@@ -0,0 +1,206 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2004 Kouhei Sutou <kou@cozmixng.org>
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library 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
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
22
+
23
+ #include "rsvg2.h"
24
+
25
+ #define RG_TARGET_NAMESPACE mRSVG
26
+
27
+ #define RBRSVG_MAJOR_VERSION RBGLIB_MAJOR_VERSION
28
+ #define RBRSVG_MINOR_VERSION RBGLIB_MINOR_VERSION
29
+ #define RBRSVG_MICRO_VERSION RBGLIB_MICRO_VERSION
30
+
31
+ void Init_rsvg2(void);
32
+
33
+ static VALUE
34
+ rg_s_set_default_dpi(VALUE self, VALUE dpi)
35
+ {
36
+ #ifdef HAVE_RSVG_SET_DEFAULT_DPI
37
+ rsvg_set_default_dpi(NUM2DBL(dpi));
38
+ #else
39
+ rb_warning("rsvg_set_default_dpi isn't supported in your librsvg");
40
+ #endif
41
+ return self;
42
+ }
43
+
44
+ static VALUE
45
+ rg_s_set_default_dpi_x_y(VALUE self, VALUE dpi_x, VALUE dpi_y)
46
+ {
47
+ #ifdef HAVE_RSVG_SET_DEFAULT_DPI_X_Y
48
+ rsvg_set_default_dpi_x_y(NUM2DBL(dpi_x), NUM2DBL(dpi_y));
49
+ #else
50
+ rb_warning("rsvg_set_default_dpi_x_y isn't supported in your librsvg");
51
+ #endif
52
+ return self;
53
+ }
54
+
55
+ /* Convenience API */
56
+ static VALUE
57
+ rg_s_pixbuf_from_file(G_GNUC_UNUSED VALUE self, VALUE file_name)
58
+ {
59
+ VALUE rb_pixbuf;
60
+ GdkPixbuf *pixbuf;
61
+ GError *error = NULL;
62
+
63
+ pixbuf = rsvg_pixbuf_from_file(RVAL2CSTR(file_name), &error);
64
+
65
+ if (error) RAISE_GERROR(error);
66
+
67
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
68
+ g_object_unref(pixbuf);
69
+ return rb_pixbuf;
70
+ }
71
+
72
+ static VALUE
73
+ rg_s_pixbuf_from_file_at_zoom(G_GNUC_UNUSED VALUE self, VALUE file_name,
74
+ VALUE x_zoom, VALUE y_zoom)
75
+ {
76
+ VALUE rb_pixbuf;
77
+ GdkPixbuf *pixbuf;
78
+ GError *error = NULL;
79
+
80
+ pixbuf = rsvg_pixbuf_from_file_at_zoom(RVAL2CSTR(file_name),
81
+ NUM2DBL(x_zoom),
82
+ NUM2DBL(y_zoom),
83
+ &error);
84
+
85
+ if (error) RAISE_GERROR(error);
86
+
87
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
88
+ g_object_unref(pixbuf);
89
+ return rb_pixbuf;
90
+ }
91
+
92
+ static VALUE
93
+ rg_s_pixbuf_from_file_at_size(G_GNUC_UNUSED VALUE self, VALUE file_name,
94
+ VALUE width, VALUE height)
95
+ {
96
+ VALUE rb_pixbuf;
97
+ GdkPixbuf *pixbuf;
98
+ GError *error = NULL;
99
+
100
+ pixbuf = rsvg_pixbuf_from_file_at_size(RVAL2CSTR(file_name),
101
+ NUM2INT(width),
102
+ NUM2INT(height),
103
+ &error);
104
+
105
+ if (error) RAISE_GERROR(error);
106
+
107
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
108
+ g_object_unref(pixbuf);
109
+ return rb_pixbuf;
110
+ }
111
+
112
+ static VALUE
113
+ rg_s_pixbuf_from_file_at_max_size(G_GNUC_UNUSED VALUE self, VALUE file_name,
114
+ VALUE max_width, VALUE max_height)
115
+ {
116
+ VALUE rb_pixbuf;
117
+ GdkPixbuf *pixbuf;
118
+ GError *error = NULL;
119
+
120
+ pixbuf = rsvg_pixbuf_from_file_at_max_size(RVAL2CSTR(file_name),
121
+ NUM2INT(max_width),
122
+ NUM2INT(max_height),
123
+ &error);
124
+
125
+ if (error) RAISE_GERROR(error);
126
+
127
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
128
+ g_object_unref(pixbuf);
129
+ return rb_pixbuf;
130
+ }
131
+
132
+ static VALUE
133
+ rg_s_pixbuf_from_file_at_zoom_with_max(G_GNUC_UNUSED VALUE self,
134
+ VALUE file_name,
135
+ VALUE x_zoom,
136
+ VALUE y_zoom,
137
+ VALUE max_width,
138
+ VALUE max_height)
139
+ {
140
+ VALUE rb_pixbuf;
141
+ GdkPixbuf *pixbuf;
142
+ GError *error = NULL;
143
+
144
+ pixbuf = rsvg_pixbuf_from_file_at_zoom_with_max(RVAL2CSTR(file_name),
145
+ NUM2DBL(x_zoom),
146
+ NUM2DBL(y_zoom),
147
+ NUM2INT(max_width),
148
+ NUM2INT(max_height),
149
+ &error);
150
+
151
+ if (error) RAISE_GERROR(error);
152
+
153
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
154
+ g_object_unref(pixbuf);
155
+ return rb_pixbuf;
156
+ }
157
+
158
+ static VALUE
159
+ rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
160
+ {
161
+ #ifdef HAVE_LIBRSVG_RSVG_CAIRO_H
162
+ return Qtrue;
163
+ #else
164
+ return Qfalse;
165
+ #endif
166
+ }
167
+
168
+ void
169
+ Init_rsvg2(void)
170
+ {
171
+ VALUE RG_TARGET_NAMESPACE = rb_define_module("RSVG");
172
+
173
+ #if LIBRSVG_CHECK_VERSION(2, 9, 0)
174
+ rsvg_init();
175
+ atexit(rsvg_term);
176
+ #endif
177
+
178
+ G_DEF_ERROR(RSVG_ERROR, "Error", RG_TARGET_NAMESPACE, rb_eRuntimeError, RSVG_TYPE_ERROR);
179
+
180
+ rb_define_const(RG_TARGET_NAMESPACE, "BINDING_VERSION",
181
+ rb_ary_new3(3,
182
+ INT2FIX(RBRSVG_MAJOR_VERSION),
183
+ INT2FIX(RBRSVG_MINOR_VERSION),
184
+ INT2FIX(RBRSVG_MICRO_VERSION)));
185
+
186
+ rb_define_const(RG_TARGET_NAMESPACE, "BUILD_VERSION",
187
+ rb_ary_new3(3,
188
+ INT2FIX(LIBRSVG_MAJOR_VERSION),
189
+ INT2FIX(LIBRSVG_MINOR_VERSION),
190
+ INT2FIX(LIBRSVG_MICRO_VERSION)));
191
+
192
+ RG_DEF_SMETHOD(set_default_dpi, 1);
193
+ RG_DEF_SMETHOD(set_default_dpi_x_y, 2);
194
+
195
+ /* Convenience API */
196
+ RG_DEF_SMETHOD(pixbuf_from_file, 1);
197
+ RG_DEF_SMETHOD(pixbuf_from_file_at_zoom, 3);
198
+ RG_DEF_SMETHOD(pixbuf_from_file_at_size, 3);
199
+ RG_DEF_SMETHOD(pixbuf_from_file_at_max_size, 3);
200
+ RG_DEF_SMETHOD(pixbuf_from_file_at_zoom_with_max, 5);
201
+
202
+ RG_DEF_SMETHOD_P(cairo_available, 0);
203
+
204
+ Init_rsvg_handle(RG_TARGET_NAMESPACE);
205
+ Init_rsvg_dimensiondata(RG_TARGET_NAMESPACE);
206
+ }
@@ -0,0 +1,194 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2004 Kouhei Sutou <kou@cozmixng.org>
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library 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
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
22
+
23
+ #include "rsvg2.h"
24
+
25
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
26
+
27
+ #define RG_TARGET_NAMESPACE cDimensionData
28
+
29
+ #define RVAL2DIM(obj) ((RsvgDimensionData *)DATA_PTR(obj))
30
+
31
+ static VALUE RG_TARGET_NAMESPACE;
32
+
33
+ static ID id_closed;
34
+ static ID id_to_s;
35
+
36
+ static VALUE
37
+ to_s(VALUE obj)
38
+ {
39
+ return rb_funcall(obj, id_to_s, 0);
40
+ }
41
+
42
+ static void
43
+ rb_rsvg_dim_free(RsvgDimensionData *dimp)
44
+ {
45
+ if (dimp) {
46
+ free(dimp);
47
+ }
48
+ }
49
+
50
+ static VALUE
51
+ rb_rsvg_dim_alloc(VALUE klass)
52
+ {
53
+ RsvgDimensionData *dimp;
54
+ return Data_Make_Struct(klass, RsvgDimensionData, 0,
55
+ rb_rsvg_dim_free, dimp);
56
+ }
57
+
58
+ static VALUE
59
+ rg_initialize(int argc, VALUE *argv, VALUE self)
60
+ {
61
+ VALUE width, height, em, ex;
62
+ RsvgDimensionData *dimp;
63
+
64
+ dimp = RVAL2DIM(self);
65
+ rb_scan_args(argc, argv, "04", &width, &height, &em, &ex);
66
+
67
+ if (!NIL_P(width))
68
+ dimp->width = NUM2INT(width);
69
+ if (!NIL_P(height))
70
+ dimp->height = NUM2INT(height);
71
+ if (!NIL_P(em))
72
+ dimp->em = NUM2DBL(em);
73
+ if (!NIL_P(ex))
74
+ dimp->ex = NUM2DBL(ex);
75
+
76
+ return Qnil;
77
+ }
78
+
79
+ static VALUE
80
+ rg_width(VALUE self)
81
+ {
82
+ return INT2NUM(RVAL2DIM(self)->width);
83
+ }
84
+
85
+ static VALUE
86
+ rg_set_width(VALUE self, VALUE width)
87
+ {
88
+ RVAL2DIM(self)->width = NUM2INT(width);
89
+ return Qnil;
90
+ }
91
+
92
+ static VALUE
93
+ rg_height(VALUE self)
94
+ {
95
+ return INT2NUM(RVAL2DIM(self)->height);
96
+ }
97
+
98
+ static VALUE
99
+ rg_set_height(VALUE self, VALUE height)
100
+ {
101
+ RVAL2DIM(self)->height = NUM2INT(height);
102
+ return Qnil;
103
+ }
104
+
105
+ static VALUE
106
+ rg_em(VALUE self)
107
+ {
108
+ return rb_float_new(RVAL2DIM(self)->em);
109
+ }
110
+
111
+ static VALUE
112
+ rg_set_em(VALUE self, VALUE em)
113
+ {
114
+ RVAL2DIM(self)->em = NUM2DBL(em);
115
+ return Qnil;
116
+ }
117
+
118
+ static VALUE
119
+ rg_ex(VALUE self)
120
+ {
121
+ return rb_float_new(RVAL2DIM(self)->ex);
122
+ }
123
+
124
+ static VALUE
125
+ rg_set_ex(VALUE self, VALUE ex)
126
+ {
127
+ RVAL2DIM(self)->ex = NUM2DBL(ex);
128
+ return Qnil;
129
+ }
130
+
131
+ static VALUE
132
+ rg_to_a(VALUE self)
133
+ {
134
+ return rb_ary_new3(4,
135
+ rg_width(self),
136
+ rg_height(self),
137
+ rg_em(self),
138
+ rg_ex(self));
139
+ }
140
+
141
+ static VALUE
142
+ rg_to_s(VALUE self)
143
+ {
144
+ VALUE ret;
145
+
146
+ ret = rb_str_new2("#<");
147
+ rb_str_cat2(ret, rb_obj_classname(self));
148
+ rb_str_cat2(ret, ":");
149
+ rb_str_concat(ret, rb_funcall(INT2NUM(self), id_to_s, 0));
150
+ rb_str_cat2(ret, " ");
151
+
152
+ rb_str_cat2(ret, "width=");
153
+ rb_str_concat(ret, to_s(rg_width(self)));
154
+ rb_str_cat2(ret, ", ");
155
+ rb_str_cat2(ret, "height=");
156
+ rb_str_concat(ret, to_s(rg_height(self)));
157
+ rb_str_cat2(ret, ", ");
158
+ rb_str_cat2(ret, "em=");
159
+ rb_str_concat(ret, to_s(rg_em(self)));
160
+ rb_str_cat2(ret, ", ");
161
+ rb_str_cat2(ret, "ex=");
162
+ rb_str_concat(ret, to_s(rg_ex(self)));
163
+ rb_str_cat2(ret, ">");
164
+
165
+ return ret;
166
+ }
167
+ #endif
168
+
169
+ void
170
+ Init_rsvg_dimensiondata(VALUE mRSVG)
171
+ {
172
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
173
+ id_closed = rb_intern("closed");
174
+ id_to_s = rb_intern("to_s");
175
+
176
+ RG_TARGET_NAMESPACE = rb_define_class_under(mRSVG, "DimensionData", rb_cObject);
177
+
178
+ rb_define_alloc_func(RG_TARGET_NAMESPACE, rb_rsvg_dim_alloc);
179
+ RG_DEF_METHOD(initialize, -1);
180
+
181
+ RG_DEF_METHOD(width, 0);
182
+ RG_DEF_METHOD(set_width, 1);
183
+ RG_DEF_METHOD(height, 0);
184
+ RG_DEF_METHOD(set_height, 1);
185
+ RG_DEF_METHOD(em, 0);
186
+ RG_DEF_METHOD(set_em, 1);
187
+ RG_DEF_METHOD(ex, 0);
188
+ RG_DEF_METHOD(set_ex, 1);
189
+
190
+ RG_DEF_METHOD(to_s, 0);
191
+ RG_DEF_METHOD(to_a, 0);
192
+ RG_DEF_ALIAS("to_ary", "to_a");
193
+ #endif
194
+ }