rabbit 3.0.0 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -1
  3. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  4. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  5. data/doc/_config.yml +2 -2
  6. data/doc/_layouts/skeleton.html +0 -7
  7. data/doc/en/faq.rd +4 -2
  8. data/doc/en/install/homebrew.rd +8 -13
  9. data/doc/en/news.rd +158 -0
  10. data/doc/en/sample/hiki/rabbit.hiki +0 -4
  11. data/doc/en/sample/rd/rabbit.rd +0 -4
  12. data/doc/en/usage/rabbit-slide.rd +3 -3
  13. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  14. data/doc/images/screenshots/en/blue-circle.png +0 -0
  15. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  16. data/doc/images/screenshots/en/clear-blue.png +0 -0
  17. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  18. data/doc/images/screenshots/en/cozmixng.png +0 -0
  19. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  20. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  21. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  22. data/doc/images/screenshots/en/day-white.png +0 -0
  23. data/doc/images/screenshots/en/debian-raw.png +0 -0
  24. data/doc/images/screenshots/en/debian.png +0 -0
  25. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  26. data/doc/images/screenshots/en/green-circle.png +0 -0
  27. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  28. data/doc/images/screenshots/en/night-black.png +0 -0
  29. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  30. data/doc/images/screenshots/en/rabbit.png +0 -0
  31. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  32. data/doc/images/screenshots/en/ranguba.png +0 -0
  33. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  34. data/doc/images/screenshots/en/red-frame.png +0 -0
  35. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  36. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  37. data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
  38. data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
  39. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  40. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  41. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  42. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  43. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  44. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  45. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  46. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  47. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  48. data/doc/images/screenshots/ja/day-white.png +0 -0
  49. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  50. data/doc/images/screenshots/ja/debian.png +0 -0
  51. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  52. data/doc/images/screenshots/ja/green-circle.png +0 -0
  53. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  54. data/doc/images/screenshots/ja/night-black.png +0 -0
  55. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  56. data/doc/images/screenshots/ja/rabbit.png +0 -0
  57. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  58. data/doc/images/screenshots/ja/ranguba.png +0 -0
  59. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  60. data/doc/images/screenshots/ja/red-frame.png +0 -0
  61. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  62. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  63. data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
  64. data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
  65. data/doc/index.html.en +1 -1
  66. data/doc/ja/faq.rd +2 -0
  67. data/doc/ja/install/homebrew.rd +8 -12
  68. data/doc/ja/news.rd +157 -0
  69. data/doc/ja/sample/hiki/rabbit.hiki +0 -4
  70. data/doc/ja/sample/rd/rabbit.rd +0 -4
  71. data/doc/ja/usage/rabbit-slide.rd +3 -3
  72. data/doc/ja/users.rd +7 -0
  73. data/lib/rabbit/action/toggle.rb +7 -0
  74. data/lib/rabbit/author-configuration.rb +3 -4
  75. data/lib/rabbit/canvas.rb +18 -6
  76. data/lib/rabbit/command/rabbit-slide.rb +59 -1
  77. data/lib/rabbit/command/rabbit-slide.ui +127 -49
  78. data/lib/rabbit/command/rabbit.rb +5 -9
  79. data/lib/rabbit/element/base.rb +1 -5
  80. data/lib/rabbit/element/image.rb +139 -89
  81. data/lib/rabbit/element/video.rb +3 -11
  82. data/lib/rabbit/error.rb +9 -3
  83. data/lib/rabbit/formatter.rb +1 -1
  84. data/lib/rabbit/frame.rb +102 -4
  85. data/lib/rabbit/gem-pusher.rb +29 -6
  86. data/lib/rabbit/image/base.rb +163 -28
  87. data/lib/rabbit/image/dia.rb +21 -14
  88. data/lib/rabbit/image/mermaid.rb +73 -0
  89. data/lib/rabbit/image/pdf.rb +22 -9
  90. data/lib/rabbit/image/svg.rb +1 -4
  91. data/lib/rabbit/image.rb +6 -6
  92. data/lib/rabbit/info-window.rb +106 -80
  93. data/lib/rabbit/keys.rb +6 -0
  94. data/lib/rabbit/menu.rb +2 -0
  95. data/lib/rabbit/parser/base.rb +2 -1
  96. data/lib/rabbit/parser/ext/blockdiag.rb +16 -14
  97. data/lib/rabbit/parser/ext/charty.rb +58 -0
  98. data/lib/rabbit/parser/ext/image.rb +38 -10
  99. data/lib/rabbit/parser/markdown/converter.rb +36 -30
  100. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +33 -35
  101. data/lib/rabbit/parser/rd/ext/image.rb +23 -4
  102. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +3 -1
  103. data/lib/rabbit/parser/rd.rb +1 -1
  104. data/lib/rabbit/parser/wiki/output.rb +9 -9
  105. data/lib/rabbit/parser.rb +2 -2
  106. data/lib/rabbit/progress.rb +1 -1
  107. data/lib/rabbit/properties.rb +154 -0
  108. data/lib/rabbit/rabbit.rb +3 -1
  109. data/lib/rabbit/relative-size.rb +28 -0
  110. data/lib/rabbit/renderer/base.rb +6 -0
  111. data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -2
  112. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +1 -0
  113. data/lib/rabbit/renderer/display/info.rb +6 -1
  114. data/lib/rabbit/renderer/display/key-handler.rb +27 -2
  115. data/lib/rabbit/renderer/engine/cairo.rb +24 -3
  116. data/lib/rabbit/renderer/screen.rb +0 -1
  117. data/lib/rabbit/slide-configuration.rb +16 -8
  118. data/lib/rabbit/task/slide.rb +6 -33
  119. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +38 -0
  120. data/lib/rabbit/theme/clear-blue/clear-blue.rb +4 -2
  121. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +12 -2
  122. data/lib/rabbit/theme/image/image.rb +3 -0
  123. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +8 -3
  124. data/lib/rabbit/theme/image-timer/image-timer.rb +8 -3
  125. data/lib/rabbit/theme/pdf/pdf.rb +1 -1
  126. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +2 -0
  127. data/lib/rabbit/theme/tag/tag.rb +9 -2
  128. data/lib/rabbit/theme-configuration.rb +3 -4
  129. data/lib/rabbit/utils.rb +25 -2
  130. data/lib/rabbit/version.rb +2 -2
  131. data/lib/rabbit/video-window.rb +14 -3
  132. data/{test/test-slideshare.rb → lib/rabbit/yaml-loader.rb} +20 -15
  133. data/po/en/rabbit.edit.po +123 -121
  134. data/po/en/rabbit.po +28 -26
  135. data/po/fr/rabbit.edit.po +122 -120
  136. data/po/fr/rabbit.po +27 -25
  137. data/po/ja/rabbit.edit.po +156 -125
  138. data/po/ja/rabbit.po +34 -30
  139. data/rabbit.gemspec +0 -1
  140. data/sample/can_rabbit.rd +0 -24
  141. data/sample/rabbit-en.hiki +0 -4
  142. data/sample/rabbit-en.md +13 -0
  143. data/sample/rabbit-en.rd +10 -4
  144. data/sample/rabbit.hiki +0 -4
  145. data/sample/rabbit.md +21 -0
  146. data/sample/rabbit.rd +20 -4
  147. data/test/command/test-rabbit.rb +1 -0
  148. data/test/parser/test-markdown.rb +2 -2
  149. data/test/test-slide-configuration.rb +4 -2
  150. metadata +30 -46
  151. data/doc/css/jquery-ui/themes/ui-lightness.css +0 -573
  152. data/doc/javascripts/jquery-ui.js +0 -11544
  153. data/doc/javascripts/jquery.js +0 -7179
  154. data/lib/rabbit/slideshare.rb +0 -192
data/doc/ja/news.rd CHANGED
@@ -4,6 +4,163 @@ title: お知らせ
4
4
  apply_data: false
5
5
  ---
6
6
  {% raw %}
7
+
8
+ == 3.0.2: 2023-06-25
9
+
10
+ 画像への描画をサポートしたリリース。
11
+
12
+ === 改良
13
+
14
+ ==== rabbit
15
+
16
+ * image: 画像への描画をサポート。
17
+
18
+ * image: (({align=right}))をサポート。
19
+
20
+ * Mermaidをサポート。
21
+
22
+ * blockdiag: (({blockdiag3}))コマンドをサポート。
23
+
24
+ ==== rabbit-slide
25
+
26
+ * config: (({source_code_uri}))を追加。
27
+ ((<GH-144|URL:https://github.com/rabbit-shocker/rabbit/issues/144>))
28
+ [Yusuke Nakamuraさんがパッチ提供]
29
+
30
+ * SlideShareへのアップロード機能を削除。これはSlideShareのAPIからス
31
+ ライドアップロード機能が削除されたからです。
32
+
33
+ ==== テーマ
34
+
35
+ * image-slide-number: メインコンテンツの後ろに画像を描画するように変
36
+ 更。これによりメインコンテンツを隠すことがなくなります。
37
+
38
+ * image-timer: メインコンテンツの後ろに画像を描画するように変更。こ
39
+ れによりメインコンテンツを隠すことがなくなります。
40
+
41
+ * background-image-toolkit: キャプションをサポート。
42
+
43
+ * clear-blue: フッターの(({\n}))を削除するのではなく空白文字に置換す
44
+ るように変更。
45
+
46
+ * pdf: デフォルトで(({canvas.title}))テーマではなく(({./theme.rb}))
47
+ テーマを使うように変更。
48
+
49
+ ==== ドキュメント
50
+
51
+ * macos Homebrew: インストールドキュメントを更新。
52
+ ((<GH-150|URL:https://github.com/rabbit-shocker/rabbit/issues/150>))
53
+ [Yusuke Nakamuraさんがパッチ提供]
54
+
55
+ === 修正
56
+
57
+ ==== rabbit
58
+
59
+ * formatter HTML: 重みの設定が反映されない問題を修正。
60
+ ((<GH-146|URL:https://github.com/rabbit-shocker/rabbit/issues/146>))
61
+ [HASUMI Hitoshiさんがパッチ提供]
62
+
63
+ ==== テーマ
64
+
65
+ * image-timer: PDFで画像が表示されない問題を修正。
66
+
67
+ * image-slide-number: PDFで画像が表示されない問題を修正。
68
+
69
+ === 感謝
70
+
71
+ * Yusuke Nakamuraさん
72
+
73
+ * HASUMI Hitoshiさん
74
+
75
+ == 3.0.1: 2021-09-25
76
+
77
+ Ruby 3.0をサポートしたリリース。
78
+
79
+ === 改良
80
+
81
+ ==== rabbit
82
+
83
+ * 警告を除去。
84
+ [GitHub#132][kojix2さんがパッチ提供]
85
+
86
+ * image: Ruby 3.0をサポート。
87
+ [GitHub#133][kojix2さんがパッチを提供]
88
+
89
+ * image: ダウンロードした画像を再利用するようにしました。
90
+
91
+ * image: (({normalized_width}))と(({normalized_height}))のサポートを
92
+ 削除。
93
+
94
+ * image: (({clip_x}))と(({clip_y}))と(({clip_width}))と(({clip_height}))で
95
+ クリップをサポート。
96
+
97
+ * info-window: ノートモードではタイマーの位置を下部に移動。
98
+
99
+ * info-window: (({wait}))をサポート。
100
+
101
+ * 重複した(({require}))を削除。
102
+ [GitHub#134][kojix2さんがパッチを提供]
103
+
104
+ * Chartyをサポート。
105
+
106
+ * 埋め込みターミナルをサポート。
107
+
108
+ * Ustreamサポートを削除。
109
+
110
+ * MFAが有効になったアカウントでのgemのpushをサポート。
111
+ [GitHub#141][Yusuke Nakamuraさんが報告]
112
+
113
+ ==== rabbit-slide
114
+
115
+ * スライドサイズの指定をサポート。
116
+
117
+ ==== テーマ
118
+
119
+ * clear-blue: 縦方向のセンタリングの無効化をサポート。
120
+
121
+ * tag: (({margin-*})): 負の値と浮動小数点数をサポート。
122
+
123
+ * tag: (({wrap-char}))と(({wrap-word}))と(({wrap-word-char}))で折り返し
124
+ をサポート。
125
+
126
+ * tag: (({justify}))と(({no-justify}))で両端揃えをサポート。
127
+
128
+ * edge-info-toolkit: テキストのセンタリングをサポート。
129
+
130
+ * slide-footer-info: テキストのセンタリングをサポート。
131
+
132
+ ==== ドキュメント
133
+
134
+ * うさぎとかめとテーマに関する注意書きを追加。
135
+ [GitHub#139][Asaf Bartovさんがパッチを提供]
136
+
137
+ === 修正
138
+
139
+ ==== テーマ
140
+
141
+ * image-slide-number: 幅の計算方法を修正。
142
+ [GitHub#130][HASUMI Hitoshiさんがパッチを提供]
143
+
144
+ ==== ドキュメント
145
+
146
+ * 英語を修正。
147
+ [GitHub#128][Zero Kingさんがパッチを提供]
148
+
149
+ * typoを修正。
150
+ [GitHub#140][Yusuke Nakamuraさんがパッチを提供]
151
+
152
+ === 感謝
153
+
154
+ * Zero Kingさん
155
+
156
+ * HASUMI Hitoshiさん
157
+
158
+ * kojix2さん
159
+
160
+ * Asaf Bartovさん
161
+
162
+ * Yusuke Nakamuraさん
163
+
7
164
  == 3.0.0: 2019-09-06
8
165
 
9
166
  GTK+ 3をサポートしたリリース。GTK+ 2のサポートは終了。
@@ -130,8 +130,6 @@ title: "サンプルスライド: Rabbit"
130
130
  :caption => "Lavie",
131
131
  :width => 100,
132
132
  :height => 100,
133
- # :normalized_width => 50,
134
- # :normalized_height => 50,
135
133
  # :relative_width => 100,
136
134
  # :relative_height => 50,
137
135
  })}}
@@ -177,8 +175,6 @@ title: "サンプルスライド: Rabbit"
177
175
  {{image("usagi.png",
178
176
  {
179
177
  :caption => "兎",
180
- # :normalized_width => 50,
181
- # :normalized_height => 50,
182
178
  # :relative_width => 100,
183
179
  :relative_height => 50,
184
180
  })}}
@@ -133,8 +133,6 @@ title: "サンプルスライド: Rabbit"
133
133
  # caption = Lavie
134
134
  # width = 100
135
135
  # height = 100
136
- # # normalized_width = 50
137
- # # normalized_height = 50
138
136
  # # relative_width = 100
139
137
  # # relative_height = 50
140
138
 
@@ -184,8 +182,6 @@ title: "サンプルスライド: Rabbit"
184
182
  # image
185
183
  # src = usagi.png
186
184
  # caption = 兎
187
- # # normalized_width = 50
188
- # # normalized_height = 50
189
185
  # # relative_width = 100
190
186
  # relative_height = 80
191
187
 
@@ -185,12 +185,12 @@ APIがなかったので諦めました。
185
185
  Rabbitのテーマを確認するためのスライドです。スライドで使われる要素がた
186
186
  くさん入っているためテーマの確認に便利です。
187
187
 
188
- 準備ができたら((%rabbit publish%))でRubyGems.orgとSlideShareにまとめて
188
+ 準備ができたら((%rake publish%))でRubyGems.orgとSlideShareにまとめて
189
189
  公開できます。別々に公開する方法は以下の通りです。
190
190
 
191
191
  === RubyGems.orgへ公開
192
192
 
193
- ((%rabbit publish:rubygems%))でRubyGems.orgに公開できます。
193
+ ((%rake publish:rubygems%))でRubyGems.orgに公開できます。
194
194
 
195
195
  % rake publish:rubygems
196
196
 
@@ -213,7 +213,7 @@ Rabbit Slide ShowはRubyGems.orgに公開されているスライドを自動で
213
213
 
214
214
  === SlideShareへ公開
215
215
 
216
- ((%rabbit publish:slideshare%))でSlideShareに公開できます。
216
+ ((%rake publish:slideshare%))でSlideShareに公開できます。
217
217
 
218
218
  % rake publish:slideshare
219
219
 
data/doc/ja/users.rd CHANGED
@@ -186,4 +186,11 @@ Rabbitショッカーのためにshocker-jaというメーリングリストが
186
186
  * ((<効率的なビットマップマーキングを用いたRuby用ごみ集め実装|URL:http://www.narihiro.info/resource/presen/Ruby%20Garbage%20Collection%20Using%20Efficient%20Bitmap%20Marking.pdf>))
187
187
  * うえださん
188
188
  * ((<エンジニアでありたい人の日記|URL:http://d.hatena.ne.jp/hiro-ueda/>))
189
+
190
+ # 2019年
191
+
192
+ * yoku0825さん
193
+ * ((<日々の覚書|URL:https://yoku0825.blogspot.com/>))
194
+ * ((<Shooting a trouble of MySQL|URL:https://speakerdeck.com/yoku0825/shooting-a-trouble-of-mysql>))
195
+ * 他にもたくさん
189
196
  * ...
@@ -71,5 +71,12 @@ module Rabbit
71
71
  def act_toggle_magnifier_config(config, canvas)
72
72
  config[:label] = N_("Magnifier")
73
73
  end
74
+
75
+ def act_toggle_terminal(action, group, canvas)
76
+ canvas.toggle_terminal
77
+ end
78
+ def act_toggle_terminal_config(config, canvas)
79
+ config[:label] = N_("Terminal")
80
+ end
74
81
  end
75
82
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,11 +14,10 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "yaml"
18
-
19
17
  require "rabbit/gettext"
20
18
  require "rabbit/logger"
21
19
  require "rabbit/path-manipulatable"
20
+ require "rabbit/yaml-loader"
22
21
 
23
22
  module Rabbit
24
23
  class AuthorConfiguration
@@ -35,7 +34,7 @@ module Rabbit
35
34
 
36
35
  def load
37
36
  return unless File.exist?(path)
38
- conf = YAML.load(File.read(path))
37
+ conf = YAMLLoader.load(File.read(path))
39
38
  clear
40
39
  merge!(conf)
41
40
  rescue
data/lib/rabbit/canvas.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2019 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -43,6 +43,8 @@ module Rabbit
43
43
  def_delegators(:@frame, :iconify, :window)
44
44
  def_delegators(:@frame, :fullscreen_available?)
45
45
  def_delegators(:@frame, :iconify_available?)
46
+ def_delegators(:@frame, :toggle_terminal)
47
+ def_delegators(:@frame, :in_terminal?)
46
48
 
47
49
  def_delegators(:@renderer, :width, :height)
48
50
  # Deprecated. Use #base_width= instead.
@@ -81,6 +83,8 @@ module Rabbit
81
83
  def_delegators(:@renderer, :shear_context)
82
84
  def_delegators(:@renderer, :save_context, :restore_context)
83
85
  def_delegators(:@renderer, :draw_line, :draw_rectangle, :draw_arc)
86
+ def_delegators(:@renderer, :draw_lines)
87
+ def_delegators(:@renderer, :draw_polygon)
84
88
  def_delegators(:@renderer, :draw_circle, :draw_layout, :draw_pixbuf)
85
89
  def_delegators(:@renderer, :draw_arc_by_radius, :draw_circle_by_radius)
86
90
  def_delegators(:@renderer, :draw_slide, :draw_polygon, :draw_flag)
@@ -343,7 +347,7 @@ module Rabbit
343
347
  apply_theme(@theme_name, &block)
344
348
  end
345
349
 
346
- def parse(source=nil, callback=nil, &block)
350
+ def parse(source=nil, progress=nil, &block)
347
351
  id = Object.new.__id__
348
352
  @parse_request_queue.push(id)
349
353
  @source = source || @source
@@ -353,7 +357,7 @@ module Rabbit
353
357
  keep_index do
354
358
  @renderer.pre_parse
355
359
  clear
356
- Parser.parse(self, @source)
360
+ Parser.parse(self, @source, progress: progress)
357
361
  new_allotted_time = allotted_time
358
362
  reset_timer if new_allotted_time != current_allotted_time
359
363
  apply_timer
@@ -362,7 +366,7 @@ module Rabbit
362
366
  if @parse_request_queue.last != id
363
367
  raise ParseFinish
364
368
  end
365
- callback.call if callback
369
+ progress.call if progress
366
370
  end
367
371
  @renderer.post_parse
368
372
  index = current_index
@@ -380,9 +384,9 @@ module Rabbit
380
384
  end
381
385
  end
382
386
 
383
- def reload_source(callback=nil, &block)
387
+ def reload_source(progress=nil, &block)
384
388
  if need_reload_source?
385
- parse(nil, callback, &block)
389
+ parse(nil, progress, &block)
386
390
  end
387
391
  end
388
392
 
@@ -436,6 +440,14 @@ module Rabbit
436
440
  @renderer.post_iconify
437
441
  end
438
442
 
443
+ def pre_terminal
444
+ @renderer.pre_terminal
445
+ end
446
+
447
+ def post_terminal
448
+ @renderer.post_terminal
449
+ end
450
+
439
451
  def saved_image_base_name
440
452
  if @saved_image_base_name
441
453
  base_name = @saved_image_base_name.encode("UTF-8")
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2019 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -106,6 +106,8 @@ module Rabbit
106
106
  " --id rubykaigi2012 \\\n" \
107
107
  " --base-name rabbit-introduction \\\n" \
108
108
  " --markup-language rd \\\n" \
109
+ " --width 800 \\\n" \
110
+ " --height 450 \\\n" \
109
111
  " --name \"Kouhei Sutou\" \\\n" \
110
112
  " --email kou@cozmixng.org \\\n" \
111
113
  " --rubygems-user kou \\\n" \
@@ -218,6 +220,22 @@ module Rabbit
218
220
  @data.slide_conf.presentation_end_time = time
219
221
  end
220
222
 
223
+ width_example = "--width=800"
224
+ parser.on("--width=WIDTH", Integer,
225
+ _("The default slide width"),
226
+ _("(e.g.: %s)") % width_example,
227
+ _("(optional)")) do |width|
228
+ @data.slide_conf.width = width
229
+ end
230
+
231
+ height_example = "--width=450"
232
+ parser.on("--height=HEIGHT", Integer,
233
+ _("The default slide height"),
234
+ _("(e.g.: %s)") % height_example,
235
+ _("(optional)")) do |height|
236
+ @data.slide_conf.height = height
237
+ end
238
+
221
239
  parser.separator(_("Your information"))
222
240
 
223
241
  messages = [
@@ -324,6 +342,20 @@ module Rabbit
324
342
  end
325
343
  end
326
344
 
345
+ class IntegerMapper
346
+ def initialize(data)
347
+ @data = data
348
+ end
349
+
350
+ def attach(entry)
351
+ entry.value = value if value
352
+ end
353
+
354
+ def apply(entry)
355
+ apply_value(entry.value_as_int)
356
+ end
357
+ end
358
+
327
359
  class SlideIDMapper < TextMapper
328
360
  private
329
361
  def valid?(value)
@@ -374,11 +406,35 @@ module Rabbit
374
406
  end
375
407
  end
376
408
 
409
+ class SlideWidthMapper < IntegerMapper
410
+ private
411
+ def value
412
+ @data.slide_conf.width
413
+ end
414
+
415
+ def apply_value(value)
416
+ @data.slide_conf.width = value
417
+ end
418
+ end
419
+
420
+ class SlideHeightMapper < IntegerMapper
421
+ private
422
+ def value
423
+ @data.slide_conf.height
424
+ end
425
+
426
+ def apply_value(value)
427
+ @data.slide_conf.height = value
428
+ end
429
+ end
430
+
377
431
  def build_gui_mappers
378
432
  {
379
433
  "slide-id" => SlideIDMapper.new(@data),
380
434
  "slide-base-name" => SlideBaseNameMapper.new(@data),
381
435
  "slide-markup-language" => SlideMarkupLanguageMapper.new(@data),
436
+ "slide-width" => SlideWidthMapper.new(@data),
437
+ "slide-height" => SlideHeightMapper.new(@data),
382
438
  }
383
439
  end
384
440
 
@@ -484,6 +540,8 @@ EOD
484
540
  def generate_dot_rabbit
485
541
  create_file(".rabbit") do |dot_rabbit|
486
542
  options = []
543
+ size = [@data.slide_conf.width, @data.slide_conf.height].join(",")
544
+ options << "--size #{size}"
487
545
  if @data.author_conf.markup_language.nil? and @data.allotted_time
488
546
  options << "--allotted-time #{@data.allotted_time}"
489
547
  end