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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Rakefile +53 -7
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +2 -2
- data/doc/en/news.rd +69 -1
- data/doc/ja/news.rd +68 -0
- data/lib/rabbit/actions.rb +446 -0
- data/lib/rabbit/author-configuration.rb +7 -10
- data/lib/rabbit/canvas.rb +74 -42
- data/lib/rabbit/command/rabbit-slide.rb +11 -13
- data/lib/rabbit/command/rabbit-theme.rb +10 -12
- data/lib/rabbit/command/rabbit.rb +31 -43
- data/lib/rabbit/console.rb +20 -22
- data/lib/rabbit/dependency-canvas.rb +2 -2
- data/lib/rabbit/element/base.rb +93 -6
- data/lib/rabbit/element/block-element.rb +17 -1
- data/lib/rabbit/element/block.rb +17 -1
- data/lib/rabbit/element/container-element.rb +59 -3
- data/lib/rabbit/element/description-list.rb +18 -2
- data/lib/rabbit/element/enum-list.rb +18 -2
- data/lib/rabbit/element/footnote.rb +18 -2
- data/lib/rabbit/element/image-title-slide.rb +17 -1
- data/lib/rabbit/element/image.rb +32 -2
- data/lib/rabbit/element/index-slide.rb +29 -13
- data/lib/rabbit/element/item-list.rb +18 -2
- data/lib/rabbit/element/method-list.rb +18 -2
- data/lib/rabbit/element/poppler-page.rb +17 -1
- data/lib/rabbit/element/poppler-slide.rb +18 -2
- data/lib/rabbit/element/poppler-title-slide.rb +18 -2
- data/lib/rabbit/element/preformatted.rb +18 -2
- data/lib/rabbit/element/slide-element.rb +29 -2
- data/lib/rabbit/element/slide.rb +18 -2
- data/lib/rabbit/element/syntax-highlighting.rb +17 -1
- data/lib/rabbit/element/table.rb +19 -3
- data/lib/rabbit/element/tag.rb +18 -2
- data/lib/rabbit/element/text-block-element.rb +18 -2
- data/lib/rabbit/element/text-container-element.rb +41 -2
- data/lib/rabbit/element/text-element.rb +17 -1
- data/lib/rabbit/element/text-renderer.rb +17 -1
- data/lib/rabbit/element/text.rb +4 -4
- data/lib/rabbit/element/title-slide.rb +19 -3
- data/lib/rabbit/element/video.rb +157 -56
- data/lib/rabbit/element.rb +20 -20
- data/lib/rabbit/formatter.rb +18 -1
- data/lib/rabbit/frame.rb +102 -90
- data/lib/rabbit/front.rb +11 -4
- data/lib/rabbit/gem-finder.rb +4 -8
- data/lib/rabbit/gem-pusher.rb +4 -4
- data/lib/rabbit/gesture/handler.rb +26 -21
- data/lib/rabbit/graffiti/config-dialog.rb +18 -2
- data/lib/rabbit/graffiti/processor.rb +20 -4
- data/lib/rabbit/gtk.rb +48 -14
- data/lib/rabbit/html/generator.rb +18 -18
- data/{test/helper/fixture.rb → lib/rabbit/icon.rb} +16 -6
- data/lib/rabbit/image/base.rb +7 -6
- data/lib/rabbit/image/default.rb +17 -1
- data/lib/rabbit/image/dia.rb +2 -2
- data/lib/rabbit/image/eps.rb +16 -2
- data/lib/rabbit/image/gimp.rb +28 -11
- data/lib/rabbit/image/mermaid.rb +3 -3
- data/lib/rabbit/image/pdf.rb +3 -3
- data/lib/rabbit/image/svg.rb +2 -2
- data/lib/rabbit/image.rb +8 -8
- data/lib/rabbit/info-window.rb +55 -18
- data/lib/rabbit/key-handler.rb +381 -0
- data/lib/rabbit/keys.rb +31 -2
- data/lib/rabbit/logger/base.rb +17 -1
- data/lib/rabbit/logger/gui.rb +20 -4
- data/lib/rabbit/logger/stderr.rb +16 -2
- data/lib/rabbit/logger.rb +4 -4
- data/lib/rabbit/menu.rb +200 -220
- data/lib/rabbit/parser/base.rb +17 -1
- data/lib/rabbit/parser/ext/aafigure.rb +17 -1
- data/lib/rabbit/parser/ext/blockdiag.rb +17 -1
- data/lib/rabbit/parser/ext/charty.rb +2 -2
- data/lib/rabbit/parser/ext/coderay.rb +20 -4
- data/lib/rabbit/parser/ext/enscript.rb +31 -15
- data/lib/rabbit/parser/ext/entity.rb +17 -1
- data/lib/rabbit/parser/ext/image.rb +6 -6
- data/lib/rabbit/parser/ext/inline.rb +17 -1
- data/lib/rabbit/parser/ext/rouge.rb +7 -4
- data/lib/rabbit/parser/ext/tex.rb +18 -2
- data/lib/rabbit/parser/ext/video.rb +4 -4
- data/lib/rabbit/parser/image.rb +20 -4
- data/lib/rabbit/parser/markdown/converter.rb +12 -13
- data/lib/rabbit/parser/markdown.rb +18 -2
- data/lib/rabbit/parser/pause-support.rb +1 -0
- data/lib/rabbit/parser/pdf.rb +3 -3
- data/lib/rabbit/parser/rd/ext/base.rb +20 -4
- data/lib/rabbit/parser/rd/ext/block-verbatim.rb +24 -28
- data/lib/rabbit/parser/rd/ext/character-reference.rb +18 -2
- data/lib/rabbit/parser/rd/ext/image.rb +3 -3
- data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +6 -6
- data/lib/rabbit/parser/rd/ext/refer.rb +18 -2
- data/lib/rabbit/parser/rd/ext/video.rb +19 -2
- data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +24 -8
- data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +18 -2
- data/lib/rabbit/parser/rd/visitor.rb +18 -2
- data/lib/rabbit/parser/rd.rb +18 -2
- data/lib/rabbit/parser/wiki/output.rb +25 -28
- data/lib/rabbit/parser/wiki.rb +18 -2
- data/lib/rabbit/parser.rb +8 -6
- data/lib/rabbit/path-manipulatable.rb +4 -4
- data/lib/rabbit/progress.rb +17 -1
- data/lib/rabbit/properties.rb +3 -3
- data/lib/rabbit/rabbit.rb +15 -7
- data/lib/rabbit/readme-parser.rb +4 -6
- data/lib/rabbit/renderer/base.rb +44 -36
- data/lib/rabbit/renderer/color.rb +18 -2
- data/lib/rabbit/renderer/display/base.rb +10 -12
- data/lib/rabbit/renderer/display/button-handler.rb +141 -60
- data/lib/rabbit/renderer/display/cursor.rb +4 -5
- data/lib/rabbit/renderer/display/drawing-area-base.rb +32 -48
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +10 -61
- data/lib/rabbit/renderer/display/drawing-area-view-only.rb +19 -8
- data/lib/rabbit/renderer/display/drawing-area.rb +19 -15
- data/lib/rabbit/renderer/display/gesture.rb +9 -9
- data/lib/rabbit/renderer/display/graffiti.rb +22 -13
- data/lib/rabbit/renderer/display/info.rb +22 -2
- data/lib/rabbit/renderer/display/magnifier.rb +30 -17
- data/lib/rabbit/renderer/display/mask.rb +17 -1
- data/lib/rabbit/renderer/display/menu.rb +27 -3
- data/lib/rabbit/renderer/display/motion-handler.rb +45 -0
- data/lib/rabbit/renderer/display/progress.rb +17 -2
- data/lib/rabbit/renderer/display/scroll-handler.rb +60 -13
- data/lib/rabbit/renderer/display/search.rb +19 -2
- data/lib/rabbit/renderer/display/spotlight.rb +39 -25
- data/lib/rabbit/renderer/display.rb +16 -36
- data/lib/rabbit/renderer/engine/cairo.rb +4 -11
- data/lib/rabbit/renderer/engine.rb +17 -1
- data/lib/rabbit/renderer/kernel.rb +2 -20
- data/lib/rabbit/renderer/offscreen.rb +8 -14
- data/lib/rabbit/renderer/print-layout.rb +2 -2
- data/lib/rabbit/renderer/printer.rb +9 -16
- data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
- data/lib/rabbit/renderer/scene-node-widget.rb +63 -0
- data/lib/rabbit/renderer/scene.rb +508 -0
- data/lib/rabbit/renderer.rb +6 -6
- data/lib/rabbit/search-window.rb +18 -2
- data/lib/rabbit/searcher.rb +15 -1
- data/lib/rabbit/size.rb +9 -1
- data/lib/rabbit/slide-configuration.rb +11 -14
- data/lib/rabbit/soap/driver.rb +20 -4
- data/lib/rabbit/soap/server.rb +17 -1
- data/lib/rabbit/source/argf.rb +5 -5
- data/lib/rabbit/source/base.rb +5 -6
- data/lib/rabbit/source/file.rb +5 -5
- data/lib/rabbit/source/memory.rb +20 -4
- data/lib/rabbit/source/uri.rb +9 -11
- data/lib/rabbit/source-generator/hiki.rb +2 -7
- data/lib/rabbit/source-generator/markdown.rb +2 -7
- data/lib/rabbit/source-generator/rd.rb +2 -7
- data/lib/rabbit/source-generator.rb +4 -4
- data/lib/rabbit/source.rb +5 -5
- data/lib/rabbit/task/slide.rb +13 -11
- data/lib/rabbit/task/theme.rb +8 -11
- data/lib/rabbit/task.rb +3 -3
- data/lib/rabbit/theme/applier.rb +27 -11
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
- data/lib/rabbit/theme/color-circle/color-circle.rb +18 -1
- data/lib/rabbit/theme/cozmixng/cozmixng.rb +1 -1
- data/lib/rabbit/theme/default/default.rb +1 -0
- data/lib/rabbit/theme/default-icon/default-icon.rb +1 -1
- data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +17 -1
- data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +9 -1
- data/lib/rabbit/theme/enishi-green/enishi-green.rb +1 -1
- data/lib/rabbit/theme/entry.rb +10 -12
- data/lib/rabbit/theme/icon/icon.rb +3 -8
- data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +5 -5
- data/lib/rabbit/theme/image-timer/image-timer.rb +3 -3
- data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +1 -0
- data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +1 -0
- data/lib/rabbit/theme/manager.rb +19 -9
- data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +1 -1
- data/lib/rabbit/theme/ranguba/ranguba.rb +1 -1
- data/lib/rabbit/theme/red-frame/red-frame.rb +6 -2
- data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +1 -0
- data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +1 -1
- data/lib/rabbit/theme/searcher.rb +23 -7
- data/lib/rabbit/theme/slide-number/slide-number.rb +1 -1
- data/lib/rabbit/theme/slide-show/slide-show.rb +1 -1
- data/lib/rabbit/theme/table/table.rb +2 -2
- data/lib/rabbit/theme/video/property.rb +3 -0
- data/lib/rabbit/theme/video/video.rb +5 -0
- data/lib/rabbit/theme-configuration.rb +9 -11
- data/lib/rabbit/utils.rb +12 -94
- data/lib/rabbit/version.rb +2 -2
- data/lib/rabbit/xmlrpc/client.rb +17 -1
- data/lib/rabbit/xmlrpc/server.rb +17 -1
- data/po/en/rabbit.edit.po +325 -317
- data/po/en/rabbit.po +61 -55
- data/po/fr/rabbit.edit.po +325 -317
- data/po/fr/rabbit.po +61 -55
- data/po/ja/rabbit.edit.po +346 -371
- data/po/ja/rabbit.po +83 -80
- data/rabbit.gemspec +4 -2
- data/sample/block-quote.rab +13 -0
- data/sample/description-list.rab +17 -0
- data/sample/mermaid.rab +16 -0
- data/sample/rabbit-en.hiki +0 -1
- data/sample/rabbit-en.md +0 -1
- data/sample/rabbit-en.rd +0 -1
- data/sample/rabbit.hiki +0 -1
- data/sample/rabbit.md +0 -1
- data/sample/rabbit.rd +0 -1
- data/sample/video.rab +17 -0
- metadata +33 -65
- data/lib/rabbit/action/basic.rb +0 -304
- data/lib/rabbit/action/radio.rb +0 -78
- data/lib/rabbit/action/toggle.rb +0 -82
- data/lib/rabbit/action.rb +0 -140
- data/lib/rabbit/renderer/display/gl.rb +0 -98
- data/lib/rabbit/renderer/display/key-handler.rb +0 -321
- data/lib/rabbit/renderer/gl.rb +0 -95
- data/lib/rabbit/renderer/screen.rb +0 -286
- data/lib/rabbit/renderer/widget/drawing-area.rb +0 -93
- data/lib/rabbit/stock.rb +0 -31
- data/lib/rabbit/trackball.rb +0 -228
- data/lib/rabbit/video-window.rb +0 -123
- data/test/command/test-rabbit.rb +0 -101
- data/test/helper/parser.rb +0 -48
- data/test/helper.rb +0 -24
- data/test/image/test-dia.rb +0 -54
- data/test/image/test-eps.rb +0 -41
- data/test/parser/test-markdown.rb +0 -360
- data/test/parser/test-rd.rb +0 -43
- data/test/parser/test-wiki.rb +0 -71
- data/test/run-test.rb +0 -27
- data/test/source-generator/test-hiki.rb +0 -68
- data/test/source-generator/test-markdown.rb +0 -67
- data/test/source-generator/test-rd.rb +0 -69
- data/test/test-applier.rb +0 -73
- data/test/test-author-configuration.rb +0 -37
- data/test/test-canvas.rb +0 -70
- data/test/test-color.rb +0 -51
- data/test/test-element.rb +0 -103
- data/test/test-readme-parser.rb +0 -160
- data/test/test-size.rb +0 -155
- data/test/test-slide-configuration.rb +0 -74
- data/test/test-source.rb +0 -122
- data/test/test-theme-configuration.rb +0 -47
- data/test/test-utils.rb +0 -64
data/lib/rabbit/action/basic.rb
DELETED
@@ -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
|
data/lib/rabbit/action/radio.rb
DELETED
@@ -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
|
data/lib/rabbit/action/toggle.rb
DELETED
@@ -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
|
-
|