rabbit 2.1.9 → 2.2.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/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +4 -4
- data/doc/en/faq.rd +8 -8
- data/doc/en/news.rd +105 -1
- data/doc/ja/news.rd +104 -1
- data/lib/rabbit/canvas.rb +2 -1
- data/lib/rabbit/command/rabbit.rb +6 -3
- data/lib/rabbit/element/index-slide.rb +2 -2
- data/lib/rabbit/element/text-container-element.rb +30 -1
- data/lib/rabbit/element/text-renderer.rb +12 -1
- data/lib/rabbit/element/text.rb +7 -0
- data/lib/rabbit/error.rb +4 -3
- data/lib/rabbit/frame.rb +8 -22
- data/lib/rabbit/front.rb +8 -8
- data/lib/rabbit/gem-pusher.rb +66 -0
- data/lib/rabbit/gtk.rb +4 -0
- data/lib/rabbit/image-data-loader.rb +3 -3
- data/lib/rabbit/image/dia.rb +11 -6
- data/lib/rabbit/image/eps.rb +13 -11
- data/lib/rabbit/image/gimp.rb +1 -1
- data/lib/rabbit/image/pdf.rb +6 -10
- data/lib/rabbit/image/svg.rb +5 -1
- data/lib/rabbit/parser/markdown.rb +1 -0
- data/lib/rabbit/parser/markdown/converter.rb +43 -2
- data/lib/rabbit/password-reader.rb +34 -0
- data/lib/rabbit/progress.rb +22 -10
- data/lib/rabbit/renderer.rb +1 -1
- data/lib/rabbit/renderer/base.rb +7 -7
- data/lib/rabbit/renderer/color.rb +8 -0
- data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -0
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +14 -2
- data/lib/rabbit/renderer/display/magnifier.rb +6 -4
- data/lib/rabbit/renderer/display/scroll-handler.rb +2 -2
- data/lib/rabbit/renderer/display/spotlight.rb +1 -1
- data/lib/rabbit/renderer/engine/cairo.rb +16 -1
- data/lib/rabbit/renderer/offscreen.rb +120 -0
- data/lib/rabbit/search-window.rb +6 -6
- data/lib/rabbit/searcher.rb +4 -84
- data/lib/rabbit/slideshare.rb +7 -11
- data/lib/rabbit/source-generator/markdown.rb +4 -4
- data/lib/rabbit/task/slide.rb +4 -2
- data/lib/rabbit/task/theme.rb +6 -3
- data/lib/rabbit/theme/slide-logo/slide-logo.rb +37 -27
- data/lib/rabbit/theme/syntax-highlighting/syntax-highlighting.rb +1 -7
- data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +6 -0
- data/lib/rabbit/utils.rb +0 -5
- data/lib/rabbit/version.rb +2 -2
- data/po/en/rabbit.edit.po +151 -143
- data/po/en/rabbit.po +7 -1
- data/po/fr/rabbit.edit.po +151 -143
- data/po/fr/rabbit.po +7 -1
- data/po/ja/rabbit.edit.po +155 -147
- data/po/ja/rabbit.po +11 -5
- data/rabbit.gemspec +2 -1
- data/sample/rabbit.md +10 -0
- data/test/parser/test-markdown.rb +47 -1
- data/test/source-generator/test-markdown.rb +2 -2
- metadata +21 -9
- data/lib/rabbit/renderer/pixmap.rb +0 -1
- data/lib/rabbit/renderer/pixmap/base.rb +0 -127
- data/lib/rabbit/renderer/pixmap/cairo.rb +0 -15
- data/lib/rabbit/renderer/pixmap/gl.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f8a805af9b4c6690fe8f9453cfceb0c1e0892d4
|
4
|
+
data.tar.gz: ad5fe1b1e857c6915e385411d4bfb39ea1e0584b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 358394e487119026459084289744f958c54a964ca165f2b9a1d138a34f67a132ac32e3c3bb6034909a634c5891b3a51e3f039acb350a53b11bf725229785950b
|
7
|
+
data.tar.gz: ef2ed17a7b5dcbe187382a92f0a43adc8d431b639f0fe4e700cd977e66d62331761b7fcd33ee547519cce4cedbce9153d4facd047a6f1c4fb51cbe9e701821c1
|
Binary file
|
data/doc/_config.yml
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
markdown: kramdown
|
2
|
-
version: 2.
|
3
|
-
release_date:
|
4
|
-
rabbiter_version: 2.0.
|
5
|
-
rabbiter_release_date:
|
2
|
+
version: 2.2.0
|
3
|
+
release_date: 2017-01-22
|
4
|
+
rabbiter_version: 2.0.3
|
5
|
+
rabbiter_release_date: 2016-08-21
|
6
6
|
rabbirack_version: 2.0.0
|
7
7
|
rabbirack_release_date: 2012-08-29
|
8
8
|
rabwii_version: 2.0.0
|
data/doc/en/faq.rd
CHANGED
@@ -4,20 +4,20 @@ title: FAQ
|
|
4
4
|
---
|
5
5
|
== FAQ
|
6
6
|
|
7
|
-
This page lists frequently asked questions. Here is
|
7
|
+
This page lists frequently asked questions. Here is the format used on this page.
|
8
8
|
|
9
9
|
== Question...
|
10
10
|
|
11
11
|
Answer...
|
12
12
|
|
13
|
-
== How can I embed tweets on Rabbit slide?
|
13
|
+
== How can I embed tweets on a Rabbit slide?
|
14
14
|
|
15
|
-
Use "rabbiter" command. For exapmle, you
|
16
|
-
after starting Rabbit
|
15
|
+
Use the "rabbiter" command. For exapmle, you use the rabbiter command as follows:
|
16
|
+
(after starting Rabbit, you will see tweets including the word "ruby" at the bottom of the slides in the form of comments)
|
17
17
|
|
18
18
|
% rabbiter --filter ruby
|
19
19
|
|
20
|
-
== How can I flow tweets on slides like embeded video?
|
20
|
+
== How can I flow tweets on slides like an embeded video?
|
21
21
|
|
22
22
|
Run ((%rabbit%)) command with ((%--comment-theme stream-comment%)) options.
|
23
23
|
|
@@ -26,7 +26,7 @@ Run ((%rabbit%)) command with ((%--comment-theme stream-comment%)) options.
|
|
26
26
|
Taking into tweets with ((%rabbiter%)) command,
|
27
27
|
you can flow them on your slides.
|
28
28
|
|
29
|
-
== How to
|
29
|
+
== How to create a PDF with multiple slides per page?
|
30
30
|
|
31
31
|
For example, we make XXX_multi.pdf which has 8 slides per
|
32
32
|
page from XXX.rd.
|
@@ -138,8 +138,8 @@ Use following charachters.
|
|
138
138
|
|
139
139
|
This is available in both content and title.
|
140
140
|
|
141
|
-
TODO:
|
142
|
-
, which means following sentence is
|
141
|
+
TODO: Formerly we used 
 but now can use \n
|
142
|
+
, which means following sentence is oblsolete. Oh my god...
|
143
143
|
|
144
144
|
Rabbit has got into the magic as well as Ruby, which "makes what you shouldn't looks ugly". ((-Using (({$})) for global vars is a kind of "Magic Powder" for Ruby. -))。
|
145
145
|
|
data/doc/en/news.rd
CHANGED
@@ -3,6 +3,110 @@ layout: en
|
|
3
3
|
title: News
|
4
4
|
---
|
5
5
|
{% raw %}
|
6
|
+
== 2.2.0: 2017-01-22
|
7
|
+
|
8
|
+
Markdown support improvement release.
|
9
|
+
|
10
|
+
=== Improvements
|
11
|
+
|
12
|
+
==== All
|
13
|
+
|
14
|
+
* Dropped Ruby 2.0 support.
|
15
|
+
|
16
|
+
* Dropped gdk_pixbuf2 gem 3.0.8 or earlier support.
|
17
|
+
|
18
|
+
==== rabbit
|
19
|
+
|
20
|
+
* PDF: Supported PDF file that has "%" in its name.
|
21
|
+
|
22
|
+
* Dropped Migemo support.
|
23
|
+
|
24
|
+
* Markdown: Supported tag.
|
25
|
+
|
26
|
+
Example (Inline):
|
27
|
+
|
28
|
+
Normal {::tag name="center"}Centered{:/tag} Normal
|
29
|
+
|
30
|
+
Example (Paragraph):
|
31
|
+
|
32
|
+
Normal
|
33
|
+
|
34
|
+
{:.center}
|
35
|
+
Centered
|
36
|
+
|
37
|
+
Normal
|
38
|
+
|
39
|
+
* Markdown: Supported (({wait})) in nested list item.
|
40
|
+
|
41
|
+
* Improved performance on deciding font size dynamically.
|
42
|
+
|
43
|
+
* Changed to use RubyGems user in (({config.yaml})) on pushing
|
44
|
+
slide/theme gems.
|
45
|
+
|
46
|
+
* PDF: Supported link. But there are the following limitations:
|
47
|
+
* cairo 1.15.4 is required. (If you use Rabbit with cairo 1.15.2
|
48
|
+
or earlier, you just can't use this feature.)
|
49
|
+
* Link target is paragraph not link text.
|
50
|
+
|
51
|
+
==== Theme
|
52
|
+
|
53
|
+
* slide-logo: Supported logo per side by specifying image file name
|
54
|
+
to (({logo-image})) slide property.
|
55
|
+
|
56
|
+
* title-on-image-toolkit: Improved readability by rendering
|
57
|
+
character border.
|
58
|
+
|
59
|
+
* syntax-highlighting: Changed color for path of (({#include})) in
|
60
|
+
C. Now, it uses the same color as normal string.
|
61
|
+
|
62
|
+
==== rabbit-slide
|
63
|
+
|
64
|
+
* Markdown: Fixed a bug that required newlines are missing.
|
65
|
+
[GitHub#95][Patch by znz]
|
66
|
+
|
67
|
+
==== Document
|
68
|
+
|
69
|
+
* Improve English in FAQ.
|
70
|
+
[GitHub#100][Patch by Todd Trimble]
|
71
|
+
|
72
|
+
=== Fixes
|
73
|
+
|
74
|
+
==== rabbit
|
75
|
+
|
76
|
+
* Fixed a bug that error isn't reported when multibyte image file
|
77
|
+
name is specified and it doesn't exist.
|
78
|
+
[GitHub#91][Reported by takiy33]
|
79
|
+
|
80
|
+
* Windows: Fixed encoding error on image file detection.
|
81
|
+
[GitHub#93][Reported by dogatana]
|
82
|
+
|
83
|
+
* Fixed a bug that an error is occurred when you cancel in slide
|
84
|
+
select dialog.
|
85
|
+
|
86
|
+
* Fixed typos.
|
87
|
+
[GitHub#97][Patch by znz]
|
88
|
+
|
89
|
+
* Fixed a bug that spotlight and magnifier uses wrong position when
|
90
|
+
slide aspect ratio and window aspect ratio are difference.
|
91
|
+
[GitHub#99][Patch by OBATA Akio]
|
92
|
+
|
93
|
+
* Windows: Fixed a bug that unfullscreen doesn't restore window size.
|
94
|
+
[GitHub#98][Reported by TADA, Tadashi]
|
95
|
+
|
96
|
+
==== Document
|
97
|
+
|
98
|
+
* Fix typos.
|
99
|
+
[GitHub#101][Patch by znz]
|
100
|
+
|
101
|
+
=== Thanks
|
102
|
+
|
103
|
+
* takiy33
|
104
|
+
* dogatana
|
105
|
+
* znz
|
106
|
+
* Todd Trimble
|
107
|
+
* OBATA Akio
|
108
|
+
* TADA, Tadashi
|
109
|
+
|
6
110
|
== 2.1.9: 2016-05-27
|
7
111
|
|
8
112
|
Markdown support improvement release.
|
@@ -1150,7 +1254,7 @@ Markdown support release!
|
|
1150
1254
|
* [GitHub#3]: Fixed a wrong variable name.
|
1151
1255
|
[Patch by TAKATSU Tomonari]
|
1152
1256
|
|
1153
|
-
====
|
1257
|
+
==== rabbiter
|
1154
1258
|
|
1155
1259
|
* Supported HTTPS. [Patch by OBATA Akio]
|
1156
1260
|
|
data/doc/ja/news.rd
CHANGED
@@ -4,6 +4,109 @@ title: お知らせ
|
|
4
4
|
apply_data: false
|
5
5
|
---
|
6
6
|
{% raw %}
|
7
|
+
== 2.2.0: 2017-01-22
|
8
|
+
|
9
|
+
Markdownサポートを強化したリリース。
|
10
|
+
|
11
|
+
=== 改良
|
12
|
+
|
13
|
+
==== 全体
|
14
|
+
|
15
|
+
* Ruby 2.0のサポートをやめた。
|
16
|
+
|
17
|
+
* gdk_pixbuf2 gem 3.0.8以前のサポートをやめた。
|
18
|
+
|
19
|
+
==== rabbit
|
20
|
+
|
21
|
+
* PDF:「%」が含まれているファイル名に対応。
|
22
|
+
|
23
|
+
* Migemoサポートを削除した。
|
24
|
+
|
25
|
+
* Markdown:タグをサポート。
|
26
|
+
|
27
|
+
例(インライン):
|
28
|
+
|
29
|
+
普通のテキスト{::tag name="center"}中央寄せされたテキスト{:/tag}普通のテキスト
|
30
|
+
|
31
|
+
例(段落単位):
|
32
|
+
|
33
|
+
普通のテキスト
|
34
|
+
|
35
|
+
{:.center}
|
36
|
+
中央寄せされたテキスト
|
37
|
+
|
38
|
+
普通のテキスト
|
39
|
+
|
40
|
+
* Markdown:ネストしたリストの項目での(({wait}))をサポート。
|
41
|
+
|
42
|
+
* 動的にフォントサイズを決めるときのパフォーマンスを改善。
|
43
|
+
|
44
|
+
* スライド・テーマのgemをpushするときに(({config.yaml}))で指定してい
|
45
|
+
るRubyGemsユーザーを使うようにした。
|
46
|
+
|
47
|
+
* PDF:リンクをサポート。ただし、以下の制限がある。
|
48
|
+
* cairo 1.15.4以降が必要。(1.15.4未満の場合は単にこの機能を使えないだけ。)
|
49
|
+
* リンクテキストだけでなく段落全体がリンクになってしまう。
|
50
|
+
|
51
|
+
==== テーマ
|
52
|
+
|
53
|
+
* slide-logo:(({logo-image}))スライドプロパティーに画像ファイル名を
|
54
|
+
指定することでスライド毎にロゴを変えられるようにした。
|
55
|
+
|
56
|
+
* title-on-image-toolkit:文字の縁も描画して読みやすくした。
|
57
|
+
|
58
|
+
* syntax-highlighting:Cの(({#include}))のパスの色を通常の文字列と同
|
59
|
+
じ色にした。
|
60
|
+
|
61
|
+
==== rabbit-slide
|
62
|
+
|
63
|
+
* Markdown:必要な改行が出力されていない問題を修正。
|
64
|
+
[GitHub#95][znzさんがパッチ提供]
|
65
|
+
|
66
|
+
==== ドキュメント
|
67
|
+
|
68
|
+
* FAQの英語を改良。
|
69
|
+
[GitHub#100][Todd Trimbleさんがパッチ提供]
|
70
|
+
|
71
|
+
=== 修正
|
72
|
+
|
73
|
+
==== rabbit
|
74
|
+
|
75
|
+
* マルチバイトの画像ファイル名を指定してそのファイルが見つからなかっ
|
76
|
+
たときに適切にエラーを報告できない問題を修正。
|
77
|
+
[GitHub#91][takiy33さんが報告]
|
78
|
+
|
79
|
+
* Windows:画像ファイル検出時のエンコーディングエラーを修正。
|
80
|
+
[GitHub#93][dogatanaさんが報告]
|
81
|
+
|
82
|
+
* スライド選択ダイアログでキャンセルしたときにエラーが発生していた問
|
83
|
+
題を修正。
|
84
|
+
|
85
|
+
* typoを修正。
|
86
|
+
[GitHub#97][znzさんがパッチ提供]
|
87
|
+
|
88
|
+
* スライドのアスペクト比とウィンドウのアスペクト比が異なるときにスポッ
|
89
|
+
トライト・虫眼鏡が対象とする位置がずれる問題を修正。
|
90
|
+
[GitHub#99][おばたさんがパッチ提供]
|
91
|
+
|
92
|
+
* Windows:フルスクリーンを解除してもウィンドウサイズが戻らない問題
|
93
|
+
を修正。
|
94
|
+
[GitHub#98][ただただしさんが報告]
|
95
|
+
|
96
|
+
==== ドキュメント
|
97
|
+
|
98
|
+
* typoを修正。
|
99
|
+
[GitHub#101][znzさんがパッチ提供]
|
100
|
+
|
101
|
+
=== 感謝
|
102
|
+
|
103
|
+
* takiy33さん
|
104
|
+
* dogatanaさん
|
105
|
+
* znzさん
|
106
|
+
* Todd Trimbleさん
|
107
|
+
* おばたさん
|
108
|
+
* ただただしさん
|
109
|
+
|
7
110
|
== 2.1.9: 2016-05-27
|
8
111
|
|
9
112
|
Markdownサポートを強化したリリース。
|
@@ -1144,7 +1247,7 @@ Markdown対応リリース!
|
|
1144
1247
|
* [GitHub#3]: 変数名が間違っていた問題を修正。
|
1145
1248
|
[TAKATSU Tomonariさんが修正]
|
1146
1249
|
|
1147
|
-
====
|
1250
|
+
==== rabbiter
|
1148
1251
|
|
1149
1252
|
* HTTPS対応。 [OBATA Akioさんが修正]
|
1150
1253
|
|
data/lib/rabbit/canvas.rb
CHANGED
@@ -45,7 +45,7 @@ module Rabbit
|
|
45
45
|
def_delegators(:@renderer, :redraw, :clear_slide)
|
46
46
|
def_delegators(:@renderer, :cursor=, :filename, :filename=)
|
47
47
|
def_delegators(:@renderer, :each_slide_pixbuf)
|
48
|
-
def_delegators(:@renderer, :
|
48
|
+
def_delegators(:@renderer, :offscreen_canvas)
|
49
49
|
def_delegators(:@renderer, :foreground, :background)
|
50
50
|
def_delegators(:@renderer, :foreground=, :background=)
|
51
51
|
def_delegators(:@renderer, :background_image, :background_image=)
|
@@ -66,6 +66,7 @@ module Rabbit
|
|
66
66
|
def_delegators(:@renderer, :draw_rounded_rectangle)
|
67
67
|
def_delegators(:@renderer, :draw_rsvg_handle)
|
68
68
|
def_delegators(:@renderer, :draw_poppler_page)
|
69
|
+
def_delegators(:@renderer, :draw_link)
|
69
70
|
|
70
71
|
def_delegators(:@renderer, :draw_cube, :draw_sphere, :draw_cone)
|
71
72
|
def_delegators(:@renderer, :draw_torus, :draw_tetrahedron)
|
@@ -56,7 +56,10 @@ module Rabbit
|
|
56
56
|
end
|
57
57
|
application.signal_connect("activate") do
|
58
58
|
begin
|
59
|
-
succeeded =
|
59
|
+
succeeded = catch do |abort_tag|
|
60
|
+
@abort_tag = abort_tag
|
61
|
+
__send__("do_#{@options.action}")
|
62
|
+
end
|
60
63
|
rescue
|
61
64
|
@logger.error($!)
|
62
65
|
end
|
@@ -666,7 +669,7 @@ module Rabbit
|
|
666
669
|
if @options.source_type == :auto
|
667
670
|
if rest_arguments.empty?
|
668
671
|
file_name = choose_source_file_by_dialog
|
669
|
-
|
672
|
+
throw(@abort_tag, true) if file_name.nil?
|
670
673
|
rest_arguments = [file_name]
|
671
674
|
@options.source_type = Source::File
|
672
675
|
elsif rest_arguments.size == 1 and
|
@@ -821,7 +824,7 @@ module Rabbit
|
|
821
824
|
|
822
825
|
def do_save_as_image
|
823
826
|
source = make_source
|
824
|
-
canvas = make_canvas(Renderer::
|
827
|
+
canvas = make_canvas(Renderer::Offscreen)
|
825
828
|
setup_size(canvas)
|
826
829
|
setup_image_info(canvas)
|
827
830
|
setup_print_info(canvas)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rabbit/canvas'
|
2
|
-
require 'rabbit/renderer/
|
2
|
+
require 'rabbit/renderer/offscreen'
|
3
3
|
require 'rabbit/element/container-element'
|
4
4
|
require 'rabbit/element/slide-element'
|
5
5
|
|
@@ -87,7 +87,7 @@ module Rabbit
|
|
87
87
|
|
88
88
|
private
|
89
89
|
def make_thumbnail_maker(canvas, width, height)
|
90
|
-
new_canvas = Canvas.new(canvas.logger, Renderer::
|
90
|
+
new_canvas = Canvas.new(canvas.logger, Renderer::Offscreen)
|
91
91
|
new_canvas.width = width
|
92
92
|
new_canvas.height = height
|
93
93
|
new_canvas.pango_context = canvas.create_pango_context
|
@@ -15,7 +15,10 @@ module Rabbit
|
|
15
15
|
|
16
16
|
def draw_elements(canvas, x, y, w, h, simulation)
|
17
17
|
unless simulation
|
18
|
-
|
18
|
+
# TODO: This is too workaround. :<
|
19
|
+
draw_sub_elements(canvas, x, y, w, h) do
|
20
|
+
draw_layout(canvas, x, y)
|
21
|
+
end
|
19
22
|
end
|
20
23
|
[x, y + @height, w, h - @height]
|
21
24
|
end
|
@@ -103,6 +106,32 @@ module Rabbit
|
|
103
106
|
end
|
104
107
|
super(my_font_size)
|
105
108
|
end
|
109
|
+
|
110
|
+
private
|
111
|
+
# TODO: This is too workaround. :<
|
112
|
+
def draw_sub_elements(canvas, x, y, w, h)
|
113
|
+
draw_sub_elements_recursive(canvas, x, y, w, h, 0) do
|
114
|
+
yield
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# TODO: This is too workaround. :<
|
119
|
+
def draw_sub_elements_recursive(canvas, x, y, w, h, i)
|
120
|
+
if i == @elements.size
|
121
|
+
yield
|
122
|
+
else
|
123
|
+
draw_sub_elements_recursive(canvas, x, y, w, h, i + 1) do
|
124
|
+
element = @elements[i]
|
125
|
+
if element.respond_to?(:draw_sub_elements)
|
126
|
+
element.draw_sub_elements(canvas, x, y, w, h) do
|
127
|
+
yield
|
128
|
+
end
|
129
|
+
else
|
130
|
+
yield
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
106
135
|
end
|
107
136
|
end
|
108
137
|
end
|
@@ -148,7 +148,12 @@ module Rabbit
|
|
148
148
|
max_width, max_height|
|
149
149
|
if (max_width and initial_width > max_width) or
|
150
150
|
(max_height and initial_height > max_height)
|
151
|
-
scale =
|
151
|
+
scale = lambda do |_width, _height|
|
152
|
+
candidates = [0.95]
|
153
|
+
candidates << (max_width.to_f) / _width if max_width
|
154
|
+
candidates << (max_height.to_f) / _height if max_height
|
155
|
+
candidates.min
|
156
|
+
end
|
152
157
|
compare = Proc.new do |_width, _height|
|
153
158
|
(max_width.nil? or _width < max_width) and
|
154
159
|
(max_height.nil? or _height < max_height)
|
@@ -306,10 +311,16 @@ module Rabbit
|
|
306
311
|
|
307
312
|
return if scale.nil? or compare.nil?
|
308
313
|
|
314
|
+
if scale.respond_to?(:call)
|
315
|
+
compute_scale = scale
|
316
|
+
scale = nil
|
317
|
+
end
|
318
|
+
|
309
319
|
size = new_size = initial_font_size_for_compute_font_size
|
310
320
|
current_layout_size = @layout.pixel_size
|
311
321
|
unless compare.call(*@layout.pixel_size)
|
312
322
|
loop do
|
323
|
+
scale = compute_scale.call(*@layout.pixel_size) if compute_scale
|
313
324
|
new_size = compute_next_font_size(size, scale)
|
314
325
|
break if new_size == size
|
315
326
|
set_computed_font_size(new_size)
|