rabbit 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. data/Gemfile +16 -0
  2. data/README +1 -0
  3. data/Rakefile +161 -53
  4. data/TODO +2 -0
  5. data/bin/rabbit +78 -34
  6. data/bin/rabbit-command +16 -3
  7. data/bin/rabbiter +74 -73
  8. data/bin/rabrick +17 -4
  9. data/bin/rabwii +77 -0
  10. data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
  11. data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
  12. data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
  13. data/doc/_config.yml +2 -0
  14. data/doc/_layouts/en.html +37 -0
  15. data/doc/_layouts/ja.html +37 -0
  16. data/doc/_layouts/skeleton.html +91 -0
  17. data/doc/_plugins/converters/hiki.rb +27 -0
  18. data/doc/_plugins/converters/rd.rb +73 -0
  19. data/doc/_site/css/jquery-ui/themes/ui-lightness.css +573 -0
  20. data/doc/_site/css/rabbit.css +247 -0
  21. data/doc/_site/en/development.html +140 -0
  22. data/doc/_site/en/faq.html +117 -0
  23. data/doc/_site/en/hiki.html +420 -0
  24. data/doc/_site/en/how-to-make/hiki.html +113 -0
  25. data/doc/_site/en/how-to-make/index.html +135 -0
  26. data/doc/_site/en/how-to-make/pdf.html +111 -0
  27. data/doc/_site/en/how-to-make/rd.html +151 -0
  28. data/doc/_site/en/how-to-make/theme.html +249 -0
  29. data/doc/_site/en/index.html +343 -0
  30. data/doc/_site/en/install/homebrew.html +279 -0
  31. data/doc/_site/en/install/index.html +144 -0
  32. data/doc/_site/en/install/macports.html +158 -0
  33. data/doc/_site/en/install/windows.html +200 -0
  34. data/doc/_site/en/news.html +928 -0
  35. data/doc/_site/en/rd.html +555 -0
  36. data/doc/_site/en/sample/hiki/rabbit.html +380 -0
  37. data/doc/_site/en/sample/index.html +117 -0
  38. data/doc/_site/en/sample/rd/rabbit.html +572 -0
  39. data/doc/_site/en/slides.html +113 -0
  40. data/doc/_site/en/usage.html +445 -0
  41. data/doc/_site/en/users.html +127 -0
  42. data/doc/_site/favicon.ico +0 -0
  43. data/doc/_site/favicon.png +0 -0
  44. data/doc/_site/images/background-sample.svg +290 -0
  45. data/doc/_site/images/background.png +0 -0
  46. data/doc/_site/images/background.svg +131 -0
  47. data/doc/_site/images/hare-and-tortoise.png +0 -0
  48. data/doc/_site/images/hare-and-tortoise.svg +541 -0
  49. data/doc/_site/images/jp.png +0 -0
  50. data/{sample/momo/usako/usako_psd_100.png → doc/_site/images/lavie-icon.png} +0 -0
  51. data/doc/_site/images/lavie.png +0 -0
  52. data/doc/_site/images/screenshots/en/blue-circle-raw.png +0 -0
  53. data/doc/_site/images/screenshots/en/blue-circle.png +0 -0
  54. data/doc/_site/images/screenshots/en/clear-blue-raw.png +0 -0
  55. data/doc/_site/images/screenshots/en/clear-blue.png +0 -0
  56. data/doc/_site/images/screenshots/en/cozmixng-raw.png +0 -0
  57. data/doc/_site/images/screenshots/en/cozmixng.png +0 -0
  58. data/doc/_site/images/screenshots/en/dark-gradation-raw.png +0 -0
  59. data/doc/_site/images/screenshots/en/dark-gradation.png +0 -0
  60. data/doc/_site/images/screenshots/en/day-white-raw.png +0 -0
  61. data/doc/_site/images/screenshots/en/day-white.png +0 -0
  62. data/doc/_site/images/screenshots/en/debian-raw.png +0 -0
  63. data/doc/_site/images/screenshots/en/debian.png +0 -0
  64. data/doc/_site/images/screenshots/en/green-circle-raw.png +0 -0
  65. data/doc/_site/images/screenshots/en/green-circle.png +0 -0
  66. data/doc/_site/images/screenshots/en/night-black-raw.png +0 -0
  67. data/doc/_site/images/screenshots/en/night-black.png +0 -0
  68. data/doc/_site/images/screenshots/en/rabbit-raw.png +0 -0
  69. data/doc/_site/images/screenshots/en/rabbit.png +0 -0
  70. data/doc/_site/images/screenshots/en/ranguba-raw.png +0 -0
  71. data/doc/_site/images/screenshots/en/ranguba.png +0 -0
  72. data/doc/_site/images/screenshots/en/red-frame-raw.png +0 -0
  73. data/doc/_site/images/screenshots/en/red-frame.png +0 -0
  74. data/doc/_site/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  75. data/doc/_site/images/screenshots/en/ruby-gnome2.png +0 -0
  76. data/doc/_site/images/screenshots/ja/blue-circle-raw.png +0 -0
  77. data/doc/_site/images/screenshots/ja/blue-circle.png +0 -0
  78. data/doc/_site/images/screenshots/ja/clear-blue-raw.png +0 -0
  79. data/doc/_site/images/screenshots/ja/clear-blue.png +0 -0
  80. data/doc/_site/images/screenshots/ja/cozmixng-raw.png +0 -0
  81. data/doc/_site/images/screenshots/ja/cozmixng.png +0 -0
  82. data/doc/_site/images/screenshots/ja/dark-gradation-raw.png +0 -0
  83. data/doc/_site/images/screenshots/ja/dark-gradation.png +0 -0
  84. data/doc/_site/images/screenshots/ja/day-white-raw.png +0 -0
  85. data/doc/_site/images/screenshots/ja/day-white.png +0 -0
  86. data/doc/_site/images/screenshots/ja/debian-raw.png +0 -0
  87. data/doc/_site/images/screenshots/ja/debian.png +0 -0
  88. data/doc/_site/images/screenshots/ja/green-circle-raw.png +0 -0
  89. data/doc/_site/images/screenshots/ja/green-circle.png +0 -0
  90. data/doc/_site/images/screenshots/ja/night-black-raw.png +0 -0
  91. data/doc/_site/images/screenshots/ja/night-black.png +0 -0
  92. data/doc/_site/images/screenshots/ja/rabbit-raw.png +0 -0
  93. data/doc/_site/images/screenshots/ja/rabbit.png +0 -0
  94. data/doc/_site/images/screenshots/ja/ranguba-raw.png +0 -0
  95. data/doc/_site/images/screenshots/ja/ranguba.png +0 -0
  96. data/doc/_site/images/screenshots/ja/red-frame-raw.png +0 -0
  97. data/doc/_site/images/screenshots/ja/red-frame.png +0 -0
  98. data/doc/_site/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  99. data/doc/_site/images/screenshots/ja/ruby-gnome2.png +0 -0
  100. data/doc/_site/images/us.png +0 -0
  101. data/doc/_site/index.html.en +122 -0
  102. data/doc/_site/index.html.ja +122 -0
  103. data/doc/_site/ja/about.html +120 -0
  104. data/doc/_site/ja/development.html +141 -0
  105. data/doc/_site/ja/faq.html +232 -0
  106. data/doc/_site/ja/hiki.html +416 -0
  107. data/doc/_site/ja/how-to-make/hiki.html +113 -0
  108. data/doc/_site/ja/how-to-make/index.html +135 -0
  109. data/doc/_site/ja/how-to-make/pdf.html +112 -0
  110. data/doc/_site/ja/how-to-make/rd.html +161 -0
  111. data/doc/_site/ja/how-to-make/theme.html +254 -0
  112. data/doc/_site/ja/index.html +351 -0
  113. data/doc/_site/ja/install/homebrew.html +279 -0
  114. data/doc/_site/ja/install/index.html +146 -0
  115. data/doc/_site/ja/install/macports.html +177 -0
  116. data/doc/_site/ja/install/windows.html +200 -0
  117. data/doc/_site/ja/news.html +926 -0
  118. data/doc/_site/ja/rd.html +565 -0
  119. data/doc/_site/ja/sample/hiki/rabbit.html +390 -0
  120. data/doc/_site/ja/sample/index.html +117 -0
  121. data/doc/_site/ja/sample/rd/rabbit.html +580 -0
  122. data/doc/_site/ja/slides.html +142 -0
  123. data/doc/_site/ja/usage.html +458 -0
  124. data/doc/_site/ja/users.html +331 -0
  125. data/doc/_site/javascripts/jquery-ui.js +11544 -0
  126. data/doc/_site/javascripts/jquery.js +7179 -0
  127. data/doc/_site/screenshot.en.rab +10 -0
  128. data/doc/_site/screenshot.ja.rab +10 -0
  129. data/doc/css/jquery-ui/themes/ui-lightness.css +573 -0
  130. data/doc/css/rabbit.css +247 -0
  131. data/doc/en/development.rd +50 -0
  132. data/doc/en/faq.rd +18 -0
  133. data/doc/en/hiki.hiki +325 -0
  134. data/doc/en/how-to-make/hiki.hiki +9 -0
  135. data/doc/en/how-to-make/index.rd +25 -0
  136. data/doc/en/how-to-make/pdf.rd +7 -0
  137. data/doc/en/how-to-make/rd.rd +66 -0
  138. data/doc/en/how-to-make/theme.rd +135 -0
  139. data/doc/en/index.rd +276 -0
  140. data/doc/en/install/homebrew.rd +196 -0
  141. data/doc/en/install/index.rd +63 -0
  142. data/doc/en/install/macports.rd +77 -0
  143. data/doc/en/install/windows.rd +103 -0
  144. data/{NEWS.en → doc/en/news.rd} +78 -3
  145. data/doc/en/rd.rd +481 -0
  146. data/doc/en/sample/hiki/rabbit.hiki +389 -0
  147. data/doc/en/sample/index.rd +11 -0
  148. data/doc/en/sample/rd/rabbit.rd +467 -0
  149. data/doc/en/slides.rd +7 -0
  150. data/doc/en/usage.rd +365 -0
  151. data/doc/en/users.rd +29 -0
  152. data/doc/favicon.ico +0 -0
  153. data/doc/favicon.png +0 -0
  154. data/doc/images/background-sample.svg +290 -0
  155. data/doc/images/background.png +0 -0
  156. data/doc/images/background.svg +131 -0
  157. data/doc/images/hare-and-tortoise.png +0 -0
  158. data/doc/images/hare-and-tortoise.svg +541 -0
  159. data/doc/images/jp.png +0 -0
  160. data/doc/images/lavie-icon.png +0 -0
  161. data/doc/images/lavie.png +0 -0
  162. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  163. data/doc/images/screenshots/en/blue-circle.png +0 -0
  164. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  165. data/doc/images/screenshots/en/clear-blue.png +0 -0
  166. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  167. data/doc/images/screenshots/en/cozmixng.png +0 -0
  168. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  169. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  170. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  171. data/doc/images/screenshots/en/day-white.png +0 -0
  172. data/doc/images/screenshots/en/debian-raw.png +0 -0
  173. data/doc/images/screenshots/en/debian.png +0 -0
  174. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  175. data/doc/images/screenshots/en/green-circle.png +0 -0
  176. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  177. data/doc/images/screenshots/en/night-black.png +0 -0
  178. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  179. data/doc/images/screenshots/en/rabbit.png +0 -0
  180. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  181. data/doc/images/screenshots/en/ranguba.png +0 -0
  182. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  183. data/doc/images/screenshots/en/red-frame.png +0 -0
  184. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  185. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  186. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  187. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  188. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  189. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  190. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  191. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  192. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  193. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  194. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  195. data/doc/images/screenshots/ja/day-white.png +0 -0
  196. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  197. data/doc/images/screenshots/ja/debian.png +0 -0
  198. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  199. data/doc/images/screenshots/ja/green-circle.png +0 -0
  200. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  201. data/doc/images/screenshots/ja/night-black.png +0 -0
  202. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  203. data/doc/images/screenshots/ja/rabbit.png +0 -0
  204. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  205. data/doc/images/screenshots/ja/ranguba.png +0 -0
  206. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  207. data/doc/images/screenshots/ja/red-frame.png +0 -0
  208. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  209. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  210. data/doc/images/us.png +0 -0
  211. data/doc/index.html.en +48 -0
  212. data/doc/index.html.ja +48 -0
  213. data/doc/ja/about.rd +21 -0
  214. data/doc/ja/development.rd +49 -0
  215. data/doc/ja/faq.rd +177 -0
  216. data/doc/ja/hiki.hiki +319 -0
  217. data/doc/ja/how-to-make/hiki.hiki +9 -0
  218. data/doc/ja/how-to-make/index.rd +25 -0
  219. data/doc/ja/how-to-make/pdf.rd +8 -0
  220. data/doc/ja/how-to-make/rd.rd +83 -0
  221. data/doc/ja/how-to-make/theme.rd +142 -0
  222. data/doc/ja/index.rd +283 -0
  223. data/doc/ja/install/homebrew.rd +196 -0
  224. data/doc/ja/install/index.rd +65 -0
  225. data/doc/ja/install/macports.rd +105 -0
  226. data/doc/ja/install/windows.rd +100 -0
  227. data/{NEWS.ja → doc/ja/news.rd} +84 -3
  228. data/doc/ja/rd.rd +489 -0
  229. data/doc/ja/sample/hiki/rabbit.hiki +405 -0
  230. data/doc/ja/sample/index.rd +11 -0
  231. data/doc/ja/sample/rd/rabbit.rd +475 -0
  232. data/doc/ja/slides.rd +29 -0
  233. data/doc/ja/usage.rd +380 -0
  234. data/doc/ja/users.rd +173 -0
  235. data/doc/javascripts/jquery-ui.js +11544 -0
  236. data/doc/javascripts/jquery.js +7179 -0
  237. data/doc/screenshot.en.rab +10 -0
  238. data/doc/screenshot.ja.rab +10 -0
  239. data/lib/rabbit/action/toggle.rb +0 -14
  240. data/lib/rabbit/canvas.rb +42 -46
  241. data/lib/rabbit/console.rb +9 -1
  242. data/lib/rabbit/front.rb +1 -1
  243. data/lib/rabbit/keys.rb +0 -8
  244. data/lib/rabbit/logger/gui.rb +3 -5
  245. data/lib/rabbit/parser/pdf.rb +1 -1
  246. data/lib/rabbit/parser/wiki/output.rb +17 -1
  247. data/lib/rabbit/rabbit.rb +12 -1
  248. data/lib/rabbit/renderer/base.rb +0 -25
  249. data/lib/rabbit/renderer/display/clutter-embed.rb +5 -69
  250. data/lib/rabbit/renderer/display/drawing-area.rb +0 -2
  251. data/lib/rabbit/renderer/display/key-handler.rb +0 -8
  252. data/lib/rabbit/source/base.rb +4 -0
  253. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +4 -8
  254. data/lib/rabbit/theme/clutter-comment/clutter-comment.rb +76 -0
  255. data/lib/rabbit/theme/clutter-comment/property.rb +3 -0
  256. data/lib/rabbit/theme/color-circle/color-circle.rb +3 -0
  257. data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
  258. data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
  259. data/lib/rabbit/theme/debian/debian.rb +125 -145
  260. data/lib/rabbit/theme/default/default.rb +6 -0
  261. data/lib/rabbit/theme/footer-comment/footer-comment.rb +46 -0
  262. data/lib/rabbit/theme/footer-comment/property.rb +3 -0
  263. data/lib/rabbit/theme/image/image.rb +3 -2
  264. data/lib/rabbit/theme/per-slide-background-color/property.rb +1 -1
  265. data/lib/rabbit/theme/slide-number/slide-number.rb +9 -3
  266. data/lib/rabbit/theme/stream-comment/property.rb +3 -0
  267. data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
  268. data/lib/rabbit/theme/tag/property.rb +1 -1
  269. data/lib/rabbit/theme/title-background-image/title-background-image.rb +6 -5
  270. data/lib/rabbit/theme/twitter-comment/property.rb +4 -0
  271. data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +15 -0
  272. data/lib/rabbit/twitter.rb +216 -0
  273. data/lib/rabbit/utils.rb +26 -0
  274. data/misc/emacs/README.ja +1 -1
  275. data/misc/emacs/rabbit-mode.el +1 -1
  276. data/po/en/rabbit.po +429 -267
  277. data/po/fr/rabbit.po +440 -268
  278. data/po/ja/rabbit.po +455 -270
  279. data/po/rabbit.pot +2567 -0
  280. data/sample/rabbit-en.hiki +384 -0
  281. data/sample/rabbit-en.rd +1 -1
  282. data/sample/rabbit-implementation.rd +1 -1
  283. data/sample/rabbit.hiki +85 -13
  284. data/sample/rabbit.rd +1 -1
  285. data/sample/theme-bench-en.hiki +100 -0
  286. data/sample/theme-bench.hiki +101 -0
  287. metadata +413 -118
  288. data/README.en +0 -850
  289. data/README.ja +0 -885
  290. data/bin/rabbit.bat +0 -8
  291. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  292. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  293. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  294. data/lib/rabbit/comment-canvas.rb +0 -21
  295. data/lib/rabbit/comment/log.rb +0 -74
  296. data/lib/rabbit/renderer/display/comment-drawing-area.rb +0 -175
  297. data/lib/rabbit/renderer/display/comment.rb +0 -194
  298. data/lib/rabbit/theme/comment/comment.rb +0 -5
  299. data/lib/rabbit/theme/comment/property.rb +0 -3
  300. data/lib/rt/rt2html-lib.rb +0 -157
  301. data/lib/rt/rtparser.rb +0 -226
  302. data/lib/rt/rtvisitor.rb +0 -68
  303. data/lib/rwiki/soap/common.rb +0 -5
  304. data/lib/rwiki/soap/driver.rb +0 -43
  305. data/lib/rwiki/soap/servant.rb +0 -78
  306. data/sample/asahina/alice.png +0 -0
  307. data/sample/asahina/yukiusa.png +0 -0
  308. data/sample/momo/banner/bn1.png +0 -0
  309. data/sample/momo/banner/bn2.png +0 -0
  310. data/sample/momo/banner/bn_psd.psd +0 -0
  311. data/sample/momo/banner/bn_psd2.psd +0 -0
  312. data/sample/momo/tailavi/tailavi-ruby.png +0 -0
  313. data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
  314. data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
  315. data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
  316. data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
  317. data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
  318. data/sample/momo/tailavi/taiyaki.png +0 -0
  319. data/sample/momo/tailavi/taiyaki.psd +0 -0
  320. data/sample/momo/usako/blue_dot.png +0 -0
  321. data/sample/momo/usako/green_dot.png +0 -0
  322. data/sample/momo/usako/rabbit.png +0 -0
  323. data/sample/momo/usako/rabbit_mimi.png +0 -0
  324. data/sample/momo/usako/rabbit_mimi2.png +0 -0
  325. data/sample/momo/usako/red_dot.png +0 -0
  326. data/sample/momo/usako/ruby.png +0 -0
  327. data/sample/momo/usako/ruby_new.png +0 -0
  328. data/sample/momo/usako/usa1.png +0 -0
  329. data/sample/momo/usako/usa2.png +0 -0
  330. data/sample/momo/usako/usa3.png +0 -0
  331. data/sample/momo/usako/usako_psd.psd +0 -0
  332. data/sample/momo/usako/usako_psd_200.png +0 -0
  333. data/sample/rabbit-balloon.eps +0 -233
  334. data/sample/sode/kame-color.riff +0 -0
  335. data/sample/sode/kame.riff +0 -0
  336. data/sample/usatti/kame-taro.png +0 -0
  337. data/sample/usatti/rabbit-pink-logo.png +0 -0
  338. data/sample/usatti/rabbit-pink-logo2.png +0 -0
  339. data/sample/usatti/ruby-pink-circle-logo.png +0 -0
  340. data/sample/usatti/ruby-pink-circle.png +0 -0
  341. data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
  342. data/sample/usatti/ruby-pink-polygon.png +0 -0
  343. data/sample/usatti/tanu-kitaro.png +0 -0
  344. data/sample/usatti/usa-taro.png +0 -0
  345. data/sample/usatti/yukidaru-taro.png +0 -0
@@ -0,0 +1,10 @@
1
+ = Rabbit
2
+
3
+ : subtitle
4
+ A presentation tool for Rubyist
5
+
6
+ : author
7
+ Kouhei Sutou
8
+
9
+ : institution
10
+ COZMIXNG
@@ -0,0 +1,10 @@
1
+ = Rabbit
2
+
3
+ : subtitle
4
+ Rubyist用プレゼンツール
5
+
6
+ : author
7
+ 須藤功平
8
+
9
+ : institution
10
+ COZMIXNG
@@ -23,20 +23,6 @@ module Rabbit
23
23
  config[:label] = N_("Blackout")
24
24
  end
25
25
 
26
- def act_toggle_comment_frame(action, group, canvas)
27
- canvas.toggle_comment_frame
28
- end
29
- def act_toggle_comment_frame_config(config, canvas)
30
- config[:label] = N_("Comment frame")
31
- end
32
-
33
- def act_toggle_comment_view(action, group, canvas)
34
- canvas.toggle_comment_view
35
- end
36
- def act_toggle_comment_view_config(config, canvas)
37
- config[:label] = N_("Comment view")
38
- end
39
-
40
26
  def act_toggle_index_mode(action, group, canvas)
41
27
  canvas.toggle_index_mode
42
28
  end
data/lib/rabbit/canvas.rb CHANGED
@@ -10,6 +10,7 @@ require "rabbit/theme/manager"
10
10
  require "rabbit/front"
11
11
  require "rabbit/action"
12
12
  require "rabbit/html/generator"
13
+ require "rabbit/twitter"
13
14
 
14
15
  module Rabbit
15
16
  class Canvas
@@ -89,11 +90,6 @@ module Rabbit
89
90
  def_delegators(:@renderer, :whiteouting?, :blackouting?)
90
91
  def_delegators(:@renderer, :toggle_whiteout, :toggle_blackout)
91
92
 
92
- def_delegators(:@renderer, :showing_comment_frame?, :showing_comment_view?)
93
- def_delegators(:@renderer, :toggle_comment_frame, :toggle_comment_view)
94
- def_delegators(:@renderer, :comment_frame_available?)
95
- def_delegators(:@renderer, :comment_view_available?)
96
-
97
93
  def_delegators(:@renderer, :adjustment_x, :adjustment_x=)
98
94
  def_delegators(:@renderer, :adjustment_y, :adjustment_y=)
99
95
  def_delegators(:@renderer, :reset_adjustment)
@@ -123,7 +119,7 @@ module Rabbit
123
119
  def_delegators(:@source, :source=, :reset, :base)
124
120
 
125
121
  attr_reader :logger, :renderer, :last_modified
126
- attr_reader :comment_source, :actions
122
+ attr_reader :comments, :actions
127
123
 
128
124
  attr_writer :saved_image_base_name
129
125
  attr_writer :use_gl
@@ -133,8 +129,9 @@ module Rabbit
133
129
  attr_accessor :source_filename
134
130
  attr_accessor :migemo_dictionary_search_path, :migemo_dictionary_name
135
131
  attr_accessor :font_resolution_ratio
132
+ attr_accessor :max_n_comments
136
133
 
137
- def initialize(logger, renderer, comment_source=nil, comment_encoding=nil)
134
+ def initialize(logger, renderer)
138
135
  @logger = logger
139
136
  @frame = NullFrame.new
140
137
  @theme_name = nil
@@ -153,7 +150,8 @@ module Rabbit
153
150
  @limit_time = nil
154
151
  @use_gl = false
155
152
  @font_resolution_ratio = 1
156
- init_comment(comment_source, comment_encoding)
153
+ @twitter = nil
154
+ @max_n_comments = 100
157
155
  clear
158
156
  @renderer = renderer.new(self)
159
157
  @actions = Action.action_group(self)
@@ -176,6 +174,7 @@ module Rabbit
176
174
  end
177
175
 
178
176
  def quit
177
+ clear_twitter
179
178
  @quitted = true
180
179
  @frame.quit
181
180
  end
@@ -564,30 +563,29 @@ module Rabbit
564
563
  end
565
564
  end
566
565
 
566
+ def on_comment(name, &callback)
567
+ @on_comment_callbacks << [name, callback]
568
+ end
569
+
570
+ def delete_on_comment_proc_by_name(name)
571
+ @on_comment_callbacks.reject! do |callback_name, callback|
572
+ callback_name == name
573
+ end
574
+ end
575
+
567
576
  def append_comment(comment)
568
- comment = prepare_comment(comment)
569
- comment = "\n= #{comment}" if /\A\s*\z/ !~ comment
570
- prev_source = @comment_source.read
571
- @comment_source.source = "#{prev_source}#{comment}"
572
- @renderer.update_comment(@comment_source) do |error|
573
- @comment_source.source = prev_source
574
- if block_given?
575
- yield(error)
576
- else
577
- logger.warn(error)
577
+ @comments << comment
578
+ @comments.shift if @comments.size > @max_n_comments
579
+ @on_comment_callbacks.each do |name, callback|
580
+ begin
581
+ callback.call(comment)
582
+ rescue
583
+ logger.error($!)
578
584
  end
579
- return false
580
585
  end
581
586
  true
582
587
  end
583
588
 
584
- def comments
585
- comments = @comment_source.read.split(/^=\s*(?=[^=]+$)/)[2..-1]
586
- comments.collect do |comment|
587
- comment.strip
588
- end
589
- end
590
-
591
589
  def title_slide
592
590
  @slides.find{|x| x.is_a?(Element::TitleSlide)}
593
591
  end
@@ -642,6 +640,10 @@ module Rabbit
642
640
  INTERNAL_DPI * @font_resolution_ratio
643
641
  end
644
642
 
643
+ def twitter
644
+ @twitter ||= Twitter.new(@logger)
645
+ end
646
+
645
647
  private
646
648
  def _apply_theme(name, id, &block)
647
649
  @theme_name = name if name
@@ -692,13 +694,26 @@ module Rabbit
692
694
  end
693
695
 
694
696
  def clear
697
+ clear_twitter
698
+ clear_comments
695
699
  reset_timer
696
700
  stop_auto_redraw_timer
697
701
  clear_slides
698
702
  clear_index_slides
699
703
  modified
700
704
  end
701
-
705
+
706
+ def clear_twitter
707
+ return if @twitter.nil?
708
+ @twitter.close
709
+ @twitter = nil
710
+ end
711
+
712
+ def clear_comments
713
+ @comments = []
714
+ @on_comment_callbacks = []
715
+ end
716
+
702
717
  def clear_slides
703
718
  @current_index = 0
704
719
  @slides = []
@@ -748,24 +763,5 @@ module Rabbit
748
763
  Action.update_status(self)
749
764
  @renderer.post_move(old_index, current_index)
750
765
  end
751
-
752
- def init_comment(comment_source, comment_encoding)
753
- args = [comment_encoding, logger, comment_source]
754
- @comment_source = Source::Memory.new(*args)
755
- if /^=\s*[^=]+$/ !~ @comment_source.read
756
- @comment_source.source = default_comment_source
757
- end
758
- end
759
-
760
- def default_comment_source
761
- source = "= " + _("Comment") + "\n"
762
- source << ": theme\n"
763
- source << " comment\n"
764
- source
765
- end
766
-
767
- def prepare_comment(comment)
768
- comment.to_s.gsub(/\r?\n/, '')
769
- end
770
766
  end
771
767
  end
@@ -19,7 +19,7 @@ module Rabbit
19
19
  module_function
20
20
  def parse!(args, logger=nil)
21
21
  bindtextdomain
22
- logger ||= Logger::STDERR.new
22
+ logger ||= guess_default_logger
23
23
  options = OpenStruct.new
24
24
  options.logger = logger
25
25
  options.default_logger = logger
@@ -129,5 +129,13 @@ module Rabbit
129
129
  def get_last_name(klass)
130
130
  klass.name.split("::").last
131
131
  end
132
+
133
+ def guess_default_logger
134
+ if Utils.support_console_output?
135
+ Logger::STDERR.new
136
+ else
137
+ Logger::GUI.new
138
+ end
139
+ end
132
140
  end
133
141
  end
data/lib/rabbit/front.rb CHANGED
@@ -123,7 +123,7 @@ module Rabbit
123
123
  end
124
124
 
125
125
  def accept_move?
126
- not (@public_level & Front::PublicLevel::MOVE).zero?
126
+ not (@public_level & Front::PublicLevel::MOVE).zero?
127
127
  end
128
128
 
129
129
  def append_comment(comment)
data/lib/rabbit/keys.rb CHANGED
@@ -85,10 +85,6 @@ module Rabbit
85
85
  Gdk::Keyval::GDK_c,
86
86
  ]
87
87
 
88
- TOGGLE_COMMENT_FRAME_KEYS = [
89
- Gdk::Keyval::GDK_m,
90
- ]
91
-
92
88
  SEARCH_SLIDE_FORWARD_KEYS = [
93
89
  Gdk::Keyval::GDK_slash,
94
90
  ]
@@ -114,10 +110,6 @@ module Rabbit
114
110
  Gdk::Keyval::GDK_b,
115
111
  ]
116
112
 
117
- TOGGLE_COMMENT_VIEW_KEYS = [
118
- Gdk::Keyval::GDK_m,
119
- ]
120
-
121
113
  EXPAND_HOLE_KEYS = [
122
114
  Gdk::Keyval::GDK_e,
123
115
  ]
@@ -38,14 +38,14 @@ module Rabbit
38
38
  log_prog_name(prog_name)
39
39
  log_message(message)
40
40
  if @start_gui_main_loop_automatically and Gtk.main_level.zero?
41
- Thread.new{Gtk.main}
41
+ Thread.new {Gtk.main}
42
42
  end
43
43
  end
44
44
 
45
45
  def log_severity(severity)
46
46
  append("[")
47
- name = severity_name(severity)
48
- append(name, name)
47
+ name = Severity::MARK_TABLE[severity]
48
+ append(_(name), name)
49
49
  append("]\n")
50
50
  end
51
51
 
@@ -165,8 +165,6 @@ module Rabbit
165
165
  "left_margin" => 10,
166
166
  "right_margin" => 10)
167
167
  end
168
-
169
168
  end
170
-
171
169
  end
172
170
  end
@@ -11,7 +11,7 @@ module Rabbit
11
11
  unshift_loader(self)
12
12
  class << self
13
13
  def match?(source)
14
- /\A%PDF-1\.\d\s/m =~ source.read
14
+ source.read.start_with?("%PDF-1.")
15
15
  end
16
16
  end
17
17
 
@@ -378,7 +378,7 @@ module Rabbit
378
378
  super(@private.pack(text, *rest))
379
379
  end
380
380
 
381
- def lang(lang, text)
381
+ def lang(lang, text, *rest)
382
382
  super(lang, @private.pack(text, *rest))
383
383
  end
384
384
 
@@ -390,6 +390,14 @@ module Rabbit
390
390
  WaitTag.new
391
391
  end
392
392
 
393
+ def tag(name, text=nil, *rest)
394
+ if text
395
+ CustomTag.new(name, @private.pack(text, *rest))
396
+ else
397
+ CustomTag.new(name)
398
+ end
399
+ end
400
+
393
401
  class Private
394
402
  include Element
395
403
  def initialize(output)
@@ -482,6 +490,14 @@ module Rabbit
482
490
  [Ext::AAFigure.make_image_by_aafigure(*args), props]
483
491
  end
484
492
  end
493
+
494
+ def tag(name, value=nil)
495
+ if value
496
+ CustomTag.new(name, @output.text(value))
497
+ else
498
+ CustomTag.new(name)
499
+ end
500
+ end
485
501
  end
486
502
  end
487
503
  end
data/lib/rabbit/rabbit.rb CHANGED
@@ -8,11 +8,12 @@ require "rabbit/gettext"
8
8
 
9
9
  module Rabbit
10
10
 
11
- VERSION = "0.9.2"
11
+ VERSION = "0.9.3"
12
12
 
13
13
  TMP_DIR_NAME = ".tmp"
14
14
 
15
15
  @@gui_init_procs = []
16
+ @@cleanup_procs = []
16
17
 
17
18
  module_function
18
19
  def add_gui_init_proc(proc=Proc.new)
@@ -25,6 +26,16 @@ module Rabbit
25
26
  end
26
27
  end
27
28
 
29
+ def add_cleanup_proc(proc=Proc.new)
30
+ @@cleanup_procs << proc
31
+ end
32
+
33
+ def cleanup
34
+ @@cleanup_procs.each do |proc|
35
+ proc.call
36
+ end
37
+ end
38
+
28
39
  class Error < StandardError
29
40
  include GetText
30
41
  end
@@ -219,35 +219,10 @@ module Rabbit
219
219
  def toggle_spotlight
220
220
  end
221
221
 
222
- def toggle_comment_frame
223
- end
224
-
225
- def toggle_comment_view
226
- end
227
-
228
- def showing_comment_frame?
229
- false
230
- end
231
-
232
- def showing_comment_view?
233
- false
234
- end
235
-
236
- def comment_frame_available?
237
- false
238
- end
239
-
240
- def comment_view_available?
241
- false
242
- end
243
-
244
222
  def gl_available?
245
223
  @canvas.use_gl? and gl_supported?
246
224
  end
247
225
 
248
- def update_comment(source)
249
- end
250
-
251
226
  def post_init_gui
252
227
  end
253
228
 
@@ -226,75 +226,6 @@ module Rabbit
226
226
  def cache_all_slides
227
227
  end
228
228
 
229
- def update_comment(source, &block)
230
- comment = @canvas.comments.last
231
-
232
- color = Clutter::Color.new(rand(256), rand(256), rand(256),
233
- 128 + rand(128))
234
- size = 36 + rand(72)
235
- actor = Clutter::Label.new("Sans #{size}", comment, color)
236
- actor.x = @canvas.width
237
- actor.y = (@canvas.height / 2.0) * rand
238
- actor.show
239
- @stage.add(actor)
240
-
241
- n = 150 + rand(150)
242
- delta = (@canvas.width + actor.width) / n.to_f
243
-
244
- do_rotate_x = rand(5).zero?
245
- do_rotate_y = rand(5).zero?
246
- do_rotate_z = rand(5).zero?
247
- do_scale = rand(5).zero?
248
-
249
- x_axis = actor.x
250
- y_axis = actor.y - (actor.height * 0.5)
251
- if do_rotate_x
252
- actor.set_rotation(Clutter::X_AXIS, rand(360), 0, y_axis, 0)
253
- end
254
- if do_rotate_y
255
- actor.set_rotation(Clutter::Y_AXIS, rand(360), x_axis, 0, 0)
256
- end
257
- if do_rotate_z
258
- actor.set_rotation(Clutter::Z_AXIS, rand(360), x_axis, y_axis, 0)
259
- end
260
- if do_scale
261
- x_sign = 1
262
- y_sign = 1
263
- actor.set_scale(-2 + rand(5), -2 + rand(5))
264
- end
265
- GLib::Timeout.add(1000 / 50) do
266
- actor.raise_top
267
- actor.x -= delta
268
-
269
- x_angle, x_x, x_y, x_z = actor.get_rotation(Clutter::X_AXIS)
270
- y_angle, y_x, y_y, y_z = actor.get_rotation(Clutter::Y_AXIS)
271
- z_angle, z_x, z_y, z_z = actor.get_rotation(Clutter::Z_AXIS)
272
- x_angle = (x_angle + rand(5)) % 360
273
- y_angle = (y_angle + rand(5)) % 360
274
- z_angle = (z_angle + rand(5)) % 360
275
- x_axis = actor.x
276
- if do_rotate_x
277
- actor.set_rotation(Clutter::X_AXIS, x_angle, 0, y_axis, 0)
278
- end
279
- if do_rotate_y
280
- actor.set_rotation(Clutter::Y_AXIS, y_angle, x_axis, 0, 0)
281
- end
282
- if do_rotate_z
283
- actor.set_rotation(Clutter::Z_AXIS, z_angle, x_axis, y_axis, 0)
284
- end
285
- if do_scale
286
- x_scale, y_scale = actor.scale
287
- x_sign *= -1 if x_scale.abs > 2
288
- y_sign *= -1 if y_scale.abs > 2
289
- actor.set_scale(x_scale + (0.1 * x_sign),
290
- y_scale + (0.1 * y_sign))
291
- end
292
- n -= 1
293
- @stage.remove(actor) if n.zero?
294
- not n.zero?
295
- end
296
- end
297
-
298
229
  private
299
230
  def add_widgets_to_container(container)
300
231
  container.add(@embed)
@@ -304,6 +235,11 @@ module Rabbit
304
235
  container.remove(@embed)
305
236
  end
306
237
 
238
+ def init_color
239
+ super
240
+ init_engine_color
241
+ end
242
+
307
243
  def init_dpi
308
244
  @x_dpi = ScreenInfo.screen_x_resolution
309
245
  @y_dpi = ScreenInfo.screen_y_resolution