rabbit 0.6.2

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.
Files changed (620) hide show
  1. data/COPYING +56 -0
  2. data/COPYING.ja +51 -0
  3. data/GPL +340 -0
  4. data/INSTALL.macosx-macports.en +75 -0
  5. data/INSTALL.macosx-macports.ja +101 -0
  6. data/INSTALL.win32.en +74 -0
  7. data/INSTALL.win32.ja +77 -0
  8. data/NEWS.en +337 -0
  9. data/NEWS.ja +338 -0
  10. data/README.en +836 -0
  11. data/README.ja +871 -0
  12. data/Rakefile +82 -0
  13. data/TODO +7 -0
  14. data/bin/rabbirc +86 -0
  15. data/bin/rabbit +759 -0
  16. data/bin/rabbit-command +95 -0
  17. data/bin/rabbit-theme-manager +133 -0
  18. data/bin/rabbit.bat +8 -0
  19. data/bin/rabrick +82 -0
  20. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  21. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  22. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  23. data/data/rabbit/image/clear-blue-images/clear-blue-headline-background.png +0 -0
  24. data/data/rabbit/image/clear-blue-images/clear-blue-icon.png +0 -0
  25. data/data/rabbit/image/clear-blue-images/clear-blue-images.rb +0 -0
  26. data/data/rabbit/image/clear-blue-images/property.rb +4 -0
  27. data/data/rabbit/image/cozmixng-images/cozmixchu.png +0 -0
  28. data/data/rabbit/image/cozmixng-images/cozmixng-images.rb +2 -0
  29. data/data/rabbit/image/cozmixng-images/powered-by-cozmixng.png +0 -0
  30. data/data/rabbit/image/cozmixng-images/property.rb +4 -0
  31. data/data/rabbit/image/rabbit-images/blue-item.png +0 -0
  32. data/data/rabbit/image/rabbit-images/close-quote-blue.png +0 -0
  33. data/data/rabbit/image/rabbit-images/close-quote-brown.png +0 -0
  34. data/data/rabbit/image/rabbit-images/close-quote-light-blue.png +0 -0
  35. data/data/rabbit/image/rabbit-images/goal-flag.png +0 -0
  36. data/data/rabbit/image/rabbit-images/green-item.png +0 -0
  37. data/data/rabbit/image/rabbit-images/kame.png +0 -0
  38. data/data/rabbit/image/rabbit-images/lavie-icon.png +0 -0
  39. data/data/rabbit/image/rabbit-images/lavie-with-logo.png +0 -0
  40. data/data/rabbit/image/rabbit-images/lavie.png +0 -0
  41. data/data/rabbit/image/rabbit-images/mini-alice.png +0 -0
  42. data/data/rabbit/image/rabbit-images/mini-horizontal-bar.png +0 -0
  43. data/data/rabbit/image/rabbit-images/mini-kame-taro.png +0 -0
  44. data/data/rabbit/image/rabbit-images/mini-tanu-kitaro.png +0 -0
  45. data/data/rabbit/image/rabbit-images/mini-usa-taro.png +0 -0
  46. data/data/rabbit/image/rabbit-images/mini-usagi.png +0 -0
  47. data/data/rabbit/image/rabbit-images/mini-vertical-bar.png +0 -0
  48. data/data/rabbit/image/rabbit-images/mini-yukidaru-taro.png +0 -0
  49. data/data/rabbit/image/rabbit-images/open-quote-blue.png +0 -0
  50. data/data/rabbit/image/rabbit-images/open-quote-brown.png +0 -0
  51. data/data/rabbit/image/rabbit-images/open-quote-light-blue.png +0 -0
  52. data/data/rabbit/image/rabbit-images/property.rb +4 -0
  53. data/data/rabbit/image/rabbit-images/rabbit-banner-blue.png +0 -0
  54. data/data/rabbit/image/rabbit-images/rabbit-banner-green.png +0 -0
  55. data/data/rabbit/image/rabbit-images/rabbit-banner-heads.png +0 -0
  56. data/data/rabbit/image/rabbit-images/rabbit-banner-pink.png +0 -0
  57. data/data/rabbit/image/rabbit-images/rabbit-banner.png +0 -0
  58. data/data/rabbit/image/rabbit-images/rabbit-banner2.png +0 -0
  59. data/data/rabbit/image/rabbit-images/rabbit-images.rb +2 -0
  60. data/data/rabbit/image/rabbit-images/rabbit-pink-logo.png +0 -0
  61. data/data/rabbit/image/rabbit-images/rabbit-pink-logo2.png +0 -0
  62. data/data/rabbit/image/rabbit-images/red-item.png +0 -0
  63. data/data/rabbit/image/rabbit-images/red-item2.png +0 -0
  64. data/data/rabbit/image/rabbit-images/start-flag.png +0 -0
  65. data/data/rabbit/image/rabbit-images/tanu-kitaro.png +0 -0
  66. data/data/rabbit/image/rabbit-images/usa-taro.png +0 -0
  67. data/data/rabbit/image/rabbit-images/usagi.png +0 -0
  68. data/data/rabbit/image/rabbit-images/yukiusa.png +0 -0
  69. data/data/rabbit/image/ruby-images/property.rb +4 -0
  70. data/data/rabbit/image/ruby-images/ruby-images.rb +2 -0
  71. data/data/rabbit/image/ruby-images/ruby-pink-circle-icon.png +0 -0
  72. data/data/rabbit/image/ruby-images/ruby-pink-circle-logo.png +0 -0
  73. data/data/rabbit/image/ruby-images/ruby-pink-circle-small-icon.png +0 -0
  74. data/data/rabbit/image/ruby-images/ruby-pink-circle.png +0 -0
  75. data/data/rabbit/image/ruby-images/ruby-pink-polygon-icon.png +0 -0
  76. data/data/rabbit/image/ruby-images/ruby-pink-polygon-logo.png +0 -0
  77. data/data/rabbit/image/ruby-images/ruby-pink-polygon-small-icon.png +0 -0
  78. data/data/rabbit/image/ruby-images/ruby-pink-polygon.png +0 -0
  79. data/entities/README +10 -0
  80. data/entities/ent2rb.rb +57 -0
  81. data/entities/isoamsa.ent +167 -0
  82. data/entities/isoamsb.ent +143 -0
  83. data/entities/isoamsc.ent +43 -0
  84. data/entities/isoamsn.ent +114 -0
  85. data/entities/isoamso.ent +73 -0
  86. data/entities/isoamsr.ent +204 -0
  87. data/entities/isobox.ent +61 -0
  88. data/entities/isocyr1.ent +88 -0
  89. data/entities/isocyr2.ent +47 -0
  90. data/entities/isodia.ent +35 -0
  91. data/entities/isogrk3.ent +64 -0
  92. data/entities/isolat1.ent +83 -0
  93. data/entities/isolat2.ent +142 -0
  94. data/entities/isomfrk.ent +75 -0
  95. data/entities/isomopf.ent +49 -0
  96. data/entities/isomscr.ent +75 -0
  97. data/entities/isonum.ent +97 -0
  98. data/entities/isopub.ent +105 -0
  99. data/entities/isotech.ent +182 -0
  100. data/entities/mmlalias.ent +564 -0
  101. data/entities/mmlextra.ent +122 -0
  102. data/lib/rabbit/action.rb +143 -0
  103. data/lib/rabbit/action/basic.rb +304 -0
  104. data/lib/rabbit/action/radio.rb +78 -0
  105. data/lib/rabbit/action/toggle.rb +89 -0
  106. data/lib/rabbit/canvas.rb +760 -0
  107. data/lib/rabbit/comment-canvas.rb +21 -0
  108. data/lib/rabbit/comment/log.rb +74 -0
  109. data/lib/rabbit/console.rb +133 -0
  110. data/lib/rabbit/console/roff.rb +84 -0
  111. data/lib/rabbit/cursor-manager.rb +62 -0
  112. data/lib/rabbit/default-config.rb +16 -0
  113. data/lib/rabbit/dependency-canvas.rb +14 -0
  114. data/lib/rabbit/div/comment-i.erb +7 -0
  115. data/lib/rabbit/div/comment.erb +45 -0
  116. data/lib/rabbit/div/css.erb +1 -0
  117. data/lib/rabbit/div/js.erb +1 -0
  118. data/lib/rabbit/div/log.erb +5 -0
  119. data/lib/rabbit/div/main-i.erb +24 -0
  120. data/lib/rabbit/div/main.css +40 -0
  121. data/lib/rabbit/div/main.erb +33 -0
  122. data/lib/rabbit/div/navi-i.erb +6 -0
  123. data/lib/rabbit/div/navi.erb +6 -0
  124. data/lib/rabbit/div/prototype.js +4320 -0
  125. data/lib/rabbit/div/slide-i.erb +2 -0
  126. data/lib/rabbit/div/slide.erb +5 -0
  127. data/lib/rabbit/div/tofu.rb +309 -0
  128. data/lib/rabbit/element.rb +8 -0
  129. data/lib/rabbit/element/base.rb +499 -0
  130. data/lib/rabbit/element/base/draw-hook.rb +75 -0
  131. data/lib/rabbit/element/block-element.rb +38 -0
  132. data/lib/rabbit/element/block.rb +53 -0
  133. data/lib/rabbit/element/container-element.rb +254 -0
  134. data/lib/rabbit/element/description-list.rb +56 -0
  135. data/lib/rabbit/element/enum-list.rb +33 -0
  136. data/lib/rabbit/element/footnote.rb +32 -0
  137. data/lib/rabbit/element/image-title-slide.rb +18 -0
  138. data/lib/rabbit/element/image.rb +167 -0
  139. data/lib/rabbit/element/index-slide.rb +190 -0
  140. data/lib/rabbit/element/item-list.rb +31 -0
  141. data/lib/rabbit/element/method-list.rb +50 -0
  142. data/lib/rabbit/element/poppler-page.rb +36 -0
  143. data/lib/rabbit/element/poppler-slide.rb +25 -0
  144. data/lib/rabbit/element/poppler-title-slide.rb +23 -0
  145. data/lib/rabbit/element/preformatted.rb +27 -0
  146. data/lib/rabbit/element/slide-element.rb +97 -0
  147. data/lib/rabbit/element/slide.rb +51 -0
  148. data/lib/rabbit/element/table.rb +100 -0
  149. data/lib/rabbit/element/tag.rb +29 -0
  150. data/lib/rabbit/element/text-container-element.rb +104 -0
  151. data/lib/rabbit/element/text-element.rb +59 -0
  152. data/lib/rabbit/element/text-renderer.rb +321 -0
  153. data/lib/rabbit/element/text.rb +82 -0
  154. data/lib/rabbit/element/title-slide.rb +190 -0
  155. data/lib/rabbit/formatter.rb +143 -0
  156. data/lib/rabbit/frame.rb +275 -0
  157. data/lib/rabbit/front.rb +238 -0
  158. data/lib/rabbit/gesture/handler.rb +232 -0
  159. data/lib/rabbit/gesture/processor.rb +118 -0
  160. data/lib/rabbit/gettext.rb +90 -0
  161. data/lib/rabbit/graffiti/config-dialog.rb +57 -0
  162. data/lib/rabbit/graffiti/processor.rb +116 -0
  163. data/lib/rabbit/html/generator.rb +458 -0
  164. data/lib/rabbit/html/template.erb +109 -0
  165. data/lib/rabbit/image.rb +35 -0
  166. data/lib/rabbit/image/base.rb +104 -0
  167. data/lib/rabbit/image/default.rb +27 -0
  168. data/lib/rabbit/image/dia.rb +63 -0
  169. data/lib/rabbit/image/eps.rb +113 -0
  170. data/lib/rabbit/image/gimp.rb +53 -0
  171. data/lib/rabbit/image/pdf.rb +77 -0
  172. data/lib/rabbit/image/svg.rb +78 -0
  173. data/lib/rabbit/info-window.rb +160 -0
  174. data/lib/rabbit/keys.rb +190 -0
  175. data/lib/rabbit/logger.rb +14 -0
  176. data/lib/rabbit/logger/base.rb +129 -0
  177. data/lib/rabbit/logger/gui.rb +172 -0
  178. data/lib/rabbit/logger/stderr.rb +28 -0
  179. data/lib/rabbit/menu.rb +287 -0
  180. data/lib/rabbit/parser.rb +24 -0
  181. data/lib/rabbit/parser/base.rb +20 -0
  182. data/lib/rabbit/parser/ext/anthy.rb +43 -0
  183. data/lib/rabbit/parser/ext/enscript.rb +122 -0
  184. data/lib/rabbit/parser/ext/entity.rb +4178 -0
  185. data/lib/rabbit/parser/ext/escape.rb +18 -0
  186. data/lib/rabbit/parser/ext/image.rb +102 -0
  187. data/lib/rabbit/parser/ext/inline.rb +29 -0
  188. data/lib/rabbit/parser/ext/tex.rb +77 -0
  189. data/lib/rabbit/parser/image.rb +34 -0
  190. data/lib/rabbit/parser/pause-support.rb +32 -0
  191. data/lib/rabbit/parser/pdf.rb +35 -0
  192. data/lib/rabbit/parser/rd.rb +54 -0
  193. data/lib/rabbit/parser/rd/ext/anthy.rb +29 -0
  194. data/lib/rabbit/parser/rd/ext/base.rb +79 -0
  195. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +103 -0
  196. data/lib/rabbit/parser/rd/ext/enscript.rb +24 -0
  197. data/lib/rabbit/parser/rd/ext/entity.rb +38 -0
  198. data/lib/rabbit/parser/rd/ext/image.rb +27 -0
  199. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +89 -0
  200. data/lib/rabbit/parser/rd/ext/refer.rb +34 -0
  201. data/lib/rabbit/parser/rd/ext/tex.rb +24 -0
  202. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +424 -0
  203. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +83 -0
  204. data/lib/rabbit/parser/rd/visitor.rb +56 -0
  205. data/lib/rabbit/parser/wiki.rb +30 -0
  206. data/lib/rabbit/parser/wiki/output.rb +460 -0
  207. data/lib/rabbit/post-setup.rb +8 -0
  208. data/lib/rabbit/pre-clean.rb +2 -0
  209. data/lib/rabbit/pre-distclean.rb +2 -0
  210. data/lib/rabbit/progress.rb +68 -0
  211. data/lib/rabbit/rabbit.rb +222 -0
  212. data/lib/rabbit/renderer.rb +27 -0
  213. data/lib/rabbit/renderer/base.rb +512 -0
  214. data/lib/rabbit/renderer/color.rb +80 -0
  215. data/lib/rabbit/renderer/display.rb +25 -0
  216. data/lib/rabbit/renderer/display/base.rb +93 -0
  217. data/lib/rabbit/renderer/display/button-handler.rb +145 -0
  218. data/lib/rabbit/renderer/display/clutter-embed.rb +634 -0
  219. data/lib/rabbit/renderer/display/comment-drawing-area.rb +173 -0
  220. data/lib/rabbit/renderer/display/comment.rb +194 -0
  221. data/lib/rabbit/renderer/display/cursor.rb +34 -0
  222. data/lib/rabbit/renderer/display/drawing-area-base.rb +395 -0
  223. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +219 -0
  224. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +33 -0
  225. data/lib/rabbit/renderer/display/drawing-area.rb +31 -0
  226. data/lib/rabbit/renderer/display/gesture.rb +94 -0
  227. data/lib/rabbit/renderer/display/gl.rb +98 -0
  228. data/lib/rabbit/renderer/display/graffiti.rb +120 -0
  229. data/lib/rabbit/renderer/display/info.rb +45 -0
  230. data/lib/rabbit/renderer/display/key-handler.rb +303 -0
  231. data/lib/rabbit/renderer/display/magnifier.rb +123 -0
  232. data/lib/rabbit/renderer/display/mask.rb +68 -0
  233. data/lib/rabbit/renderer/display/menu.rb +30 -0
  234. data/lib/rabbit/renderer/display/progress.rb +62 -0
  235. data/lib/rabbit/renderer/display/search.rb +107 -0
  236. data/lib/rabbit/renderer/display/spotlight.rb +117 -0
  237. data/lib/rabbit/renderer/engine.rb +18 -0
  238. data/lib/rabbit/renderer/engine/cairo.rb +438 -0
  239. data/lib/rabbit/renderer/engine/gdk.rb +229 -0
  240. data/lib/rabbit/renderer/gl.rb +176 -0
  241. data/lib/rabbit/renderer/kernel.rb +256 -0
  242. data/lib/rabbit/renderer/pixmap.rb +25 -0
  243. data/lib/rabbit/renderer/pixmap/base.rb +127 -0
  244. data/lib/rabbit/renderer/pixmap/cairo.rb +23 -0
  245. data/lib/rabbit/renderer/pixmap/gdk.rb +29 -0
  246. data/lib/rabbit/renderer/pixmap/gl.rb +46 -0
  247. data/lib/rabbit/renderer/print.rb +31 -0
  248. data/lib/rabbit/renderer/print/base.rb +73 -0
  249. data/lib/rabbit/renderer/print/cairo.rb +130 -0
  250. data/lib/rabbit/renderer/print/layout.rb +123 -0
  251. data/lib/rabbit/renderer/print/multiple.rb +205 -0
  252. data/lib/rabbit/search-window.rb +99 -0
  253. data/lib/rabbit/searcher.rb +106 -0
  254. data/lib/rabbit/soap/base.rb +17 -0
  255. data/lib/rabbit/soap/driver.rb +45 -0
  256. data/lib/rabbit/soap/server.rb +33 -0
  257. data/lib/rabbit/source.rb +14 -0
  258. data/lib/rabbit/source/argf.rb +29 -0
  259. data/lib/rabbit/source/base.rb +164 -0
  260. data/lib/rabbit/source/file.rb +65 -0
  261. data/lib/rabbit/source/hiki.rb +36 -0
  262. data/lib/rabbit/source/memory.rb +41 -0
  263. data/lib/rabbit/source/rwiki.rb +54 -0
  264. data/lib/rabbit/source/slide-share.rb +53 -0
  265. data/lib/rabbit/source/uri.rb +73 -0
  266. data/lib/rabbit/stock.rb +31 -0
  267. data/lib/rabbit/theme-browser.rb +104 -0
  268. data/lib/rabbit/theme-browser/default-tag.yaml +89 -0
  269. data/lib/rabbit/theme-browser/document.rb +200 -0
  270. data/lib/rabbit/theme-browser/ext/block-verbatim.rb +39 -0
  271. data/lib/rabbit/theme-browser/page.rb +133 -0
  272. data/lib/rabbit/theme-browser/rd2document-lib.rb +181 -0
  273. data/lib/rabbit/theme-browser/tag.rb +67 -0
  274. data/lib/rabbit/theme-browser/tree.rb +91 -0
  275. data/lib/rabbit/theme/applier.rb +613 -0
  276. data/lib/rabbit/theme/auto-slide/auto-slide.rb +6 -0
  277. data/lib/rabbit/theme/auto-slide/property.rb +4 -0
  278. data/lib/rabbit/theme/base/base.rb +76 -0
  279. data/lib/rabbit/theme/base/property.rb +4 -0
  280. data/lib/rabbit/theme/blue-bar/blue-bar.rb +93 -0
  281. data/lib/rabbit/theme/blue-bar/property.rb +3 -0
  282. data/lib/rabbit/theme/blue-circle/blue-circle.rb +14 -0
  283. data/lib/rabbit/theme/blue-circle/property.rb +3 -0
  284. data/lib/rabbit/theme/centering-rabbit/centering-rabbit.rb +5 -0
  285. data/lib/rabbit/theme/centering-rabbit/property.rb +3 -0
  286. data/lib/rabbit/theme/clear-blue/clear-blue.rb +100 -0
  287. data/lib/rabbit/theme/clear-blue/property.rb +3 -0
  288. data/lib/rabbit/theme/clock/clock.rb +37 -0
  289. data/lib/rabbit/theme/clock/property.rb +21 -0
  290. data/lib/rabbit/theme/color-circle-block-quote/color-circle-block-quote.rb +26 -0
  291. data/lib/rabbit/theme/color-circle-block-quote/property.rb +4 -0
  292. data/lib/rabbit/theme/color-circle-common/color-circle-common.rb +48 -0
  293. data/lib/rabbit/theme/color-circle-common/property.rb +3 -0
  294. data/lib/rabbit/theme/color-circle-description/color-circle-description.rb +9 -0
  295. data/lib/rabbit/theme/color-circle-description/property.rb +4 -0
  296. data/lib/rabbit/theme/color-circle-foot-text/color-circle-foot-text.rb +14 -0
  297. data/lib/rabbit/theme/color-circle-foot-text/property.rb +4 -0
  298. data/lib/rabbit/theme/color-circle-item-mark/color-circle-item-mark.rb +77 -0
  299. data/lib/rabbit/theme/color-circle-item-mark/property.rb +4 -0
  300. data/lib/rabbit/theme/color-circle-method-list/color-circle-method-list.rb +8 -0
  301. data/lib/rabbit/theme/color-circle-method-list/property.rb +4 -0
  302. data/lib/rabbit/theme/color-circle-preformatted/color-circle-preformatted.rb +5 -0
  303. data/lib/rabbit/theme/color-circle-preformatted/property.rb +4 -0
  304. data/lib/rabbit/theme/color-circle-slide/color-circle-slide.rb +13 -0
  305. data/lib/rabbit/theme/color-circle-slide/property.rb +4 -0
  306. data/lib/rabbit/theme/color-circle-text/color-circle-text.rb +9 -0
  307. data/lib/rabbit/theme/color-circle-text/property.rb +4 -0
  308. data/lib/rabbit/theme/color-circle-title-slide/color-circle-title-slide.rb +27 -0
  309. data/lib/rabbit/theme/color-circle-title-slide/property.rb +4 -0
  310. data/lib/rabbit/theme/color-circle-title-text/color-circle-title-text.rb +7 -0
  311. data/lib/rabbit/theme/color-circle-title-text/property.rb +4 -0
  312. data/lib/rabbit/theme/color-circle/color-circle.rb +40 -0
  313. data/lib/rabbit/theme/color-circle/property.rb +4 -0
  314. data/lib/rabbit/theme/comment/comment.rb +5 -0
  315. data/lib/rabbit/theme/comment/property.rb +3 -0
  316. data/lib/rabbit/theme/cozmixng-powered-by/cozmixng-powered-by.rb +6 -0
  317. data/lib/rabbit/theme/cozmixng-powered-by/property.rb +7 -0
  318. data/lib/rabbit/theme/cozmixng/cozmixng.rb +55 -0
  319. data/lib/rabbit/theme/cozmixng/property.rb +3 -0
  320. data/lib/rabbit/theme/day-white/day-white.rb +14 -0
  321. data/lib/rabbit/theme/day-white/property.rb +3 -0
  322. data/lib/rabbit/theme/default-block-quote/default-block-quote.rb +113 -0
  323. data/lib/rabbit/theme/default-block-quote/property.rb +3 -0
  324. data/lib/rabbit/theme/default-description/default-description.rb +64 -0
  325. data/lib/rabbit/theme/default-description/property.rb +5 -0
  326. data/lib/rabbit/theme/default-foot-text/default-foot-text.rb +52 -0
  327. data/lib/rabbit/theme/default-foot-text/property.rb +3 -0
  328. data/lib/rabbit/theme/default-icon/default-icon.rb +4 -0
  329. data/lib/rabbit/theme/default-icon/property.rb +5 -0
  330. data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +116 -0
  331. data/lib/rabbit/theme/default-item-mark-setup/property.rb +3 -0
  332. data/lib/rabbit/theme/default-item-mark/default-item-mark.rb +92 -0
  333. data/lib/rabbit/theme/default-item-mark/property.rb +4 -0
  334. data/lib/rabbit/theme/default-method-list/default-method-list.rb +6 -0
  335. data/lib/rabbit/theme/default-method-list/property.rb +3 -0
  336. data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +37 -0
  337. data/lib/rabbit/theme/default-preformatted/property.rb +3 -0
  338. data/lib/rabbit/theme/default-slide/default-slide.rb +33 -0
  339. data/lib/rabbit/theme/default-slide/property.rb +3 -0
  340. data/lib/rabbit/theme/default-text/default-text.rb +183 -0
  341. data/lib/rabbit/theme/default-text/property.rb +3 -0
  342. data/lib/rabbit/theme/default-title-slide/default-title-slide.rb +13 -0
  343. data/lib/rabbit/theme/default-title-slide/property.rb +6 -0
  344. data/lib/rabbit/theme/default-title-text/default-title-text.rb +48 -0
  345. data/lib/rabbit/theme/default-title-text/property.rb +3 -0
  346. data/lib/rabbit/theme/default/default.rb +22 -0
  347. data/lib/rabbit/theme/default/property.rb +3 -0
  348. data/lib/rabbit/theme/document.erb +35 -0
  349. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +77 -0
  350. data/lib/rabbit/theme/edge-info-toolkit/property.rb +3 -0
  351. data/lib/rabbit/theme/emphasize-keyword/emphasize-keyword.rb +16 -0
  352. data/lib/rabbit/theme/emphasize-keyword/property.rb +4 -0
  353. data/lib/rabbit/theme/entry.rb +121 -0
  354. data/lib/rabbit/theme/footer-logo/footer-logo.rb +30 -0
  355. data/lib/rabbit/theme/footer-logo/property.rb +26 -0
  356. data/lib/rabbit/theme/green-circle/green-circle.rb +14 -0
  357. data/lib/rabbit/theme/green-circle/property.rb +3 -0
  358. data/lib/rabbit/theme/headline-logo/headline-logo.rb +24 -0
  359. data/lib/rabbit/theme/headline-logo/property.rb +10 -0
  360. data/lib/rabbit/theme/icon/icon.rb +8 -0
  361. data/lib/rabbit/theme/icon/property.rb +24 -0
  362. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +111 -0
  363. data/lib/rabbit/theme/image-slide-number/property.rb +64 -0
  364. data/lib/rabbit/theme/image-timer/image-timer.rb +109 -0
  365. data/lib/rabbit/theme/image-timer/property.rb +46 -0
  366. data/lib/rabbit/theme/image-viewer/image-viewer.rb +7 -0
  367. data/lib/rabbit/theme/image-viewer/property.rb +3 -0
  368. data/lib/rabbit/theme/image/image.rb +72 -0
  369. data/lib/rabbit/theme/image/property.rb +3 -0
  370. data/lib/rabbit/theme/lightning-clear-blue/lightning-clear-blue.rb +13 -0
  371. data/lib/rabbit/theme/lightning-clear-blue/property.rb +3 -0
  372. data/lib/rabbit/theme/lightning-rabbit/lightning-rabbit.rb +13 -0
  373. data/lib/rabbit/theme/lightning-rabbit/property.rb +3 -0
  374. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +60 -0
  375. data/lib/rabbit/theme/lightning-simple/property.rb +3 -0
  376. data/lib/rabbit/theme/lightning-talk-toolkit/lightning-talk-toolkit.rb +171 -0
  377. data/lib/rabbit/theme/lightning-talk-toolkit/property.rb +3 -0
  378. data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +65 -0
  379. data/lib/rabbit/theme/lightning-talk/property.rb +3 -0
  380. data/lib/rabbit/theme/manager.rb +35 -0
  381. data/lib/rabbit/theme/mirror-effect/mirror-effect.rb +27 -0
  382. data/lib/rabbit/theme/mirror-effect/property.rb +3 -0
  383. data/lib/rabbit/theme/newline-in-slides/newline-in-slides.rb +3 -0
  384. data/lib/rabbit/theme/newline-in-slides/property.rb +4 -0
  385. data/lib/rabbit/theme/newline-in-title/newline-in-title.rb +7 -0
  386. data/lib/rabbit/theme/newline-in-title/property.rb +4 -0
  387. data/lib/rabbit/theme/night-black/night-black.rb +25 -0
  388. data/lib/rabbit/theme/night-black/property.rb +3 -0
  389. data/lib/rabbit/theme/pdf-tortoise-and-hare/pdf-tortoise-and-hare.rb +18 -0
  390. data/lib/rabbit/theme/pdf-tortoise-and-hare/property.rb +3 -0
  391. data/lib/rabbit/theme/pdf/pdf.rb +4 -0
  392. data/lib/rabbit/theme/pdf/property.rb +3 -0
  393. data/lib/rabbit/theme/powered-by/powered-by.rb +67 -0
  394. data/lib/rabbit/theme/powered-by/property.rb +24 -0
  395. data/lib/rabbit/theme/rabbit-block-quote/property.rb +4 -0
  396. data/lib/rabbit/theme/rabbit-block-quote/rabbit-block-quote.rb +16 -0
  397. data/lib/rabbit/theme/rabbit-headline-logo/property.rb +5 -0
  398. data/lib/rabbit/theme/rabbit-headline-logo/rabbit-headline-logo.rb +4 -0
  399. data/lib/rabbit/theme/rabbit-icon/property.rb +5 -0
  400. data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +4 -0
  401. data/lib/rabbit/theme/rabbit-item-mark/property.rb +5 -0
  402. data/lib/rabbit/theme/rabbit-item-mark/rabbit-item-mark.rb +53 -0
  403. data/lib/rabbit/theme/rabbit-powered-by/property.rb +7 -0
  404. data/lib/rabbit/theme/rabbit-powered-by/rabbit-powered-by.rb +5 -0
  405. data/lib/rabbit/theme/rabbit-title-logo/property.rb +5 -0
  406. data/lib/rabbit/theme/rabbit-title-logo/rabbit-title-logo.rb +4 -0
  407. data/lib/rabbit/theme/rabbit/property.rb +3 -0
  408. data/lib/rabbit/theme/rabbit/rabbit.rb +63 -0
  409. data/lib/rabbit/theme/red-frame/property.rb +3 -0
  410. data/lib/rabbit/theme/red-frame/red-frame.rb +96 -0
  411. data/lib/rabbit/theme/rotate-zoom-effect/property.rb +4 -0
  412. data/lib/rabbit/theme/rotate-zoom-effect/rotate-zoom-effect.rb +51 -0
  413. data/lib/rabbit/theme/ruby-gnome2-description/property.rb +7 -0
  414. data/lib/rabbit/theme/ruby-gnome2-description/ruby-gnome2-description.rb +7 -0
  415. data/lib/rabbit/theme/ruby-gnome2-foot-text/property.rb +5 -0
  416. data/lib/rabbit/theme/ruby-gnome2-foot-text/ruby-gnome2-foot-text.rb +3 -0
  417. data/lib/rabbit/theme/ruby-gnome2-headline/property.rb +7 -0
  418. data/lib/rabbit/theme/ruby-gnome2-headline/ruby-gnome2-headline.rb +47 -0
  419. data/lib/rabbit/theme/ruby-gnome2-icon/property.rb +5 -0
  420. data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +4 -0
  421. data/lib/rabbit/theme/ruby-gnome2-item-mark/property.rb +10 -0
  422. data/lib/rabbit/theme/ruby-gnome2-item-mark/ruby-gnome2-item-mark.rb +65 -0
  423. data/lib/rabbit/theme/ruby-gnome2-preformatted/property.rb +4 -0
  424. data/lib/rabbit/theme/ruby-gnome2-preformatted/ruby-gnome2-preformatted.rb +8 -0
  425. data/lib/rabbit/theme/ruby-gnome2-slide/property.rb +4 -0
  426. data/lib/rabbit/theme/ruby-gnome2-slide/ruby-gnome2-slide.rb +40 -0
  427. data/lib/rabbit/theme/ruby-gnome2/property.rb +3 -0
  428. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +61 -0
  429. data/lib/rabbit/theme/scroll-effect/property.rb +3 -0
  430. data/lib/rabbit/theme/scroll-effect/scroll-effect.rb +32 -0
  431. data/lib/rabbit/theme/searcher.rb +120 -0
  432. data/lib/rabbit/theme/show-frame/property.rb +16 -0
  433. data/lib/rabbit/theme/show-frame/show-frame.rb +17 -0
  434. data/lib/rabbit/theme/simple-item-mark/property.rb +5 -0
  435. data/lib/rabbit/theme/simple-item-mark/simple-item-mark.rb +112 -0
  436. data/lib/rabbit/theme/slide-background-image/property.rb +10 -0
  437. data/lib/rabbit/theme/slide-background-image/slide-background-image.rb +25 -0
  438. data/lib/rabbit/theme/slide-background/property.rb +6 -0
  439. data/lib/rabbit/theme/slide-background/slide-background.rb +3 -0
  440. data/lib/rabbit/theme/slide-footer-info/property.rb +43 -0
  441. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +42 -0
  442. data/lib/rabbit/theme/slide-header-info/property.rb +43 -0
  443. data/lib/rabbit/theme/slide-header-info/slide-header-info.rb +42 -0
  444. data/lib/rabbit/theme/slide-logo/property.rb +26 -0
  445. data/lib/rabbit/theme/slide-logo/slide-logo.rb +30 -0
  446. data/lib/rabbit/theme/slide-number/property.rb +21 -0
  447. data/lib/rabbit/theme/slide-number/slide-number.rb +28 -0
  448. data/lib/rabbit/theme/slide-show/property.rb +4 -0
  449. data/lib/rabbit/theme/slide-show/slide-show.rb +31 -0
  450. data/lib/rabbit/theme/table/property.rb +3 -0
  451. data/lib/rabbit/theme/table/table.rb +169 -0
  452. data/lib/rabbit/theme/timer/property.rb +3 -0
  453. data/lib/rabbit/theme/timer/timer.rb +63 -0
  454. data/lib/rabbit/theme/title-background-color/property.rb +10 -0
  455. data/lib/rabbit/theme/title-background-color/title-background-color.rb +17 -0
  456. data/lib/rabbit/theme/title-background-image/property.rb +11 -0
  457. data/lib/rabbit/theme/title-background-image/title-background-image.rb +25 -0
  458. data/lib/rabbit/theme/title-logo/property.rb +23 -0
  459. data/lib/rabbit/theme/title-logo/title-logo.rb +38 -0
  460. data/lib/rabbit/theme/title-on-image-toolkit/property.rb +3 -0
  461. data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +122 -0
  462. data/lib/rabbit/theme/title-shadow/property.rb +11 -0
  463. data/lib/rabbit/theme/title-shadow/title-shadow.rb +33 -0
  464. data/lib/rabbit/trackball.rb +228 -0
  465. data/lib/rabbit/utils.rb +459 -0
  466. data/lib/rabbit/xmlrpc/base.rb +6 -0
  467. data/lib/rabbit/xmlrpc/client.rb +17 -0
  468. data/lib/rabbit/xmlrpc/server.rb +23 -0
  469. data/lib/rt/rt2html-lib.rb +157 -0
  470. data/lib/rt/rtparser.rb +226 -0
  471. data/lib/rt/rtvisitor.rb +68 -0
  472. data/lib/rwiki/soap/common.rb +5 -0
  473. data/lib/rwiki/soap/driver.rb +43 -0
  474. data/lib/rwiki/soap/servant.rb +78 -0
  475. data/misc/emacs/README.ja +177 -0
  476. data/misc/emacs/rabbit-mode.el +375 -0
  477. data/misc/make-image-sample.rb +94 -0
  478. data/misc/make-print-sample.rb +95 -0
  479. data/misc/update-rd.rb +78 -0
  480. data/misc/xyzzy/rabbit-mode.l +775 -0
  481. data/po/en/rabbit.po +2356 -0
  482. data/po/fr/rabbit.po +2452 -0
  483. data/po/ja/rabbit.po +2465 -0
  484. data/sample/asahina/alice.png +0 -0
  485. data/sample/asahina/yukiusa.png +0 -0
  486. data/sample/blue-circle.rd +37 -0
  487. data/sample/can_rabbit.rd +470 -0
  488. data/sample/cozmixng.rd +85 -0
  489. data/sample/cozmixng_is_field.png +0 -0
  490. data/sample/cozmixng_is_field.svg +430 -0
  491. data/sample/equation.eps +571 -0
  492. data/sample/gl-sample.rd +10 -0
  493. data/sample/html_and_wiki.png +0 -0
  494. data/sample/html_and_wiki.svg +275 -0
  495. data/sample/join_cozmixng.png +0 -0
  496. data/sample/join_cozmixng.svg +293 -0
  497. data/sample/kof2005/gesture-flow.svg +329 -0
  498. data/sample/kof2005/gesture.rb +473 -0
  499. data/sample/kof2005/gtk+-widget.svg +128 -0
  500. data/sample/kof2005/high-light-architecture.svg +203 -0
  501. data/sample/kof2005/high-light-expose.rb +120 -0
  502. data/sample/kof2005/high-light-expose.svg +153 -0
  503. data/sample/kof2005/high-light-widget.rb +147 -0
  504. data/sample/kof2005/high-light-widget.svg +172 -0
  505. data/sample/kof2005/high-light.svg +132 -0
  506. data/sample/kof2005/mask-screenshot.png +0 -0
  507. data/sample/kof2005/mask.rb +105 -0
  508. data/sample/kof2005/mask.svg +120 -0
  509. data/sample/kof2005/ruby-gnome2-logo.png +0 -0
  510. data/sample/kof2005/ruby-pink-circle-logo.png +0 -0
  511. data/sample/kof2005/skip-up-with-ruby-gnome2.rd +450 -0
  512. data/sample/kof2005/widget.svg +202 -0
  513. data/sample/kou/clear-blue-headline-background.svg +283 -0
  514. data/sample/kou/clear-blue-icon.svg +194 -0
  515. data/sample/kou/horizontal-bar.svg +82 -0
  516. data/sample/kou/quote.svg +497 -0
  517. data/sample/kou/vertical-bar.svg +70 -0
  518. data/sample/lavie.png +0 -0
  519. data/sample/lightning-talk.rd +50 -0
  520. data/sample/lldn/input.svg +269 -0
  521. data/sample/lldn/interface.svg +410 -0
  522. data/sample/lldn/kame.png +0 -0
  523. data/sample/lldn/lavie.png +0 -0
  524. data/sample/lldn/lldn.rd +212 -0
  525. data/sample/lldn/output.svg +284 -0
  526. data/sample/lldn/rabbit-rwiki.svg +353 -0
  527. data/sample/lldn/rabbit_banner.png +0 -0
  528. data/sample/lldn/rabbit_banner2.png +0 -0
  529. data/sample/m17n.rd +138 -0
  530. data/sample/momo/banner/bn1.png +0 -0
  531. data/sample/momo/banner/bn2.png +0 -0
  532. data/sample/momo/banner/bn_psd.psd +0 -0
  533. data/sample/momo/banner/bn_psd2.psd +0 -0
  534. data/sample/momo/tailavi/tailavi-ruby.png +0 -0
  535. data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
  536. data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
  537. data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
  538. data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
  539. data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
  540. data/sample/momo/tailavi/taiyaki.png +0 -0
  541. data/sample/momo/tailavi/taiyaki.psd +0 -0
  542. data/sample/momo/usako/blue_dot.png +0 -0
  543. data/sample/momo/usako/green_dot.png +0 -0
  544. data/sample/momo/usako/rabbit.png +0 -0
  545. data/sample/momo/usako/rabbit_mimi.png +0 -0
  546. data/sample/momo/usako/rabbit_mimi2.png +0 -0
  547. data/sample/momo/usako/red_dot.png +0 -0
  548. data/sample/momo/usako/ruby.png +0 -0
  549. data/sample/momo/usako/ruby_new.png +0 -0
  550. data/sample/momo/usako/usa1.png +0 -0
  551. data/sample/momo/usako/usa2.png +0 -0
  552. data/sample/momo/usako/usa3.png +0 -0
  553. data/sample/momo/usako/usako_psd.psd +0 -0
  554. data/sample/momo/usako/usako_psd_100.png +0 -0
  555. data/sample/momo/usako/usako_psd_200.png +0 -0
  556. data/sample/ppt/hare-and-tortoise-end.png +0 -0
  557. data/sample/ppt/hare-and-tortoise-middle.png +0 -0
  558. data/sample/ppt/hare-and-tortoise-start.png +0 -0
  559. data/sample/ppt/ppt.rd +207 -0
  560. data/sample/ppt/rabbit-with-ruby.png +0 -0
  561. data/sample/pre.rd +112 -0
  562. data/sample/rabbit-balloon.eps +233 -0
  563. data/sample/rabbit-balloon.obj +93 -0
  564. data/sample/rabbit-en.rd +376 -0
  565. data/sample/rabbit-history.svg +280 -0
  566. data/sample/rabbit-implementation.rd +187 -0
  567. data/sample/rabbit.dia +408 -0
  568. data/sample/rabbit.hiki +328 -0
  569. data/sample/rabbit.rd +383 -0
  570. data/sample/rabbit.xcf +0 -0
  571. data/sample/rabbit/theme/festival/festival.rb +6 -0
  572. data/sample/rabbit/theme/gl-sample/gl-sample.rb +29 -0
  573. data/sample/rabbit/theme/image-with-frame/image-with-frame.rb +2 -0
  574. data/sample/rabbit/theme/image-with-no-shadow-frame/image-with-no-shadow-frame.rb +3 -0
  575. data/sample/rabbit/theme/image-without-frame/image-without-frame.rb +2 -0
  576. data/sample/rabbit/theme/kof2005/kof2005.rb +9 -0
  577. data/sample/rabbit/theme/kof2005/property.rb +3 -0
  578. data/sample/rabbit/theme/lightning-talk-with-contact/lightning-talk-with-contact.rb +6 -0
  579. data/sample/rabbit/theme/lldn/lldn.rb +20 -0
  580. data/sample/rabbit/theme/pdf/pdf.rb +16 -0
  581. data/sample/rabbit/theme/pdf/property.rb +4 -0
  582. data/sample/rabbit/theme/ppt/ppt.rb +5 -0
  583. data/sample/rabbit/theme/rabbit-and-tortoise/rabbit-and-tortoise.rb +11 -0
  584. data/sample/rabbit/theme/rectangle-image-slide-number/rectangle-image-slide-number.rb +4 -0
  585. data/sample/rabbit/theme/stop-auto-slide/stop-auto-slide.rb +2 -0
  586. data/sample/rabbit/theme/triangle-image-slide-number/triangle-image-slide-number.rb +5 -0
  587. data/sample/rabbit_icon.ico +0 -0
  588. data/sample/rabbit_icon.png +0 -0
  589. data/sample/shocker.jpg +0 -0
  590. data/sample/slide-property.hiki +14 -0
  591. data/sample/slide-property.rab +18 -0
  592. data/sample/sode/kame-color.riff +0 -0
  593. data/sample/sode/kame.riff +0 -0
  594. data/sample/spiral.svg +29 -0
  595. data/sample/table-en.rd +55 -0
  596. data/sample/table.rd +55 -0
  597. data/sample/theme-bench-en.rab +127 -0
  598. data/sample/theme-bench.rab +128 -0
  599. data/sample/usagi.png +0 -0
  600. data/sample/usatti/kame-taro.png +0 -0
  601. data/sample/usatti/rabbit-pink-logo.png +0 -0
  602. data/sample/usatti/rabbit-pink-logo2.png +0 -0
  603. data/sample/usatti/ruby-pink-circle-logo.png +0 -0
  604. data/sample/usatti/ruby-pink-circle.png +0 -0
  605. data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
  606. data/sample/usatti/ruby-pink-polygon.png +0 -0
  607. data/sample/usatti/tanu-kitaro.png +0 -0
  608. data/sample/usatti/usa-taro.png +0 -0
  609. data/sample/usatti/yukidaru-taro.png +0 -0
  610. data/setup.rb +1585 -0
  611. data/test/rabbit-test-utils.rb +24 -0
  612. data/test/run-test.rb +11 -0
  613. data/test/test_applier.rb +42 -0
  614. data/test/test_color.rb +42 -0
  615. data/test/test_element.rb +91 -0
  616. data/test/test_source.rb +47 -0
  617. data/test/test_utils.rb +50 -0
  618. data/update-mo.rb +20 -0
  619. data/update-po.rb +57 -0
  620. metadata +703 -0
@@ -0,0 +1,8 @@
1
+ File.open("config.rb", "w") do |f|
2
+ f.print <<-EOC
3
+ require "rabbit/default-config"
4
+
5
+ Rabbit::Config::IMAGE_PATH.unshift('#{config("datadir")}')
6
+ Rabbit::Config::GETTEXT_PATH = '#{File.join(config("datadir"), "locale")}'
7
+ EOC
8
+ end
@@ -0,0 +1,2 @@
1
+ filename = 'config.rb'
2
+ File.delete(filename) if File.exist?(filename)
@@ -0,0 +1,2 @@
1
+ filename = 'config.rb'
2
+ File.delete(filename) if File.exist?(filename)
@@ -0,0 +1,68 @@
1
+ require 'gtk2'
2
+
3
+ module Rabbit
4
+ class Progress
5
+ attr_reader :window, :foreground, :background
6
+ def initialize
7
+ @window = Gtk::Window.new(Gtk::Window::POPUP)
8
+ @window.app_paintable = true
9
+ @bar = Gtk::ProgressBar.new
10
+ @bar.show_text = true
11
+ @window.add(@bar)
12
+ @original_style = @bar.style
13
+ @foreground = nil
14
+ @background = nil
15
+ end
16
+
17
+ def foreground=(color)
18
+ @foreground = color
19
+ setup_progress_color
20
+ end
21
+
22
+ def background=(color)
23
+ @background = color
24
+ setup_progress_color
25
+ end
26
+
27
+ def clear_color
28
+ @foreground = nil
29
+ @background = nil
30
+ setup_progress_color
31
+ end
32
+
33
+ def start_progress(max, parent)
34
+ return if max.zero?
35
+ @window.transient_for = parent
36
+ @window.show_all
37
+ @bar.fraction = @current = 0
38
+ @max = max.to_f
39
+ end
40
+
41
+ def update_progress(i)
42
+ return if @max.nil?
43
+ @current = i
44
+ @bar.fraction = @current / @max
45
+ end
46
+
47
+ def end_progress
48
+ return if @max.nil?
49
+ @current = @max
50
+ @bar.fraction = @current / @max
51
+ end
52
+
53
+ private
54
+ def setup_progress_color
55
+ style = @original_style.copy
56
+ if @foreground
57
+ rgb = @foreground.to_gdk_rgb
58
+ style.set_bg(Gtk::STATE_PRELIGHT, *rgb)
59
+ end
60
+ if @background
61
+ rgb = @background.to_gdk_rgb
62
+ style.set_bg(Gtk::STATE_NORMAL, *rgb)
63
+ end
64
+ @bar.style = style
65
+ end
66
+ end
67
+ end
68
+
@@ -0,0 +1,222 @@
1
+ begin
2
+ require "rabbit/config"
3
+ rescue LoadError
4
+ require "rabbit/default-config"
5
+ end
6
+
7
+ require "rabbit/gettext"
8
+
9
+ module Rabbit
10
+
11
+ VERSION = "0.6.2"
12
+
13
+ TMP_DIR_NAME = ".tmp"
14
+
15
+ @@gui_init_procs = []
16
+
17
+ module_function
18
+ def add_gui_init_proc(proc=Proc.new)
19
+ @@gui_init_procs << proc
20
+ end
21
+
22
+ def gui_init
23
+ @@gui_init_procs.each do |proc|
24
+ proc.call
25
+ end
26
+ end
27
+
28
+ class Error < StandardError
29
+ include GetText
30
+ end
31
+
32
+ class ImageLoadError < Error
33
+ end
34
+
35
+ class ImageFileDoesNotExistError < ImageLoadError
36
+ attr_reader :filename
37
+ def initialize(filename)
38
+ @filename = filename
39
+ super(_("no such file: %s") % filename)
40
+ end
41
+ end
42
+
43
+ class ImageLoadWithExternalCommandError < ImageLoadError
44
+ attr_reader :type, :command
45
+ def initialize(type, command, additional_info=nil)
46
+ @type = type
47
+ @command = command
48
+ format =
49
+ _("can't handle %s because the following command " \
50
+ "can't be run successfully: %s")
51
+ msg = format % [@type, @command]
52
+ msg << "\n#{additional_info}" if additional_info
53
+ super(msg)
54
+ end
55
+ end
56
+
57
+ class EPSCanNotHandleError < ImageLoadWithExternalCommandError
58
+ def initialize(command, tried_commands)
59
+ format = _("tried gs commands: %s")
60
+ additional_info = format % tried_commands.inspect
61
+ super("EPS", command, additional_info)
62
+ end
63
+ end
64
+
65
+ class DiaCanNotHandleError < ImageLoadWithExternalCommandError
66
+ def initialize(command, tried_commands)
67
+ format = _("tried dia commands: %s")
68
+ additional_info = format % tried_commands.inspect
69
+ super("Dia", command, additional_info)
70
+ end
71
+ end
72
+
73
+ class GIMPCanNotHandleError < ImageLoadWithExternalCommandError
74
+ def initialize(command, tried_commands)
75
+ format = _("tried gimp commands: %s")
76
+ additional_info = format % tried_commands.inspect
77
+ super("GIMP", command, additional_info)
78
+ end
79
+ end
80
+
81
+ class TeXCanNotHandleError < ImageLoadWithExternalCommandError
82
+ def initialize(command, additional_info=nil)
83
+ super("TeX", command, additional_info)
84
+ end
85
+ end
86
+
87
+ class UnknownPropertyError < Error
88
+ attr_reader :name
89
+ def initialize(name)
90
+ @name = name
91
+ super(_("Unknown property: %s") % name)
92
+ end
93
+ end
94
+
95
+ class CantAllocateColorError < Error
96
+ attr_reader :color
97
+ def initialize(color)
98
+ @color = color
99
+ super(_("can't allocate color: %s"), color)
100
+ end
101
+ end
102
+
103
+ class SourceUnreadableError < Error
104
+ end
105
+
106
+ class NotExistError < SourceUnreadableError
107
+ attr_reader :name
108
+ def initialize(name)
109
+ @name = name
110
+ super(_("not exist: %s") % @name)
111
+ end
112
+ end
113
+
114
+ class NotFileError < SourceUnreadableError
115
+ attr_reader :name
116
+ def initialize(name)
117
+ @name = name
118
+ super(_("not a file: %s") % @name)
119
+ end
120
+ end
121
+
122
+ class NotReadableError < SourceUnreadableError
123
+ attr_reader :name
124
+ def initialize(name)
125
+ @name = name
126
+ super(_("can not be read: %s") % @name)
127
+ end
128
+ end
129
+
130
+ class ImmutableSourceTypeError < Error
131
+ attr_reader :source_type
132
+ def initialize(source_type)
133
+ @source_type = source_type
134
+ super(_("immutable source type: %s") % @source_type)
135
+ end
136
+ end
137
+
138
+ class ThemeExit < Error
139
+ def initialize(message=nil)
140
+ @have_message = !message.nil?
141
+ super
142
+ end
143
+
144
+ def have_message?
145
+ @have_message
146
+ end
147
+ end
148
+
149
+ class NotAvailableInterfaceError < Error
150
+ attr_reader :name
151
+ def initialize(name)
152
+ @name = name
153
+ super(_("not available interface: %s") % @name)
154
+ end
155
+ end
156
+
157
+ class CantFindHTMLTemplate < Error
158
+ attr_reader :name
159
+ def initialize(name)
160
+ @name = name
161
+ super(_("can't find HTML template: %s") % @name)
162
+ end
163
+ end
164
+
165
+ class CantFindThemeRDTemplate < Error
166
+ attr_reader :name
167
+ def initialize(name)
168
+ @name = name
169
+ super(_("can't find theme RD template: %s") % @name)
170
+ end
171
+ end
172
+
173
+ class InvalidMotionError < Error
174
+ attr_reader :motion
175
+ def initialize(motion)
176
+ @motion = motion
177
+ super(_("invalid motion: %s") % @motion)
178
+ end
179
+ end
180
+
181
+ class InvalidImageSizeError < Error
182
+ attr_reader :filename, :prop_name, :value
183
+ def initialize(filename, prop_name, value)
184
+ @filename = filename
185
+ @prop_name = prop_name
186
+ @value = value
187
+ params = {
188
+ :filename => filename,
189
+ :prop_name => prop_name,
190
+ :value => value,
191
+ }
192
+ super(_("invalid value of size property \"%{prop_name}\" " \
193
+ "of image \"%{filename}\": %{value}") % params)
194
+ end
195
+ end
196
+
197
+ class ParseFinish < Error
198
+ end
199
+
200
+ class ParseError < Error
201
+ end
202
+
203
+ class UnsupportedFormatError < Error
204
+ end
205
+
206
+ class ApplyFinish < Error
207
+ end
208
+
209
+ class UnknownCursorTypeError < Error
210
+ attr_reader :type
211
+ def intialize(type)
212
+ @type = type
213
+ super(_("unknown cursor type: %s") % @type)
214
+ end
215
+ end
216
+
217
+ class NoPrintSupportError < Error
218
+ def initialize
219
+ super(_("print isn't supported"))
220
+ end
221
+ end
222
+ end
@@ -0,0 +1,27 @@
1
+ require "rabbit/utils"
2
+
3
+ require "rabbit/renderer/color"
4
+ require "rabbit/renderer/display"
5
+ require "rabbit/renderer/pixmap"
6
+ require "rabbit/renderer/print"
7
+
8
+ module Rabbit
9
+ module Renderer
10
+ extend Utils
11
+
12
+ class << self
13
+ def printable?
14
+ Print.printable?
15
+ end
16
+
17
+ def printable_renderer(slides_per_page)
18
+ raise NoPrintSupportError unless printable?
19
+ if slides_per_page > 1
20
+ Print::Multiple
21
+ else
22
+ Print
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,512 @@
1
+ require "forwardable"
2
+ require "erb"
3
+ require "gtk2"
4
+
5
+ require "rabbit/rabbit"
6
+ require "rabbit/gettext"
7
+ require "rabbit/trackball"
8
+ require "rabbit/renderer/color"
9
+
10
+ module Pango
11
+ class Context
12
+ unless method_defined?(:families)
13
+ alias families list_families
14
+ end
15
+ end
16
+ end
17
+
18
+ module Rabbit
19
+ module Renderer
20
+ module Base
21
+ include GetText
22
+ include DirtyCount
23
+ include ERB::Util
24
+
25
+ extend Forwardable
26
+
27
+ def_delegators(:@canvas, :reload_source)
28
+
29
+ attr_reader :x_dpi, :y_dpi
30
+ attr_accessor :paper_width, :paper_height, :slides_per_page
31
+ attr_accessor :margin_left, :margin_right
32
+ attr_accessor :margin_top, :margin_bottom
33
+ attr_accessor :progress_foreground
34
+ attr_accessor :progress_background
35
+ attr_accessor :adjustment_x, :adjustment_y
36
+ attr_accessor :graffiti_color, :graffiti_line_width
37
+ attr_accessor :gl_scale, :gl_quaternion
38
+ attr_writer :page_margin_left, :page_margin_right
39
+ attr_writer :page_margin_top, :page_margin_bottom
40
+
41
+ def initialize(canvas)
42
+ super()
43
+ @canvas = canvas
44
+ @font_families = nil
45
+ @paper_width = nil
46
+ @paper_height = nil
47
+ @slides_per_page = nil
48
+ @margin_left = nil
49
+ @margin_right = nil
50
+ @margin_top = nil
51
+ @margin_bottom = nil
52
+ @page_margin_left = nil
53
+ @page_margin_right = nil
54
+ @page_margin_top = nil
55
+ @page_margin_bottom = nil
56
+ @whiteout = false
57
+ @blackout = false
58
+ @list_id = 0
59
+ @adjustment_x = 0
60
+ @adjustment_y = 0
61
+ @progress_foreground = nil
62
+ @progress_background = nil
63
+ @graffiti_color = nil
64
+ @graffiti_line_width = nil
65
+ clean
66
+ init_hook_procs
67
+ init_dpi
68
+ init_gl_parameters
69
+ end
70
+
71
+ def page_margin_left
72
+ @page_margin_left || 0
73
+ end
74
+
75
+ def page_margin_right
76
+ @page_margin_right || 0
77
+ end
78
+
79
+ def page_margin_top
80
+ @page_margin_top || 0
81
+ end
82
+
83
+ def page_margin_bottom
84
+ @page_margin_bottom || 0
85
+ end
86
+
87
+ def font_families
88
+ if @font_families.nil? or @font_families.empty?
89
+ @font_families = create_pango_context.families
90
+ end
91
+ @font_families
92
+ end
93
+
94
+ def print(&block)
95
+ if printable?
96
+ do_print(&block)
97
+ else
98
+ canvas = make_canvas_with_printable_renderer
99
+ pre_print(canvas.slide_size)
100
+ canceled = false
101
+ canvas.print do |i|
102
+ result = printing(i)
103
+ canceled = !result
104
+ result
105
+ end
106
+ post_print(canceled)
107
+ canvas.activate("Quit")
108
+ end
109
+ end
110
+
111
+ def redraw
112
+ end
113
+
114
+ def clear_slide
115
+ current = @canvas.current_slide
116
+ current.clear_waiting if current
117
+ end
118
+
119
+ def reset_adjustment
120
+ @adjustment_x = 0
121
+ @adjustment_y = 0
122
+ end
123
+
124
+ def each_slide_pixbuf
125
+ canvas = off_screen_canvas
126
+ previous_index = canvas.current_index
127
+ pre_to_pixbuf(canvas.slide_size)
128
+ canceled = false
129
+ canvas.slides.each_with_index do |slide, i|
130
+ if !to_pixbufing(i) or !yield(slide, canvas.to_pixbuf(i), i)
131
+ canceled = true
132
+ break
133
+ end
134
+ end
135
+ post_to_pixbuf(canceled)
136
+ canvas.move_to_if_can(previous_index)
137
+ canvas.activate("Quit") if canvas != @canvas
138
+ end
139
+
140
+ def off_screen_canvas
141
+ if off_screen_renderer?
142
+ @canvas
143
+ else
144
+ make_canvas_with_off_screen_renderer
145
+ end
146
+ end
147
+
148
+ def create_pango_context
149
+ Pango::Context.new
150
+ end
151
+
152
+ def printable?
153
+ false
154
+ end
155
+
156
+ def display?
157
+ false
158
+ end
159
+
160
+ def confirm
161
+ true
162
+ end
163
+
164
+ def setup_event(area)
165
+ end
166
+
167
+ def to_attrs(hash)
168
+ hash.collect do |key, value|
169
+ if value
170
+ "#{h key}='#{h value}'"
171
+ else
172
+ nil
173
+ end
174
+ end.compact.join(" ")
175
+ end
176
+
177
+ def call_hook_procs(procs, *args)
178
+ procs.any? {|proc| proc.call(*args)}
179
+ end
180
+
181
+ def add_motion_notify_hook(hook=Proc.new)
182
+ @motion_notify_hook_procs << hook
183
+ end
184
+
185
+ def clear_motion_notify_hook
186
+ @motion_notify_hook_procs.clear
187
+ end
188
+
189
+ def add_scroll_hook(hook=Proc.new)
190
+ @scroll_hook_procs << hook
191
+ end
192
+
193
+ def clear_scroll_hook
194
+ @scroll_hook_procs.clear
195
+ end
196
+
197
+ def add_button_press_hook(hook=Proc.new)
198
+ @button_press_hook_procs << hook
199
+ end
200
+
201
+ def clear_button_press_hook
202
+ @button_press_hook_procs.clear
203
+ end
204
+
205
+ def add_button_release_hook(hook=Proc.new)
206
+ @button_release_hook_procs << hook
207
+ end
208
+
209
+ def clear_button_release_hook
210
+ @button_release_hook_procs.clear
211
+ end
212
+
213
+ def clear_hooks
214
+ init_hook_procs
215
+ end
216
+
217
+ def clean
218
+ dirty_count_clean
219
+ end
220
+
221
+ def clean_if_dirty
222
+ clean if dirty?
223
+ end
224
+
225
+ def clear_theme
226
+ init_color
227
+ clear_keys
228
+ clear_progress_color
229
+ clear_graffiti_config
230
+ clear_gesture_actions
231
+ end
232
+
233
+ def whiteouting?
234
+ @whiteout
235
+ end
236
+
237
+ def blackouting?
238
+ @blackout
239
+ end
240
+
241
+ def toggle_whiteout
242
+ @blackout = false
243
+ @whiteout = !@whiteout
244
+ end
245
+
246
+ def toggle_blackout
247
+ @blackout = !@blackout
248
+ @whiteout = false
249
+ end
250
+
251
+ def hiding?
252
+ @blackout or @whiteout
253
+ end
254
+
255
+ def toggle_info_window
256
+ end
257
+
258
+ def toggle_spotlight
259
+ end
260
+
261
+ def toggle_comment_frame
262
+ end
263
+
264
+ def toggle_comment_view
265
+ end
266
+
267
+ def showing_comment_frame?
268
+ false
269
+ end
270
+
271
+ def showing_comment_view?
272
+ false
273
+ end
274
+
275
+ def comment_frame_available?
276
+ false
277
+ end
278
+
279
+ def comment_view_available?
280
+ false
281
+ end
282
+
283
+ def gl_available?
284
+ @canvas.use_gl? and gl_supported?
285
+ end
286
+
287
+ def update_comment(source)
288
+ end
289
+
290
+ def post_init_gui
291
+ end
292
+
293
+ def graffiti_mode?
294
+ false
295
+ end
296
+
297
+ def have_graffiti?
298
+ false
299
+ end
300
+
301
+ def can_undo_graffiti?
302
+ false
303
+ end
304
+
305
+ def expand_hole
306
+ end
307
+
308
+ def narrow_hole
309
+ end
310
+
311
+ def search_slide(forward=true)
312
+ end
313
+
314
+ def stop_slide_search
315
+ end
316
+
317
+ def searching?
318
+ false
319
+ end
320
+
321
+ def connect_key(keyval, modifier, flags, &block)
322
+ end
323
+
324
+ def disconnect_key(keyval, modifier)
325
+ end
326
+
327
+ def change_graffiti_color
328
+ end
329
+
330
+ def add_gesture_action(sequence, action, &block)
331
+ end
332
+
333
+ private
334
+ def off_screen_renderer?
335
+ false
336
+ end
337
+
338
+ def do_print(&block)
339
+ pre_print(@canvas.slide_size)
340
+ canceled = false
341
+ @canvas.slides.each_with_index do |slide, i|
342
+ @canvas.move_to_if_can(i)
343
+ current_slide = @canvas.current_slide
344
+ current_slide.flush
345
+ current_slide.draw(@canvas)
346
+ if block and !block.call(i)
347
+ canceled = true
348
+ break
349
+ end
350
+ end
351
+ post_print(canceled)
352
+ end
353
+
354
+ def make_canvas_with_renderer(renderer)
355
+ canvas = Canvas.new(@canvas.logger, renderer)
356
+ yield canvas
357
+ canvas.apply_theme(@canvas.theme_name)
358
+ @canvas.source_force_modified(true) do |source|
359
+ canvas.parse(source)
360
+ end
361
+ canvas.toggle_index_mode if @canvas.index_mode?
362
+ canvas
363
+ end
364
+
365
+ def make_canvas_with_printable_renderer
366
+ renderer = Renderer.printable_renderer(@canvas.slides_per_page)
367
+ make_canvas_with_renderer(renderer) do |canvas|
368
+ canvas.filename = @canvas.filename
369
+ setup_margin(canvas)
370
+ setup_page_margin(canvas)
371
+ setup_paper_size(canvas)
372
+ setup_3d(canvas)
373
+ canvas.slides_per_page = @canvas.slides_per_page
374
+ end
375
+ end
376
+
377
+ def make_canvas_with_off_screen_renderer
378
+ make_canvas_with_renderer(Pixmap) do |canvas|
379
+ canvas.width = @canvas.width
380
+ canvas.height = @canvas.height
381
+ setup_3d(canvas)
382
+ end
383
+ end
384
+
385
+ def setup_margin(canvas)
386
+ canvas.margin_left = @canvas.margin_left
387
+ canvas.margin_right = @canvas.margin_right
388
+ canvas.margin_top = @canvas.margin_top
389
+ canvas.page_margin_bottom = @canvas.page_margin_bottom
390
+ end
391
+
392
+ def setup_page_margin(canvas)
393
+ canvas.page_margin_left = @canvas.page_margin_left
394
+ canvas.page_margin_right = @canvas.page_margin_right
395
+ canvas.page_margin_top = @canvas.page_margin_top
396
+ canvas.page_margin_bottom = @canvas.page_margin_bottom
397
+ end
398
+
399
+ def setup_paper_size(canvas)
400
+ if @canvas.paper_width and @canvas.paper_height
401
+ canvas.paper_width = @canvas.paper_width
402
+ canvas.paper_height = @canvas.paper_height
403
+ else
404
+ canvas.paper_width = @canvas.width
405
+ canvas.paper_height = @canvas.height
406
+ end
407
+ end
408
+
409
+ def setup_3d(canvas)
410
+ canvas.use_gl = @canvas.use_gl?
411
+ end
412
+
413
+ def setup_flag_params(pole_height, default_flag_width_ratio, params)
414
+ params = params.dup
415
+
416
+ text = params["text"]
417
+ text_attrs = params["text_attributes"] || {}
418
+ if text
419
+ markupped_text = "<span #{to_attrs(text_attrs)}>#{text}</span>"
420
+ layout = make_layout(markupped_text)
421
+ text_width, text_height = layout.pixel_size
422
+ params["layout"] = layout
423
+ params["text_width"] = text_width
424
+ params["text_height"] = text_height
425
+ flag_width_default = [
426
+ text_width * default_flag_width_ratio,
427
+ pole_height / 2
428
+ ].max
429
+ flag_height_default = [text_height, flag_width_default].max
430
+ else
431
+ params["layout"] = nil
432
+ flag_width_default = flag_height_default = nil
433
+ end
434
+
435
+ params["pole_width"] = params["pole_width"] || 2
436
+ params["pole_color"] ||= "black"
437
+ flag_height = params["flag_height"] ||
438
+ flag_height_default || pole_height / 2
439
+ flag_height = [flag_height, pole_height].min
440
+ params["flag_height"] = flag_height
441
+ params["flag_width"] ||= flag_width_default || flag_height
442
+ params["flag_color"] ||= "red"
443
+ params["flag_frame_width"] ||= params["pole_width"]
444
+ params["flag_frame_color"] ||= params["pole_color"]
445
+
446
+ params
447
+ end
448
+
449
+ def not_support_method(name)
450
+ format = _("%s does not support: %s")
451
+ msg = format % [self.class.name, name]
452
+ @canvas.logger.warn(msg)
453
+ end
454
+
455
+ def init_hook_procs
456
+ @motion_notify_hook_procs = []
457
+ @scroll_hook_procs = []
458
+ @button_press_hook_procs = []
459
+ @button_release_hook_procs = []
460
+ end
461
+
462
+ def init_dpi
463
+ @x_dpi = 72
464
+ @y_dpi = 72
465
+ end
466
+
467
+ def init_gl_parameters
468
+ angle = 0.0 * (Math::PI / 180.0)
469
+ axis_x = 1.0
470
+ axis_y = 0.0
471
+ axis_z = 0.0
472
+ sine = Math.sin(0.5 * angle)
473
+ quaternion = [
474
+ axis_x * sine,
475
+ axis_y * sine,
476
+ axis_z * sine,
477
+ Math.cos(0.5 * angle)
478
+ ]
479
+ @gl_quaternion = TrackBall::Vector.new(quaternion)
480
+ @gl_scale = 1.0
481
+ end
482
+
483
+ def clear_keys
484
+ end
485
+
486
+ def clear_graffiti_config
487
+ @graffiti_color = nil
488
+ @graffiti_line_width = nil
489
+ end
490
+
491
+ def clear_progress_color
492
+ @progress_foreground = nil
493
+ @progress_background = nil
494
+ end
495
+
496
+ def invert_y(y)
497
+ height - y
498
+ end
499
+
500
+ def init_color
501
+ @background_color = "white"
502
+ end
503
+
504
+ def clear_gesture_actions
505
+ init_gesture_actions
506
+ end
507
+
508
+ def init_gesture_actions
509
+ end
510
+ end
511
+ end
512
+ end