rabbit-qt 0.1.0

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 (710) hide show
  1. checksums.yaml +7 -0
  2. data/COPYING +1 -0
  3. data/GPL +339 -0
  4. data/Gemfile +37 -0
  5. data/README.md +87 -0
  6. data/Rakefile +285 -0
  7. data/bin/rabbirc +86 -0
  8. data/bin/rabbit +22 -0
  9. data/bin/rabbit-command +97 -0
  10. data/bin/rabbit-slide +22 -0
  11. data/bin/rabbit-theme +22 -0
  12. data/data/account.kou.gpg +3 -0
  13. data/data/rabbit/image/clear-blue-images/clear-blue-headline-background.png +0 -0
  14. data/data/rabbit/image/clear-blue-images/clear-blue-icon.png +0 -0
  15. data/data/rabbit/image/clear-blue-images/clear-blue-images.rb +0 -0
  16. data/data/rabbit/image/clear-blue-images/property.rb +4 -0
  17. data/data/rabbit/image/cozmixng-images/cozmixchu.png +0 -0
  18. data/data/rabbit/image/cozmixng-images/cozmixng-images.rb +2 -0
  19. data/data/rabbit/image/cozmixng-images/powered-by-cozmixng.png +0 -0
  20. data/data/rabbit/image/cozmixng-images/property.rb +4 -0
  21. data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
  22. data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
  23. data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
  24. data/data/rabbit/image/debian-images/bottom.png +0 -0
  25. data/data/rabbit/image/debian-images/debian-images.rb +2 -0
  26. data/data/rabbit/image/debian-images/debian-logo-pink.png +0 -0
  27. data/data/rabbit/image/debian-images/debian-logo.png +0 -0
  28. data/data/rabbit/image/debian-images/debian-whirl.png +0 -0
  29. data/data/rabbit/image/debian-images/item1.png +0 -0
  30. data/data/rabbit/image/debian-images/property.rb +4 -0
  31. data/data/rabbit/image/debian-images/top.png +0 -0
  32. data/data/rabbit/image/nari-images/chibi_nari.png +0 -0
  33. data/data/rabbit/image/nari-images/gc_kun.png +0 -0
  34. data/data/rabbit/image/nari-images/nari-goal-flag.png +0 -0
  35. data/data/rabbit/image/nari-images/nari-images.rb +2 -0
  36. data/data/rabbit/image/nari-images/nari-start-flag.png +0 -0
  37. data/data/rabbit/image/nari-images/property.rb +4 -0
  38. data/data/rabbit/image/rabbit-images/blue-item.png +0 -0
  39. data/data/rabbit/image/rabbit-images/close-quote-blue.png +0 -0
  40. data/data/rabbit/image/rabbit-images/close-quote-brown.png +0 -0
  41. data/data/rabbit/image/rabbit-images/close-quote-light-blue.png +0 -0
  42. data/data/rabbit/image/rabbit-images/goal-flag.png +0 -0
  43. data/data/rabbit/image/rabbit-images/green-item.png +0 -0
  44. data/data/rabbit/image/rabbit-images/kame.png +0 -0
  45. data/data/rabbit/image/rabbit-images/lavie-icon.png +0 -0
  46. data/data/rabbit/image/rabbit-images/lavie-with-logo.png +0 -0
  47. data/data/rabbit/image/rabbit-images/lavie.png +0 -0
  48. data/data/rabbit/image/rabbit-images/mini-alice.png +0 -0
  49. data/data/rabbit/image/rabbit-images/mini-butler-rabbit.png +0 -0
  50. data/data/rabbit/image/rabbit-images/mini-horizontal-bar.png +0 -0
  51. data/data/rabbit/image/rabbit-images/mini-kame-taro.png +0 -0
  52. data/data/rabbit/image/rabbit-images/mini-tanu-kitaro.png +0 -0
  53. data/data/rabbit/image/rabbit-images/mini-usa-taro.png +0 -0
  54. data/data/rabbit/image/rabbit-images/mini-usagi.png +0 -0
  55. data/data/rabbit/image/rabbit-images/mini-vertical-bar.png +0 -0
  56. data/data/rabbit/image/rabbit-images/mini-yukidaru-taro.png +0 -0
  57. data/data/rabbit/image/rabbit-images/open-quote-blue.png +0 -0
  58. data/data/rabbit/image/rabbit-images/open-quote-brown.png +0 -0
  59. data/data/rabbit/image/rabbit-images/open-quote-light-blue.png +0 -0
  60. data/data/rabbit/image/rabbit-images/property.rb +4 -0
  61. data/data/rabbit/image/rabbit-images/rabbit-banner-blue.png +0 -0
  62. data/data/rabbit/image/rabbit-images/rabbit-banner-green.png +0 -0
  63. data/data/rabbit/image/rabbit-images/rabbit-banner-heads.png +0 -0
  64. data/data/rabbit/image/rabbit-images/rabbit-banner-pink.png +0 -0
  65. data/data/rabbit/image/rabbit-images/rabbit-banner.png +0 -0
  66. data/data/rabbit/image/rabbit-images/rabbit-banner2.png +0 -0
  67. data/data/rabbit/image/rabbit-images/rabbit-images.rb +2 -0
  68. data/data/rabbit/image/rabbit-images/rabbit-pink-logo.png +0 -0
  69. data/data/rabbit/image/rabbit-images/rabbit-pink-logo2.png +0 -0
  70. data/data/rabbit/image/rabbit-images/red-item.png +0 -0
  71. data/data/rabbit/image/rabbit-images/red-item2.png +0 -0
  72. data/data/rabbit/image/rabbit-images/start-flag.png +0 -0
  73. data/data/rabbit/image/rabbit-images/tanu-kitaro.png +0 -0
  74. data/data/rabbit/image/rabbit-images/usa-taro.png +0 -0
  75. data/data/rabbit/image/rabbit-images/usagi.png +0 -0
  76. data/data/rabbit/image/rabbit-images/yukiusa.png +0 -0
  77. data/data/rabbit/image/ranguba-images/ranguba-bar.png +0 -0
  78. data/data/rabbit/image/ranguba-images/ranguba-bar.svg +153 -0
  79. data/data/rabbit/image/ranguba-images/ranguba-images.rb +0 -0
  80. data/data/rabbit/image/ranguba-images/ranguba-item-mark-mini.png +0 -0
  81. data/data/rabbit/image/ranguba-images/ranguba-item-mark.png +0 -0
  82. data/data/rabbit/image/ranguba-images/ranguba-item-mark.svg +400 -0
  83. data/data/rabbit/image/ranguba-images/ranguba-mark.png +0 -0
  84. data/data/rabbit/image/ranguba-images/ranguba-mark.svg +587 -0
  85. data/data/rabbit/image/ruby-images/property.rb +4 -0
  86. data/data/rabbit/image/ruby-images/ruby-images.rb +2 -0
  87. data/data/rabbit/image/ruby-images/ruby-pink-circle-icon.png +0 -0
  88. data/data/rabbit/image/ruby-images/ruby-pink-circle-logo.png +0 -0
  89. data/data/rabbit/image/ruby-images/ruby-pink-circle-small-icon.png +0 -0
  90. data/data/rabbit/image/ruby-images/ruby-pink-circle.png +0 -0
  91. data/data/rabbit/image/ruby-images/ruby-pink-polygon-icon.png +0 -0
  92. data/data/rabbit/image/ruby-images/ruby-pink-polygon-logo.png +0 -0
  93. data/data/rabbit/image/ruby-images/ruby-pink-polygon-small-icon.png +0 -0
  94. data/data/rabbit/image/ruby-images/ruby-pink-polygon.png +0 -0
  95. data/data/rabbit/image/rubykaigi2011-images/property.rb +4 -0
  96. data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-background-black.jpg +0 -0
  97. data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-background-white.jpg +0 -0
  98. data/data/rabbit/image/rubykaigi2011-images/rubykaigi2011-images.rb +2 -0
  99. data/doc/_config.yml +29 -0
  100. data/doc/_includes/en.menu.html +8 -0
  101. data/doc/_includes/ja.menu.html +8 -0
  102. data/doc/_layouts/en.html +48 -0
  103. data/doc/_layouts/ja.html +48 -0
  104. data/doc/_layouts/skeleton.html +85 -0
  105. data/doc/_plugins/converters/hiki.rb +27 -0
  106. data/doc/_plugins/converters/markdown.rb +15 -0
  107. data/doc/_plugins/converters/rd.rb +73 -0
  108. data/doc/_plugins/support_symlink.rb +11 -0
  109. data/doc/css/rabbit.css +368 -0
  110. data/doc/css/syntax.scss +67 -0
  111. data/doc/en/development.rd +81 -0
  112. data/doc/en/faq.rd +152 -0
  113. data/doc/en/hiki.hiki +326 -0
  114. data/doc/en/how-to-make/hiki.hiki +9 -0
  115. data/doc/en/how-to-make/index.rd +26 -0
  116. data/doc/en/how-to-make/markdown.md +107 -0
  117. data/doc/en/how-to-make/pdf.rd +7 -0
  118. data/doc/en/how-to-make/rd.rd +92 -0
  119. data/doc/en/how-to-make/theme.rd +135 -0
  120. data/doc/en/index.rd +268 -0
  121. data/doc/en/install/homebrew.rd +22 -0
  122. data/doc/en/install/index.rd +50 -0
  123. data/doc/en/install/macports.rd +77 -0
  124. data/doc/en/install/windows.rd +45 -0
  125. data/doc/en/news.rd +2788 -0
  126. data/doc/en/rd.rd +482 -0
  127. data/doc/en/sample/hiki/rabbit.hiki +388 -0
  128. data/doc/en/sample/index.rd +15 -0
  129. data/doc/en/sample/markdown/rabbit.md +387 -0
  130. data/doc/en/sample/rd/rabbit.rd +463 -0
  131. data/doc/en/slides.rd +13 -0
  132. data/doc/en/usage/platform/os-x.rd +13 -0
  133. data/doc/en/usage/rabbit-slide.rd +239 -0
  134. data/doc/en/usage/rabbit-theme.rd +5 -0
  135. data/doc/en/usage/rabbit.rd +376 -0
  136. data/doc/en/usage.rd +24 -0
  137. data/doc/en/users.rd +35 -0
  138. data/doc/favicon.ico +0 -0
  139. data/doc/favicon.png +0 -0
  140. data/doc/images/background-sample.svg +290 -0
  141. data/doc/images/background.png +0 -0
  142. data/doc/images/background.svg +131 -0
  143. data/doc/images/hare-and-tortoise.png +0 -0
  144. data/doc/images/hare-and-tortoise.svg +541 -0
  145. data/doc/images/lavie-icon.png +0 -0
  146. data/doc/images/lavie.png +0 -0
  147. data/doc/images/rabbit-slide-show-logo.png +0 -0
  148. data/doc/images/rabbit-slide-show-logo.svg +597 -0
  149. data/doc/index.html.en +58 -0
  150. data/doc/index.html.ja +58 -0
  151. data/doc/ja/about.rd +21 -0
  152. data/doc/ja/development.rd +78 -0
  153. data/doc/ja/faq.rd +202 -0
  154. data/doc/ja/hiki.hiki +320 -0
  155. data/doc/ja/how-to-make/hiki.hiki +9 -0
  156. data/doc/ja/how-to-make/index.rd +26 -0
  157. data/doc/ja/how-to-make/markdown.md +107 -0
  158. data/doc/ja/how-to-make/pdf.rd +8 -0
  159. data/doc/ja/how-to-make/rd.rd +130 -0
  160. data/doc/ja/how-to-make/theme.rd +142 -0
  161. data/doc/ja/index.rd +283 -0
  162. data/doc/ja/install/homebrew.rd +23 -0
  163. data/doc/ja/install/index.rd +53 -0
  164. data/doc/ja/install/macports.rd +100 -0
  165. data/doc/ja/install/windows.rd +46 -0
  166. data/doc/ja/news.rd +2773 -0
  167. data/doc/ja/rd.rd +490 -0
  168. data/doc/ja/sample/hiki/rabbit.hiki +404 -0
  169. data/doc/ja/sample/index.rd +15 -0
  170. data/doc/ja/sample/markdown/rabbit.md +382 -0
  171. data/doc/ja/sample/rd/rabbit.rd +471 -0
  172. data/doc/ja/slides.rd +29 -0
  173. data/doc/ja/usage/rabbit-slide.rd +220 -0
  174. data/doc/ja/usage/rabbit-theme.rd +152 -0
  175. data/doc/ja/usage/rabbit.rd +377 -0
  176. data/doc/ja/usage.rd +19 -0
  177. data/doc/ja/users.rd +196 -0
  178. data/doc/screenshot.en.rab +10 -0
  179. data/doc/screenshot.ja.rab +10 -0
  180. data/entities/README +10 -0
  181. data/entities/ent2rb.rb +65 -0
  182. data/entities/isoamsa.ent +167 -0
  183. data/entities/isoamsb.ent +143 -0
  184. data/entities/isoamsc.ent +43 -0
  185. data/entities/isoamsn.ent +114 -0
  186. data/entities/isoamso.ent +73 -0
  187. data/entities/isoamsr.ent +204 -0
  188. data/entities/isobox.ent +61 -0
  189. data/entities/isocyr1.ent +88 -0
  190. data/entities/isocyr2.ent +47 -0
  191. data/entities/isodia.ent +35 -0
  192. data/entities/isogrk3.ent +64 -0
  193. data/entities/isolat1.ent +83 -0
  194. data/entities/isolat2.ent +142 -0
  195. data/entities/isomfrk.ent +75 -0
  196. data/entities/isomopf.ent +49 -0
  197. data/entities/isomscr.ent +75 -0
  198. data/entities/isonum.ent +97 -0
  199. data/entities/isopub.ent +105 -0
  200. data/entities/isotech.ent +182 -0
  201. data/entities/mmlalias.ent +564 -0
  202. data/entities/mmlextra.ent +122 -0
  203. data/lib/rabbit/actions.rb +427 -0
  204. data/lib/rabbit/author-configuration.rb +90 -0
  205. data/lib/rabbit/canvas.rb +844 -0
  206. data/lib/rabbit/command/rabbit-slide.rb +898 -0
  207. data/lib/rabbit/command/rabbit-theme.rb +300 -0
  208. data/lib/rabbit/command/rabbit.rb +854 -0
  209. data/lib/rabbit/config.rb +40 -0
  210. data/lib/rabbit/console/roff.rb +84 -0
  211. data/lib/rabbit/console.rb +218 -0
  212. data/lib/rabbit/cursor-manager.rb +66 -0
  213. data/lib/rabbit/dependency-canvas.rb +33 -0
  214. data/lib/rabbit/element/base/draw-hook.rb +75 -0
  215. data/lib/rabbit/element/base.rb +614 -0
  216. data/lib/rabbit/element/block-element.rb +56 -0
  217. data/lib/rabbit/element/block.rb +70 -0
  218. data/lib/rabbit/element/container-element.rb +321 -0
  219. data/lib/rabbit/element/description-list.rb +75 -0
  220. data/lib/rabbit/element/enum-list.rb +53 -0
  221. data/lib/rabbit/element/footnote.rb +48 -0
  222. data/lib/rabbit/element/image-title-slide.rb +34 -0
  223. data/lib/rabbit/element/image.rb +292 -0
  224. data/lib/rabbit/element/index-slide.rb +206 -0
  225. data/lib/rabbit/element/item-list.rb +50 -0
  226. data/lib/rabbit/element/method-list.rb +66 -0
  227. data/lib/rabbit/element/poppler-page.rb +52 -0
  228. data/lib/rabbit/element/poppler-slide.rb +47 -0
  229. data/lib/rabbit/element/poppler-title-slide.rb +45 -0
  230. data/lib/rabbit/element/preformatted.rb +48 -0
  231. data/lib/rabbit/element/slide-element.rb +140 -0
  232. data/lib/rabbit/element/slide.rb +67 -0
  233. data/lib/rabbit/element/syntax-highlighting.rb +31 -0
  234. data/lib/rabbit/element/table.rb +121 -0
  235. data/lib/rabbit/element/tag.rb +60 -0
  236. data/lib/rabbit/element/text-block-element.rb +27 -0
  237. data/lib/rabbit/element/text-container-element.rb +176 -0
  238. data/lib/rabbit/element/text-element.rb +83 -0
  239. data/lib/rabbit/element/text-renderer.rb +378 -0
  240. data/lib/rabbit/element/text.rb +146 -0
  241. data/lib/rabbit/element/title-slide.rb +190 -0
  242. data/lib/rabbit/element/video.rb +265 -0
  243. data/lib/rabbit/element.rb +35 -0
  244. data/lib/rabbit/error.rb +239 -0
  245. data/lib/rabbit/filename.rb +39 -0
  246. data/lib/rabbit/formatter.rb +211 -0
  247. data/lib/rabbit/frame.rb +292 -0
  248. data/lib/rabbit/front.rb +278 -0
  249. data/lib/rabbit/gem-builder.rb +42 -0
  250. data/lib/rabbit/gem-finder.rb +57 -0
  251. data/lib/rabbit/gem-pusher.rb +89 -0
  252. data/lib/rabbit/gesture/handler.rb +253 -0
  253. data/lib/rabbit/gesture/processor.rb +118 -0
  254. data/lib/rabbit/gettext.rb +14 -0
  255. data/lib/rabbit/graffiti/config-dialog.rb +47 -0
  256. data/lib/rabbit/graffiti/processor.rb +132 -0
  257. data/lib/rabbit/gtk.rb +93 -0
  258. data/lib/rabbit/html/generator.rb +477 -0
  259. data/lib/rabbit/html/template.erb +109 -0
  260. data/lib/rabbit/icon.rb +31 -0
  261. data/lib/rabbit/image/base.rb +270 -0
  262. data/lib/rabbit/image/default.rb +42 -0
  263. data/lib/rabbit/image/dia.rb +74 -0
  264. data/lib/rabbit/image/eps.rb +129 -0
  265. data/lib/rabbit/image/gimp.rb +69 -0
  266. data/lib/rabbit/image/mermaid.rb +74 -0
  267. data/lib/rabbit/image/pdf.rb +94 -0
  268. data/lib/rabbit/image/svg.rb +79 -0
  269. data/lib/rabbit/image-data-loader.rb +51 -0
  270. data/lib/rabbit/image.rb +53 -0
  271. data/lib/rabbit/info-window.rb +327 -0
  272. data/lib/rabbit/key-handler.rb +227 -0
  273. data/lib/rabbit/keys.rb +209 -0
  274. data/lib/rabbit/logger/base.rb +147 -0
  275. data/lib/rabbit/logger/gui.rb +113 -0
  276. data/lib/rabbit/logger/stderr.rb +42 -0
  277. data/lib/rabbit/logger.rb +40 -0
  278. data/lib/rabbit/menu.rb +242 -0
  279. data/lib/rabbit/pango-markup.rb +44 -0
  280. data/lib/rabbit/parser/base.rb +31 -0
  281. data/lib/rabbit/parser/ext/aafigure.rb +51 -0
  282. data/lib/rabbit/parser/ext/blockdiag.rb +68 -0
  283. data/lib/rabbit/parser/ext/charty.rb +67 -0
  284. data/lib/rabbit/parser/ext/coderay.rb +85 -0
  285. data/lib/rabbit/parser/ext/enscript.rb +136 -0
  286. data/lib/rabbit/parser/ext/entity.rb +4164 -0
  287. data/lib/rabbit/parser/ext/escape.rb +18 -0
  288. data/lib/rabbit/parser/ext/image.rb +157 -0
  289. data/lib/rabbit/parser/ext/inline.rb +45 -0
  290. data/lib/rabbit/parser/ext/rouge.rb +129 -0
  291. data/lib/rabbit/parser/ext/tex.rb +95 -0
  292. data/lib/rabbit/parser/ext/video.rb +37 -0
  293. data/lib/rabbit/parser/image.rb +62 -0
  294. data/lib/rabbit/parser/markdown/converter.rb +440 -0
  295. data/lib/rabbit/parser/markdown.rb +144 -0
  296. data/lib/rabbit/parser/pause-support.rb +33 -0
  297. data/lib/rabbit/parser/pdf.rb +56 -0
  298. data/lib/rabbit/parser/rd/ext/base.rb +95 -0
  299. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +190 -0
  300. data/lib/rabbit/parser/rd/ext/character-reference.rb +75 -0
  301. data/lib/rabbit/parser/rd/ext/image.rb +46 -0
  302. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +118 -0
  303. data/lib/rabbit/parser/rd/ext/refer.rb +50 -0
  304. data/lib/rabbit/parser/rd/ext/video.rb +32 -0
  305. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +458 -0
  306. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +105 -0
  307. data/lib/rabbit/parser/rd/visitor.rb +72 -0
  308. data/lib/rabbit/parser/rd.rb +92 -0
  309. data/lib/rabbit/parser/wiki/output.rb +545 -0
  310. data/lib/rabbit/parser/wiki.rb +61 -0
  311. data/lib/rabbit/parser.rb +73 -0
  312. data/lib/rabbit/password-reader.rb +34 -0
  313. data/lib/rabbit/path-manipulatable.rb +37 -0
  314. data/lib/rabbit/progress.rb +97 -0
  315. data/lib/rabbit/properties.rb +154 -0
  316. data/lib/rabbit/qt.rb +222 -0
  317. data/lib/rabbit/rabbit.rb +50 -0
  318. data/lib/rabbit/readme-parser.rb +112 -0
  319. data/lib/rabbit/relative-size.rb +28 -0
  320. data/lib/rabbit/renderer/base.rb +412 -0
  321. data/lib/rabbit/renderer/color.rb +130 -0
  322. data/lib/rabbit/renderer/display/base.rb +223 -0
  323. data/lib/rabbit/renderer/display/button-handler.rb +229 -0
  324. data/lib/rabbit/renderer/display/cursor.rb +49 -0
  325. data/lib/rabbit/renderer/display/drawing-area-base.rb +381 -0
  326. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +219 -0
  327. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +57 -0
  328. data/lib/rabbit/renderer/display/drawing-area.rb +29 -0
  329. data/lib/rabbit/renderer/display/gesture.rb +111 -0
  330. data/lib/rabbit/renderer/display/graffiti.rb +127 -0
  331. data/lib/rabbit/renderer/display/hook-handler.rb +64 -0
  332. data/lib/rabbit/renderer/display/info.rb +75 -0
  333. data/lib/rabbit/renderer/display/magnifier.rb +137 -0
  334. data/lib/rabbit/renderer/display/mask.rb +83 -0
  335. data/lib/rabbit/renderer/display/menu.rb +54 -0
  336. data/lib/rabbit/renderer/display/motion-handler.rb +34 -0
  337. data/lib/rabbit/renderer/display/progress.rb +85 -0
  338. data/lib/rabbit/renderer/display/qt-drawing-area-base.rb +336 -0
  339. data/lib/rabbit/renderer/display/qt-drawing-area-primitive.rb +189 -0
  340. data/lib/rabbit/renderer/display/qt-drawing-area-view-only.rb +53 -0
  341. data/lib/rabbit/renderer/display/qt-drawing-area.rb +29 -0
  342. data/lib/rabbit/renderer/display/qt-drawing-widget.rb +85 -0
  343. data/lib/rabbit/renderer/display/scroll-handler.rb +58 -0
  344. data/lib/rabbit/renderer/display/search.rb +114 -0
  345. data/lib/rabbit/renderer/display/spotlight.rb +122 -0
  346. data/lib/rabbit/renderer/display.rb +17 -0
  347. data/lib/rabbit/renderer/engine/cairo.rb +481 -0
  348. data/lib/rabbit/renderer/engine/qt_painter.rb +397 -0
  349. data/lib/rabbit/renderer/engine.rb +18 -0
  350. data/lib/rabbit/renderer/kernel.rb +233 -0
  351. data/lib/rabbit/renderer/offscreen.rb +117 -0
  352. data/lib/rabbit/renderer/print-layout.rb +150 -0
  353. data/lib/rabbit/renderer/printer.rb +223 -0
  354. data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
  355. data/lib/rabbit/renderer/scene-node-widget.rb +40 -0
  356. data/lib/rabbit/renderer/scene.rb +538 -0
  357. data/lib/rabbit/renderer.rb +20 -0
  358. data/lib/rabbit/search-window.rb +90 -0
  359. data/lib/rabbit/searcher.rb +40 -0
  360. data/lib/rabbit/size.rb +100 -0
  361. data/lib/rabbit/slide-configuration.rb +211 -0
  362. data/lib/rabbit/slide.rb +40 -0
  363. data/lib/rabbit/soap/base.rb +17 -0
  364. data/lib/rabbit/soap/driver.rb +61 -0
  365. data/lib/rabbit/soap/server.rb +49 -0
  366. data/lib/rabbit/source/argf.rb +45 -0
  367. data/lib/rabbit/source/base.rb +197 -0
  368. data/lib/rabbit/source/file.rb +85 -0
  369. data/lib/rabbit/source/memory.rb +61 -0
  370. data/lib/rabbit/source/uri.rb +93 -0
  371. data/lib/rabbit/source-generator/hiki.rb +58 -0
  372. data/lib/rabbit/source-generator/markdown.rb +56 -0
  373. data/lib/rabbit/source-generator/rd.rb +60 -0
  374. data/lib/rabbit/source-generator.rb +39 -0
  375. data/lib/rabbit/source.rb +30 -0
  376. data/lib/rabbit/task/slide.rb +221 -0
  377. data/lib/rabbit/task/theme.rb +202 -0
  378. data/lib/rabbit/task.rb +18 -0
  379. data/lib/rabbit/theme/applier.rb +690 -0
  380. data/lib/rabbit/theme/auto-slide/auto-slide.rb +6 -0
  381. data/lib/rabbit/theme/auto-slide/property.rb +4 -0
  382. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +125 -0
  383. data/lib/rabbit/theme/base/base.rb +85 -0
  384. data/lib/rabbit/theme/base/property.rb +4 -0
  385. data/lib/rabbit/theme/blue-bar/blue-bar.rb +80 -0
  386. data/lib/rabbit/theme/blue-bar/property.rb +3 -0
  387. data/lib/rabbit/theme/blue-circle/blue-circle.rb +14 -0
  388. data/lib/rabbit/theme/blue-circle/property.rb +3 -0
  389. data/lib/rabbit/theme/body-background-image/body-background-image.rb +8 -0
  390. data/lib/rabbit/theme/centering-rabbit/centering-rabbit.rb +5 -0
  391. data/lib/rabbit/theme/centering-rabbit/property.rb +3 -0
  392. data/lib/rabbit/theme/clear-blue/clear-blue.rb +101 -0
  393. data/lib/rabbit/theme/clear-blue/property.rb +3 -0
  394. data/lib/rabbit/theme/clock/clock.rb +37 -0
  395. data/lib/rabbit/theme/clock/property.rb +21 -0
  396. data/lib/rabbit/theme/color-circle/color-circle.rb +60 -0
  397. data/lib/rabbit/theme/color-circle/property.rb +4 -0
  398. data/lib/rabbit/theme/color-circle-block-quote/color-circle-block-quote.rb +28 -0
  399. data/lib/rabbit/theme/color-circle-block-quote/property.rb +4 -0
  400. data/lib/rabbit/theme/color-circle-common/color-circle-common.rb +48 -0
  401. data/lib/rabbit/theme/color-circle-common/property.rb +3 -0
  402. data/lib/rabbit/theme/color-circle-description/color-circle-description.rb +9 -0
  403. data/lib/rabbit/theme/color-circle-description/property.rb +4 -0
  404. data/lib/rabbit/theme/color-circle-foot-text/color-circle-foot-text.rb +14 -0
  405. data/lib/rabbit/theme/color-circle-foot-text/property.rb +4 -0
  406. data/lib/rabbit/theme/color-circle-item-mark/color-circle-item-mark.rb +77 -0
  407. data/lib/rabbit/theme/color-circle-item-mark/property.rb +4 -0
  408. data/lib/rabbit/theme/color-circle-method-list/color-circle-method-list.rb +8 -0
  409. data/lib/rabbit/theme/color-circle-method-list/property.rb +4 -0
  410. data/lib/rabbit/theme/color-circle-preformatted/color-circle-preformatted.rb +5 -0
  411. data/lib/rabbit/theme/color-circle-preformatted/property.rb +4 -0
  412. data/lib/rabbit/theme/color-circle-slide/color-circle-slide.rb +13 -0
  413. data/lib/rabbit/theme/color-circle-slide/property.rb +4 -0
  414. data/lib/rabbit/theme/color-circle-text/color-circle-text.rb +9 -0
  415. data/lib/rabbit/theme/color-circle-text/property.rb +4 -0
  416. data/lib/rabbit/theme/color-circle-title-slide/color-circle-title-slide.rb +27 -0
  417. data/lib/rabbit/theme/color-circle-title-slide/property.rb +4 -0
  418. data/lib/rabbit/theme/color-circle-title-text/color-circle-title-text.rb +7 -0
  419. data/lib/rabbit/theme/color-circle-title-text/property.rb +4 -0
  420. data/lib/rabbit/theme/cozmixng/cozmixng.rb +44 -0
  421. data/lib/rabbit/theme/cozmixng/property.rb +3 -0
  422. data/lib/rabbit/theme/cozmixng-powered-by/cozmixng-powered-by.rb +6 -0
  423. data/lib/rabbit/theme/cozmixng-powered-by/property.rb +7 -0
  424. data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
  425. data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
  426. data/lib/rabbit/theme/day-white/day-white.rb +8 -0
  427. data/lib/rabbit/theme/day-white/property.rb +3 -0
  428. data/lib/rabbit/theme/debian/debian.rb +232 -0
  429. data/lib/rabbit/theme/debian/property.rb +3 -0
  430. data/lib/rabbit/theme/default/default.rb +42 -0
  431. data/lib/rabbit/theme/default/property.rb +3 -0
  432. data/lib/rabbit/theme/default-block-quote/default-block-quote.rb +219 -0
  433. data/lib/rabbit/theme/default-block-quote/property.rb +3 -0
  434. data/lib/rabbit/theme/default-comment/default-comment.rb +5 -0
  435. data/lib/rabbit/theme/default-comment/property.rb +4 -0
  436. data/lib/rabbit/theme/default-description/default-description.rb +64 -0
  437. data/lib/rabbit/theme/default-description/property.rb +5 -0
  438. data/lib/rabbit/theme/default-foot-text/default-foot-text.rb +52 -0
  439. data/lib/rabbit/theme/default-foot-text/property.rb +3 -0
  440. data/lib/rabbit/theme/default-icon/default-icon.rb +4 -0
  441. data/lib/rabbit/theme/default-icon/property.rb +5 -0
  442. data/lib/rabbit/theme/default-item-mark/default-item-mark.rb +104 -0
  443. data/lib/rabbit/theme/default-item-mark/property.rb +4 -0
  444. data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +132 -0
  445. data/lib/rabbit/theme/default-item-mark-setup/property.rb +3 -0
  446. data/lib/rabbit/theme/default-method-list/default-method-list.rb +6 -0
  447. data/lib/rabbit/theme/default-method-list/property.rb +3 -0
  448. data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +56 -0
  449. data/lib/rabbit/theme/default-preformatted/property.rb +3 -0
  450. data/lib/rabbit/theme/default-slide/default-slide.rb +62 -0
  451. data/lib/rabbit/theme/default-slide/property.rb +3 -0
  452. data/lib/rabbit/theme/default-text/default-text.rb +186 -0
  453. data/lib/rabbit/theme/default-text/property.rb +3 -0
  454. data/lib/rabbit/theme/default-title-slide/default-title-slide.rb +13 -0
  455. data/lib/rabbit/theme/default-title-slide/property.rb +6 -0
  456. data/lib/rabbit/theme/default-title-text/default-title-text.rb +53 -0
  457. data/lib/rabbit/theme/default-title-text/property.rb +3 -0
  458. data/lib/rabbit/theme/document.erb +35 -0
  459. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +87 -0
  460. data/lib/rabbit/theme/edge-info-toolkit/property.rb +3 -0
  461. data/lib/rabbit/theme/emphasize-keyword/emphasize-keyword.rb +16 -0
  462. data/lib/rabbit/theme/emphasize-keyword/property.rb +4 -0
  463. data/lib/rabbit/theme/enishi-green/enishi-green.rb +61 -0
  464. data/lib/rabbit/theme/enishi-green/property.rb +3 -0
  465. data/lib/rabbit/theme/entry.rb +202 -0
  466. data/lib/rabbit/theme/footer-comment/footer-comment.rb +74 -0
  467. data/lib/rabbit/theme/footer-comment/property.rb +3 -0
  468. data/lib/rabbit/theme/footer-logo/footer-logo.rb +30 -0
  469. data/lib/rabbit/theme/footer-logo/property.rb +26 -0
  470. data/lib/rabbit/theme/green-circle/green-circle.rb +14 -0
  471. data/lib/rabbit/theme/green-circle/property.rb +3 -0
  472. data/lib/rabbit/theme/headline-logo/headline-logo.rb +24 -0
  473. data/lib/rabbit/theme/headline-logo/property.rb +10 -0
  474. data/lib/rabbit/theme/icon/icon.rb +3 -0
  475. data/lib/rabbit/theme/icon/property.rb +24 -0
  476. data/lib/rabbit/theme/image/image.rb +80 -0
  477. data/lib/rabbit/theme/image/property.rb +3 -0
  478. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +134 -0
  479. data/lib/rabbit/theme/image-slide-number/property.rb +64 -0
  480. data/lib/rabbit/theme/image-timer/image-timer.rb +119 -0
  481. data/lib/rabbit/theme/image-timer/property.rb +46 -0
  482. data/lib/rabbit/theme/image-viewer/image-viewer.rb +21 -0
  483. data/lib/rabbit/theme/image-viewer/property.rb +3 -0
  484. data/lib/rabbit/theme/lightning-clear-blue/lightning-clear-blue.rb +13 -0
  485. data/lib/rabbit/theme/lightning-clear-blue/property.rb +3 -0
  486. data/lib/rabbit/theme/lightning-monochrome/lightning-monochrome.rb +15 -0
  487. data/lib/rabbit/theme/lightning-monochrome/property.rb +3 -0
  488. data/lib/rabbit/theme/lightning-rabbit/lightning-rabbit.rb +13 -0
  489. data/lib/rabbit/theme/lightning-rabbit/property.rb +3 -0
  490. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +60 -0
  491. data/lib/rabbit/theme/lightning-simple/property.rb +3 -0
  492. data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +67 -0
  493. data/lib/rabbit/theme/lightning-talk/property.rb +3 -0
  494. data/lib/rabbit/theme/lightning-talk-toolkit/lightning-talk-toolkit.rb +179 -0
  495. data/lib/rabbit/theme/lightning-talk-toolkit/property.rb +3 -0
  496. data/lib/rabbit/theme/manager.rb +45 -0
  497. data/lib/rabbit/theme/mirror-effect/mirror-effect.rb +27 -0
  498. data/lib/rabbit/theme/mirror-effect/property.rb +3 -0
  499. data/lib/rabbit/theme/nari/nari.rb +215 -0
  500. data/lib/rabbit/theme/nari/property.rb +3 -0
  501. data/lib/rabbit/theme/newline-in-slides/newline-in-slides.rb +29 -0
  502. data/lib/rabbit/theme/newline-in-slides/property.rb +4 -0
  503. data/lib/rabbit/theme/newline-in-title/newline-in-title.rb +7 -0
  504. data/lib/rabbit/theme/newline-in-title/property.rb +4 -0
  505. data/lib/rabbit/theme/night-black/night-black.rb +19 -0
  506. data/lib/rabbit/theme/night-black/property.rb +3 -0
  507. data/lib/rabbit/theme/pdf/pdf.rb +24 -0
  508. data/lib/rabbit/theme/pdf/property.rb +3 -0
  509. data/lib/rabbit/theme/per-slide-background-color/per-slide-background-color.rb +18 -0
  510. data/lib/rabbit/theme/per-slide-background-color/property.rb +16 -0
  511. data/lib/rabbit/theme/per-slide-background-image/per-slide-background-image.rb +11 -0
  512. data/lib/rabbit/theme/per-slide-background-image/property.rb +16 -0
  513. data/lib/rabbit/theme/powered-by/powered-by.rb +67 -0
  514. data/lib/rabbit/theme/powered-by/property.rb +24 -0
  515. data/lib/rabbit/theme/rabbit/property.rb +3 -0
  516. data/lib/rabbit/theme/rabbit/rabbit.rb +57 -0
  517. data/lib/rabbit/theme/rabbit-block-quote/property.rb +4 -0
  518. data/lib/rabbit/theme/rabbit-block-quote/rabbit-block-quote.rb +18 -0
  519. data/lib/rabbit/theme/rabbit-headline-logo/property.rb +5 -0
  520. data/lib/rabbit/theme/rabbit-headline-logo/rabbit-headline-logo.rb +4 -0
  521. data/lib/rabbit/theme/rabbit-icon/property.rb +5 -0
  522. data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +4 -0
  523. data/lib/rabbit/theme/rabbit-item-mark/property.rb +5 -0
  524. data/lib/rabbit/theme/rabbit-item-mark/rabbit-item-mark.rb +53 -0
  525. data/lib/rabbit/theme/rabbit-powered-by/property.rb +7 -0
  526. data/lib/rabbit/theme/rabbit-powered-by/rabbit-powered-by.rb +5 -0
  527. data/lib/rabbit/theme/rabbit-title-logo/property.rb +5 -0
  528. data/lib/rabbit/theme/rabbit-title-logo/rabbit-title-logo.rb +4 -0
  529. data/lib/rabbit/theme/ranguba/property.rb +3 -0
  530. data/lib/rabbit/theme/ranguba/ranguba.rb +218 -0
  531. data/lib/rabbit/theme/red-frame/property.rb +3 -0
  532. data/lib/rabbit/theme/red-frame/red-frame.rb +100 -0
  533. data/lib/rabbit/theme/rotate-zoom-effect/property.rb +4 -0
  534. data/lib/rabbit/theme/rotate-zoom-effect/rotate-zoom-effect.rb +51 -0
  535. data/lib/rabbit/theme/ruby-gnome2/property.rb +3 -0
  536. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +65 -0
  537. data/lib/rabbit/theme/ruby-gnome2-description/property.rb +7 -0
  538. data/lib/rabbit/theme/ruby-gnome2-description/ruby-gnome2-description.rb +7 -0
  539. data/lib/rabbit/theme/ruby-gnome2-foot-text/property.rb +5 -0
  540. data/lib/rabbit/theme/ruby-gnome2-foot-text/ruby-gnome2-foot-text.rb +3 -0
  541. data/lib/rabbit/theme/ruby-gnome2-headline/property.rb +7 -0
  542. data/lib/rabbit/theme/ruby-gnome2-headline/ruby-gnome2-headline.rb +47 -0
  543. data/lib/rabbit/theme/ruby-gnome2-icon/property.rb +5 -0
  544. data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +4 -0
  545. data/lib/rabbit/theme/ruby-gnome2-item-mark/property.rb +10 -0
  546. data/lib/rabbit/theme/ruby-gnome2-item-mark/ruby-gnome2-item-mark.rb +65 -0
  547. data/lib/rabbit/theme/ruby-gnome2-preformatted/property.rb +4 -0
  548. data/lib/rabbit/theme/ruby-gnome2-preformatted/ruby-gnome2-preformatted.rb +8 -0
  549. data/lib/rabbit/theme/ruby-gnome2-slide/property.rb +4 -0
  550. data/lib/rabbit/theme/ruby-gnome2-slide/ruby-gnome2-slide.rb +40 -0
  551. data/lib/rabbit/theme/rubykaigi2011/property.rb +3 -0
  552. data/lib/rabbit/theme/rubykaigi2011/rubykaigi2011.rb +48 -0
  553. data/lib/rabbit/theme/scroll-effect/property.rb +3 -0
  554. data/lib/rabbit/theme/scroll-effect/scroll-effect.rb +32 -0
  555. data/lib/rabbit/theme/searcher.rb +179 -0
  556. data/lib/rabbit/theme/show-frame/property.rb +16 -0
  557. data/lib/rabbit/theme/show-frame/show-frame.rb +17 -0
  558. data/lib/rabbit/theme/simple-item-mark/property.rb +5 -0
  559. data/lib/rabbit/theme/simple-item-mark/simple-item-mark.rb +112 -0
  560. data/lib/rabbit/theme/slide-background/property.rb +6 -0
  561. data/lib/rabbit/theme/slide-background/slide-background.rb +3 -0
  562. data/lib/rabbit/theme/slide-background-image/property.rb +10 -0
  563. data/lib/rabbit/theme/slide-background-image/slide-background-image.rb +25 -0
  564. data/lib/rabbit/theme/slide-footer-info/property.rb +43 -0
  565. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +51 -0
  566. data/lib/rabbit/theme/slide-header-info/property.rb +43 -0
  567. data/lib/rabbit/theme/slide-header-info/slide-header-info.rb +42 -0
  568. data/lib/rabbit/theme/slide-logo/property.rb +26 -0
  569. data/lib/rabbit/theme/slide-logo/slide-logo.rb +58 -0
  570. data/lib/rabbit/theme/slide-number/property.rb +21 -0
  571. data/lib/rabbit/theme/slide-number/slide-number.rb +34 -0
  572. data/lib/rabbit/theme/slide-show/property.rb +4 -0
  573. data/lib/rabbit/theme/slide-show/slide-show.rb +31 -0
  574. data/lib/rabbit/theme/stream-comment/property.rb +3 -0
  575. data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
  576. data/lib/rabbit/theme/syntax-highlighting/property.rb +4 -0
  577. data/lib/rabbit/theme/syntax-highlighting/syntax-highlighting.rb +177 -0
  578. data/lib/rabbit/theme/table/property.rb +3 -0
  579. data/lib/rabbit/theme/table/table.rb +173 -0
  580. data/lib/rabbit/theme/tag/property.rb +4 -0
  581. data/lib/rabbit/theme/tag/tag.rb +85 -0
  582. data/lib/rabbit/theme/timer/property.rb +3 -0
  583. data/lib/rabbit/theme/timer/timer.rb +63 -0
  584. data/lib/rabbit/theme/title-background-color/property.rb +10 -0
  585. data/lib/rabbit/theme/title-background-color/title-background-color.rb +17 -0
  586. data/lib/rabbit/theme/title-background-image/property.rb +11 -0
  587. data/lib/rabbit/theme/title-background-image/title-background-image.rb +28 -0
  588. data/lib/rabbit/theme/title-logo/property.rb +23 -0
  589. data/lib/rabbit/theme/title-logo/title-logo.rb +38 -0
  590. data/lib/rabbit/theme/title-on-image-toolkit/property.rb +3 -0
  591. data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +140 -0
  592. data/lib/rabbit/theme/title-shadow/property.rb +11 -0
  593. data/lib/rabbit/theme/title-shadow/title-shadow.rb +7 -0
  594. data/lib/rabbit/theme/title-slide-background-image/property.rb +10 -0
  595. data/lib/rabbit/theme/title-slide-background-image/title-slide-background-image.rb +25 -0
  596. data/lib/rabbit/theme/video/property.rb +3 -0
  597. data/lib/rabbit/theme/video/video.rb +5 -0
  598. data/lib/rabbit/theme-configuration.rb +101 -0
  599. data/lib/rabbit/utils.rb +435 -0
  600. data/lib/rabbit/version.rb +19 -0
  601. data/lib/rabbit/xmlrpc/base.rb +6 -0
  602. data/lib/rabbit/xmlrpc/client.rb +33 -0
  603. data/lib/rabbit/xmlrpc/server.rb +39 -0
  604. data/lib/rabbit/yaml-loader.rb +39 -0
  605. data/misc/emacs/README.ja +177 -0
  606. data/misc/emacs/rabbit-mode.el +378 -0
  607. data/misc/github-post-receiver/config.ru +170 -0
  608. data/misc/github-post-receiver/config.yaml.sample +3 -0
  609. data/misc/github-post-receiver/tmp/restart.txt +0 -0
  610. data/misc/make-image-sample.rb +95 -0
  611. data/misc/make-print-sample.rb +95 -0
  612. data/misc/update-rd.rb +85 -0
  613. data/misc/xyzzy/rabbit-mode.l +775 -0
  614. data/po/en/rabbit.po +2110 -0
  615. data/po/fr/rabbit.po +2109 -0
  616. data/po/ja/rabbit.po +2197 -0
  617. data/rabbit-qt.gemspec +80 -0
  618. data/sample/block-quote.rab +13 -0
  619. data/sample/blue-circle.rd +37 -0
  620. data/sample/can_rabbit.rd +425 -0
  621. data/sample/cozmixng.rd +85 -0
  622. data/sample/cozmixng_is_field.png +0 -0
  623. data/sample/cozmixng_is_field.svg +430 -0
  624. data/sample/description-list.rab +17 -0
  625. data/sample/enishi-green.rab +14 -0
  626. data/sample/equation.eps +571 -0
  627. data/sample/gl-sample.rd +8 -0
  628. data/sample/html_and_wiki.png +0 -0
  629. data/sample/html_and_wiki.svg +275 -0
  630. data/sample/image-reflection.rab +12 -0
  631. data/sample/info-window.png +0 -0
  632. data/sample/join_cozmixng.png +0 -0
  633. data/sample/join_cozmixng.svg +293 -0
  634. data/sample/kof2005/gesture-flow.svg +329 -0
  635. data/sample/kof2005/gesture.rb +473 -0
  636. data/sample/kof2005/gtk+-widget.svg +128 -0
  637. data/sample/kof2005/high-light-architecture.svg +203 -0
  638. data/sample/kof2005/high-light-expose.rb +120 -0
  639. data/sample/kof2005/high-light-expose.svg +153 -0
  640. data/sample/kof2005/high-light-widget.rb +147 -0
  641. data/sample/kof2005/high-light-widget.svg +172 -0
  642. data/sample/kof2005/high-light.svg +132 -0
  643. data/sample/kof2005/mask-screenshot.png +0 -0
  644. data/sample/kof2005/mask.rb +105 -0
  645. data/sample/kof2005/mask.svg +120 -0
  646. data/sample/kof2005/ruby-gnome2-logo.png +0 -0
  647. data/sample/kof2005/ruby-pink-circle-logo.png +0 -0
  648. data/sample/kof2005/skip-up-with-ruby-gnome2.rd +450 -0
  649. data/sample/kof2005/widget.svg +202 -0
  650. data/sample/lavie.png +0 -0
  651. data/sample/lightning-talk.rd +50 -0
  652. data/sample/lldn/input.svg +269 -0
  653. data/sample/lldn/interface.svg +410 -0
  654. data/sample/lldn/kame.png +0 -0
  655. data/sample/lldn/lavie.png +0 -0
  656. data/sample/lldn/lldn.rd +212 -0
  657. data/sample/lldn/output.svg +284 -0
  658. data/sample/lldn/rabbit-rwiki.svg +353 -0
  659. data/sample/lldn/rabbit_banner.png +0 -0
  660. data/sample/lldn/rabbit_banner2.png +0 -0
  661. data/sample/m17n.rd +138 -0
  662. data/sample/mermaid.rab +16 -0
  663. data/sample/note.rab +31 -0
  664. data/sample/ppt/hare-and-tortoise-end.png +0 -0
  665. data/sample/ppt/hare-and-tortoise-middle.png +0 -0
  666. data/sample/ppt/hare-and-tortoise-start.png +0 -0
  667. data/sample/ppt/ppt.rd +207 -0
  668. data/sample/ppt/rabbit-with-ruby.png +0 -0
  669. data/sample/pre.rd +123 -0
  670. data/sample/rabbit/theme/festival/festival.rb +6 -0
  671. data/sample/rabbit/theme/gl-sample/gl-sample.rb +29 -0
  672. data/sample/rabbit/theme/image-with-frame/image-with-frame.rb +2 -0
  673. data/sample/rabbit/theme/image-with-no-shadow-frame/image-with-no-shadow-frame.rb +3 -0
  674. data/sample/rabbit/theme/image-without-frame/image-without-frame.rb +2 -0
  675. data/sample/rabbit/theme/kof2005/kof2005.rb +9 -0
  676. data/sample/rabbit/theme/kof2005/property.rb +3 -0
  677. data/sample/rabbit/theme/lightning-talk-with-contact/lightning-talk-with-contact.rb +6 -0
  678. data/sample/rabbit/theme/lldn/lldn.rb +20 -0
  679. data/sample/rabbit/theme/pdf/pdf.rb +16 -0
  680. data/sample/rabbit/theme/pdf/property.rb +4 -0
  681. data/sample/rabbit/theme/ppt/ppt.rb +5 -0
  682. data/sample/rabbit/theme/rabbit-and-tortoise/rabbit-and-tortoise.rb +11 -0
  683. data/sample/rabbit/theme/rectangle-image-slide-number/rectangle-image-slide-number.rb +4 -0
  684. data/sample/rabbit/theme/stop-auto-slide/stop-auto-slide.rb +2 -0
  685. data/sample/rabbit/theme/triangle-image-slide-number/triangle-image-slide-number.rb +5 -0
  686. data/sample/rabbit-balloon.obj +93 -0
  687. data/sample/rabbit-en.hiki +399 -0
  688. data/sample/rabbit-en.md +410 -0
  689. data/sample/rabbit-en.rd +511 -0
  690. data/sample/rabbit-history.svg +280 -0
  691. data/sample/rabbit-implementation.rd +182 -0
  692. data/sample/rabbit-slide-show-logo.svg +597 -0
  693. data/sample/rabbit.dia +408 -0
  694. data/sample/rabbit.hiki +398 -0
  695. data/sample/rabbit.md +423 -0
  696. data/sample/rabbit.rd +520 -0
  697. data/sample/rabbit.xcf +0 -0
  698. data/sample/rabbit_icon.ico +0 -0
  699. data/sample/rabbit_icon.png +0 -0
  700. data/sample/shocker.jpg +0 -0
  701. data/sample/slide-property.hiki +14 -0
  702. data/sample/slide-property.rab +18 -0
  703. data/sample/spiral.svg +29 -0
  704. data/sample/table-en.rd +55 -0
  705. data/sample/table.hiki +34 -0
  706. data/sample/table.rd +55 -0
  707. data/sample/usagi.png +0 -0
  708. data/sample/video.md +19 -0
  709. data/sample/video.rab +17 -0
  710. metadata +1000 -0
@@ -0,0 +1,176 @@
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
+ #
3
+ # This program is free software; you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation; either version 2 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along
14
+ # with this program; if not, write to the Free Software Foundation, Inc.,
15
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
+
17
+ require_relative "container-element"
18
+ require_relative "text-renderer"
19
+
20
+ module Rabbit
21
+ module Element
22
+ module TextContainerElement
23
+ include ContainerElement
24
+ include TextRenderer
25
+
26
+ attr_reader :prop
27
+
28
+ alias prop_set __prop_set__
29
+ alias prop_get __prop_get__
30
+ alias prop_delete __prop_delete__
31
+
32
+ def setup_scene_element(canvas, scene_widget, x, y, w, h)
33
+ widget = Renderer::SceneNodeWidget.new(canvas, self, x, y, w, h)
34
+ scene_widget.put(widget, x, y, w, h)
35
+
36
+ layout_height = @layout.pixel_size[1]
37
+ y += layout_height
38
+ h -= layout_height
39
+
40
+ [x, y, w, h]
41
+ end
42
+
43
+ def scene_snapshot_element(widget, snapshot, canvas, x, y, w, h)
44
+ color = prop_get("foregound")
45
+ color = color.value if color
46
+ color = canvas.make_color(color)
47
+ text_compile(canvas, widget.x, widget.y, w, h)
48
+ snapshot.append_layout(@layout, color.to_gdk_rgba)
49
+ layout_height = @layout.pixel_size[1]
50
+ y += layout_height
51
+ h -= layout_height
52
+ [x, y, w, h]
53
+ end
54
+
55
+ def draw_elements(canvas, x, y, w, h, simulation)
56
+ unless simulation
57
+ # TODO: This is too workaround. :<
58
+ draw_sub_elements(canvas, x, y, w, h) do
59
+ draw_layout(canvas, x, y)
60
+ end
61
+ end
62
+ [x, y + @height, w, h - @height]
63
+ end
64
+
65
+ def to_html(generator)
66
+ html = @elements.collect do |elem|
67
+ elem.to_html(generator)
68
+ end.join("")
69
+ markup_as_html(html)
70
+ end
71
+
72
+ def markuped_text
73
+ mt = @elements.collect do |elem|
74
+ elem.markuped_text
75
+ end.join("")
76
+ markup(mt)
77
+ end
78
+
79
+ def text
80
+ @elements.collect do |elem|
81
+ elem.text
82
+ end.join("")
83
+ end
84
+
85
+ def to_rd
86
+ text
87
+ end
88
+
89
+ def do_horizontal_centering?
90
+ super and not width.nil?
91
+ end
92
+
93
+ def compile(canvas, x, y, w, h)
94
+ compile_element(canvas, x, y, w, h)
95
+ text_compile(canvas, @x, @y, @w, @h)
96
+ end
97
+
98
+ def dirty?
99
+ super or text_dirty?
100
+ end
101
+
102
+ def empty?
103
+ /\A\s*\z/ =~ text
104
+ end
105
+
106
+ def clear_theme
107
+ container_clear_theme
108
+ super
109
+ end
110
+
111
+ def have_numerical_font_size?
112
+ super or @elements.any? {|elem| elem.have_numerical_font_size?}
113
+ end
114
+
115
+ def inline_element?
116
+ true
117
+ end
118
+
119
+ protected
120
+ def initial_font_size_for_compute_font_size
121
+ [
122
+ super,
123
+ @elements.collect do |elem|
124
+ elem.initial_font_size_for_compute_font_size
125
+ end
126
+ ]
127
+ end
128
+
129
+ def compute_next_font_size(previous_size, scale)
130
+ i = -1
131
+ my_font_size, elements_font_size = previous_size
132
+ [
133
+ super(my_font_size, scale),
134
+ elements_font_size.collect do |size|
135
+ i += 1
136
+ @elements[i].compute_next_font_size(size, scale)
137
+ end
138
+ ]
139
+ end
140
+
141
+ def set_computed_font_size(new_size)
142
+ my_font_size, elements_font_size = new_size
143
+ elements_font_size.each_with_index do |size, i|
144
+ dirty! if @elements[i].set_computed_font_size(size)
145
+ end
146
+ super(my_font_size)
147
+ end
148
+
149
+ protected
150
+ # TODO: This is too workaround. :<
151
+ def draw_sub_elements(canvas, x, y, w, h)
152
+ draw_sub_elements_recursive(canvas, x, y, w, h, 0) do
153
+ yield
154
+ end
155
+ end
156
+
157
+ # TODO: This is too workaround. :<
158
+ def draw_sub_elements_recursive(canvas, x, y, w, h, i)
159
+ if i == @elements.size
160
+ yield
161
+ else
162
+ draw_sub_elements_recursive(canvas, x, y, w, h, i + 1) do
163
+ element = @elements[i]
164
+ if element.is_a?(TextContainerElement)
165
+ element.draw_sub_elements(canvas, x, y, w, h) do
166
+ yield
167
+ end
168
+ else
169
+ yield
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,83 @@
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
+ #
3
+ # This program is free software; you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation; either version 2 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along
14
+ # with this program; if not, write to the Free Software Foundation, Inc.,
15
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
+
17
+ require_relative "text-renderer"
18
+
19
+ module Rabbit
20
+ module Element
21
+ module TextElement
22
+ include TextRenderer
23
+
24
+ attr_reader :text
25
+
26
+ def initialize(text)
27
+ super()
28
+ @text = text
29
+ end
30
+
31
+ def text=(new_text)
32
+ old_text = @text
33
+ @text = new_text
34
+ dirty! if old_text != @text
35
+ @text
36
+ end
37
+
38
+ def substitute_text
39
+ result = yield(@text.dup)
40
+ return false if result == @text
41
+ case result
42
+ when Array
43
+ new_elements = result.collect do |element|
44
+ if element.is_a?(Base)
45
+ element
46
+ else
47
+ new_element = clone
48
+ new_element.text = element
49
+ new_element
50
+ end
51
+ end
52
+ parent.replace_element(self, *new_elements)
53
+ else
54
+ self.text = result
55
+ end
56
+ true
57
+ end
58
+
59
+ def draw_element(canvas, x, y, w, h, simulation)
60
+ unless simulation
61
+ draw_layout(canvas, x, y)
62
+ end
63
+ [x + width, y, w - width, h]
64
+ end
65
+
66
+ def to_html(generator)
67
+ text_to_html(generator)
68
+ end
69
+
70
+ def empty?
71
+ @text.nil? or /\A\s*\z/ =~ @text
72
+ end
73
+
74
+ def inspect(verbose=false)
75
+ if verbose
76
+ super()
77
+ else
78
+ "<#{self.class.name} #{@text.inspect}>"
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,378 @@
1
+ # Copyright (C) 2004-2025 Sutou Kouhei <kou@cozmixng.org>
2
+ #
3
+ # This program is free software; you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation; either version 2 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along
14
+ # with this program; if not, write to the Free Software Foundation, Inc.,
15
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
+
17
+ require_relative "base"
18
+
19
+ module Rabbit
20
+ module Element
21
+ module TextRenderer
22
+ include Base
23
+
24
+ attr_reader :layout
25
+ attr_reader :original_width, :original_height
26
+ attr_reader :first_line_width, :first_line_height
27
+
28
+ attr_writer :wrap_mode, :indent
29
+
30
+ def initialize(*args, &block)
31
+ super
32
+ text_clear_theme
33
+ end
34
+
35
+ def text_renderer?
36
+ true
37
+ end
38
+
39
+ def align=(new_value)
40
+ if new_value.is_a?(String)
41
+ new_value = Pango::Alignment.const_get(new_value.to_s.upcase)
42
+ end
43
+ dirty! if @align != new_value
44
+ @align = new_value
45
+ end
46
+
47
+ def justify=(new_value)
48
+ new_value = true if new_value
49
+ dirty! if @justify != new_value
50
+ @justify = new_value
51
+ end
52
+
53
+ def spacing=(new_spacing)
54
+ dirty! if @spacing != new_spacing
55
+ @spacing = new_spacing
56
+ end
57
+
58
+ def width
59
+ if @width
60
+ @width + @padding_left + @padding_right
61
+ else
62
+ nil
63
+ end
64
+ end
65
+
66
+ def height
67
+ if @height
68
+ @height + @padding_top + @padding_bottom
69
+ else
70
+ nil
71
+ end
72
+ end
73
+
74
+ def compile(canvas, x, y, w, h)
75
+ super
76
+ text_compile(canvas, x, y, w, h)
77
+ end
78
+
79
+ def text_compile(canvas, x, y, w, h)
80
+ if (@width and @width > @w) or (@height and @height > @h)
81
+ dirty!
82
+ end
83
+ if_dirty do
84
+ setup_draw_info(markuped_text, canvas, w)
85
+ end
86
+ end
87
+
88
+ def text_to_html(generator)
89
+ markup_as_html(text)
90
+ end
91
+
92
+ def do_horizontal_centering?
93
+ @horizontal_centering
94
+ end
95
+
96
+ def do_horizontal_centering(canvas, x, y, w, h)
97
+ self.align = Pango::Alignment::CENTER
98
+ end
99
+
100
+ def reset_horizontal_centering(canvas, x, y, w, h)
101
+ self.align = default_align if @align == Pango::Alignment::CENTER
102
+ end
103
+
104
+ def markuped_text
105
+ markup(text)
106
+ end
107
+
108
+ def clear_theme
109
+ super
110
+ text_clear_theme
111
+ end
112
+
113
+ def text_clear_theme
114
+ @layout = nil
115
+ @indent = 0
116
+ @spacing = 0
117
+ @wrap_mode = default_wrap_mode
118
+ @align = default_align
119
+ @justify = default_justify
120
+ end
121
+
122
+ def dirty!
123
+ super
124
+ @layout = nil
125
+ end
126
+
127
+ def dirty?
128
+ super or text_dirty?
129
+ end
130
+
131
+ def text_dirty?
132
+ @layout.nil?
133
+ end
134
+
135
+ def text_props
136
+ props = {}
137
+ @prop.each do |name, formatter|
138
+ props[name] = formatter.value
139
+ end
140
+ props
141
+ end
142
+
143
+ def font_size
144
+ text_props["size"]
145
+ end
146
+
147
+ def pixel_font_size
148
+ _font_size = font_size
149
+ if _font_size
150
+ _font_size / Pango::SCALE
151
+ else
152
+ original_height
153
+ end
154
+ end
155
+
156
+ def have_numerical_font_size?
157
+ font_size.is_a?(Numeric)
158
+ end
159
+
160
+ def keep_in_size(proc_name=nil, &compute_max_size)
161
+ proc_name ||= "keep-in-size"
162
+ make_params = Proc.new do |canvas, x, y, w, h,
163
+ initial_width, initial_height,
164
+ max_width, max_height|
165
+ if (max_width and initial_width > max_width) or
166
+ (max_height and initial_height > max_height)
167
+ scale = lambda do |_width, _height|
168
+ candidates = [0.95]
169
+ candidates << (max_width.to_f) / _width if max_width
170
+ candidates << (max_height.to_f) / _height if max_height
171
+ candidates.min
172
+ end
173
+ compare = Proc.new do |_width, _height|
174
+ (max_width.nil? or _width < max_width) and
175
+ (max_height.nil? or _height < max_height)
176
+ end
177
+ [scale, compare]
178
+ end
179
+ end
180
+ dynamic_font_size_computation(proc_name, compute_max_size, &make_params)
181
+ end
182
+
183
+ def as_large_as_possible(proc_name=nil, &compute_max_size)
184
+ proc_name ||= "as-large-as-possible"
185
+ make_params = Proc.new do |canvas, x, y, w, h,
186
+ initial_width, initial_height,
187
+ max_width, max_height|
188
+ if (max_width and initial_width > max_width) or
189
+ (max_height and initial_height > max_height)
190
+ scale = 0.95
191
+ compare = Proc.new do |_width, _height|
192
+ (max_width.nil? or _width < max_width) and
193
+ (max_height.nil? or _height < max_height)
194
+ end
195
+ else
196
+ scale = 1.05
197
+ compare = Proc.new do |_width, _height|
198
+ (max_width and _width > max_width) or
199
+ (max_height and _height > max_height)
200
+ end
201
+ end
202
+ [scale, compare]
203
+ end
204
+ dynamic_font_size_computation(proc_name, compute_max_size, &make_params)
205
+ end
206
+
207
+ private
208
+ def setup_draw_info(str, canvas, w)
209
+ layout = canvas.make_layout(str)
210
+ @original_width, @original_height = layout.pixel_size
211
+ @first_line_width = @original_width / layout.line_count
212
+ @first_line_height = @original_height / layout.line_count
213
+ setup_layout(layout, w)
214
+ width, height = layout.pixel_size
215
+ if layout.width != -1 and
216
+ (layout.alignment == Pango::Alignment::CENTER or
217
+ layout.alignment == Pango::Alignment::RIGHT)
218
+ width = layout.width / Pango::SCALE
219
+ end
220
+ @width, @height = width, height
221
+ @layout = layout
222
+ end
223
+
224
+ def setup_layout(layout, w)
225
+ layout.set_wrap(@wrap_mode) if @wrap_mode
226
+ layout.set_alignment(@align)
227
+ if @wrap_mode or layout.alignment != Pango::Alignment::LEFT
228
+ layout.set_width((w * Pango::SCALE).ceil)
229
+ else
230
+ layout.set_width(-1)
231
+ end
232
+ indent = @indent
233
+ indent = indent.value if indent.respond_to?(:value)
234
+ layout.set_indent(indent)
235
+ layout.set_spacing(@spacing * Pango::SCALE)
236
+ layout.justify = @justify
237
+ layout.context_changed
238
+ end
239
+
240
+ def markup(str)
241
+ t = str
242
+ @prop.each do |name, formatter|
243
+ if formatter.text_formatter?
244
+ t = formatter.format(t)
245
+ end
246
+ end
247
+ t
248
+ end
249
+
250
+ def markup_as_html(str)
251
+ t = str
252
+ @prop.each do |name, formatter|
253
+ if formatter.html_formatter?
254
+ t = formatter.html_format(t)
255
+ end
256
+ end
257
+ t
258
+ end
259
+
260
+ def default_wrap_mode
261
+ Pango::WrapMode::WORD_CHAR
262
+ end
263
+
264
+ def default_align
265
+ Pango::Alignment::LEFT
266
+ end
267
+
268
+ def default_justify
269
+ false
270
+ end
271
+
272
+ def draw_layout(canvas, x, y)
273
+ shadow_color = prop_value("shadow-color")
274
+ if shadow_color
275
+ shadow_foreground = Format::Foreground.new(shadow_color)
276
+ shadow_text = markup(shadow_foreground.format(text))
277
+ shadow_layout = canvas.make_layout(shadow_text)
278
+ setup_layout(shadow_layout, @layout.width / Pango::SCALE)
279
+ line_height = shadow_layout.pixel_size[1] / shadow_layout.line_count
280
+ shadow_x = prop_value("shadow-x") || (line_height * 0.03)
281
+ shadow_y = prop_value("shadow-y") || (line_height * 0.02)
282
+ canvas.draw_layout(shadow_layout, x + shadow_x, y + shadow_y,
283
+ shadow_color)
284
+ end
285
+
286
+ color = prop_get("foreground")
287
+ color = color.value if color
288
+ canvas.draw_layout(@layout, x, y, color)
289
+ end
290
+
291
+ def dynamic_font_size_computation(proc_name, compute_max_size,
292
+ &make_params)
293
+ return if text.empty?
294
+ computed = false
295
+ min_width = nil
296
+ add_pre_draw_proc(proc_name) do |canvas, x, y, w, h, simulation|
297
+ if simulation and !computed and have_numerical_font_size?
298
+ max_width = max_height = nil
299
+ if compute_max_size
300
+ max_width, max_height = compute_max_size.call(self, canvas,
301
+ x, y, w, h)
302
+ else
303
+ max_width = (pw || w) - padding_left - padding_right
304
+ max_height = (ph || h) - padding_top - padding_bottom
305
+ max_width = nil if max_width <= 0
306
+ max_height = nil if max_height <= 0
307
+ end
308
+
309
+ computed = true
310
+
311
+ if max_width and max_height
312
+ compute_font_size(canvas, x, y, w, h, max_width, max_height,
313
+ make_params)
314
+ end
315
+ end
316
+ [x, y, w, h]
317
+ end
318
+ end
319
+
320
+ def compute_font_size(canvas, x, y, w, h, max_width, max_height,
321
+ make_params)
322
+ compile(canvas, x, y, w, h) if dirty?
323
+ initial_width, initial_height = @layout.pixel_size
324
+ scale, compare = make_params.call(canvas, x, y, w, h,
325
+ initial_width, initial_height,
326
+ max_width, max_height)
327
+
328
+ return if scale.nil? or compare.nil?
329
+
330
+ if scale.respond_to?(:call)
331
+ compute_scale = scale
332
+ scale = nil
333
+ end
334
+
335
+ size = new_size = initial_font_size_for_compute_font_size
336
+ current_layout_size = @layout.pixel_size
337
+ unless compare.call(*@layout.pixel_size)
338
+ loop do
339
+ scale = compute_scale.call(*@layout.pixel_size) if compute_scale
340
+ new_size = compute_next_font_size(size, scale)
341
+ break if new_size == size
342
+ set_computed_font_size(new_size)
343
+ compile(canvas, x, y, w, h)
344
+ break if !@wrap_mode and @layout.wrapped?
345
+ break if compare.call(*@layout.pixel_size)
346
+ size = new_size
347
+ end
348
+ end
349
+ if scale > 1
350
+ set_computed_font_size(size)
351
+ else
352
+ set_computed_font_size(new_size)
353
+ end
354
+ end
355
+
356
+ protected
357
+ def initial_font_size_for_compute_font_size
358
+ font_size
359
+ end
360
+
361
+ def compute_next_font_size(previous_size, scale)
362
+ if previous_size
363
+ (previous_size * scale).ceil
364
+ else
365
+ nil
366
+ end
367
+ end
368
+
369
+ def set_computed_font_size(new_size)
370
+ if new_size
371
+ font :size => new_size
372
+ dirty!
373
+ end
374
+ dirty?
375
+ end
376
+ end
377
+ end
378
+ end