cairo 1.8.3-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cairo might be problematic. Click here for more details.

Files changed (352) hide show
  1. data/AUTHORS +4 -0
  2. data/COPYING +59 -0
  3. data/GPL +340 -0
  4. data/NEWS +163 -0
  5. data/Rakefile +190 -0
  6. data/doc/doc.css +91 -0
  7. data/doc/en/cairo-antialias.html +38 -0
  8. data/doc/en/cairo-clip-not-representable-error.html +47 -0
  9. data/doc/en/cairo-color-base.html +69 -0
  10. data/doc/en/cairo-color-cmyk.html +157 -0
  11. data/doc/en/cairo-color-hsv.html +137 -0
  12. data/doc/en/cairo-color-rgb.html +142 -0
  13. data/doc/en/cairo-color-x11.html +173 -0
  14. data/doc/en/cairo-color.html +238 -0
  15. data/doc/en/cairo-content.html +37 -0
  16. data/doc/en/cairo-context-blur.html +39 -0
  17. data/doc/en/cairo-context-circle.html +39 -0
  18. data/doc/en/cairo-context-color.html +39 -0
  19. data/doc/en/cairo-context-path.html +44 -0
  20. data/doc/en/cairo-context-rectangle.html +39 -0
  21. data/doc/en/cairo-context-triangle.html +39 -0
  22. data/doc/en/cairo-context.html +643 -0
  23. data/doc/en/cairo-error.html +44 -0
  24. data/doc/en/cairo-extend.html +38 -0
  25. data/doc/en/cairo-file-not-found.html +47 -0
  26. data/doc/en/cairo-fill-rule.html +36 -0
  27. data/doc/en/cairo-filter.html +40 -0
  28. data/doc/en/cairo-font-extents.html +129 -0
  29. data/doc/en/cairo-font-face.html +38 -0
  30. data/doc/en/cairo-font-options.html +139 -0
  31. data/doc/en/cairo-font-slant.html +37 -0
  32. data/doc/en/cairo-font-type-mismatch.html +47 -0
  33. data/doc/en/cairo-font-weight.html +36 -0
  34. data/doc/en/cairo-format.html +46 -0
  35. data/doc/en/cairo-glyph.html +99 -0
  36. data/doc/en/cairo-gradient-pattern.html +74 -0
  37. data/doc/en/cairo-hint-metrics.html +37 -0
  38. data/doc/en/cairo-hint-style.html +39 -0
  39. data/doc/en/cairo-image-surface.html +82 -0
  40. data/doc/en/cairo-invalid-clusters.html +47 -0
  41. data/doc/en/cairo-invalid-content-error.html +47 -0
  42. data/doc/en/cairo-invalid-dash-error.html +47 -0
  43. data/doc/en/cairo-invalid-dsc-comment-error.html +47 -0
  44. data/doc/en/cairo-invalid-format-error.html +47 -0
  45. data/doc/en/cairo-invalid-index-error.html +47 -0
  46. data/doc/en/cairo-invalid-matrix-error.html +47 -0
  47. data/doc/en/cairo-invalid-path-data-error.html +47 -0
  48. data/doc/en/cairo-invalid-pop-group-error.html +47 -0
  49. data/doc/en/cairo-invalid-restore-error.html +47 -0
  50. data/doc/en/cairo-invalid-slant.html +47 -0
  51. data/doc/en/cairo-invalid-status-error.html +47 -0
  52. data/doc/en/cairo-invalid-stride-error.html +47 -0
  53. data/doc/en/cairo-invalid-string-error.html +47 -0
  54. data/doc/en/cairo-invalid-visual-error.html +47 -0
  55. data/doc/en/cairo-invalid-weight.html +47 -0
  56. data/doc/en/cairo-line-cap.html +37 -0
  57. data/doc/en/cairo-line-join.html +37 -0
  58. data/doc/en/cairo-linear-pattern.html +60 -0
  59. data/doc/en/cairo-matrix.html +259 -0
  60. data/doc/en/cairo-negative-count.html +47 -0
  61. data/doc/en/cairo-no-current-point-error.html +47 -0
  62. data/doc/en/cairo-null-pointer-error.html +47 -0
  63. data/doc/en/cairo-operator.html +48 -0
  64. data/doc/en/cairo-paper-parse-error.html +47 -0
  65. data/doc/en/cairo-paper-unknown-paper-name.html +66 -0
  66. data/doc/en/cairo-paper-unknown-unit.html +66 -0
  67. data/doc/en/cairo-paper-unrecognized-paper-description.html +66 -0
  68. data/doc/en/cairo-paper.html +184 -0
  69. data/doc/en/cairo-path-close-path.html +49 -0
  70. data/doc/en/cairo-path-curve-to.html +49 -0
  71. data/doc/en/cairo-path-data-type.html +38 -0
  72. data/doc/en/cairo-path-data.html +98 -0
  73. data/doc/en/cairo-path-line-to.html +49 -0
  74. data/doc/en/cairo-path-move-to.html +49 -0
  75. data/doc/en/cairo-path.html +155 -0
  76. data/doc/en/cairo-pattern-type-mismatch-error.html +47 -0
  77. data/doc/en/cairo-pattern.html +99 -0
  78. data/doc/en/cairo-pdf-surface.html +57 -0
  79. data/doc/en/cairo-point.html +74 -0
  80. data/doc/en/cairo-ps-level.html +49 -0
  81. data/doc/en/cairo-ps-surface.html +92 -0
  82. data/doc/en/cairo-quartz-image-surface.html +57 -0
  83. data/doc/en/cairo-quartz-surface.html +57 -0
  84. data/doc/en/cairo-radial-pattern.html +60 -0
  85. data/doc/en/cairo-read-error.html +47 -0
  86. data/doc/en/cairo-rectangle.html +89 -0
  87. data/doc/en/cairo-scaled-font.html +94 -0
  88. data/doc/en/cairo-solid-pattern.html +62 -0
  89. data/doc/en/cairo-subpixel-order.html +39 -0
  90. data/doc/en/cairo-surface-finished-error.html +47 -0
  91. data/doc/en/cairo-surface-pattern.html +57 -0
  92. data/doc/en/cairo-surface-type-mismatch-error.html +47 -0
  93. data/doc/en/cairo-surface.html +121 -0
  94. data/doc/en/cairo-svg-surface.html +77 -0
  95. data/doc/en/cairo-svg-version.html +49 -0
  96. data/doc/en/cairo-temp-file-error.html +47 -0
  97. data/doc/en/cairo-text-cluster-flag.html +35 -0
  98. data/doc/en/cairo-text-cluster.html +84 -0
  99. data/doc/en/cairo-text-extents.html +144 -0
  100. data/doc/en/cairo-toy-font-face.html +67 -0
  101. data/doc/en/cairo-user-font-error.html +47 -0
  102. data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +94 -0
  103. data/doc/en/cairo-user-font-face.html +72 -0
  104. data/doc/en/cairo-user-font-immutable.html +47 -0
  105. data/doc/en/cairo-win32-printing-surface.html +57 -0
  106. data/doc/en/cairo-win32-surface.html +62 -0
  107. data/doc/en/cairo-write-error.html +47 -0
  108. data/doc/en/cairo.html +131 -0
  109. data/doc/en/index.html +1154 -0
  110. data/doc/index.html +18 -0
  111. data/doc/ja/cairo-antialias.html +57 -0
  112. data/doc/ja/cairo-clip-not-representable-error.html +56 -0
  113. data/doc/ja/cairo-color-base.html +75 -0
  114. data/doc/ja/cairo-color-cmyk.html +152 -0
  115. data/doc/ja/cairo-color-hsv.html +135 -0
  116. data/doc/ja/cairo-color-rgb.html +145 -0
  117. data/doc/ja/cairo-color-x11.html +183 -0
  118. data/doc/ja/cairo-color.html +317 -0
  119. data/doc/ja/cairo-content.html +51 -0
  120. data/doc/ja/cairo-context-blur.html +53 -0
  121. data/doc/ja/cairo-context-circle.html +54 -0
  122. data/doc/ja/cairo-context-color.html +52 -0
  123. data/doc/ja/cairo-context-path.html +77 -0
  124. data/doc/ja/cairo-context-rectangle.html +60 -0
  125. data/doc/ja/cairo-context-triangle.html +47 -0
  126. data/doc/ja/cairo-context.html +1542 -0
  127. data/doc/ja/cairo-error.html +56 -0
  128. data/doc/ja/cairo-extend.html +56 -0
  129. data/doc/ja/cairo-file-not-found.html +51 -0
  130. data/doc/ja/cairo-fill-rule.html +58 -0
  131. data/doc/ja/cairo-filter.html +43 -0
  132. data/doc/ja/cairo-font-extents.html +164 -0
  133. data/doc/ja/cairo-font-face.html +55 -0
  134. data/doc/ja/cairo-font-options.html +189 -0
  135. data/doc/ja/cairo-font-slant.html +50 -0
  136. data/doc/ja/cairo-font-type-mismatch.html +52 -0
  137. data/doc/ja/cairo-font-weight.html +47 -0
  138. data/doc/ja/cairo-format.html +81 -0
  139. data/doc/ja/cairo-glyph.html +115 -0
  140. data/doc/ja/cairo-gradient-pattern.html +119 -0
  141. data/doc/ja/cairo-hint-metrics.html +57 -0
  142. data/doc/ja/cairo-hint-style.html +64 -0
  143. data/doc/ja/cairo-image-surface.html +131 -0
  144. data/doc/ja/cairo-invalid-clusters.html +55 -0
  145. data/doc/ja/cairo-invalid-content-error.html +54 -0
  146. data/doc/ja/cairo-invalid-dash-error.html +54 -0
  147. data/doc/ja/cairo-invalid-dsc-comment-error.html +54 -0
  148. data/doc/ja/cairo-invalid-format-error.html +54 -0
  149. data/doc/ja/cairo-invalid-index-error.html +54 -0
  150. data/doc/ja/cairo-invalid-matrix-error.html +54 -0
  151. data/doc/ja/cairo-invalid-path-data-error.html +54 -0
  152. data/doc/ja/cairo-invalid-pop-group-error.html +54 -0
  153. data/doc/ja/cairo-invalid-restore-error.html +55 -0
  154. data/doc/ja/cairo-invalid-slant.html +57 -0
  155. data/doc/ja/cairo-invalid-status-error.html +55 -0
  156. data/doc/ja/cairo-invalid-stride-error.html +55 -0
  157. data/doc/ja/cairo-invalid-string-error.html +54 -0
  158. data/doc/ja/cairo-invalid-visual-error.html +57 -0
  159. data/doc/ja/cairo-invalid-weight.html +57 -0
  160. data/doc/ja/cairo-line-cap.html +50 -0
  161. data/doc/ja/cairo-line-join.html +53 -0
  162. data/doc/ja/cairo-linear-pattern.html +87 -0
  163. data/doc/ja/cairo-matrix.html +354 -0
  164. data/doc/ja/cairo-negative-count.html +52 -0
  165. data/doc/ja/cairo-no-current-point-error.html +54 -0
  166. data/doc/ja/cairo-null-pointer-error.html +54 -0
  167. data/doc/ja/cairo-operator.html +51 -0
  168. data/doc/ja/cairo-paper-parse-error.html +55 -0
  169. data/doc/ja/cairo-paper-unknown-paper-name.html +76 -0
  170. data/doc/ja/cairo-paper-unknown-unit.html +75 -0
  171. data/doc/ja/cairo-paper-unrecognized-paper-description.html +76 -0
  172. data/doc/ja/cairo-paper.html +357 -0
  173. data/doc/ja/cairo-path-close-path.html +57 -0
  174. data/doc/ja/cairo-path-curve-to.html +70 -0
  175. data/doc/ja/cairo-path-data-type.html +53 -0
  176. data/doc/ja/cairo-path-data.html +127 -0
  177. data/doc/ja/cairo-path-line-to.html +62 -0
  178. data/doc/ja/cairo-path-move-to.html +62 -0
  179. data/doc/ja/cairo-path.html +144 -0
  180. data/doc/ja/cairo-pattern-type-mismatch-error.html +56 -0
  181. data/doc/ja/cairo-pattern.html +128 -0
  182. data/doc/ja/cairo-pdf-surface.html +86 -0
  183. data/doc/ja/cairo-point.html +90 -0
  184. data/doc/ja/cairo-ps-level.html +62 -0
  185. data/doc/ja/cairo-ps-surface.html +214 -0
  186. data/doc/ja/cairo-quartz-image-surface.html +75 -0
  187. data/doc/ja/cairo-quartz-surface.html +93 -0
  188. data/doc/ja/cairo-radial-pattern.html +93 -0
  189. data/doc/ja/cairo-read-error.html +55 -0
  190. data/doc/ja/cairo-rectangle.html +109 -0
  191. data/doc/ja/cairo-scaled-font.html +180 -0
  192. data/doc/ja/cairo-solid-pattern.html +87 -0
  193. data/doc/ja/cairo-subpixel-order.html +57 -0
  194. data/doc/ja/cairo-surface-finished-error.html +54 -0
  195. data/doc/ja/cairo-surface-pattern.html +68 -0
  196. data/doc/ja/cairo-surface-type-mismatch-error.html +56 -0
  197. data/doc/ja/cairo-surface.html +213 -0
  198. data/doc/ja/cairo-svg-surface.html +114 -0
  199. data/doc/ja/cairo-svg-version.html +66 -0
  200. data/doc/ja/cairo-temp-file-error.html +50 -0
  201. data/doc/ja/cairo-text-cluster-flag.html +46 -0
  202. data/doc/ja/cairo-text-cluster.html +102 -0
  203. data/doc/ja/cairo-text-extents.html +163 -0
  204. data/doc/ja/cairo-toy-font-face.html +107 -0
  205. data/doc/ja/cairo-user-font-error.html +55 -0
  206. data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +156 -0
  207. data/doc/ja/cairo-user-font-face.html +268 -0
  208. data/doc/ja/cairo-user-font-immutable.html +54 -0
  209. data/doc/ja/cairo-win32-printing-surface.html +80 -0
  210. data/doc/ja/cairo-win32-surface.html +100 -0
  211. data/doc/ja/cairo-write-error.html +55 -0
  212. data/doc/ja/cairo.html +177 -0
  213. data/doc/ja/index.html +1156 -0
  214. data/ext/cairo/cairo.def +104 -0
  215. data/ext/cairo/extconf.rb +80 -0
  216. data/ext/cairo/rb_cairo.c +104 -0
  217. data/ext/cairo/rb_cairo.h +275 -0
  218. data/ext/cairo/rb_cairo_constants.c +478 -0
  219. data/ext/cairo/rb_cairo_context.c +1693 -0
  220. data/ext/cairo/rb_cairo_exception.c +354 -0
  221. data/ext/cairo/rb_cairo_font_extents.c +200 -0
  222. data/ext/cairo/rb_cairo_font_face.c +713 -0
  223. data/ext/cairo/rb_cairo_font_options.c +197 -0
  224. data/ext/cairo/rb_cairo_glyph.c +161 -0
  225. data/ext/cairo/rb_cairo_matrix.c +366 -0
  226. data/ext/cairo/rb_cairo_path.c +459 -0
  227. data/ext/cairo/rb_cairo_pattern.c +540 -0
  228. data/ext/cairo/rb_cairo_private.c +242 -0
  229. data/ext/cairo/rb_cairo_private.h +114 -0
  230. data/ext/cairo/rb_cairo_scaled_font.c +235 -0
  231. data/ext/cairo/rb_cairo_surface.c +1371 -0
  232. data/ext/cairo/rb_cairo_text_cluster.c +151 -0
  233. data/ext/cairo/rb_cairo_text_extents.c +221 -0
  234. data/extconf.rb +45 -0
  235. data/lib/1.8/cairo.so +0 -0
  236. data/lib/1.9/cairo.so +0 -0
  237. data/lib/cairo.rb +151 -0
  238. data/lib/cairo/color.rb +267 -0
  239. data/lib/cairo/colors.rb +656 -0
  240. data/lib/cairo/constants.rb +24 -0
  241. data/lib/cairo/context.rb +29 -0
  242. data/lib/cairo/context/blur.rb +45 -0
  243. data/lib/cairo/context/circle.rb +9 -0
  244. data/lib/cairo/context/color.rb +11 -0
  245. data/lib/cairo/context/path.rb +116 -0
  246. data/lib/cairo/context/rectangle.rb +33 -0
  247. data/lib/cairo/context/triangle.rb +12 -0
  248. data/lib/cairo/paper.rb +183 -0
  249. data/lib/cairo/papers.rb +41 -0
  250. data/lib/cairo/path.rb +15 -0
  251. data/lib/cairo/point.rb +7 -0
  252. data/misc/update-colors.rb +143 -0
  253. data/pkg-config.rb +313 -0
  254. data/samples/agg/README +4 -0
  255. data/samples/agg/aa_test.rb +304 -0
  256. data/samples/blur.rb +47 -0
  257. data/samples/pac.rb +99 -0
  258. data/samples/pac2.rb +171 -0
  259. data/samples/png.rb +45 -0
  260. data/samples/scalable.rb +56 -0
  261. data/samples/text-on-path.rb +60 -0
  262. data/samples/text2.rb +131 -0
  263. data/test-unit/Rakefile +30 -0
  264. data/test-unit/bin/testrb +5 -0
  265. data/test-unit/lib/test/unit.rb +280 -0
  266. data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
  267. data/test-unit/lib/test/unit/assertions.rb +722 -0
  268. data/test-unit/lib/test/unit/attribute.rb +125 -0
  269. data/test-unit/lib/test/unit/autorunner.rb +254 -0
  270. data/test-unit/lib/test/unit/collector.rb +43 -0
  271. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  272. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  273. data/test-unit/lib/test/unit/collector/load.rb +135 -0
  274. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  275. data/test-unit/lib/test/unit/color.rb +61 -0
  276. data/test-unit/lib/test/unit/diff.rb +524 -0
  277. data/test-unit/lib/test/unit/error.rb +124 -0
  278. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  279. data/test-unit/lib/test/unit/failure.rb +110 -0
  280. data/test-unit/lib/test/unit/fixture.rb +185 -0
  281. data/test-unit/lib/test/unit/notification.rb +125 -0
  282. data/test-unit/lib/test/unit/omission.rb +143 -0
  283. data/test-unit/lib/test/unit/pending.rb +146 -0
  284. data/test-unit/lib/test/unit/priority.rb +146 -0
  285. data/test-unit/lib/test/unit/runner/console.rb +46 -0
  286. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  287. data/test-unit/lib/test/unit/testcase.rb +281 -0
  288. data/test-unit/lib/test/unit/testresult.rb +89 -0
  289. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  290. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  291. data/test-unit/lib/test/unit/ui/console/testrunner.rb +195 -0
  292. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  293. data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
  294. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  295. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  296. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  297. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  298. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  299. data/test-unit/lib/test/unit/version.rb +7 -0
  300. data/test-unit/sample/adder.rb +13 -0
  301. data/test-unit/sample/subtracter.rb +12 -0
  302. data/test-unit/sample/tc_adder.rb +18 -0
  303. data/test-unit/sample/tc_subtracter.rb +18 -0
  304. data/test-unit/sample/ts_examples.rb +7 -0
  305. data/test-unit/test/collector/test_descendant.rb +135 -0
  306. data/test-unit/test/collector/test_dir.rb +406 -0
  307. data/test-unit/test/collector/test_load.rb +333 -0
  308. data/test-unit/test/collector/test_objectspace.rb +98 -0
  309. data/test-unit/test/run-test.rb +13 -0
  310. data/test-unit/test/test_assertions.rb +693 -0
  311. data/test-unit/test/test_attribute.rb +86 -0
  312. data/test-unit/test/test_color.rb +37 -0
  313. data/test-unit/test/test_diff.rb +477 -0
  314. data/test-unit/test/test_emacs_runner.rb +60 -0
  315. data/test-unit/test/test_error.rb +26 -0
  316. data/test-unit/test/test_failure.rb +33 -0
  317. data/test-unit/test/test_fixture.rb +252 -0
  318. data/test-unit/test/test_notification.rb +33 -0
  319. data/test-unit/test/test_omission.rb +81 -0
  320. data/test-unit/test/test_pending.rb +70 -0
  321. data/test-unit/test/test_priority.rb +89 -0
  322. data/test-unit/test/test_testcase.rb +430 -0
  323. data/test-unit/test/test_testresult.rb +113 -0
  324. data/test-unit/test/test_testsuite.rb +129 -0
  325. data/test-unit/test/testunit_test_util.rb +14 -0
  326. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  327. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  328. data/test-unit/test/util/test_observable.rb +102 -0
  329. data/test-unit/test/util/test_procwrapper.rb +36 -0
  330. data/test/cairo-test-utils.rb +18 -0
  331. data/test/run-test.rb +28 -0
  332. data/test/test_color.rb +17 -0
  333. data/test/test_constants.rb +16 -0
  334. data/test/test_context.rb +105 -0
  335. data/test/test_exception.rb +27 -0
  336. data/test/test_font_extents.rb +36 -0
  337. data/test/test_font_face.rb +244 -0
  338. data/test/test_font_options.rb +13 -0
  339. data/test/test_paper.rb +81 -0
  340. data/test/test_pkg_config.rb +123 -0
  341. data/test/test_scaled_font.rb +34 -0
  342. data/test/test_surface.rb +41 -0
  343. data/test/test_text_cluster.rb +32 -0
  344. data/test/test_text_extents.rb +40 -0
  345. data/test/test_text_to_glyphs_data.rb +51 -0
  346. data/tmp/x86-mingw32/cairo/1.8.7/fake.rb +6 -0
  347. data/tmp/x86-mingw32/cairo/1.8.7/mkmf.rb +1836 -0
  348. data/tmp/x86-mingw32/cairo/1.8.7/rbconfig.rb +183 -0
  349. data/tmp/x86-mingw32/cairo/1.9.2/fake.rb +6 -0
  350. data/tmp/x86-mingw32/cairo/1.9.2/mkmf.rb +2079 -0
  351. data/tmp/x86-mingw32/cairo/1.9.2/rbconfig.rb +226 -0
  352. metadata +437 -0
@@ -0,0 +1,151 @@
1
+ /* -*- c-file-style: "gnu"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Ruby Cairo Binding
4
+ *
5
+ * $Author: kou $
6
+ * $Date: 2008-08-16 08:16:40 $
7
+ *
8
+ * Copyright 2008 Kouhei Sutou <kou@cozmixng.org>
9
+ *
10
+ * This file is made available under the same terms as Ruby
11
+ *
12
+ */
13
+
14
+
15
+ #include "rb_cairo.h"
16
+ #include "rb_cairo_private.h"
17
+
18
+ VALUE rb_cCairo_TextCluster = Qnil;
19
+
20
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
21
+ #define _SELF(self) (RVAL2CRTEXTCLUSTER(self))
22
+
23
+ cairo_text_cluster_t *
24
+ rb_cairo_text_cluster_from_ruby_object (VALUE obj)
25
+ {
26
+ cairo_text_cluster_t *cluster;
27
+ if (!rb_cairo__is_kind_of (obj, rb_cCairo_TextCluster))
28
+ {
29
+ rb_raise (rb_eTypeError,
30
+ "not a cairo cluster: %s", rb_cairo__inspect (obj));
31
+ }
32
+ Data_Get_Struct (obj, cairo_text_cluster_t, cluster);
33
+ return cluster;
34
+ }
35
+
36
+ static void
37
+ cr_text_cluster_free (void *ptr)
38
+ {
39
+ if (ptr)
40
+ {
41
+ xfree (ptr);
42
+ }
43
+ }
44
+
45
+ VALUE
46
+ rb_cairo_text_cluster_to_ruby_object (cairo_text_cluster_t *cluster)
47
+ {
48
+ if (cluster)
49
+ {
50
+ cairo_text_cluster_t *new_cluster;
51
+
52
+ new_cluster = ALLOC (cairo_text_cluster_t);
53
+ *new_cluster = *cluster;
54
+ return Data_Wrap_Struct (rb_cCairo_TextCluster, NULL,
55
+ cr_text_cluster_free, new_cluster);
56
+ }
57
+ else
58
+ {
59
+ return Qnil;
60
+ }
61
+ }
62
+
63
+ static VALUE
64
+ cr_text_cluster_allocate (VALUE klass)
65
+ {
66
+ return Data_Wrap_Struct (klass, NULL, cr_text_cluster_free, NULL);
67
+ }
68
+
69
+ static VALUE
70
+ cr_text_cluster_initialize (VALUE self, VALUE num_bytes, VALUE num_glyphs)
71
+ {
72
+ cairo_text_cluster_t *cluster;
73
+
74
+ cluster = ALLOC (cairo_text_cluster_t);
75
+ cluster->num_bytes = NUM2INT (num_bytes);
76
+ cluster->num_glyphs = NUM2INT (num_glyphs);
77
+
78
+ DATA_PTR (self) = cluster;
79
+ return Qnil;
80
+ }
81
+
82
+ static VALUE
83
+ cr_text_cluster_num_bytes (VALUE self)
84
+ {
85
+ return INT2NUM (_SELF(self)->num_bytes);
86
+ }
87
+
88
+ static VALUE
89
+ cr_text_cluster_num_glyphs (VALUE self)
90
+ {
91
+ return INT2NUM (_SELF(self)->num_glyphs);
92
+ }
93
+
94
+ static VALUE
95
+ cr_text_cluster_set_num_bytes (VALUE self, VALUE num_bytes)
96
+ {
97
+ _SELF(self)->num_bytes = NUM2INT (num_bytes);
98
+ return self;
99
+ }
100
+
101
+ static VALUE
102
+ cr_text_cluster_set_num_glyphs (VALUE self, VALUE num_glyphs)
103
+ {
104
+ _SELF(self)->num_glyphs = NUM2INT (num_glyphs);
105
+ return self;
106
+ }
107
+
108
+ static VALUE
109
+ cr_text_cluster_to_s (VALUE self)
110
+ {
111
+ VALUE ret;
112
+
113
+ ret = rb_str_new2 ("#<");
114
+ rb_str_cat2 (ret, rb_class2name (CLASS_OF (self)));
115
+ rb_str_cat2 (ret, ": ");
116
+ rb_str_cat2 (ret, "num_bytes=");
117
+ rb_str_concat (ret, rb_inspect (cr_text_cluster_num_bytes (self)));
118
+ rb_str_cat2 (ret, ", ");
119
+ rb_str_cat2 (ret, "num_glyphs=");
120
+ rb_str_concat (ret, rb_inspect (cr_text_cluster_num_glyphs (self)));
121
+ rb_str_cat2 (ret, ">");
122
+
123
+ return ret;
124
+ }
125
+ #endif
126
+
127
+ void
128
+ Init_cairo_text_cluster (void)
129
+ {
130
+ #if CAIRO_CHECK_VERSION(1, 7, 2)
131
+ rb_cCairo_TextCluster = rb_define_class_under (rb_mCairo, "TextCluster", rb_cObject);
132
+
133
+ rb_define_alloc_func (rb_cCairo_TextCluster, cr_text_cluster_allocate);
134
+
135
+ rb_define_method (rb_cCairo_TextCluster, "initialize",
136
+ cr_text_cluster_initialize, 2);
137
+
138
+ rb_define_method (rb_cCairo_TextCluster, "num_bytes",
139
+ cr_text_cluster_num_bytes, 0);
140
+ rb_define_method (rb_cCairo_TextCluster, "num_glyphs",
141
+ cr_text_cluster_num_glyphs, 0);
142
+ rb_define_method (rb_cCairo_TextCluster, "set_num_bytes",
143
+ cr_text_cluster_set_num_bytes, 1);
144
+ rb_define_method (rb_cCairo_TextCluster, "set_num_glyphs",
145
+ cr_text_cluster_set_num_glyphs, 1);
146
+
147
+ rb_define_method (rb_cCairo_TextCluster, "to_s", cr_text_cluster_to_s, 0);
148
+
149
+ RB_CAIRO_DEF_SETTERS (rb_cCairo_TextCluster);
150
+ #endif
151
+ }
@@ -0,0 +1,221 @@
1
+ /* -*- c-file-style: "gnu"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Ruby Cairo Binding
4
+ *
5
+ * $Author: kou $
6
+ * $Date: 2008-08-17 05:41:28 $
7
+ *
8
+ * Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
9
+ * Copyright 2004-2005 MenTaLguY <mental@rydia.com>
10
+ *
11
+ * This file is made available under the same terms as Ruby
12
+ *
13
+ */
14
+
15
+ #include "rb_cairo.h"
16
+ #include "rb_cairo_private.h"
17
+
18
+ VALUE rb_cCairo_TextExtents;
19
+
20
+ #define _SELF(self) (RVAL2CRTEXTEXTENTS(self))
21
+
22
+ cairo_text_extents_t *
23
+ rb_cairo_text_extents_from_ruby_object (VALUE obj)
24
+ {
25
+ cairo_text_extents_t *extents;
26
+ if (!rb_cairo__is_kind_of (obj, rb_cCairo_TextExtents))
27
+ {
28
+ rb_raise (rb_eTypeError, "not a cairo text_extents");
29
+ }
30
+ Data_Get_Struct (obj, cairo_text_extents_t, extents);
31
+ return extents;
32
+ }
33
+
34
+ VALUE
35
+ rb_cairo_text_extents_to_ruby_object (cairo_text_extents_t *extents)
36
+ {
37
+ if (extents)
38
+ {
39
+ cairo_text_extents_t *new_extents = ALLOC (cairo_text_extents_t);
40
+ *new_extents = *extents;
41
+ return Data_Wrap_Struct (rb_cCairo_TextExtents, NULL, -1, new_extents);
42
+ }
43
+ else
44
+ {
45
+ return Qnil;
46
+ }
47
+ }
48
+
49
+ static VALUE
50
+ cr_text_extents_allocate (VALUE klass)
51
+ {
52
+ return Data_Wrap_Struct (klass, NULL, -1, NULL);
53
+ }
54
+
55
+ static VALUE
56
+ cr_text_extents_initialize (VALUE self)
57
+ {
58
+ cairo_text_extents_t *extents;
59
+
60
+ extents = ALLOC (cairo_text_extents_t);
61
+ extents->x_bearing = 0.0;
62
+ extents->y_bearing = -1.0;
63
+ extents->width = 0.0;
64
+ extents->height = 1.0;
65
+ extents->x_advance = 1.0;
66
+ extents->y_advance = 0.0;
67
+
68
+ DATA_PTR (self) = extents;
69
+
70
+ return Qnil;
71
+ }
72
+
73
+ static VALUE
74
+ cr_text_extents_x_bearing (VALUE self)
75
+ {
76
+ return rb_float_new (_SELF(self)->x_bearing);
77
+ }
78
+
79
+ static VALUE
80
+ cr_text_extents_set_x_bearing (VALUE self, VALUE x_bearing)
81
+ {
82
+ _SELF(self)->x_bearing = NUM2DBL (x_bearing);
83
+ return Qnil;
84
+ }
85
+
86
+ static VALUE
87
+ cr_text_extents_y_bearing (VALUE self)
88
+ {
89
+ return rb_float_new (_SELF(self)->y_bearing);
90
+ }
91
+
92
+ static VALUE
93
+ cr_text_extents_set_y_bearing (VALUE self, VALUE y_bearing)
94
+ {
95
+ _SELF(self)->y_bearing = NUM2DBL (y_bearing);
96
+ return Qnil;
97
+ }
98
+
99
+ static VALUE
100
+ cr_text_extents_width (VALUE self)
101
+ {
102
+ return rb_float_new (_SELF(self)->width);
103
+ }
104
+
105
+ static VALUE
106
+ cr_text_extents_set_width (VALUE self, VALUE width)
107
+ {
108
+ _SELF(self)->width = NUM2DBL (width);
109
+ return Qnil;
110
+ }
111
+
112
+ static VALUE
113
+ cr_text_extents_height (VALUE self)
114
+ {
115
+ return rb_float_new (_SELF(self)->height);
116
+ }
117
+
118
+ static VALUE
119
+ cr_text_extents_set_height (VALUE self, VALUE height)
120
+ {
121
+ _SELF(self)->height = NUM2DBL (height);
122
+ return Qnil;
123
+ }
124
+
125
+ static VALUE
126
+ cr_text_extents_x_advance (VALUE self)
127
+ {
128
+ return rb_float_new (_SELF(self)->x_advance);
129
+ }
130
+
131
+ static VALUE
132
+ cr_text_extents_set_x_advance (VALUE self, VALUE x_advance)
133
+ {
134
+ _SELF(self)->x_advance = NUM2DBL (x_advance);
135
+ return Qnil;
136
+ }
137
+
138
+ static VALUE
139
+ cr_text_extents_y_advance (VALUE self)
140
+ {
141
+ return rb_float_new (_SELF(self)->y_advance);
142
+ }
143
+
144
+ static VALUE
145
+ cr_text_extents_set_y_advance (VALUE self, VALUE y_advance)
146
+ {
147
+ _SELF(self)->y_advance = NUM2DBL (y_advance);
148
+ return Qnil;
149
+ }
150
+
151
+ static VALUE
152
+ cr_text_extents_to_s (VALUE self)
153
+ {
154
+ VALUE ret;
155
+
156
+ ret = rb_str_new2 ("#<");
157
+ rb_str_cat2 (ret, rb_class2name (CLASS_OF (self)));
158
+ rb_str_cat2 (ret, ": ");
159
+ rb_str_cat2 (ret, "x_bearing=");
160
+ rb_str_concat (ret, rb_inspect (cr_text_extents_x_bearing (self)));
161
+ rb_str_cat2 (ret, ", ");
162
+ rb_str_cat2 (ret, "y_bearing=");
163
+ rb_str_concat (ret, rb_inspect (cr_text_extents_y_bearing (self)));
164
+ rb_str_cat2 (ret, ", ");
165
+ rb_str_cat2 (ret, "width=");
166
+ rb_str_concat (ret, rb_inspect (cr_text_extents_width (self)));
167
+ rb_str_cat2 (ret, ", ");
168
+ rb_str_cat2 (ret, "height=");
169
+ rb_str_concat (ret, rb_inspect (cr_text_extents_height (self)));
170
+ rb_str_cat2 (ret, ", ");
171
+ rb_str_cat2 (ret, "x_advance=");
172
+ rb_str_concat (ret, rb_inspect (cr_text_extents_x_advance (self)));
173
+ rb_str_cat2 (ret, ", ");
174
+ rb_str_cat2 (ret, "y_advance=");
175
+ rb_str_concat (ret, rb_inspect (cr_text_extents_y_advance (self)));
176
+ rb_str_cat2 (ret, ">");
177
+
178
+ return ret;
179
+ }
180
+
181
+
182
+ void
183
+ Init_cairo_text_extents (void)
184
+ {
185
+ rb_cCairo_TextExtents =
186
+ rb_define_class_under (rb_mCairo, "TextExtents", rb_cObject);
187
+ rb_define_alloc_func (rb_cCairo_TextExtents, cr_text_extents_allocate);
188
+
189
+ rb_define_method (rb_cCairo_TextExtents, "initialize",
190
+ cr_text_extents_initialize, 0);
191
+
192
+ rb_define_method (rb_cCairo_TextExtents, "x_bearing",
193
+ cr_text_extents_x_bearing, 0);
194
+ rb_define_method (rb_cCairo_TextExtents, "set_x_bearing",
195
+ cr_text_extents_set_x_bearing, 1);
196
+ rb_define_method (rb_cCairo_TextExtents, "y_bearing",
197
+ cr_text_extents_y_bearing, 0);
198
+ rb_define_method (rb_cCairo_TextExtents, "set_y_bearing",
199
+ cr_text_extents_set_y_bearing, 1);
200
+ rb_define_method (rb_cCairo_TextExtents, "width",
201
+ cr_text_extents_width, 0);
202
+ rb_define_method (rb_cCairo_TextExtents, "set_width",
203
+ cr_text_extents_set_width, 1);
204
+ rb_define_method (rb_cCairo_TextExtents, "height",
205
+ cr_text_extents_height, 0);
206
+ rb_define_method (rb_cCairo_TextExtents, "set_height",
207
+ cr_text_extents_set_height, 1);
208
+ rb_define_method (rb_cCairo_TextExtents, "x_advance",
209
+ cr_text_extents_x_advance, 0);
210
+ rb_define_method (rb_cCairo_TextExtents, "set_x_advance",
211
+ cr_text_extents_set_x_advance, 1);
212
+ rb_define_method (rb_cCairo_TextExtents, "y_advance",
213
+ cr_text_extents_y_advance, 0);
214
+ rb_define_method (rb_cCairo_TextExtents, "set_y_advance",
215
+ cr_text_extents_set_y_advance, 1);
216
+
217
+ rb_define_method (rb_cCairo_TextExtents, "to_s",
218
+ cr_text_extents_to_s, 0);
219
+
220
+ RB_CAIRO_DEF_SETTERS (rb_cCairo_TextExtents);
221
+ }
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pathname'
4
+ require 'mkmf'
5
+ require 'rbconfig'
6
+ require 'fileutils'
7
+
8
+ base_dir = Pathname(__FILE__).dirname.expand_path
9
+ ext_dir = base_dir + "ext" + "cairo"
10
+
11
+ ruby = File.join(RbConfig::CONFIG['bindir'],
12
+ RbConfig::CONFIG['ruby_install_name'] +
13
+ RbConfig::CONFIG["EXEEXT"])
14
+
15
+ Dir.chdir(ext_dir.to_s) do
16
+ system(ruby, "extconf.rb")
17
+ end
18
+
19
+ create_makefile("cairo")
20
+ FileUtils.mv("Makefile", "Makefile.lib")
21
+
22
+ File.open("Makefile", "w") do |makefile|
23
+ makefile.puts(<<-EOM)
24
+ all:
25
+ $(MAKE) $(MAKEFLAGS) -C ext/cairo
26
+ $(MAKE) $(MAKEFLAGS) -f Makefile.lib
27
+
28
+ install:
29
+ $(MAKE) $(MAKEFLAGS) -C ext/cairo install
30
+ $(MAKE) $(MAKEFLAGS) -f Makefile.lib install
31
+
32
+ site-install:
33
+ $(MAKE) $(MAKEFLAGS) -C ext/cairo site-install
34
+ $(MAKE) $(MAKEFLAGS) -f Makefile.lib site-install
35
+
36
+ clean:
37
+ $(MAKE) $(MAKEFLAGS) -C ext/cairo clean
38
+ $(MAKE) $(MAKEFLAGS) -f Makefile.lib clean
39
+
40
+ distclean:
41
+ $(MAKE) $(MAKEFLAGS) -C ext/cairo distclean
42
+ $(MAKE) $(MAKEFLAGS) -f Makefile.lib distclean
43
+ @rm -f Makefile.lib
44
+ EOM
45
+ end
Binary file
Binary file
@@ -0,0 +1,151 @@
1
+ # vim: filetype=ruby:expandtab:shiftwidth=2:tabstop=8:softtabstop=2 :
2
+
3
+ if /mingw|mswin|mswin32/ =~ RUBY_PLATFORM
4
+ require 'pathname'
5
+ base_dir = Pathname(File.dirname(__FILE__))
6
+ base_dir = base_dir.parent + "vendor" + "local"
7
+ if base_dir.exist?
8
+ base_dir = base_dir.to_s.gsub(/\//, "\\")
9
+ ENV['PATH'] = %w(bin lib).collect do |dir|
10
+ "#{base_dir}\\#{dir};"
11
+ end.join('') + ENV['PATH']
12
+ else
13
+ require 'rbconfig'
14
+ ENV['PATH'] = %w(bin lib).collect do |dir|
15
+ "#{Config::CONFIG["prefix"]}\\lib\\GTK\\#{dir};"
16
+ end.join('') + ENV['PATH']
17
+ end
18
+ end
19
+
20
+ module Cairo
21
+ class << self
22
+ def __add_one_arg_setter(klass)
23
+ names = klass.instance_methods(false)
24
+ names.each do |name|
25
+ if /^set_(.*)/ =~ name and
26
+ not names.include? "#{$1}=" and
27
+ klass.instance_method(name).arity == 1
28
+ klass.module_eval("def #{$1}=(val); set_#{$1}(val); val; end")
29
+ end
30
+ end
31
+ end
32
+
33
+ def normalize_const_name(name)
34
+ name.to_s.upcase.gsub(/[\s\-_.]+/, "_")
35
+ end
36
+ end
37
+ end
38
+
39
+ require 'cairo/color'
40
+ require 'cairo/paper'
41
+
42
+ begin
43
+ major, minor, micro, = RUBY_VERSION.split(/\./)
44
+ require "#{major}.#{minor}/cairo.so"
45
+ rescue LoadError
46
+ require 'cairo.so'
47
+ end
48
+ require 'cairo/constants'
49
+
50
+ module Cairo
51
+ class << self
52
+ undef __add_one_arg_setter
53
+
54
+ def bindings_version
55
+ major, minor, micro, tag = BINDINGS_VERSION
56
+ version = [major, minor, micro].join('.')
57
+ version << "-#{tag}" if tag
58
+ version
59
+ end
60
+
61
+ def exit_application(exception, status)
62
+ puts("#{exception.class}: #{exception}")
63
+ puts(exception.backtrace)
64
+ exit(status)
65
+ end
66
+ end
67
+
68
+ class Surface
69
+ def dup
70
+ raise NotImplementedError
71
+ end
72
+ def clone
73
+ raise NotImplementedError
74
+ end
75
+ end
76
+
77
+ if const_defined?("PSLevel")
78
+ module PSLevel
79
+ class << self
80
+ def names
81
+ list.collect {|version| name(version)}
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ if const_defined?("SVGVersion")
88
+ module SVGVersion
89
+ class << self
90
+ def names
91
+ list.collect {|version| name(version)}
92
+ end
93
+ end
94
+ end
95
+ end
96
+
97
+ if const_defined?("SVGSurface")
98
+ class SVGSurface
99
+ class << self
100
+ def versions_as_string
101
+ SVGVersion.names
102
+ end
103
+
104
+ def versions
105
+ SVGVersion.list
106
+ end
107
+
108
+ def version_to_string(version)
109
+ SVGVersion.name(version)
110
+ end
111
+ end
112
+ end
113
+ end
114
+
115
+ class Matrix
116
+ def dup
117
+ Matrix.new(*to_a)
118
+ end
119
+
120
+ def clone
121
+ copy = dup
122
+ copy.freeze if self.frozen?
123
+ copy
124
+ end
125
+
126
+ def translate(tx, ty); dup.translate!(tx, ty); end
127
+ def scale(sx, sy); dup.scale!(sx, sy); end
128
+ def rotate(radians); dup.rotate!(radians); end
129
+ def invert; dup.invert!; end
130
+ def multiply(other); dup.multiply!(other); end
131
+ alias * multiply
132
+ end
133
+
134
+ class FontOptions
135
+ def merge(other)
136
+ dup.merge!(other)
137
+ end
138
+ end
139
+ end
140
+
141
+ require 'cairo/point'
142
+ require 'cairo/colors'
143
+ require 'cairo/papers'
144
+ require 'cairo/context'
145
+ require 'cairo/path'
146
+
147
+ module Cairo
148
+ if const_defined?(:Win32Surface)
149
+ WIN32Surface = Win32Surface # For backward compatibility
150
+ end
151
+ end