Feat/font autoscale (#288)

* PoC font autosize feature

* Take enumerables or 'auto' keyword for autoscaling

* Allo enumerables of font_size per card, where the largest font size that does not ellipsize is chosen

* Use ellipsize: :autoscale keyword to determine font autosizing

* Use binary search to find the correct font size

* Consider new ellipsize option in testcase

* Document ellipsize: :autoscale option

* Add ellipsize: :autoscale sample to text sample

* Fix double multiplication with Pango::SCALE

* Scale embedded images with text when autoscaling

* Remove stray semicolon

* Return dummy value for FontDescription.size in mock_cairo

* Update regression test data for autoscale feature.

* Add ellipsize: :autoscale example to existing font_autoscale sample

* Add missing :autoscale to list of options in documentation
This commit is contained in:
Mirko K
2019-10-17 11:29:14 -04:00
committed by Andy Meneely
parent 43cca582a6
commit 6d57b3e8c1
28 changed files with 1161 additions and 187 deletions
@@ -21,7 +21,7 @@ cairo: new_path([])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: rounded_rectangle([0, 0, 300, 100, 0, 0])
cairo: rounded_rectangle([0, 0, 300, 200, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color(["black"])
@@ -36,7 +36,7 @@ cairo: new_path([])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: rounded_rectangle([0, 0, 300, 100, 0, 0])
cairo: rounded_rectangle([0, 0, 300, 200, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color(["black"])
@@ -51,7 +51,7 @@ cairo: new_path([])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: rounded_rectangle([0, 0, 300, 100, 0, 0])
cairo: rounded_rectangle([0, 0, 300, 200, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color(["black"])
@@ -61,13 +61,13 @@ cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
pango font: size=([10915.84])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
pango font: size=([10915.84])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
@@ -83,14 +83,15 @@ cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([6144])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
pango font: size=([6144])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
@@ -106,14 +107,15 @@ cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([4096])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
pango font: size=([4096])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
@@ -129,6 +131,760 @@ cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([10240])
pango font: size=([500])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([250])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([125])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([62])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([31])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([15])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([7])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([3])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Short & Big"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([10240])
pango font: size=([500])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([250])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([125])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([62])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([31])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([15])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([7])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([3])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Medium Length & Size"])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([10240])
pango font: size=([500])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([250])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([125])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([62])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([31])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([15])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([7])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([3])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: translate([-10000, -10000])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
cairo: restore([])
pango font: size=([1])
cairo: save([])
cairo: new_path([])
cairo: set_source_color(["black"])
cairo: translate([10, 100])
cairo: rotate([0])
cairo: move_to([0, 0])
pango: font_description=([MockDouble])
pango: text=(["Super duper long string here, therefore a smaller font."])
pango: width=([286720])
pango: height=([51200])
pango: wrap=([#<Pango::WrapMode word-char>])
pango: ellipsize=([#<Pango::EllipsizeMode end>])
pango: alignment=([#<Pango::Alignment center>])
pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
pango: ellipsized?([])
pango: ellipsized?([])
cairo: restore([])
cairo: set_source([MockDouble, 0, 0])
cairo: paint([])