rabbit 3.0.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Rakefile +53 -7
  4. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  5. data/doc/_config.yml +2 -2
  6. data/doc/en/news.rd +69 -1
  7. data/doc/ja/news.rd +68 -0
  8. data/lib/rabbit/actions.rb +446 -0
  9. data/lib/rabbit/author-configuration.rb +7 -10
  10. data/lib/rabbit/canvas.rb +74 -42
  11. data/lib/rabbit/command/rabbit-slide.rb +11 -13
  12. data/lib/rabbit/command/rabbit-theme.rb +10 -12
  13. data/lib/rabbit/command/rabbit.rb +31 -43
  14. data/lib/rabbit/console.rb +20 -22
  15. data/lib/rabbit/dependency-canvas.rb +2 -2
  16. data/lib/rabbit/element/base.rb +93 -6
  17. data/lib/rabbit/element/block-element.rb +17 -1
  18. data/lib/rabbit/element/block.rb +17 -1
  19. data/lib/rabbit/element/container-element.rb +59 -3
  20. data/lib/rabbit/element/description-list.rb +18 -2
  21. data/lib/rabbit/element/enum-list.rb +18 -2
  22. data/lib/rabbit/element/footnote.rb +18 -2
  23. data/lib/rabbit/element/image-title-slide.rb +17 -1
  24. data/lib/rabbit/element/image.rb +32 -2
  25. data/lib/rabbit/element/index-slide.rb +29 -13
  26. data/lib/rabbit/element/item-list.rb +18 -2
  27. data/lib/rabbit/element/method-list.rb +18 -2
  28. data/lib/rabbit/element/poppler-page.rb +17 -1
  29. data/lib/rabbit/element/poppler-slide.rb +18 -2
  30. data/lib/rabbit/element/poppler-title-slide.rb +18 -2
  31. data/lib/rabbit/element/preformatted.rb +18 -2
  32. data/lib/rabbit/element/slide-element.rb +29 -2
  33. data/lib/rabbit/element/slide.rb +18 -2
  34. data/lib/rabbit/element/syntax-highlighting.rb +17 -1
  35. data/lib/rabbit/element/table.rb +19 -3
  36. data/lib/rabbit/element/tag.rb +18 -2
  37. data/lib/rabbit/element/text-block-element.rb +18 -2
  38. data/lib/rabbit/element/text-container-element.rb +41 -2
  39. data/lib/rabbit/element/text-element.rb +17 -1
  40. data/lib/rabbit/element/text-renderer.rb +17 -1
  41. data/lib/rabbit/element/text.rb +4 -4
  42. data/lib/rabbit/element/title-slide.rb +19 -3
  43. data/lib/rabbit/element/video.rb +157 -56
  44. data/lib/rabbit/element.rb +20 -20
  45. data/lib/rabbit/formatter.rb +18 -1
  46. data/lib/rabbit/frame.rb +102 -90
  47. data/lib/rabbit/front.rb +11 -4
  48. data/lib/rabbit/gem-finder.rb +4 -8
  49. data/lib/rabbit/gem-pusher.rb +4 -4
  50. data/lib/rabbit/gesture/handler.rb +26 -21
  51. data/lib/rabbit/graffiti/config-dialog.rb +18 -2
  52. data/lib/rabbit/graffiti/processor.rb +20 -4
  53. data/lib/rabbit/gtk.rb +48 -14
  54. data/lib/rabbit/html/generator.rb +18 -18
  55. data/{test/helper/fixture.rb → lib/rabbit/icon.rb} +16 -6
  56. data/lib/rabbit/image/base.rb +7 -6
  57. data/lib/rabbit/image/default.rb +17 -1
  58. data/lib/rabbit/image/dia.rb +2 -2
  59. data/lib/rabbit/image/eps.rb +16 -2
  60. data/lib/rabbit/image/gimp.rb +28 -11
  61. data/lib/rabbit/image/mermaid.rb +3 -3
  62. data/lib/rabbit/image/pdf.rb +3 -3
  63. data/lib/rabbit/image/svg.rb +2 -2
  64. data/lib/rabbit/image.rb +8 -8
  65. data/lib/rabbit/info-window.rb +55 -18
  66. data/lib/rabbit/key-handler.rb +381 -0
  67. data/lib/rabbit/keys.rb +31 -2
  68. data/lib/rabbit/logger/base.rb +17 -1
  69. data/lib/rabbit/logger/gui.rb +20 -4
  70. data/lib/rabbit/logger/stderr.rb +16 -2
  71. data/lib/rabbit/logger.rb +4 -4
  72. data/lib/rabbit/menu.rb +200 -220
  73. data/lib/rabbit/parser/base.rb +17 -1
  74. data/lib/rabbit/parser/ext/aafigure.rb +17 -1
  75. data/lib/rabbit/parser/ext/blockdiag.rb +17 -1
  76. data/lib/rabbit/parser/ext/charty.rb +2 -2
  77. data/lib/rabbit/parser/ext/coderay.rb +20 -4
  78. data/lib/rabbit/parser/ext/enscript.rb +31 -15
  79. data/lib/rabbit/parser/ext/entity.rb +17 -1
  80. data/lib/rabbit/parser/ext/image.rb +6 -6
  81. data/lib/rabbit/parser/ext/inline.rb +17 -1
  82. data/lib/rabbit/parser/ext/rouge.rb +7 -4
  83. data/lib/rabbit/parser/ext/tex.rb +18 -2
  84. data/lib/rabbit/parser/ext/video.rb +4 -4
  85. data/lib/rabbit/parser/image.rb +20 -4
  86. data/lib/rabbit/parser/markdown/converter.rb +12 -13
  87. data/lib/rabbit/parser/markdown.rb +18 -2
  88. data/lib/rabbit/parser/pause-support.rb +1 -0
  89. data/lib/rabbit/parser/pdf.rb +3 -3
  90. data/lib/rabbit/parser/rd/ext/base.rb +20 -4
  91. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +24 -28
  92. data/lib/rabbit/parser/rd/ext/character-reference.rb +18 -2
  93. data/lib/rabbit/parser/rd/ext/image.rb +3 -3
  94. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +6 -6
  95. data/lib/rabbit/parser/rd/ext/refer.rb +18 -2
  96. data/lib/rabbit/parser/rd/ext/video.rb +19 -2
  97. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +24 -8
  98. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +18 -2
  99. data/lib/rabbit/parser/rd/visitor.rb +18 -2
  100. data/lib/rabbit/parser/rd.rb +18 -2
  101. data/lib/rabbit/parser/wiki/output.rb +25 -28
  102. data/lib/rabbit/parser/wiki.rb +18 -2
  103. data/lib/rabbit/parser.rb +8 -6
  104. data/lib/rabbit/path-manipulatable.rb +4 -4
  105. data/lib/rabbit/progress.rb +17 -1
  106. data/lib/rabbit/properties.rb +3 -3
  107. data/lib/rabbit/rabbit.rb +15 -7
  108. data/lib/rabbit/readme-parser.rb +4 -6
  109. data/lib/rabbit/renderer/base.rb +44 -36
  110. data/lib/rabbit/renderer/color.rb +18 -2
  111. data/lib/rabbit/renderer/display/base.rb +10 -12
  112. data/lib/rabbit/renderer/display/button-handler.rb +141 -60
  113. data/lib/rabbit/renderer/display/cursor.rb +4 -5
  114. data/lib/rabbit/renderer/display/drawing-area-base.rb +32 -48
  115. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +10 -61
  116. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +19 -8
  117. data/lib/rabbit/renderer/display/drawing-area.rb +19 -15
  118. data/lib/rabbit/renderer/display/gesture.rb +9 -9
  119. data/lib/rabbit/renderer/display/graffiti.rb +22 -13
  120. data/lib/rabbit/renderer/display/info.rb +22 -2
  121. data/lib/rabbit/renderer/display/magnifier.rb +30 -17
  122. data/lib/rabbit/renderer/display/mask.rb +17 -1
  123. data/lib/rabbit/renderer/display/menu.rb +27 -3
  124. data/lib/rabbit/renderer/display/motion-handler.rb +45 -0
  125. data/lib/rabbit/renderer/display/progress.rb +17 -2
  126. data/lib/rabbit/renderer/display/scroll-handler.rb +60 -13
  127. data/lib/rabbit/renderer/display/search.rb +19 -2
  128. data/lib/rabbit/renderer/display/spotlight.rb +39 -25
  129. data/lib/rabbit/renderer/display.rb +16 -36
  130. data/lib/rabbit/renderer/engine/cairo.rb +4 -11
  131. data/lib/rabbit/renderer/engine.rb +17 -1
  132. data/lib/rabbit/renderer/kernel.rb +2 -20
  133. data/lib/rabbit/renderer/offscreen.rb +8 -14
  134. data/lib/rabbit/renderer/print-layout.rb +2 -2
  135. data/lib/rabbit/renderer/printer.rb +9 -16
  136. data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
  137. data/lib/rabbit/renderer/scene-node-widget.rb +63 -0
  138. data/lib/rabbit/renderer/scene.rb +508 -0
  139. data/lib/rabbit/renderer.rb +6 -6
  140. data/lib/rabbit/search-window.rb +18 -2
  141. data/lib/rabbit/searcher.rb +15 -1
  142. data/lib/rabbit/size.rb +9 -1
  143. data/lib/rabbit/slide-configuration.rb +11 -14
  144. data/lib/rabbit/soap/driver.rb +20 -4
  145. data/lib/rabbit/soap/server.rb +17 -1
  146. data/lib/rabbit/source/argf.rb +5 -5
  147. data/lib/rabbit/source/base.rb +5 -6
  148. data/lib/rabbit/source/file.rb +5 -5
  149. data/lib/rabbit/source/memory.rb +20 -4
  150. data/lib/rabbit/source/uri.rb +9 -11
  151. data/lib/rabbit/source-generator/hiki.rb +2 -7
  152. data/lib/rabbit/source-generator/markdown.rb +2 -7
  153. data/lib/rabbit/source-generator/rd.rb +2 -7
  154. data/lib/rabbit/source-generator.rb +4 -4
  155. data/lib/rabbit/source.rb +5 -5
  156. data/lib/rabbit/task/slide.rb +13 -11
  157. data/lib/rabbit/task/theme.rb +8 -11
  158. data/lib/rabbit/task.rb +3 -3
  159. data/lib/rabbit/theme/applier.rb +27 -11
  160. data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
  161. data/lib/rabbit/theme/color-circle/color-circle.rb +18 -1
  162. data/lib/rabbit/theme/cozmixng/cozmixng.rb +1 -1
  163. data/lib/rabbit/theme/default/default.rb +1 -0
  164. data/lib/rabbit/theme/default-icon/default-icon.rb +1 -1
  165. data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +17 -1
  166. data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +9 -1
  167. data/lib/rabbit/theme/enishi-green/enishi-green.rb +1 -1
  168. data/lib/rabbit/theme/entry.rb +10 -12
  169. data/lib/rabbit/theme/icon/icon.rb +3 -8
  170. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +5 -5
  171. data/lib/rabbit/theme/image-timer/image-timer.rb +3 -3
  172. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +1 -0
  173. data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +1 -0
  174. data/lib/rabbit/theme/manager.rb +19 -9
  175. data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +1 -1
  176. data/lib/rabbit/theme/ranguba/ranguba.rb +1 -1
  177. data/lib/rabbit/theme/red-frame/red-frame.rb +6 -2
  178. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +1 -0
  179. data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +1 -1
  180. data/lib/rabbit/theme/searcher.rb +23 -7
  181. data/lib/rabbit/theme/slide-number/slide-number.rb +1 -1
  182. data/lib/rabbit/theme/slide-show/slide-show.rb +1 -1
  183. data/lib/rabbit/theme/table/table.rb +2 -2
  184. data/lib/rabbit/theme/video/property.rb +3 -0
  185. data/lib/rabbit/theme/video/video.rb +5 -0
  186. data/lib/rabbit/theme-configuration.rb +9 -11
  187. data/lib/rabbit/utils.rb +12 -94
  188. data/lib/rabbit/version.rb +2 -2
  189. data/lib/rabbit/xmlrpc/client.rb +17 -1
  190. data/lib/rabbit/xmlrpc/server.rb +17 -1
  191. data/po/en/rabbit.edit.po +325 -317
  192. data/po/en/rabbit.po +61 -55
  193. data/po/fr/rabbit.edit.po +325 -317
  194. data/po/fr/rabbit.po +61 -55
  195. data/po/ja/rabbit.edit.po +346 -371
  196. data/po/ja/rabbit.po +83 -80
  197. data/rabbit.gemspec +4 -2
  198. data/sample/block-quote.rab +13 -0
  199. data/sample/description-list.rab +17 -0
  200. data/sample/mermaid.rab +16 -0
  201. data/sample/rabbit-en.hiki +0 -1
  202. data/sample/rabbit-en.md +0 -1
  203. data/sample/rabbit-en.rd +0 -1
  204. data/sample/rabbit.hiki +0 -1
  205. data/sample/rabbit.md +0 -1
  206. data/sample/rabbit.rd +0 -1
  207. data/sample/video.rab +17 -0
  208. metadata +33 -65
  209. data/lib/rabbit/action/basic.rb +0 -304
  210. data/lib/rabbit/action/radio.rb +0 -78
  211. data/lib/rabbit/action/toggle.rb +0 -82
  212. data/lib/rabbit/action.rb +0 -140
  213. data/lib/rabbit/renderer/display/gl.rb +0 -98
  214. data/lib/rabbit/renderer/display/key-handler.rb +0 -321
  215. data/lib/rabbit/renderer/gl.rb +0 -95
  216. data/lib/rabbit/renderer/screen.rb +0 -286
  217. data/lib/rabbit/renderer/widget/drawing-area.rb +0 -93
  218. data/lib/rabbit/stock.rb +0 -31
  219. data/lib/rabbit/trackball.rb +0 -228
  220. data/lib/rabbit/video-window.rb +0 -123
  221. data/test/command/test-rabbit.rb +0 -101
  222. data/test/helper/parser.rb +0 -48
  223. data/test/helper.rb +0 -24
  224. data/test/image/test-dia.rb +0 -54
  225. data/test/image/test-eps.rb +0 -41
  226. data/test/parser/test-markdown.rb +0 -360
  227. data/test/parser/test-rd.rb +0 -43
  228. data/test/parser/test-wiki.rb +0 -71
  229. data/test/run-test.rb +0 -27
  230. data/test/source-generator/test-hiki.rb +0 -68
  231. data/test/source-generator/test-markdown.rb +0 -67
  232. data/test/source-generator/test-rd.rb +0 -69
  233. data/test/test-applier.rb +0 -73
  234. data/test/test-author-configuration.rb +0 -37
  235. data/test/test-canvas.rb +0 -70
  236. data/test/test-color.rb +0 -51
  237. data/test/test-element.rb +0 -103
  238. data/test/test-readme-parser.rb +0 -160
  239. data/test/test-size.rb +0 -155
  240. data/test/test-slide-configuration.rb +0 -74
  241. data/test/test-source.rb +0 -122
  242. data/test/test-theme-configuration.rb +0 -47
  243. data/test/test-utils.rb +0 -64
@@ -1,304 +0,0 @@
1
- module Rabbit
2
- module Action
3
- module_function
4
- def act_next(action, group, canvas)
5
- canvas.move_to_next_if_can
6
- end
7
- def act_next_config(config, canvas)
8
- config[:label] = N_("Next")
9
- config[:stock_id] = Gtk::Stock::GO_FORWARD
10
- end
11
-
12
- def act_previous(action, group, canvas)
13
- canvas.move_to_previous_if_can
14
- end
15
- def act_previous_config(config, canvas)
16
- config[:label] = N_("Previous")
17
- config[:stock_id] = Gtk::Stock::GO_BACK
18
- end
19
-
20
- def act_next_slide(action, group, canvas)
21
- canvas.move_to_next_slide_if_can
22
- end
23
- def act_next_slide_config(config, canvas)
24
- config[:label] = N_("Next slide")
25
- config[:stock_id] = Gtk::Stock::GO_FORWARD
26
- end
27
-
28
- def act_previous_slide(action, group, canvas)
29
- canvas.move_to_previous_slide_if_can
30
- end
31
- def act_previous_slide_config(config, canvas)
32
- config[:label] = N_("Previous slide")
33
- config[:stock_id] = Gtk::Stock::GO_BACK
34
- end
35
-
36
- def act_first_slide(action, group, canvas)
37
- canvas.move_to_first
38
- end
39
- def act_first_slide_config(config, canvas)
40
- config[:label] = N_("First slide")
41
- config[:stock_id] = Gtk::Stock::GOTO_FIRST
42
- end
43
-
44
- def act_last_slide(action, group, canvas)
45
- canvas.move_to_last
46
- end
47
- def act_last_slide_config(config, canvas)
48
- config[:label] = N_("Last slide")
49
- config[:stock_id] = Gtk::Stock::GOTO_LAST
50
- end
51
-
52
- def act_jump_to(action, group, canvas)
53
- if action.block_given?
54
- canvas.move_to_if_can(action.call(action, group, canvas))
55
- end
56
- end
57
- def act_jump_to_config(config, canvas)
58
- config[:label] = N_("Jump to")
59
- config[:stock_id] = Gtk::Stock::JUMP_TO
60
- end
61
-
62
- def update_move_slide_action_status(canvas)
63
- canvas.action("Previous").sensitive = canvas.have_previous?
64
- canvas.action("Next").sensitive = canvas.have_next?
65
- canvas.action("PreviousSlide").sensitive = canvas.have_previous_slide?
66
- canvas.action("NextSlide").sensitive = canvas.have_next_slide?
67
- canvas.action("FirstSlide").sensitive = !canvas.first_slide?
68
- canvas.action("LastSlide").sensitive = !canvas.last_slide?
69
- end
70
-
71
- def act_save_as_image(action, group, canvas)
72
- canvas.save_as_image
73
- end
74
- def act_save_as_image_config(config, canvas)
75
- config[:label] = N_("Save as image")
76
- config[:stock_id] = Gtk::Stock::SAVE
77
- end
78
-
79
- def act_print(action, group, canvas)
80
- canvas.print
81
- end
82
- def act_print_config(config, canvas)
83
- config[:label] = N_("Print")
84
- config[:stock_id] = Gtk::Stock::PRINT
85
- end
86
-
87
- def act_iconify(action, group, canvas)
88
- canvas.iconify
89
- end
90
- def act_iconify_config(config, canvas)
91
- config[:label] = N_("Iconify")
92
- config[:stock_id] = Stock::RABBIT
93
- end
94
-
95
- def act_change_theme(action, group, canvas)
96
- if action.block_given?
97
- entry, block = action.call(action, group, canvas)
98
- canvas.apply_theme(entry.name, &block)
99
- end
100
- end
101
- def act_change_theme_config(config, canvas)
102
- config[:label] = N_("Change theme")
103
- end
104
-
105
- def act_merge_theme(action, group, canvas)
106
- if action.block_given?
107
- entry, block = action.call(action, group, canvas)
108
- canvas.merge_theme(entry.name, &block)
109
- end
110
- end
111
- def act_merge_theme_config(config, canvas)
112
- config[:label] = N_("Merge theme")
113
- end
114
-
115
- def act_reload_theme(action, group, canvas)
116
- block = nil
117
- block = action.call(action, group, canvas) if action.block_given?
118
- canvas.reload_theme(&block)
119
- end
120
- def act_reload_theme_config(config, canvas)
121
- config[:label] = N_("Reload theme")
122
- config[:stock_id] = Gtk::Stock::REFRESH
123
- end
124
-
125
- def act_redraw(action, group, canvas)
126
- canvas.redraw
127
- end
128
- def act_redraw_config(config, canvas)
129
- config[:label] = N_("Redraw")
130
- config[:stock_id] = Gtk::Stock::REFRESH
131
- end
132
-
133
- def act_clear_slide(action, group, canvas)
134
- canvas.clear_slide
135
- end
136
- def act_clear_slide_config(config, canvas)
137
- config[:label] = N_("Clear slide")
138
- config[:stock_id] = Gtk::Stock::CLEAR
139
- end
140
-
141
- def update_theme_action_status(canvas)
142
- not_applying = !canvas.applying?
143
- canvas.action("ReloadTheme").sensitive = not_applying
144
- canvas.action("ChangeTheme").sensitive = not_applying
145
- canvas.action("MergeTheme").sensitive = not_applying
146
- canvas.action("CacheAllSlides").sensitive = not_applying
147
- canvas.action("ToggleFullScreen").sensitive = not_applying
148
- end
149
-
150
- @@quit_label = N_("_Quit")
151
- @@quit_with_confirmation_label = N_("_Quit with confirmation")
152
- def quit_action_label(canvas)
153
- canvas.processing? ? @@quit_with_confirmation_label : @@quit_label
154
- end
155
-
156
- def act_quit(action, group, canvas)
157
- if !canvas.processing? or
158
- canvas.confirm(_("Now processing... Do you really quit?"))
159
- canvas.quit
160
- end
161
- end
162
- def act_quit_config(config, canvas)
163
- config[:label] = quit_action_label(canvas)
164
- config[:stock_id] = Gtk::Stock::QUIT
165
- end
166
-
167
- def update_quit_action_status(canvas)
168
- canvas.action("Quit").label = _(quit_action_label(canvas))
169
- end
170
-
171
- def act_cache_all_slides(action, group, canvas)
172
- canvas.cache_all_slides
173
- end
174
- def act_cache_all_slides_config(config, canvas)
175
- config[:label] = N_("Cache all slides")
176
- end
177
-
178
- def act_graffiti(action, group, canvas)
179
- update_graffiti_action_status(canvas)
180
- end
181
- def act_graffiti_config(config, canvas)
182
- config[:label] = N_("Graffiti")
183
- config[:stock_id] = Gtk::Stock::EDIT
184
- end
185
-
186
- def act_clear_graffiti(action, group, canvas)
187
- canvas.clear_graffiti
188
- end
189
- def act_clear_graffiti_config(config, canvas)
190
- config[:label] = N_("Clear graffiti")
191
- config[:stock_id] = Gtk::Stock::CLEAR
192
- end
193
-
194
- def act_undo_graffiti(action, group, canvas)
195
- canvas.undo_graffiti
196
- end
197
- def act_undo_graffiti_config(config, canvas)
198
- config[:label] = N_("Undo graffiti")
199
- config[:stock_id] = Gtk::Stock::UNDO
200
- end
201
-
202
- def act_change_graffiti_color(action, group, canvas)
203
- canvas.change_graffiti_color
204
- end
205
- def act_change_graffiti_color_config(config, canvas)
206
- config[:label] = N_("Change graffiti color")
207
- config[:stock_id] = Gtk::Stock::SELECT_COLOR
208
- end
209
-
210
- def update_graffiti_action_status(canvas)
211
- graffiti_available = canvas.graffiti_mode? || canvas.have_graffiti?
212
- canvas.action("Graffiti").sensitive = graffiti_available
213
- #canvas.action("ClearGraffiti").sensitive = canvas.have_graffiti?
214
- #canvas.action("UndoGraffiti").sensitive = canvas.can_undo_graffiti?
215
- canvas.action("ClearGraffiti").sensitive = graffiti_available
216
- canvas.action("UndoGraffiti").sensitive = graffiti_available
217
- canvas.action("ChangeGraffitiColor").sensitive = graffiti_available
218
- end
219
-
220
- def act_reset_adjustment(action, group, canvas)
221
- canvas.reset_adjustment
222
- end
223
- def act_reset_adjustment_config(config, canvas)
224
- config[:label] = N_("Reset adjustment")
225
- config[:stock_id] = Gtk::Stock::CLEAR
226
- end
227
-
228
- def act_reset_timer(action, group, canvas)
229
- canvas.reset_timer
230
- end
231
- def act_reset_timer_config(config, canvas)
232
- config[:label] = N_("Reset timer")
233
- config[:stock_id] = Gtk::Stock::CLEAR
234
- end
235
-
236
- def act_expand_hole(action, group, canvas)
237
- canvas.expand_hole
238
- end
239
- def act_expand_hole_config(config, canvas)
240
- config[:label] = N_("Expand hole")
241
- end
242
-
243
- def act_narrow_hole(action, group, canvas)
244
- canvas.narrow_hole
245
- end
246
- def act_narrow_hole_config(config, canvas)
247
- config[:label] = N_("Narrow hole")
248
- end
249
-
250
- def act_search_slide_forward(action, group, canvas)
251
- canvas.search_slide(true)
252
- update_saarch_action_status(canvas)
253
- end
254
- def act_search_slide_forward_config(config, canvas)
255
- config[:label] = N_("Search slide forward")
256
- end
257
-
258
- def act_search_slide_backward(action, group, canvas)
259
- canvas.search_slide(false)
260
- update_saarch_action_status(canvas)
261
- end
262
- def act_search_slide_backward_config(config, canvas)
263
- config[:label] = N_("Search slide backward")
264
- end
265
-
266
- def act_search_slide_forward_next(action, group, canvas)
267
- canvas.search_slide(true)
268
- update_saarch_action_status(canvas)
269
- end
270
- def act_search_slide_forward_next_config(config, canvas)
271
- config[:label] = N_("Search slide forward next")
272
- end
273
-
274
- def act_search_slide_backward_next(action, group, canvas)
275
- canvas.search_slide(false)
276
- update_saarch_action_status(canvas)
277
- end
278
- def act_search_slide_backward_next_config(config, canvas)
279
- config[:label] = N_("Search slide backward next")
280
- end
281
-
282
- def act_stop_slide_search(action, group, canvas)
283
- canvas.stop_slide_search
284
- update_saarch_action_status(canvas)
285
- end
286
- def act_stop_slide_search_config(config, canvas)
287
- config[:label] = N_("Stop slide search")
288
- end
289
-
290
- def update_saarch_action_status(canvas)
291
- canvas.action("SearchSlideForward").sensitive = !canvas.searching?
292
- canvas.action("SearchSlideBackward").sensitive = !canvas.searching?
293
- canvas.action("SearchSlideForwardNext").sensitive = canvas.searching?
294
- canvas.action("SearchSlideBackwardNext").sensitive = canvas.searching?
295
- canvas.action("StopSlideSearch").sensitive = canvas.searching?
296
- end
297
-
298
- def act_log_level(action, group, canvas)
299
- end
300
- def act_log_level_config(config, canvas)
301
- config[:label] = N_("Log Level")
302
- end
303
- end
304
- end
@@ -1,78 +0,0 @@
1
- module Rabbit
2
- module Action
3
- module_function
4
- @@radio_blank_values = [
5
- [:white, 1],
6
- [:black, 2],
7
- [:show, 3],
8
- ]
9
- def act_radio_blank(action, current, group, canvas)
10
- case @@radio_blank_values.rassoc(current.value)[0]
11
- when :white
12
- canvas.toggle_whiteout
13
- when :black
14
- canvas.toggle_blackout
15
- when :show
16
- if canvas.whiteouting?
17
- canvas.toggle_whiteout
18
- elsif canvas.blackouting?
19
- canvas.toggle_blackout
20
- end
21
- else
22
- p "????"
23
- end
24
- end
25
-
26
- def act_radio_blank_whiteout_config(config, canvas)
27
- config[:label] = N_("Whiteout")
28
- config[:value] = @@radio_blank_values.assoc(:white)[1]
29
- config[:default] = canvas.whiteouting?
30
- end
31
- def act_radio_blank_blackout_config(config, canvas)
32
- config[:label] = N_("Blackout")
33
- config[:value] = @@radio_blank_values.assoc(:black)[1]
34
- config[:default] = canvas.blackouting?
35
- end
36
- def act_radio_blank_show_config(config, canvas)
37
- config[:label] = N_("Show")
38
- config[:value] = @@radio_blank_values.assoc(:show)[1]
39
- config[:default] = !canvas.whiteouting? && !canvas.blackouting?
40
- end
41
-
42
-
43
- def act_radio_log_level(action, current, group, canvas)
44
- canvas.logger.level = current.value
45
- end
46
-
47
- def act_radio_log_level_debug_config(config, canvas)
48
- config[:label] = N_("Debug")
49
- config[:value] = Logger::Severity::DEBUG
50
- config[:default] = canvas.logger.level == config[:value]
51
- end
52
- def act_radio_log_level_info_config(config, canvas)
53
- config[:label] = N_("Info")
54
- config[:value] = Logger::Severity::INFO
55
- config[:default] = canvas.logger.level == config[:value]
56
- end
57
- def act_radio_log_level_warning_config(config, canvas)
58
- config[:label] = N_("Warning")
59
- config[:value] = Logger::Severity::WARNING
60
- config[:default] = canvas.logger.level == config[:value]
61
- end
62
- def act_radio_log_level_error_config(config, canvas)
63
- config[:label] = N_("Error")
64
- config[:value] = Logger::Severity::ERROR
65
- config[:default] = canvas.logger.level == config[:value]
66
- end
67
- def act_radio_log_level_fatal_config(config, canvas)
68
- config[:label] = N_("Fatal")
69
- config[:value] = Logger::Severity::FATAL
70
- config[:default] = canvas.logger.level == config[:value]
71
- end
72
- def act_radio_log_level_unknown_config(config, canvas)
73
- config[:label] = N_("Unknown")
74
- config[:value] = Logger::Severity::UNKNOWN
75
- config[:default] = canvas.logger.level == config[:value]
76
- end
77
- end
78
- end
@@ -1,82 +0,0 @@
1
- module Rabbit
2
- module Action
3
- module_function
4
- def act_toggle_whiteout(action, group, canvas)
5
- if canvas.whiteouting?
6
- canvas.activate("RadioBlankShow")
7
- else
8
- canvas.activate("RadioBlankWhiteout")
9
- end
10
- end
11
- def act_toggle_whiteout_config(config, canvas)
12
- config[:label] = N_("Whiteout")
13
- end
14
-
15
- def act_toggle_blackout(action, group, canvas)
16
- if canvas.blackouting?
17
- canvas.activate("RadioBlankShow")
18
- else
19
- canvas.activate("RadioBlankBlackout")
20
- end
21
- end
22
- def act_toggle_blackout_config(config, canvas)
23
- config[:label] = N_("Blackout")
24
- end
25
-
26
- def act_toggle_index_mode(action, group, canvas)
27
- canvas.toggle_index_mode
28
- end
29
- def act_toggle_index_mode_config(config, canvas)
30
- config[:label] = N_("Index mode")
31
- config[:stock_id] = Gtk::Stock::INDEX
32
- end
33
-
34
- def act_toggle_full_screen(action, group, canvas)
35
- canvas.toggle_fullscreen
36
- end
37
- def act_toggle_full_screen_config(config, canvas)
38
- config[:label] = N_("Full screen")
39
- if Gtk::Stock.const_defined?(:FULLSCREEN)
40
- config[:stock_id] = Gtk::Stock::FULLSCREEN
41
- else
42
- config[:stock_id] = Gtk::Stock::ZOOM_FIT
43
- end
44
- end
45
-
46
- def act_toggle_graffiti_mode(action, group, canvas)
47
- canvas.toggle_graffiti_mode
48
- end
49
- def act_toggle_graffiti_mode_config(config, canvas)
50
- config[:label] = N_("Graffiti mode")
51
- config[:stock_id] = Gtk::Stock::EDIT
52
- end
53
-
54
- def act_toggle_info_window(action, group, canvas)
55
- canvas.toggle_info_window
56
- end
57
- def act_toggle_info_window_config(config, canvas)
58
- config[:label] = N_("Information window")
59
- end
60
-
61
- def act_toggle_spotlight(action, group, canvas)
62
- canvas.toggle_spotlight
63
- end
64
- def act_toggle_spotlight_config(config, canvas)
65
- config[:label] = N_("Spotlight")
66
- end
67
-
68
- def act_toggle_magnifier(action, group, canvas)
69
- canvas.toggle_magnifier
70
- end
71
- def act_toggle_magnifier_config(config, canvas)
72
- config[:label] = N_("Magnifier")
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
81
- end
82
- end
data/lib/rabbit/action.rb DELETED
@@ -1,140 +0,0 @@
1
- # Copyright (C) 2005-2024 Sutou Kouhei <kou@cozmixng.org>
2
- #
3
- # This program is free software; you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation; either version 2 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
-
17
- require "rabbit/gtk"
18
-
19
- require 'rabbit/rabbit'
20
- require 'rabbit/stock'
21
- require 'rabbit/utils'
22
-
23
- module Rabbit
24
- module Action
25
- extend Utils
26
- include GetText
27
-
28
- @@actions = []
29
- @@toggle_actions = []
30
- @@radio_actions = []
31
- @@update_status_methods = []
32
- class << self
33
- def method_added(name)
34
- case name.to_s
35
- when /_config$/
36
- # ignore
37
- when /^act_(radio_.+)$/
38
- @@radio_actions << [Utils.to_class_name($1), name]
39
- when /^act_(toggle_.+)$/
40
- @@toggle_actions << [Utils.to_class_name($1), name]
41
- when /^act_(.+)$/
42
- @@actions << [Utils.to_class_name($1), name]
43
- when /^update_(.+)_status$/
44
- @@update_status_methods << name
45
- end
46
- end
47
-
48
- def action_group(canvas, name="Rabbit")
49
- Stock.init(canvas)
50
- group = Gtk::ActionGroup.new(name)
51
- group.set_translate_func(&method(:_))
52
- group.add_actions(to_gtk_actions(@@actions, canvas))
53
- actions = to_gtk_actions(@@toggle_actions, canvas, true)
54
- group.add_toggle_actions(actions)
55
- add_radio_actions(group, @@radio_actions, canvas)
56
- group
57
- end
58
-
59
- def update_status(canvas)
60
- @@update_status_methods.each do |method|
61
- __send__(method, canvas)
62
- end
63
- end
64
-
65
- private
66
- def to_gtk_actions(actions, canvas, toggle=false)
67
- actions.collect do |name, action|
68
- config = {:label => name}
69
- config_method = "#{action}_config"
70
- __send__(config_method, config, canvas) if respond_to?(config_method)
71
- callback = method(action)
72
- result = [
73
- name,
74
- config[:stock_id],
75
- config[:label],
76
- config[:accelerator],
77
- config[:tooltip],
78
- Proc.new do |group, act|
79
- guard(canvas) do
80
- callback.call(act, group, canvas)
81
- end
82
- end
83
- ]
84
- result << config[:is_active] if toggle
85
- result
86
- end
87
- end
88
-
89
- def add_radio_actions(group, actions, canvas)
90
- actions.each do |name, action|
91
- default_value = nil
92
- gtk_actions = methods(false).find_all do |method_name|
93
- /^#{action}_(?:.+)_config$/ =~ method_name
94
- end.collect do |config_method|
95
- /^act_(.*)_config$/ =~ config_method
96
- action_name = Utils.to_class_name($1)
97
- config = {:label => action_name}
98
- __send__(config_method, config, canvas)
99
- default_value = config[:value] if config[:default]
100
- [
101
- action_name,
102
- config[:stock_id],
103
- config[:label],
104
- config[:accelerator],
105
- config[:tooltip],
106
- config[:value],
107
- ]
108
- end
109
-
110
- callback = method(action)
111
- group.add_radio_actions(gtk_actions, default_value) do |act, current|
112
- guard(canvas) do
113
- callback.call(act, current, group, canvas)
114
- end
115
- end
116
- end
117
- end
118
-
119
- def guard(canvas)
120
- begin
121
- yield
122
- rescue Exception
123
- canvas.logger.warn($!)
124
- end
125
- end
126
- end
127
-
128
- module_function
129
- def update_processing_action_status(canvas)
130
- canvas.action("ToggleIndexMode").sensitive = !canvas.processing?
131
- canvas.action("CacheAllSlides").sensitive = !canvas.processing?
132
- canvas.action("SaveAsImage").sensitive = !canvas.processing?
133
- canvas.action("Print").sensitive = !canvas.processing?
134
- end
135
- end
136
- end
137
-
138
- require "rabbit/action/basic"
139
- require "rabbit/action/radio"
140
- require "rabbit/action/toggle"
@@ -1,98 +0,0 @@
1
- begin
2
- require "rabbit/renderer/gl"
3
- rescue LoadError
4
- end
5
-
6
- module Rabbit
7
- module Renderer
8
- module Display
9
- module GL
10
- include Renderer::GL if defined?(Renderer::GL)
11
-
12
- private
13
- def init_gl(widget)
14
- return unless gl_available?
15
- init_gl_event
16
- init_gl_capability(widget)
17
- end
18
-
19
- def init_gl_event
20
- begin_x = nil
21
- begin_y = nil
22
- start_time = nil
23
- handled = false
24
- view_scale_max = 2.0
25
- view_scale_min = 0.5
26
-
27
- add_button_press_hook do |event|
28
- handled = false
29
- start_time = event.time
30
- begin_x = event.x
31
- begin_y = event.y
32
- false
33
- end
34
-
35
- add_motion_notify_hook do |event|
36
- state = event.state
37
- if state.button2_mask?
38
- handled = true
39
- processed = true
40
- x = event.x.to_f
41
- y = event.y.to_f
42
- w = width.to_f
43
- h = height.to_f
44
-
45
- if state.control_mask?
46
- scale = gl_scale * (1.0 + (y - begin_y) / h)
47
- scale = [view_scale_min, scale].max
48
- self.gl_scale = [scale, view_scale_max].min
49
- elsif state.shift_mask?
50
- d_quat = TrackBall.trackball((2.0 * begin_x - w) / w,
51
- (h - 2.0 * begin_y) / h,
52
- (2.0 * x - w) / w,
53
- (h - 2.0 * y) / h)
54
- quat = TrackBall.add_quats(d_quat, gl_quaternion)
55
- self.gl_quaternion = quat
56
- else
57
- processed = false
58
- end
59
-
60
- if processed and event.time > start_time + 100
61
- redraw
62
- start_time = event.time
63
- end
64
- end
65
- false
66
- end
67
-
68
- add_button_release_hook do |event, last_button_press_event|
69
- redraw if handled
70
- handled
71
- end
72
- end
73
-
74
- def init_gl_capability(widget)
75
- mode = ::Gdk::GLConfig::MODE_RGBA
76
- mode |= ::Gdk::GLConfig::MODE_DEPTH
77
- # gl_config = ::Gdk::GLConfig.new(mode | ::Gdk::GLConfig::MODE_DOUBLE)
78
- gl_config = ::Gdk::GLConfig.new(mode)
79
- widget.set_gl_capability(gl_config)
80
- @gl_widget = widget
81
- end
82
-
83
- def finalize_gl
84
- @gl_widget = nil
85
- end
86
-
87
- def gl_drawable
88
- @gl_widget.gl_drawable
89
- end
90
-
91
- def gl_context
92
- @gl_widget.gl_context
93
- end
94
- end
95
- end
96
- end
97
- end
98
-