rabbit 2.2.1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +2 -2
- data/doc/_layouts/en.html +1 -1
- data/doc/_layouts/ja.html +1 -1
- data/doc/en/news.rd +140 -0
- data/doc/en/sample/hiki/rabbit.hiki +2 -2
- data/doc/en/sample/markdown/rabbit.md +1 -1
- data/doc/en/sample/rd/rabbit.rd +1 -1
- data/doc/en/usage/rabbit-slide.rd +3 -3
- data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
- data/doc/images/screenshots/en/blue-circle.png +0 -0
- data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/en/clear-blue.png +0 -0
- data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/en/cozmixng.png +0 -0
- data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
- data/doc/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/images/screenshots/en/day-white-raw.png +0 -0
- data/doc/images/screenshots/en/day-white.png +0 -0
- data/doc/images/screenshots/en/debian-raw.png +0 -0
- data/doc/images/screenshots/en/debian.png +0 -0
- data/doc/images/screenshots/en/green-circle-raw.png +0 -0
- data/doc/images/screenshots/en/green-circle.png +0 -0
- data/doc/images/screenshots/en/night-black-raw.png +0 -0
- data/doc/images/screenshots/en/night-black.png +0 -0
- data/doc/images/screenshots/en/rabbit-raw.png +0 -0
- data/doc/images/screenshots/en/rabbit.png +0 -0
- data/doc/images/screenshots/en/ranguba-raw.png +0 -0
- data/doc/images/screenshots/en/ranguba.png +0 -0
- data/doc/images/screenshots/en/red-frame-raw.png +0 -0
- data/doc/images/screenshots/en/red-frame.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
- data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
- data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
- data/doc/images/screenshots/ja/blue-circle.png +0 -0
- data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/ja/clear-blue.png +0 -0
- data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/ja/cozmixng.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/images/screenshots/ja/day-white-raw.png +0 -0
- data/doc/images/screenshots/ja/day-white.png +0 -0
- data/doc/images/screenshots/ja/debian-raw.png +0 -0
- data/doc/images/screenshots/ja/debian.png +0 -0
- data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
- data/doc/images/screenshots/ja/green-circle.png +0 -0
- data/doc/images/screenshots/ja/night-black-raw.png +0 -0
- data/doc/images/screenshots/ja/night-black.png +0 -0
- data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
- data/doc/images/screenshots/ja/rabbit.png +0 -0
- data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
- data/doc/images/screenshots/ja/ranguba.png +0 -0
- data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
- data/doc/images/screenshots/ja/red-frame.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
- data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
- data/doc/ja/how-to-make/index.rd +1 -1
- data/doc/ja/news.rd +143 -0
- data/doc/ja/sample/hiki/rabbit.hiki +2 -2
- data/doc/ja/sample/markdown/rabbit.md +1 -1
- data/doc/ja/sample/rd/rabbit.rd +1 -1
- data/doc/ja/slides.rd +1 -1
- data/doc/ja/usage/rabbit-slide.rd +3 -3
- data/doc/ja/users.rd +1 -1
- data/lib/rabbit/action.rb +23 -4
- data/lib/rabbit/canvas.rb +70 -14
- data/lib/rabbit/command/rabbit-slide.rb +252 -67
- data/lib/rabbit/command/rabbit-slide.ui +180 -0
- data/lib/rabbit/command/rabbit.rb +14 -20
- data/lib/rabbit/console.rb +9 -3
- data/lib/rabbit/dependency-canvas.rb +19 -1
- data/lib/rabbit/element.rb +34 -7
- data/lib/rabbit/element/poppler-page.rb +1 -2
- data/lib/rabbit/element/text-container-element.rb +2 -2
- data/lib/rabbit/element/text-renderer.rb +5 -4
- data/lib/rabbit/element/title-slide.rb +8 -0
- data/lib/rabbit/element/video.rb +1 -2
- data/lib/rabbit/filename.rb +39 -0
- data/lib/rabbit/formatter.rb +61 -30
- data/lib/rabbit/frame.rb +1 -19
- data/lib/rabbit/front.rb +23 -2
- data/lib/rabbit/gesture/handler.rb +21 -2
- data/lib/rabbit/graffiti/config-dialog.rb +15 -18
- data/lib/rabbit/gtk.rb +2 -191
- data/lib/rabbit/html/generator.rb +38 -30
- data/lib/rabbit/image-data-loader.rb +6 -1
- data/lib/rabbit/image.rb +22 -4
- data/lib/rabbit/image/base.rb +34 -2
- data/lib/rabbit/image/default.rb +1 -1
- data/lib/rabbit/image/eps.rb +1 -1
- data/lib/rabbit/image/gimp.rb +1 -1
- data/lib/rabbit/info-window.rb +27 -15
- data/lib/rabbit/logger/gui.rb +21 -23
- data/lib/rabbit/logger/stderr.rb +1 -1
- data/lib/rabbit/pango-markup.rb +44 -0
- data/lib/rabbit/parser.rb +20 -3
- data/lib/rabbit/parser/ext/image.rb +25 -8
- data/lib/rabbit/parser/ext/video.rb +21 -2
- data/lib/rabbit/parser/markdown.rb +1 -2
- data/lib/rabbit/parser/pdf.rb +23 -7
- data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +20 -0
- data/lib/rabbit/progress.rb +34 -23
- data/lib/rabbit/renderer.rb +17 -23
- data/lib/rabbit/renderer/base.rb +31 -57
- data/lib/rabbit/renderer/color.rb +46 -53
- data/lib/rabbit/renderer/display/base.rb +71 -62
- data/lib/rabbit/renderer/display/button-handler.rb +2 -1
- data/lib/rabbit/renderer/display/clutter-embed.rb +60 -26
- data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -1
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +34 -21
- data/lib/rabbit/renderer/display/graffiti.rb +1 -3
- data/lib/rabbit/renderer/display/hook-handler.rb +8 -4
- data/lib/rabbit/renderer/display/key-handler.rb +7 -2
- data/lib/rabbit/renderer/display/magnifier.rb +2 -2
- data/lib/rabbit/renderer/display/progress.rb +10 -2
- data/lib/rabbit/renderer/display/spotlight.rb +2 -2
- data/lib/rabbit/renderer/engine/cairo.rb +0 -3
- data/lib/rabbit/renderer/kernel.rb +54 -0
- data/lib/rabbit/renderer/offscreen.rb +14 -6
- data/lib/rabbit/renderer/print-layout.rb +150 -0
- data/lib/rabbit/renderer/printer.rb +236 -0
- data/lib/rabbit/renderer/screen.rb +288 -0
- data/lib/rabbit/renderer/widget/drawing-area.rb +93 -0
- data/lib/rabbit/size.rb +52 -25
- data/lib/rabbit/slide-configuration.rb +56 -12
- data/lib/rabbit/source.rb +24 -8
- data/lib/rabbit/task/slide.rb +1 -1
- data/lib/rabbit/theme/applier.rb +26 -9
- data/lib/rabbit/theme/base/base.rb +7 -7
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
- data/lib/rabbit/theme/image-timer/image-timer.rb +3 -1
- data/lib/rabbit/theme/image-viewer/image-viewer.rb +13 -1
- data/lib/rabbit/theme/image/image.rb +4 -4
- data/lib/rabbit/theme/lightning-talk-toolkit/lightning-talk-toolkit.rb +3 -1
- data/lib/rabbit/theme/tag/tag.rb +12 -4
- data/lib/rabbit/version.rb +2 -2
- data/lib/rabbit/video-window.rb +75 -89
- data/misc/emacs/rabbit-mode.el +11 -7
- data/po/en/rabbit.edit.po +189 -185
- data/po/en/rabbit.po +15 -12
- data/po/fr/rabbit.edit.po +189 -185
- data/po/fr/rabbit.po +15 -12
- data/po/ja/rabbit.edit.po +190 -186
- data/po/ja/rabbit.po +16 -13
- data/rabbit.gemspec +34 -16
- data/test/command/test-rabbit.rb +100 -0
- data/test/{rabbit-test-utils.rb → helper.rb} +7 -4
- data/test/{rabbit-test-utils → helper}/fixture.rb +2 -2
- data/test/{rabbit-test-utils → helper}/parser.rb +2 -2
- data/test/image/test-dia.rb +2 -2
- data/test/image/test-eps.rb +2 -2
- data/test/parser/test-markdown.rb +3 -5
- data/test/parser/test-rd.rb +1 -3
- data/test/parser/test-wiki.rb +3 -5
- data/test/run-test.rb +3 -3
- data/test/test-applier.rb +60 -29
- data/test/test-canvas.rb +70 -0
- data/test/test-color.rb +18 -9
- data/test/test-element.rb +15 -3
- data/test/test-size.rb +25 -22
- data/test/test-slide-configuration.rb +16 -6
- data/test/test-source.rb +15 -5
- data/test/test-utils.rb +15 -1
- metadata +55 -84
- data/lib/rabbit/renderer/print.rb +0 -31
- data/lib/rabbit/renderer/print/base.rb +0 -78
- data/lib/rabbit/renderer/print/cairo.rb +0 -122
- data/lib/rabbit/renderer/print/layout.rb +0 -123
- data/lib/rabbit/renderer/print/multiple.rb +0 -202
- data/lib/rabbit/source/hiki.rb +0 -36
- data/lib/rabbit/source/slide-share.rb +0 -53
@@ -0,0 +1,180 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.22.1 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.20"/>
|
5
|
+
<object class="GtkDialog" id="dialog">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<property name="type_hint">dialog</property>
|
8
|
+
<child>
|
9
|
+
<placeholder/>
|
10
|
+
</child>
|
11
|
+
<child internal-child="vbox">
|
12
|
+
<object class="GtkBox">
|
13
|
+
<property name="can_focus">False</property>
|
14
|
+
<property name="orientation">vertical</property>
|
15
|
+
<property name="spacing">2</property>
|
16
|
+
<child internal-child="action_area">
|
17
|
+
<object class="GtkButtonBox">
|
18
|
+
<property name="can_focus">False</property>
|
19
|
+
<property name="layout_style">end</property>
|
20
|
+
<child>
|
21
|
+
<object class="GtkButton" id="cancel-button">
|
22
|
+
<property name="label">gtk-cancel</property>
|
23
|
+
<property name="visible">True</property>
|
24
|
+
<property name="can_focus">True</property>
|
25
|
+
<property name="receives_default">True</property>
|
26
|
+
<property name="use_stock">True</property>
|
27
|
+
</object>
|
28
|
+
<packing>
|
29
|
+
<property name="expand">True</property>
|
30
|
+
<property name="fill">True</property>
|
31
|
+
<property name="position">0</property>
|
32
|
+
</packing>
|
33
|
+
</child>
|
34
|
+
<child>
|
35
|
+
<object class="GtkButton" id="apply-button">
|
36
|
+
<property name="label">gtk-apply</property>
|
37
|
+
<property name="visible">True</property>
|
38
|
+
<property name="can_focus">True</property>
|
39
|
+
<property name="receives_default">True</property>
|
40
|
+
<property name="use_stock">True</property>
|
41
|
+
</object>
|
42
|
+
<packing>
|
43
|
+
<property name="expand">True</property>
|
44
|
+
<property name="fill">True</property>
|
45
|
+
<property name="position">1</property>
|
46
|
+
</packing>
|
47
|
+
</child>
|
48
|
+
</object>
|
49
|
+
<packing>
|
50
|
+
<property name="expand">False</property>
|
51
|
+
<property name="fill">False</property>
|
52
|
+
<property name="position">0</property>
|
53
|
+
</packing>
|
54
|
+
</child>
|
55
|
+
<child>
|
56
|
+
<object class="GtkBox">
|
57
|
+
<property name="visible">True</property>
|
58
|
+
<property name="can_focus">False</property>
|
59
|
+
<property name="orientation">vertical</property>
|
60
|
+
<child>
|
61
|
+
<object class="GtkFrame">
|
62
|
+
<property name="visible">True</property>
|
63
|
+
<property name="can_focus">False</property>
|
64
|
+
<property name="label_xalign">0</property>
|
65
|
+
<property name="shadow_type">none</property>
|
66
|
+
<child>
|
67
|
+
<object class="GtkAlignment">
|
68
|
+
<property name="visible">True</property>
|
69
|
+
<property name="can_focus">False</property>
|
70
|
+
<property name="left_padding">12</property>
|
71
|
+
<child>
|
72
|
+
<object class="GtkGrid">
|
73
|
+
<property name="visible">True</property>
|
74
|
+
<property name="can_focus">False</property>
|
75
|
+
<child>
|
76
|
+
<object class="GtkLabel">
|
77
|
+
<property name="visible">True</property>
|
78
|
+
<property name="can_focus">False</property>
|
79
|
+
<property name="halign">end</property>
|
80
|
+
<property name="label" translatable="yes">ID:</property>
|
81
|
+
</object>
|
82
|
+
<packing>
|
83
|
+
<property name="left_attach">0</property>
|
84
|
+
<property name="top_attach">0</property>
|
85
|
+
</packing>
|
86
|
+
</child>
|
87
|
+
<child>
|
88
|
+
<object class="GtkEntry" id="slide-id">
|
89
|
+
<property name="visible">True</property>
|
90
|
+
<property name="can_focus">True</property>
|
91
|
+
<property name="placeholder_text" translatable="yes">rubykaigi2012</property>
|
92
|
+
</object>
|
93
|
+
<packing>
|
94
|
+
<property name="left_attach">1</property>
|
95
|
+
<property name="top_attach">0</property>
|
96
|
+
</packing>
|
97
|
+
</child>
|
98
|
+
<child>
|
99
|
+
<object class="GtkLabel">
|
100
|
+
<property name="visible">True</property>
|
101
|
+
<property name="can_focus">False</property>
|
102
|
+
<property name="halign">end</property>
|
103
|
+
<property name="label" translatable="yes">Base name:</property>
|
104
|
+
</object>
|
105
|
+
<packing>
|
106
|
+
<property name="left_attach">0</property>
|
107
|
+
<property name="top_attach">1</property>
|
108
|
+
</packing>
|
109
|
+
</child>
|
110
|
+
<child>
|
111
|
+
<object class="GtkEntry" id="slide-base-name">
|
112
|
+
<property name="visible">True</property>
|
113
|
+
<property name="can_focus">True</property>
|
114
|
+
<property name="placeholder_text" translatable="yes">rabbit-introduction</property>
|
115
|
+
</object>
|
116
|
+
<packing>
|
117
|
+
<property name="left_attach">1</property>
|
118
|
+
<property name="top_attach">1</property>
|
119
|
+
</packing>
|
120
|
+
</child>
|
121
|
+
<child>
|
122
|
+
<object class="GtkLabel">
|
123
|
+
<property name="visible">True</property>
|
124
|
+
<property name="can_focus">False</property>
|
125
|
+
<property name="label" translatable="yes">Markup language:</property>
|
126
|
+
</object>
|
127
|
+
<packing>
|
128
|
+
<property name="left_attach">0</property>
|
129
|
+
<property name="top_attach">2</property>
|
130
|
+
</packing>
|
131
|
+
</child>
|
132
|
+
<child>
|
133
|
+
<object class="GtkComboBoxText" id="slide-markup-language">
|
134
|
+
<property name="visible">True</property>
|
135
|
+
<property name="can_focus">False</property>
|
136
|
+
</object>
|
137
|
+
<packing>
|
138
|
+
<property name="left_attach">1</property>
|
139
|
+
<property name="top_attach">2</property>
|
140
|
+
</packing>
|
141
|
+
</child>
|
142
|
+
</object>
|
143
|
+
</child>
|
144
|
+
</object>
|
145
|
+
</child>
|
146
|
+
<child type="label">
|
147
|
+
<object class="GtkLabel">
|
148
|
+
<property name="visible">True</property>
|
149
|
+
<property name="can_focus">False</property>
|
150
|
+
<property name="label" translatable="yes">Slide information</property>
|
151
|
+
</object>
|
152
|
+
</child>
|
153
|
+
</object>
|
154
|
+
<packing>
|
155
|
+
<property name="expand">False</property>
|
156
|
+
<property name="fill">True</property>
|
157
|
+
<property name="position">0</property>
|
158
|
+
</packing>
|
159
|
+
</child>
|
160
|
+
<child>
|
161
|
+
<placeholder/>
|
162
|
+
</child>
|
163
|
+
<child>
|
164
|
+
<placeholder/>
|
165
|
+
</child>
|
166
|
+
</object>
|
167
|
+
<packing>
|
168
|
+
<property name="expand">False</property>
|
169
|
+
<property name="fill">True</property>
|
170
|
+
<property name="position">1</property>
|
171
|
+
</packing>
|
172
|
+
</child>
|
173
|
+
</object>
|
174
|
+
</child>
|
175
|
+
<action-widgets>
|
176
|
+
<action-widget response="-6">cancel-button</action-widget>
|
177
|
+
<action-widget response="-10">apply-button</action-widget>
|
178
|
+
</action-widgets>
|
179
|
+
</object>
|
180
|
+
</interface>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2004-
|
1
|
+
# Copyright (C) 2004-2019 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
|
@@ -142,7 +142,6 @@ module Rabbit
|
|
142
142
|
options.migemo_dictionary_name = "migemo-dict"
|
143
143
|
options.use_gl = false
|
144
144
|
options.show_native_window_id = false
|
145
|
-
options.keep_above = false
|
146
145
|
options.source_filename = nil
|
147
146
|
|
148
147
|
|
@@ -587,14 +586,6 @@ module Rabbit
|
|
587
586
|
options.use_gl = bool
|
588
587
|
end
|
589
588
|
|
590
|
-
parser.category _("Display")
|
591
|
-
|
592
|
-
parser.on("--[no-]keep-above",
|
593
|
-
_("Specify whether to keep above window."),
|
594
|
-
"(#{options.keep_above})") do |bool|
|
595
|
-
options.keep_above = bool
|
596
|
-
end
|
597
|
-
|
598
589
|
parser.category _("Others")
|
599
590
|
|
600
591
|
parser.on("--check-syntax",
|
@@ -727,9 +718,9 @@ module Rabbit
|
|
727
718
|
target.draw_scaled_image = @options.draw_scaled_image
|
728
719
|
end
|
729
720
|
|
730
|
-
def
|
731
|
-
target.
|
732
|
-
target.
|
721
|
+
def setup_base_size(target)
|
722
|
+
target.base_width = @options.width
|
723
|
+
target.base_height = @options.height
|
733
724
|
end
|
734
725
|
|
735
726
|
def setup_paper_size(target)
|
@@ -811,8 +802,8 @@ module Rabbit
|
|
811
802
|
|
812
803
|
def do_print
|
813
804
|
source = make_source
|
814
|
-
|
815
|
-
canvas
|
805
|
+
canvas = make_canvas(Renderer::Printer)
|
806
|
+
setup_base_size(canvas)
|
816
807
|
setup_paper_size(canvas)
|
817
808
|
setup_print_info(canvas)
|
818
809
|
setup_3d_info(canvas)
|
@@ -829,7 +820,7 @@ module Rabbit
|
|
829
820
|
def do_save_as_image
|
830
821
|
source = make_source
|
831
822
|
canvas = make_canvas(Renderer::Offscreen)
|
832
|
-
|
823
|
+
setup_base_size(canvas)
|
833
824
|
setup_image_info(canvas)
|
834
825
|
setup_print_info(canvas)
|
835
826
|
setup_paper_size(canvas)
|
@@ -851,10 +842,14 @@ module Rabbit
|
|
851
842
|
Renderer::Display.init(display_init_options)
|
852
843
|
|
853
844
|
source = make_source
|
854
|
-
|
845
|
+
if ENV["RABBIT_RENDERER"] == "screen"
|
846
|
+
canvas = make_canvas(Renderer::Screen)
|
847
|
+
else
|
848
|
+
canvas = make_canvas(Renderer::Display)
|
849
|
+
end
|
855
850
|
frame = Frame.new(@logger, canvas)
|
856
851
|
frame.geometry = @options.geometry
|
857
|
-
|
852
|
+
setup_base_size(canvas)
|
858
853
|
setup_paper_size(canvas)
|
859
854
|
setup_image_info(canvas)
|
860
855
|
setup_print_info(canvas)
|
@@ -881,8 +876,7 @@ module Rabbit
|
|
881
876
|
|
882
877
|
def do_check_syntax
|
883
878
|
source = make_source
|
884
|
-
|
885
|
-
canvas = make_canvas(renderer)
|
879
|
+
canvas = make_canvas(Renderer::Printer)
|
886
880
|
exception = nil
|
887
881
|
begin
|
888
882
|
canvas.parse(source) do |_exception|
|
data/lib/rabbit/console.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2005-
|
1
|
+
# Copyright (C) 2005-2017 Kouhei Sutou <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
|
@@ -18,6 +18,8 @@ require 'English'
|
|
18
18
|
|
19
19
|
require "shellwords"
|
20
20
|
require "optparse"
|
21
|
+
require "optparse/date"
|
22
|
+
require "optparse/time"
|
21
23
|
require "ostruct"
|
22
24
|
require "uri"
|
23
25
|
require "pathname"
|
@@ -79,8 +81,12 @@ module Rabbit
|
|
79
81
|
options.after_hooks.each do |hook|
|
80
82
|
hook.call(self, parser, options)
|
81
83
|
end
|
82
|
-
rescue
|
83
|
-
@logger.
|
84
|
+
rescue => error
|
85
|
+
@logger.error("#{error.class}: #{error.message}")
|
86
|
+
error.backtrace.each do |line|
|
87
|
+
@logger.error(line)
|
88
|
+
end
|
89
|
+
raise
|
84
90
|
end
|
85
91
|
|
86
92
|
[options, options.logger]
|
@@ -1,4 +1,20 @@
|
|
1
|
-
|
1
|
+
# Copyright (C) 2006-2019 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/canvas"
|
2
18
|
|
3
19
|
module Rabbit
|
4
20
|
class DependencyCanvas < Canvas
|
@@ -10,6 +26,8 @@ module Rabbit
|
|
10
26
|
def initialize(parent, *rest, &block)
|
11
27
|
@parent = parent
|
12
28
|
super(*rest, &block)
|
29
|
+
self.base_width = @parent.base_width
|
30
|
+
self.base_height = @parent.base_height
|
13
31
|
end
|
14
32
|
end
|
15
33
|
end
|
data/lib/rabbit/element.rb
CHANGED
@@ -1,8 +1,35 @@
|
|
1
|
-
|
1
|
+
# Copyright (C) 2017 Kouhei Sutou <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.
|
2
16
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
17
|
+
require "rabbit/element/block"
|
18
|
+
require "rabbit/element/description-list"
|
19
|
+
require "rabbit/element/enum-list"
|
20
|
+
require "rabbit/element/footnote"
|
21
|
+
require "rabbit/element/image-title-slide"
|
22
|
+
require "rabbit/element/image"
|
23
|
+
require "rabbit/element/index-slide"
|
24
|
+
require "rabbit/element/item-list"
|
25
|
+
require "rabbit/element/method-list"
|
26
|
+
require "rabbit/element/poppler-slide"
|
27
|
+
require "rabbit/element/poppler-title-slide"
|
28
|
+
require "rabbit/element/preformatted"
|
29
|
+
require "rabbit/element/slide"
|
30
|
+
require "rabbit/element/syntax-highlighting"
|
31
|
+
require "rabbit/element/table"
|
32
|
+
require "rabbit/element/tag"
|
33
|
+
require "rabbit/element/text"
|
34
|
+
require "rabbit/element/title-slide"
|
35
|
+
require "rabbit/element/video"
|
@@ -107,7 +107,7 @@ module Rabbit
|
|
107
107
|
super(my_font_size)
|
108
108
|
end
|
109
109
|
|
110
|
-
|
110
|
+
protected
|
111
111
|
# TODO: This is too workaround. :<
|
112
112
|
def draw_sub_elements(canvas, x, y, w, h)
|
113
113
|
draw_sub_elements_recursive(canvas, x, y, w, h, 0) do
|
@@ -122,7 +122,7 @@ module Rabbit
|
|
122
122
|
else
|
123
123
|
draw_sub_elements_recursive(canvas, x, y, w, h, i + 1) do
|
124
124
|
element = @elements[i]
|
125
|
-
if element.
|
125
|
+
if element.is_a?(TextContainerElement)
|
126
126
|
element.draw_sub_elements(canvas, x, y, w, h) do
|
127
127
|
yield
|
128
128
|
end
|
@@ -206,13 +206,13 @@ module Rabbit
|
|
206
206
|
end
|
207
207
|
|
208
208
|
def setup_layout(layout, w)
|
209
|
-
if @wrap_mode
|
210
|
-
|
211
|
-
|
209
|
+
layout.set_wrap(@wrap_mode) if @wrap_mode
|
210
|
+
layout.set_alignment(@align)
|
211
|
+
if @wrap_mode or layout.alignment != Pango::Alignment::LEFT
|
212
|
+
layout.set_width((w * Pango::SCALE).ceil)
|
212
213
|
else
|
213
214
|
layout.set_width(-1)
|
214
215
|
end
|
215
|
-
layout.set_alignment(@align)
|
216
216
|
indent = @indent
|
217
217
|
indent = indent.value if indent.respond_to?(:value)
|
218
218
|
layout.set_indent(indent)
|
@@ -325,6 +325,7 @@ module Rabbit
|
|
325
325
|
break if new_size == size
|
326
326
|
set_computed_font_size(new_size)
|
327
327
|
compile(canvas, x, y, w, h)
|
328
|
+
break if !@wrap_mode and @layout.wrapped?
|
328
329
|
break if compare.call(*@layout.pixel_size)
|
329
330
|
size = new_size
|
330
331
|
end
|
data/lib/rabbit/element/video.rb
CHANGED