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,173 @@
1
+ require 'forwardable'
2
+
3
+ require 'rabbit/renderer/base'
4
+ require 'rabbit/renderer/pixmap'
5
+ require 'rabbit/renderer/display/drawing-area-base'
6
+
7
+ module Rabbit
8
+ module Renderer
9
+ module Display
10
+ class CommentDrawingArea
11
+ include DrawingAreaBase
12
+
13
+ extend Forwardable
14
+
15
+ def_delegators(:@pixmap, :foreground, :background)
16
+ def_delegators(:@pixmap, :foreground=, :background=)
17
+ def_delegators(:@pixmap, :background_image, :background_image=)
18
+
19
+ def_delegators(:@pixmap, :prepare_renderer, :finish_renderer)
20
+
21
+ def_delegators(:@pixmap, :draw_slide, :draw_line, :draw_rectangle)
22
+ def_delegators(:@pixmap, :draw_arc, :draw_circle, :draw_layout)
23
+ def_delegators(:@pixmap, :draw_arc_by_radius, :draw_circle_by_radius)
24
+ def_delegators(:@pixmap, :draw_pixbuf, :draw_polygon)
25
+ def_delegators(:@pixmap, :draw_rounded_rectangle)
26
+
27
+ def_delegators(:@pixmap, :draw_cube, :draw_sphere, :draw_cone)
28
+ def_delegators(:@pixmap, :draw_torus, :draw_tetrahedron)
29
+ def_delegators(:@pixmap, :draw_octahedron, :draw_dodecahedron)
30
+ def_delegators(:@pixmap, :draw_icosahedron, :draw_teapot)
31
+
32
+ def_delegators(:@pixmap, :gl_compile, :gl_call_list)
33
+ def_delegators(:@pixmap, :gl_supported?)
34
+
35
+ def_delegators(:@pixmap, :filename, :filename=)
36
+
37
+ def_delegators(:@pixmap, :x_dpi, :y_dpi)
38
+
39
+ attr_accessor :direction
40
+
41
+ def width
42
+ original_height
43
+ end
44
+
45
+ def height
46
+ original_width
47
+ end
48
+
49
+ def initialize(canvas)
50
+ super
51
+ clear_pixbufs
52
+ init_pixmap(1, 1)
53
+ @direction = :right
54
+ end
55
+
56
+ def clear_keys
57
+ end
58
+
59
+ def update_menu
60
+ end
61
+
62
+ def post_apply_theme
63
+ clear_pixbufs
64
+ super
65
+ end
66
+
67
+ def toggle_comment_frame
68
+ end
69
+
70
+ def toggle_comment_view
71
+ end
72
+
73
+ def showing_comment_frame?
74
+ false
75
+ end
76
+
77
+ def showing_comment_view?
78
+ false
79
+ end
80
+
81
+ def comment_frame_available?
82
+ false
83
+ end
84
+
85
+ def comment_view_available?
86
+ false
87
+ end
88
+
89
+ def update_comment(*args, &block)
90
+ end
91
+
92
+ def post_init_gui
93
+ end
94
+
95
+ def post_toggle_index_mode
96
+ clear_pixbufs
97
+ super
98
+ end
99
+
100
+ private
101
+ def add_widget_to_window(window)
102
+ window.add(@area)
103
+ end
104
+
105
+ def remove_widget_from_window(window)
106
+ window.remove(@area)
107
+ end
108
+
109
+ def attach_menu(window)
110
+ # do nothing
111
+ end
112
+
113
+ def detach_menu(window)
114
+ # do nothing
115
+ end
116
+
117
+ def attach_key(window)
118
+ # do nothing
119
+ end
120
+
121
+ def detach_key(window)
122
+ # do nothing
123
+ end
124
+
125
+ def init_drawing_area
126
+ super
127
+ @area.can_focus = false
128
+ end
129
+
130
+ def init_color
131
+ super
132
+ @fg_gc = Gdk::GC.new(@drawable)
133
+ end
134
+
135
+ def init_pixmap(w=width, h=height)
136
+ @pixmap = Renderer::Pixmap.new(@canvas, w, h)
137
+ @pixmap.setup_event(self)
138
+ end
139
+
140
+ def clear_pixbuf(slide=nil)
141
+ @pixbufs.delete(@pixmap[slide || @canvas.current_slide])
142
+ end
143
+
144
+ def clear_pixbufs
145
+ @pixbufs = {}
146
+ end
147
+
148
+ def slide_to_pixbuf(slide)
149
+ pixbuf = @pixmap.to_pixbuf(slide)
150
+ pixbuf.rotate(Gdk::Pixbuf::ROTATE_CLOCKWISE)
151
+ end
152
+
153
+ def draw_current_slide
154
+ slide = @canvas.current_slide
155
+ if slide
156
+ unless @pixbufs.has_key?(slide)
157
+ @pixmap.width = width
158
+ @pixmap.height = height
159
+ @pixbufs[slide] = slide_to_pixbuf(slide)
160
+ end
161
+ @drawable.draw_pixbuf(@fg_gc, @pixbufs[slide],
162
+ 0, 0, 0, 0, -1, -1,
163
+ Gdk::RGB::DITHER_NORMAL, 0, 0)
164
+ end
165
+ end
166
+
167
+ def init_renderer(drawable)
168
+ init_pixmap(*drawable.size)
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
@@ -0,0 +1,194 @@
1
+ require 'rabbit/comment-canvas'
2
+ require "rabbit/comment/log"
3
+
4
+ module Rabbit
5
+ module Renderer
6
+ module Display
7
+ module Comment
8
+ def initialize(*args, &block)
9
+ super
10
+ @comment_initialized = false
11
+ init_comment_log
12
+ end
13
+
14
+ def showing_comment_frame?
15
+ @comment_frame and @comment_frame.visible?
16
+ end
17
+
18
+ def showing_comment_view?
19
+ @comment_log.showing?
20
+ end
21
+
22
+ def comment_frame_available?
23
+ true
24
+ end
25
+
26
+ def comment_view_available?
27
+ true
28
+ end
29
+
30
+ def toggle_comment_frame
31
+ ensure_comment
32
+ if showing_comment_frame?
33
+ @comment_frame.hide
34
+ else
35
+ adjust_comment_frame
36
+ @comment_frame.show
37
+ end
38
+ update_menu
39
+ end
40
+
41
+ def toggle_comment_view
42
+ ensure_comment
43
+ if showing_comment_view?
44
+ @comment_log.hide
45
+ @comment_view_frame.hide
46
+ else
47
+ adjust_comment_view
48
+ @comment_log.show
49
+ @comment_view_frame.show
50
+ @comment_view_canvas.parse(@canvas.comment_source)
51
+ @comment_view_canvas.move_to_last
52
+ end
53
+ adjust_comment_frame
54
+ end
55
+
56
+ def update_comment(source, &block)
57
+ ensure_comment
58
+ error_occurred = parse_comment(source, &block)
59
+ unless error_occurred
60
+ @comment_canvas.move_to_last
61
+ @comment_log.reset(@comment_canvas)
62
+ if @comment_view_frame.visible?
63
+ @comment_view_frame.parse(source)
64
+ @comment_view_canvas.move_to_last
65
+ end
66
+ end
67
+ end
68
+
69
+ def post_init_gui
70
+ super
71
+ @comment_log.hide
72
+ @comment_view_frame.hide if @comment_view_frame
73
+ end
74
+
75
+ private
76
+ def add_widget_to_window(window)
77
+ super
78
+ @vbox.pack_end(@comment_log.widget, false, false, 0)
79
+ init_comment_view_canvas
80
+ init_comment_view_frame
81
+ @hbox.pack_start(@comment_view_frame.window, false, false, 0)
82
+ end
83
+
84
+ def parse_comment(source)
85
+ error_occurred = false
86
+ @comment_canvas.parse(source) do |error|
87
+ error_occurred = true
88
+ if block_given?
89
+ yield(error)
90
+ else
91
+ @comment_canvas.logger.warn(error)
92
+ end
93
+ end
94
+ error_occurred
95
+ end
96
+
97
+ def ensure_comment
98
+ unless @comment_initialized
99
+ init_comment
100
+ @comment_initialized = true
101
+ end
102
+ end
103
+
104
+ def init_comment
105
+ init_comment_canvas
106
+ init_comment_frame
107
+ @comment_canvas.parse(@canvas.comment_source)
108
+ end
109
+
110
+ def init_comment_frame
111
+ @comment_frame = Frame.new(@comment_canvas.logger, @comment_canvas)
112
+ w, h = suggested_comment_frame_size
113
+ @comment_frame.init_gui(w, h, false, Gtk::Window::POPUP)
114
+ @comment_frame.hide
115
+ end
116
+
117
+ def init_comment_canvas
118
+ @comment_canvas = Canvas.new(@canvas.logger, DrawingArea)
119
+ @comment_canvas.use_gl = @canvas.use_gl?
120
+ end
121
+
122
+ def init_comment_view_frame
123
+ args = [@comment_view_canvas.logger, @comment_view_canvas]
124
+ @comment_view_frame = EmbedFrame.new(*args)
125
+ @comment_view_frame.init_gui(-1, -1, false)
126
+ @comment_view_frame.hide
127
+ end
128
+
129
+ def init_comment_view_canvas
130
+ @comment_view_canvas = CommentCanvas.new(@canvas.logger,
131
+ CommentDrawingArea)
132
+ @comment_view_canvas.saved_image_base_name =
133
+ @canvas.saved_image_base_name
134
+ @comment_view_canvas.filename = @canvas.filename
135
+ @comment_view_canvas.slides_per_page = @canvas.slides_per_page
136
+ @comment_view_canvas.use_gl = @canvas.use_gl?
137
+ end
138
+
139
+ def init_comment_log
140
+ @comment_log = Rabbit::Comment::Log.new
141
+ end
142
+
143
+ def adjust_comment_frame(x=nil, y=nil, w=nil, h=nil)
144
+ if @comment_initialized
145
+ w, h = suggested_comment_frame_size(w, h)
146
+ @comment_frame.window.set_size_request(w, h)
147
+ Utils.move_to_bottom_left(@window, @comment_frame.window)
148
+ end
149
+ end
150
+
151
+ def adjust_comment_view(x=nil, y=nil, w=nil, h=nil)
152
+ ww, wh = suggested_comment_log_window_size(w, h)
153
+ @comment_log.widget.set_size_request(ww, wh)
154
+ begin
155
+ header_height = @comment_log.header_height
156
+ rescue TypeError
157
+ header_height = nil
158
+ end
159
+ if header_height
160
+ text_size = (wh - header_height) * 0.5
161
+ else
162
+ text_size = wh * 0.4
163
+ end
164
+ @comment_log.font_size = text_size * Pango::SCALE
165
+
166
+ fw, fh = suggested_comment_view_frame_size(w, h)
167
+ @comment_view_frame.set_size_request(fw, fh)
168
+ end
169
+
170
+ def suggested_comment_frame_size(w=nil, h=nil)
171
+ w ||= @canvas.width
172
+ h ||= @canvas.height
173
+ [w / 10, h / 10]
174
+ end
175
+
176
+ def suggested_comment_log_window_size(w=nil, h=nil)
177
+ h ||= @canvas.height
178
+ [-1, h / 10]
179
+ end
180
+
181
+ def suggested_comment_view_frame_size(w=nil, h=nil)
182
+ w ||= @canvas.width
183
+ [w / 10, -1]
184
+ end
185
+
186
+ def configured(x, y, w, h)
187
+ super
188
+ adjust_comment_frame(x, y, w, h)
189
+ adjust_comment_view(x, y, w, h)
190
+ end
191
+ end
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,34 @@
1
+ require "rabbit/cursor-manager"
2
+
3
+ module Rabbit
4
+ module Renderer
5
+ module Display
6
+ module Cursor
7
+ def initialize(*args, &block)
8
+ super
9
+ init_cursor
10
+ end
11
+
12
+ private
13
+ def init_cursor
14
+ @cursor_manager = CursorManager.new
15
+ end
16
+
17
+ def keep_cursor(name)
18
+ @cursor_manager.keep(name)
19
+ end
20
+
21
+ def restore_cursor(name)
22
+ @cursor_manager.restore(@drawable, name)
23
+ end
24
+
25
+ def update_cursor(cursor_type, update_current_cursor=false)
26
+ @cursor_manager.current = cursor_type if update_current_cursor
27
+ cursor_type = :pencil if @graffiti_mode
28
+ @cursor_manager.update(@drawable, cursor_type)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
@@ -0,0 +1,395 @@
1
+ require "rabbit/renderer/display/drawing-area-primitive"
2
+ require 'rabbit/renderer/display/menu'
3
+ require "rabbit/renderer/display/progress"
4
+ require "rabbit/renderer/display/mask"
5
+ require "rabbit/renderer/display/search"
6
+ require "rabbit/renderer/display/gesture"
7
+ require "rabbit/renderer/display/graffiti"
8
+ require "rabbit/renderer/display/menu"
9
+ require "rabbit/renderer/display/button-handler"
10
+ require "rabbit/renderer/display/key-handler"
11
+ require "rabbit/renderer/display/info"
12
+ require "rabbit/renderer/display/spotlight"
13
+ require "rabbit/renderer/display/magnifier"
14
+
15
+ module Rabbit
16
+ module Renderer
17
+ module Display
18
+ module DrawingAreaBase
19
+ include DrawingAreaPrimitive
20
+
21
+ include Menu
22
+ include Graffiti
23
+ include Mask
24
+ include Progress
25
+ include Search
26
+ include Gesture
27
+ include KeyHandler
28
+ include ButtonHandler
29
+ include Info
30
+ include Spotlight
31
+ include Magnifier
32
+
33
+ def initialize(canvas)
34
+ @caching = nil
35
+ @need_reload_theme = false
36
+ super
37
+ end
38
+
39
+ def post_apply_theme
40
+ if @need_reload_theme
41
+ @need_reload_theme = false
42
+ reload_theme
43
+ else
44
+ super
45
+ update_menu
46
+ end
47
+ end
48
+
49
+ def post_move(old_index, index)
50
+ update_title
51
+ reset_adjustment
52
+ clear_graffiti
53
+ # toggle_graffiti_mode if @graffiti_mode
54
+ super
55
+ end
56
+
57
+ def post_fullscreen
58
+ super
59
+ update_menu
60
+ end
61
+
62
+ def post_unfullscreen
63
+ super
64
+ update_menu
65
+ end
66
+
67
+ def post_iconify
68
+ super
69
+ update_menu
70
+ end
71
+
72
+ def pre_parse
73
+ super
74
+ update_menu
75
+ end
76
+
77
+ def post_parse
78
+ super
79
+ clear_button_handler
80
+ update_title
81
+ update_menu
82
+ if @need_reload_theme
83
+ @need_reload_theme = false
84
+ reload_theme
85
+ end
86
+ end
87
+
88
+ def index_mode_on
89
+ super
90
+ end
91
+
92
+ def index_mode_off
93
+ super
94
+ end
95
+
96
+ def pre_toggle_index_mode
97
+ super
98
+ Utils.process_pending_events
99
+ end
100
+
101
+ def post_toggle_index_mode
102
+ @canvas.activate("ClearGraffiti")
103
+ update_menu
104
+ update_title
105
+ super
106
+ end
107
+
108
+ def pre_print(slide_size)
109
+ start_progress(slide_size)
110
+ end
111
+
112
+ def printing(i)
113
+ update_progress(i)
114
+ continue = !@canvas.quitted?
115
+ continue
116
+ end
117
+
118
+ def post_print(canceled)
119
+ end_progress
120
+ end
121
+
122
+ def pre_to_pixbuf(slide_size)
123
+ super
124
+ start_progress(slide_size)
125
+ @pixbufing_size = [width, height]
126
+ end
127
+
128
+ def to_pixbufing(i)
129
+ update_progress(i)
130
+ continue = @pixbufing_size == [width, height] &&
131
+ !@canvas.quitted? && !@canvas.applying?
132
+ super or continue
133
+ end
134
+
135
+ def post_to_pixbuf(canceled)
136
+ super
137
+ end_progress
138
+ end
139
+
140
+ def cache_all_slides
141
+ pre_cache_all_slides(@canvas.slide_size)
142
+ canceled = false
143
+ @canvas.slides.each_with_index do |slide, i|
144
+ @canvas.change_current_index(i) do
145
+ compile_slide(slide)
146
+ end
147
+ unless caching_all_slides(i)
148
+ canceled = true
149
+ break
150
+ end
151
+ end
152
+ post_cache_all_slides(canceled)
153
+ end
154
+
155
+ def pre_cache_all_slides(slide_size)
156
+ @caching = true
157
+ @caching_size = [width, height]
158
+ start_progress(slide_size)
159
+ end
160
+
161
+ def caching_all_slides(i)
162
+ update_progress(i)
163
+ continue = @caching_size == [width, height] &&
164
+ !@canvas.quitted? && !@canvas.applying?
165
+ continue
166
+ end
167
+
168
+ def post_cache_all_slides(canceled)
169
+ end_progress
170
+ @caching = false
171
+ return if @canvas.quitted?
172
+ if canceled
173
+ reload_theme
174
+ else
175
+ @area.queue_draw
176
+ end
177
+ end
178
+
179
+ def confirm(message)
180
+ confirm_dialog(message) == Gtk::MessageDialog::RESPONSE_OK
181
+ end
182
+
183
+ def reload_theme(&callback)
184
+ if @canvas.applying?
185
+ @need_reload_theme = true
186
+ else
187
+ super
188
+ end
189
+ end
190
+
191
+ def reload_source(&callback)
192
+ if @canvas.need_reload_source?
193
+ callback ||= Utils.process_pending_events_proc
194
+ super(callback)
195
+ end
196
+ end
197
+
198
+ def attach_to(window)
199
+ super
200
+
201
+ init_menu
202
+ init_gesture_actions
203
+ add_widget_to_window(@window)
204
+ widget.show
205
+ attach_menu(@window)
206
+ attach_key(@window)
207
+ end
208
+
209
+ def detach
210
+ detach_key(@window)
211
+ detach_menu(@window)
212
+ widget.hide
213
+ unless @window.destroyed?
214
+ remove_widget_from_window(@window)
215
+ @window.signal_handler_disconnect(@configure_signal_id)
216
+ end
217
+
218
+ super
219
+ end
220
+
221
+ def toggle_whiteout
222
+ super
223
+ @area.queue_draw
224
+ end
225
+
226
+ def toggle_blackout
227
+ super
228
+ @area.queue_draw
229
+ end
230
+
231
+ def reset_adjustment
232
+ super
233
+ @area.queue_draw
234
+ end
235
+
236
+ def post_init_gui
237
+ end
238
+
239
+ private
240
+ def add_widget_to_window(window)
241
+ @hbox = Gtk::HBox.new
242
+ @vbox = Gtk::VBox.new
243
+ @vbox.pack_start(@area, true, true, 0)
244
+ @hbox.pack_end(@vbox, true, true, 0)
245
+ window.add(@hbox)
246
+ @hbox.show
247
+ @vbox.show
248
+ end
249
+
250
+ def remove_widget_from_window(window)
251
+ window.remove(@hbox)
252
+ @hbox = @vbox = nil
253
+ end
254
+
255
+ def init_drawing_area
256
+ super
257
+ event_mask = Gdk::Event::BUTTON_PRESS_MASK
258
+ event_mask |= Gdk::Event::BUTTON_RELEASE_MASK
259
+ event_mask |= Gdk::Event::BUTTON1_MOTION_MASK
260
+ event_mask |= Gdk::Event::BUTTON2_MOTION_MASK
261
+ event_mask |= Gdk::Event::BUTTON3_MOTION_MASK
262
+ @area.add_events(event_mask)
263
+ set_key_press_event(@area)
264
+ set_button_event(@area)
265
+ set_motion_notify_event
266
+ set_scroll_event
267
+ end
268
+
269
+ def mapped(widget)
270
+ super
271
+ @white = Gdk::GC.new(@drawable)
272
+ @white.set_rgb_fg_color(Color.parse("white").to_gdk_color)
273
+ @black = Gdk::GC.new(@drawable)
274
+ @black.set_rgb_fg_color(Color.parse("black").to_gdk_color)
275
+ end
276
+
277
+ def set_motion_notify_event
278
+ @area.signal_connect("motion_notify_event") do |widget, event|
279
+ call_hook_procs(@motion_notify_hook_procs, event)
280
+ end
281
+ end
282
+
283
+ def exposed(widget, event)
284
+ reload_source unless @caching
285
+
286
+ if whiteouting?
287
+ @drawable.draw_rectangle(@white, true, 0, 0,
288
+ original_width, original_height)
289
+ elsif blackouting?
290
+ @drawable.draw_rectangle(@black, true, 0, 0,
291
+ original_width, original_height)
292
+ else
293
+ super
294
+ draw_graffiti
295
+ draw_gesture
296
+ draw_spotlight
297
+ end
298
+ true
299
+ end
300
+
301
+ def draw_slide(slide, simulation, &block)
302
+ super do |*args|
303
+ block.call(*args)
304
+ magnify {block.call(*args)} unless simulation
305
+ end
306
+ end
307
+
308
+ def draw_current_slide_pixbuf(pixbuf)
309
+ width, height = pixbuf.width, pixbuf.height
310
+ x = @adjustment_x * width
311
+ y = @adjustment_y * height
312
+ @drawable.draw_pixbuf(@foreground, pixbuf,
313
+ x, y, 0, 0, width, height,
314
+ Gdk::RGB::DITHER_NORMAL, 0, 0)
315
+ if @adjustment_x != 0 or @adjustment_y != 0
316
+ draw_next_slide
317
+ end
318
+ end
319
+
320
+ def draw_next_slide
321
+ @canvas.change_current_index(@canvas.current_index + 1) do
322
+ draw_current_slide do |pixbuf|
323
+ draw_next_slide_pixbuf(pixbuf)
324
+ end
325
+ end
326
+ end
327
+
328
+ def draw_next_slide_pixbuf(pixbuf)
329
+ width, height = pixbuf.size
330
+ adjustment_width = @adjustment_x * width
331
+ adjustment_height = @adjustment_y * height
332
+ src_x = src_y = dest_x = dest_y = 0
333
+ src_width = width
334
+ src_height = height
335
+
336
+ if adjustment_width > 0
337
+ dest_x = width - adjustment_width
338
+ src_width = adjustment_width
339
+ elsif adjustment_width < 0
340
+ src_x = width + adjustment_width
341
+ src_width = -adjustment_width
342
+ end
343
+
344
+ if adjustment_height > 0
345
+ dest_y = height - adjustment_height
346
+ src_height = adjustment_height
347
+ elsif adjustment_height < 0
348
+ src_y = height + adjustment_height
349
+ src_height = -adjustment_height
350
+ end
351
+
352
+ @drawable.draw_pixbuf(@foreground, pixbuf, src_x, src_y,
353
+ dest_x, dest_y, src_width, src_height,
354
+ Gdk::RGB::DITHER_NORMAL, 0, 0)
355
+ end
356
+
357
+ def configured_after(widget, event)
358
+ @mask = nil
359
+ set_hole
360
+ super unless @caching
361
+ false
362
+ end
363
+
364
+ def set_scroll_event
365
+ @area.signal_connect("scroll_event") do |widget, event|
366
+ handled = call_hook_procs(@scroll_hook_procs, event)
367
+ unless handled
368
+ handled = true
369
+ case event.direction
370
+ when Gdk::EventScroll::Direction::UP
371
+ @canvas.activate("PreviousSlide")
372
+ when Gdk::EventScroll::Direction::DOWN
373
+ @canvas.activate("NextSlide")
374
+ else
375
+ handled = false
376
+ end
377
+ end
378
+ handled
379
+ end
380
+ end
381
+
382
+ def confirm_dialog(message)
383
+ flags = Gtk::Dialog::MODAL | Gtk::Dialog::DESTROY_WITH_PARENT
384
+ dialog_type = Gtk::MessageDialog::INFO
385
+ buttons = Gtk::MessageDialog::BUTTONS_OK_CANCEL
386
+ dialog = Gtk::MessageDialog.new(nil, flags, dialog_type,
387
+ buttons, message)
388
+ result = dialog.run
389
+ dialog.destroy
390
+ result
391
+ end
392
+ end
393
+ end
394
+ end
395
+ end