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,10 @@
1
+ @category = N_("Toolkit")
2
+ @title = N_("TitleBackgroundColor")
3
+ @abstract = N_("Toolkit to color a background of the title slide")
4
+ @description = N_("Color a background of the title slide.")
5
+ @parameters = {
6
+ "@title_background_color" => {
7
+ :default => N_("(Must be specified.)"),
8
+ :description => N_("Background color.")
9
+ },
10
+ }
@@ -0,0 +1,17 @@
1
+ proc_name = "title-background-color"
2
+
3
+ if @title_background_color.nil?
4
+ theme_exit("must specify @title_background_color!!")
5
+ end
6
+
7
+ match(TitleSlide) do |slides|
8
+ slides.delete_pre_draw_proc_by_name(proc_name)
9
+
10
+ slides.add_pre_draw_proc(proc_name) do |slide, canvas, x, y, w, h, simulation|
11
+ unless simulation
12
+ args = [0, 0, canvas.width, canvas.height, @title_background_color]
13
+ canvas.draw_rectangle(true, *args)
14
+ end
15
+ [x, y, w, h]
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ @category = N_("Toolkit")
2
+ @title = N_("TitleBackgroundImage")
3
+ @abstract = N_("Toolkit to display an image as a background of the title " \
4
+ "slide")
5
+ @description = N_("Displays an image as a background of the title slide.")
6
+ @parameters = {
7
+ "@title_background_image" => {
8
+ :default => N_("(Must be specified.)"),
9
+ :description => N_("Image file name.")
10
+ },
11
+ }
@@ -0,0 +1,25 @@
1
+ proc_name = "title-background-image"
2
+
3
+ if @title_background_image.nil?
4
+ theme_exit("must specify @title_background_image!!")
5
+ end
6
+
7
+ match(TitleSlide) do |slides|
8
+ loader = ImageLoader.new(find_file(@title_background_image))
9
+ resized = false
10
+
11
+ slides.delete_pre_draw_proc_by_name(proc_name)
12
+
13
+ slides.add_pre_draw_proc(proc_name) do |slide, canvas, x, y, w, h, simulation|
14
+ unless simulation
15
+ unless loader.nil?
16
+ unless resized
17
+ loader.resize(canvas.width, canvas.height)
18
+ resized = true
19
+ end
20
+ loader.draw(canvas, 0, 0)
21
+ end
22
+ end
23
+ [x, y, w, h]
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ @category = N_("Toolkit")
2
+ @title = N_("TitleLogo")
3
+ @abstract = N_("Toolkit to display an image as a logo in the title slide")
4
+ @description = N_("Displays an image as a logo in the title slide.")
5
+ @parameters = {
6
+ "@title_logo_image" => {
7
+ :default => N_("(Must be specified.)"),
8
+ :description => N_("Image file name.")
9
+ },
10
+ "@title_logo_position" => {
11
+ :default => ":right",
12
+ :description => N_("Position of the logo. " \
13
+ "The logo will be set at the upper-right corner when " \
14
+ "'(({:right}))', and at the upper-left corner when " \
15
+ "'(({:left}))'.")
16
+ },
17
+ "@title_logo_image_uninstall" => {
18
+ :default => "nil",
19
+ :description => N_("Whether uninstalling this toolkit or not. " \
20
+ "This option is useful for cases you do not want to " \
21
+ "make the toolkit work for certain slides."),
22
+ },
23
+ }
@@ -0,0 +1,38 @@
1
+ proc_name = "title-logo"
2
+
3
+ if @title_logo_image.nil?
4
+ theme_exit(_("must specify %s!!!") % "@title_logo_image")
5
+ end
6
+
7
+ @title_logo_position ||= :right
8
+
9
+ match(TitleSlide, Title) do |titles|
10
+
11
+ titles.delete_pre_draw_proc_by_name(proc_name)
12
+
13
+ break if @title_logo_image_uninstall
14
+
15
+ loader = ImageLoader.new(find_file(@title_logo_image))
16
+
17
+ resized = false
18
+
19
+ titles.add_pre_draw_proc(proc_name) do |title, canvas, x, y, w, h, simulation|
20
+ unless simulation
21
+ title_slide = title.parent
22
+ unless resized
23
+ title_space = y - title_slide.margin_top
24
+ width = ((title_space / loader.height.to_f) * loader.width).ceil
25
+ loader.resize(width, title_space) if width > 0
26
+ resized = true
27
+ end
28
+ if @title_logo_position == :right
29
+ new_x = canvas.width - loader.width - title_slide.margin_right
30
+ else
31
+ new_x = title_slide.margin_left
32
+ end
33
+ new_y = title_slide.margin_top
34
+ loader.draw(canvas, new_x, new_y)
35
+ end
36
+ [x, y, w, h]
37
+ end
38
+ end
@@ -0,0 +1,3 @@
1
+ @category = N_("Toolkit")
2
+ @title = N_("Title on Image Toolkit")
3
+ @description = N_("Displays title on image")
@@ -0,0 +1,122 @@
1
+ @title_on_image_proc_name ||= "title-on-image"
2
+ @title_on_image_color ||= "white"
3
+ @title_on_image_shadow_color ||= "#0009"
4
+ @title_on_image_background_color ||= "black"
5
+ @title_on_image_params = {
6
+ :proc_name => @title_on_image_proc_name,
7
+ :color => @title_on_image_color,
8
+ :shadow_color => @title_on_image_shadow_color,
9
+ :background_color => @title_on_image_background_color,
10
+ }
11
+
12
+ def setup_title_on_image_slide(slide)
13
+ class << slide
14
+ attr_accessor :applier
15
+
16
+ attr_writer :title_on_image_default_params
17
+ def title_on_image_default_params
18
+ @title_on_image_default_params ||= {}
19
+ end
20
+
21
+ def title_on_image(params={}, &block)
22
+ params = title_on_image_default_params.merge(params)
23
+
24
+ clear_pre_draw_procs
25
+ clear_post_draw_procs
26
+
27
+ margin_set(0)
28
+
29
+ self.vertical_centering = true
30
+ self.horizontal_centering = true
31
+
32
+ proc_name = params[:proc_name]
33
+ shadow_color = params[:shadow_color]
34
+ background_color = params[:background_color]
35
+
36
+ orig_x = orig_y = orig_w = orig_h = nil
37
+ add_pre_draw_proc(proc_name) do |canvas, x, y, w, h, simulation|
38
+ orig_x, orig_y, orig_w, orig_h = x, y, w, h
39
+ unless simulation
40
+ args = [
41
+ true,
42
+ x - margin_left,
43
+ y - margin_top,
44
+ w + margin_left + margin_right,
45
+ h + margin_top + margin_bottom,
46
+ background_color,
47
+ ]
48
+ canvas.draw_rectangle(*args)
49
+ end
50
+ [x, y, w, h]
51
+ end
52
+
53
+ add_post_draw_proc(proc_name) do |canvas, x, y, w, h, simulation|
54
+ base_h = orig_h / 2 - headline.height / 2
55
+ base_y = orig_y + base_h
56
+ unless simulation
57
+ shadow_headline = headline.clone
58
+ shadow_headline.font(:color => nil)
59
+ shadow_layout = canvas.make_layout(shadow_headline.markuped_text)
60
+ shadow_layout.set_width(w * Pango::SCALE)
61
+ shadow_layout.set_alignment(Pango::Layout::ALIGN_CENTER)
62
+
63
+ font_size = headline.pixel_font_size
64
+ move_x = @applier.screen_x(font_size.to_f / @applier.screen_size(10))
65
+ move_y = @applier.screen_y(font_size.to_f / @applier.screen_size(20))
66
+ canvas.draw_layout(shadow_layout, orig_x + move_x, base_y + move_y,
67
+ shadow_color)
68
+ end
69
+ headline.show do
70
+ headline.draw_element(canvas,
71
+ orig_x, base_y, orig_w, base_h,
72
+ simulation)
73
+ end
74
+ [x, y, w, h]
75
+ end
76
+
77
+ headline.title_on_image(params)
78
+ end
79
+
80
+ def title_on_image?
81
+ !headline.empty? and
82
+ body.elements.size == 1 and
83
+ body.elements[0].is_a?(Element::Image)
84
+ end
85
+ end
86
+ end
87
+
88
+ def setup_title_on_image_headline(head)
89
+ class << head
90
+ def title_on_image(params)
91
+ proc_name = params[:proc_name]
92
+ color = params[:color]
93
+
94
+ margin_set(0)
95
+
96
+ clear_pre_draw_procs
97
+ clear_post_draw_procs
98
+
99
+ prop_set("foreground", color)
100
+ hide
101
+
102
+ orig_x = orig_y = orig_w = orig_h = nil
103
+ add_pre_draw_proc(proc_name) do |canvas, x, y, w, h, simulation|
104
+ orig_x, orig_y, orig_w, orig_h = x, y, w, h
105
+ [x, y, w, h]
106
+ end
107
+
108
+ add_post_draw_proc(proc_name) do |canvas, x, y, w, h, simulation|
109
+ [orig_x, orig_y, orig_w, orig_h]
110
+ end
111
+ end
112
+ end
113
+ end
114
+
115
+ match(Slide) do |slides|
116
+ slides.each do |slide|
117
+ setup_title_on_image_slide(slide)
118
+ setup_title_on_image_headline(slide.headline)
119
+ slide.applier = self
120
+ slide.title_on_image_default_params = @title_on_image_params
121
+ end
122
+ end
@@ -0,0 +1,11 @@
1
+ @category = N_("Toolkit")
2
+ @title = N_("TitleShadow")
3
+ @abstract = N_("Toolkit to display shadows behind the title")
4
+ @description = N_("Displays shadows behind the title string in the title " \
5
+ "slide.")
6
+ @parameters = {
7
+ "@title_shadow_color" => {
8
+ :default => "'#6f6f6f'",
9
+ :description => N_("Color of shadow."),
10
+ },
11
+ }
@@ -0,0 +1,33 @@
1
+ proc_name = "title-shadow"
2
+
3
+ @title_shadow_color ||= "#6f6f6fcc"
4
+
5
+ match(TitleSlide, Title) do |titles|
6
+
7
+ shadow_layout = nil
8
+ move_x = nil
9
+ move_y = nil
10
+
11
+ titles.delete_pre_draw_proc_by_name(proc_name)
12
+
13
+ titles.add_pre_draw_proc(proc_name) do |title, canvas, x, y, w, h, simulation|
14
+ unless simulation
15
+ if shadow_layout.nil?
16
+ font_size = title.pixel_font_size
17
+ move_x = screen_x(font_size.to_f / screen_size(10))
18
+ move_y = screen_y(font_size.to_f / screen_size(20))
19
+
20
+ shadow_title = title.clone
21
+ shadow_title.font :color => nil
22
+ shadow_layout = canvas.make_layout(shadow_title.markuped_text)
23
+ shadow_layout.set_width(w * Pango::SCALE)
24
+ if title.do_horizontal_centering?
25
+ shadow_layout.set_alignment(Pango::Layout::ALIGN_CENTER)
26
+ end
27
+ end
28
+ args = [shadow_layout, x + move_x, y + move_y, @title_shadow_color]
29
+ canvas.draw_layout(*args)
30
+ end
31
+ [x, y, w, h]
32
+ end
33
+ end
@@ -0,0 +1,228 @@
1
+ # Based on trackball.rb in the Logo demo code:
2
+ # http://ruby-gnome2.sourceforge.jp/hiki.cgi?Logo
3
+ #
4
+ # Original code license is:
5
+ #
6
+ =begin
7
+ trackball.rb
8
+ Implementation of a virtual trackball and vector.
9
+
10
+ Copyright (c) 2004 Masao Mutoh
11
+
12
+ You can redistribute it and/or modify it under the terms of
13
+ the original code license below.
14
+
15
+ Original code license is:
16
+
17
+ /*
18
+ * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
19
+ * ALL RIGHTS RESERVED
20
+ * Permission to use, copy, modify, and distribute this software for
21
+ * any purpose and without fee is hereby granted, provided that the above
22
+ * copyright notice appear in all copies and that both the copyright notice
23
+ * and this permission notice appear in supporting documentation, and that
24
+ * the name of Silicon Graphics, Inc. not be used in advertising
25
+ * or publicity pertaining to distribution of the software without specific,
26
+ * written prior permission.
27
+ *
28
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
29
+ * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
30
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
31
+ * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
32
+ * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
33
+ * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
34
+ * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
35
+ * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
36
+ * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
37
+ * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
38
+ * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
39
+ * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
40
+ *
41
+ * US Government Users Restricted Rights
42
+ * Use, duplication, or disclosure by the Government is subject to
43
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
44
+ * (c)(1)(ii) of the Rights in Technical Data and Computer Software
45
+ * clause at DFARS 252.227-7013 and/or in similar or successor
46
+ * clauses in the FAR or the DOD or NASA FAR Supplement.
47
+ * Unpublished-- rights reserved under the copyright laws of the
48
+ * United States. Contractor/manufacturer is Silicon Graphics,
49
+ * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
50
+ *
51
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
52
+ */
53
+ /*
54
+ * Trackball code:
55
+ *
56
+ * Implementation of a virtual trackball.
57
+ * Implemented by Gavin Bell, lots of ideas from Thant Tessman and
58
+ * the August '88 issue of Siggraph's "Computer Graphics," pp. 121-129.
59
+ *
60
+ * Vector manip code:
61
+ *
62
+ * Original code from:
63
+ * David M. Ciemiewicz, Mark Grossman, Henry Moreton, and Paul Haeberli
64
+ *
65
+ * Much mucking with by:
66
+ * Gavin Bell
67
+ */
68
+ =end
69
+
70
+ module Rabbit
71
+ module TrackBall
72
+
73
+ class Vector < Array
74
+ def vsub(other, range = nil)
75
+ range = [size, other.size].min unless range
76
+ (0...range).inject(Vector.new){|ret, i| ret << self[i] - other[i]}
77
+ end
78
+
79
+ def vcross(other)
80
+ dst = Vector.new
81
+ dst << (self[1] * other[2]) - (self[2] * other[1])
82
+ dst << (self[2] * other[0]) - (self[0] * other[2])
83
+ dst << (self[0] * other[1]) - (self[1] * other[0])
84
+ end
85
+
86
+ def vlength
87
+ Math.sqrt(inject(0){|ret, i| ret + i ** 2})
88
+ end
89
+
90
+ def vscale(div); collect{|v| v *= div}; end
91
+ def vnormal; vscale(1.0 / vlength); end
92
+
93
+ def vdot(other, range = nil)
94
+ range = [size, other.size].min unless range
95
+ (0...range).inject(0.0){|ret, i| ret + self[i] * other[i]}
96
+ end
97
+
98
+ def vadd(other, range = nil)
99
+ range = [size, other.size].min unless range
100
+ (0...range).inject(Vector.new){|ret, i| ret << self[i] + other[i]}
101
+ end
102
+
103
+ #
104
+ # Quaternions always obey: a^2 + b^2 + c^2 + d^2 = 1.0
105
+ # If they don't add up to 1.0, dividing by their magnitued will
106
+ # renormalize them.
107
+ #
108
+ # Note: See the following for more information on quaternions:
109
+ #
110
+ # - Shoemake, K., Animating rotation with quaternion curves, Computer
111
+ # Graphics 19, No 3 (Proc. SIGGRAPH'85), 245-254, 1985.
112
+ # - Pletinckx, D., Quaternion calculus as a basic tool in computer
113
+ # graphics, The Visual Computer 5, 2-13, 1989.
114
+ #
115
+ def normalize_quat
116
+ collect{|q| q = q / inject(0){|ret, i| ret + i ** 2}}
117
+ end
118
+
119
+ # Build a rotation matrix, given a quaternion rotation.
120
+ def build_rotmatrix
121
+ m = []
122
+ m << [1.0 - 2.0 * (self[1] * self[1] + self[2] * self[2]),
123
+ 2.0 * (self[0] * self[1] - self[2] * self[3]),
124
+ 2.0 * (self[2] * self[0] + self[1] * self[3]), 0.0]
125
+ m << [2.0 * (self[0] * self[1] + self[2] * self[3]),
126
+ 1.0 - 2.0 * (self[2] * self[2] + self[0] * self[0]),
127
+ 2.0 * (self[1] * self[2] - self[0] * self[3]), 0.0]
128
+ m << [2.0 * (self[2] * self[0] - self[1] * self[3]),
129
+ 2.0 * (self[1] * self[2] + self[0] * self[3]),
130
+ 1.0 - 2.0 * (self[1] * self[1] + self[0] * self[0]), 0.0]
131
+ m << [0.0, 0.0, 0.0, 1.0]
132
+ m
133
+ end
134
+
135
+ # Given an axis and angle, compute quaternion.
136
+ def axis_to_quat(phi)
137
+ b, c, d = self.vnormal.vscale(Math.sin(phi/2.0))
138
+ Vector.new([b, c, d, Math.cos(phi/2.0)])
139
+ end
140
+
141
+ def collect(&block)
142
+ Vector.new(super)
143
+ end
144
+ end
145
+
146
+ #
147
+ # This size should really be based on the distance from the center of
148
+ # rotation to the point on the object underneath the mouse. That
149
+ # point would then track the mouse as closely as possible. This is a
150
+ # simple example, though, so that is left as an Exercise for the
151
+ # Programmer.
152
+ #
153
+ SIZE = 0.8
154
+
155
+ module_function
156
+ def trackball(p1x, p1y, p2x, p2y)
157
+ if (p1x == p2x && p1y == p2y)
158
+ return Vector.new([0.0, 0.0, 0.0, 1.0])
159
+ end
160
+
161
+ # First, figure out z-coordinates for projection of P1 and P2 to
162
+ # deformed sphere
163
+ p1 = Vector.new([p1x, p1y, tb_project_to_sphere(SIZE, p1x, p1y)])
164
+ p2 = Vector.new([p2x, p2y, tb_project_to_sphere(SIZE, p2x, p2y)])
165
+
166
+ # Now, we want the cross product of P1 and P2
167
+ a = p2.vcross(p1)
168
+
169
+ # Figure out how much to rotate around that axis.
170
+ d = p1.vsub(p2)
171
+ t = d.vlength / (2.0 * SIZE)
172
+
173
+ # Avoid problems with out-of-control values...
174
+ t = 1.0 if (t > 1.0)
175
+ t = -1.0 if (t < -1.0)
176
+ phi = 2.0 * Math.asin(t)
177
+
178
+ a.axis_to_quat(phi)
179
+ end
180
+
181
+ #
182
+ # Project an x,y pair onto a sphere of radius r OR a hyperbolic sheet
183
+ # if we are away from the center of the sphere.
184
+ #
185
+ def tb_project_to_sphere(r, x, y)
186
+ d = Math.sqrt(x * x + y * y)
187
+ if (d < r * 0.70710678118654752440) # Inside sphere
188
+ z = Math.sqrt(r * r - d * d)
189
+ else # On hyperbola
190
+ t = r / 1.41421356237309504880
191
+ z = t * t / d
192
+ end
193
+ z
194
+ end
195
+
196
+ #
197
+ # Given two rotations, e2 and e2, expressed as quaternion rotations,
198
+ # figure out the equivalent single rotation and stuff it into dest.
199
+ #
200
+ # This routine also normalizes the result every RENORM_COUNT times it is
201
+ # called, to keep error from creeping in.
202
+ #
203
+ # NOTE: This routine is written so that q1 or q2 may be the same
204
+ # as dest (or each other).
205
+ #
206
+
207
+ RENORM_COUNT = 97
208
+
209
+ @@quats_count = 0
210
+ def add_quats(q1, q2)
211
+ t1 = q1.vscale(q2[3])
212
+ t2 = q2.vscale(q1[3])
213
+ t3 = q2.vcross(q1)
214
+ tf = t1.vadd(t2)
215
+ tf = t3.vadd(tf)
216
+
217
+ tf[3] = q1[3] * q2[3] - q1.vdot(q2, 3)
218
+
219
+ @@quats_count += 1
220
+ ret = tf
221
+ if (@@quats_count > RENORM_COUNT)
222
+ @@quats_count = 0
223
+ ret = tf.normalize_quat
224
+ end
225
+ ret
226
+ end
227
+ end
228
+ end