diff --git a/lib/squib/api/text.rb b/lib/squib/api/text.rb
index 925db77..fc6c895 100644
--- a/lib/squib/api/text.rb
+++ b/lib/squib/api/text.rb
@@ -37,13 +37,16 @@ module Squib
# @option opts valign [:top, :middle, :bottom] (:top) When width and height are set, align text vertically according to the ink extents of the text.
# @option opts ellipsize [:none, :start, :middle, :end, true, false] (:end) When width and height are set, determines the behavior of overflowing text. Also: `true` maps to `:end` and `false` maps to `:none`. Default `:end`
# @option opts angle [FixNum] (0) Rotation of the text in radians. Note that this rotates around the upper-left corner of the text box, making the placement of x-y coordinates slightly tricky.
+ # @option opts stroke_color [String] (:black) the color with which to stroke the outside of the rectangle. {file:README.md#Specifying_Colors___Gradients Specifying Colors & Gradients}
+ # @option opts stroke_width [Decimal] (2.0) the width of the outside stroke. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts hint [String] (:nil) draw a rectangle around the text with the given color. Overrides global hints (see {Deck#hint}).
# @return [Array] Returns an Array of hashes keyed by :width and :height that mark the ink extents of the text rendered.
# @api public
def text(opts = {})
+ opts = { stroke_width: 0 }.merge(opts)
opts = needs(opts, [:range, :str, :font, :font_size, :x, :y, :width, :height, :color, :wrap,
:align, :justify, :spacing, :valign, :markup, :ellipsize, :hint, :layout,
- :angle, :quotes])
+ :angle, :quotes, :stroke_color, :stroke_width])
embed = TextEmbed.new
yield(embed) if block_given? #store the opts for later use
extents = Array.new(@cards.size)
@@ -53,7 +56,8 @@ module Squib
opts[:x][i], opts[:y][i], opts[:width][i], opts[:height][i],
opts[:markup][i], opts[:justify][i], opts[:wrap][i],
opts[:ellipsize][i], opts[:spacing][i], opts[:align][i],
- opts[:valign][i], opts[:hint][i], opts[:angle][i])
+ opts[:valign][i], opts[:hint][i], opts[:angle][i],
+ opts[:stroke_color][i], opts[:stroke_width][i] )
end
return extents
end
diff --git a/lib/squib/graphics/cairo_context_wrapper.rb b/lib/squib/graphics/cairo_context_wrapper.rb
index 843569e..939a9d0 100644
--- a/lib/squib/graphics/cairo_context_wrapper.rb
+++ b/lib/squib/graphics/cairo_context_wrapper.rb
@@ -22,7 +22,7 @@ module Squib
:show_pango_layout, :rounded_rectangle, :set_line_width, :stroke, :fill,
:set_source, :scale, :render_rsvg_handle, :circle, :triangle, :line_to,
:operator=, :show_page, :clip, :transform, :mask, :create_pango_layout,
- :antialias=, :curve_to, :matrix, :matrix=, :identity_matrix
+ :antialias=, :curve_to, :matrix, :matrix=, :identity_matrix, :pango_layout_path
# :nodoc:
# @api private
diff --git a/lib/squib/graphics/text.rb b/lib/squib/graphics/text.rb
index df54491..ea1ae74 100644
--- a/lib/squib/graphics/text.rb
+++ b/lib/squib/graphics/text.rb
@@ -143,17 +143,26 @@ module Squib
return draw_calls
end
+ def stroke_outline!(cc, layout, stroke_width, stroke_color)
+ if stroke_width > 0
+ cc.set_source_squibcolor(stroke_color)
+ cc.set_line_width(stroke_width)
+ cc.pango_layout_path(layout)
+ cc.stroke
+ end
+ end
+
# :nodoc:
# @api private
def text(embed,str, font, font_size, color,
x, y, width, height,
markup, justify, wrap, ellipsize,
- spacing, align, valign, hint, angle)
+ spacing, align, valign, hint, angle,
+ stroke_color, stroke_width)
Squib.logger.debug {"Placing '#{str}'' with font '#{font}' @ #{x}, #{y}, color: #{color}, angle: #{angle} etc."}
extents = nil
str = str.to_s
use_cairo do |cc|
- cc.set_source_squibcolor(color)
cc.translate(x,y)
cc.rotate(angle)
cc.move_to(0, 0)
@@ -184,6 +193,8 @@ module Squib
cc.move_to(0, vertical_start)
cc.update_pango_layout(layout)
+ stroke_outline!(cc, layout, stroke_width, stroke_color)
+ cc.set_source_squibcolor(color)
cc.show_pango_layout(layout)
begin
embed_draws.each { |ed| ed[:draw].call(self, ed[:x], ed[:y] + vertical_start) }
diff --git a/samples/text_options.rb b/samples/text_options.rb
index 3c31b76..f42278d 100644
--- a/samples/text_options.rb
+++ b/samples/text_options.rb
@@ -78,6 +78,10 @@ Squib::Deck.new(width: 825, height: 1125, cards: 3) do
embed.svg key: ':health:', width: 28, height: 28, file: 'glass-heart.svg'
end
+ text str: "Stroke n fill",
+ color: :green, stroke_width: 3.0, stroke_color: :blue,
+ x: '1.8in', y: '3in', width: '0.85in', font: 'Sans Bold 26', markup: true
+
text str: "Markup is quite 'easy' awesome. Can't beat those \"smart\" 'quotes', now with 10--20% more en-dashes --- and em-dashes --- with explicit ellipses too...",
markup: true,
x: 50, y: 1000,
diff --git a/spec/data/samples/autoscale_font.rb.txt b/spec/data/samples/autoscale_font.rb.txt
index a71140d..b9a1b7d 100644
--- a/spec/data/samples/autoscale_font.rb.txt
+++ b/spec/data/samples/autoscale_font.rb.txt
@@ -14,7 +14,6 @@ cairo: set_source_color([:white])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -30,6 +29,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -37,7 +37,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -53,6 +52,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -60,7 +60,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -76,6 +75,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
diff --git a/spec/data/samples/basic.rb.txt b/spec/data/samples/basic.rb.txt
index c741939..cf48f42 100644
--- a/spec/data/samples/basic.rb.txt
+++ b/spec/data/samples/basic.rb.txt
@@ -68,7 +68,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -82,10 +81,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -99,10 +98,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -116,10 +115,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -134,10 +133,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -152,10 +151,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -170,6 +169,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
diff --git a/spec/data/samples/config_text_markup.rb.txt b/spec/data/samples/config_text_markup.rb.txt
index 7168141..7c5fc0c 100644
--- a/spec/data/samples/config_text_markup.rb.txt
+++ b/spec/data/samples/config_text_markup.rb.txt
@@ -4,7 +4,6 @@ cairo: set_source_color([:white])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([10, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -21,6 +20,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -28,7 +28,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([320, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -44,12 +43,12 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/config_text_00.png"])
cairo: antialias=(["subpixel"])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([10, 10])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -66,6 +65,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
diff --git a/spec/data/samples/csv_import.rb.txt b/spec/data/samples/csv_import.rb.txt
index 53bb41c..53996f8 100644
--- a/spec/data/samples/csv_import.rb.txt
+++ b/spec/data/samples/csv_import.rb.txt
@@ -9,7 +9,6 @@ cairo: set_source_color([:white])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -23,10 +22,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -40,10 +39,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -57,10 +56,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -74,10 +73,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -91,10 +90,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -108,6 +107,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/sample_csv_00.png"])
diff --git a/spec/data/samples/custom_config.rb.txt b/spec/data/samples/custom_config.rb.txt
index 96b9270..11354fe 100644
--- a/spec/data/samples/custom_config.rb.txt
+++ b/spec/data/samples/custom_config.rb.txt
@@ -4,7 +4,6 @@ cairo: set_source_color(["#ccc"])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -19,6 +18,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color(["#FF0000"])
diff --git a/spec/data/samples/embed_text.rb.txt b/spec/data/samples/embed_text.rb.txt
index 65df637..f21c700 100644
--- a/spec/data/samples/embed_text.rb.txt
+++ b/spec/data/samples/embed_text.rb.txt
@@ -13,7 +13,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -29,6 +28,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 11 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse: if level 2."])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -36,7 +36,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([200, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -53,6 +52,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:"])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -60,7 +60,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([400, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -77,6 +76,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["This :tool: aligns on the bottom properly. :purse:"])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
@@ -84,7 +84,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([600, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -101,6 +100,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Wrapping multiples: These are 1 :tool::tool::tool: and these are multiple :tool::tool: :tool::tool:"])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -108,7 +108,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 320])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -125,6 +124,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=([":tool:Justify will :tool: work too, and :purse: with more words just for fun"])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:magenta])
@@ -132,7 +132,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([200, 320])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -149,6 +148,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Right-aligned works :tool: with :health: and :purse:"])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:magenta])
@@ -156,7 +156,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([400, 320])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -173,6 +172,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=([":tool:Center-aligned works :tool: with :health: and :purse:"])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:magenta])
@@ -180,7 +180,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([600, 320])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -198,6 +197,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["foo"])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:magenta])
@@ -209,7 +209,6 @@ cairo: antialias=(["subpixel"])
cairo: antialias=(["subpixel"])
cairo: antialias=(["subpixel"])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -227,6 +226,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -234,7 +234,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -252,6 +251,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -259,7 +259,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -277,6 +276,7 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
diff --git a/spec/data/samples/excel.rb.txt b/spec/data/samples/excel.rb.txt
index 5ff4b75..0f7f280 100644
--- a/spec/data/samples/excel.rb.txt
+++ b/spec/data/samples/excel.rb.txt
@@ -14,7 +14,6 @@ cairo: set_source_color([:white])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -28,10 +27,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -45,10 +44,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -62,10 +61,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -79,10 +78,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -96,10 +95,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -113,10 +112,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -130,10 +129,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -147,10 +146,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -164,6 +163,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/sample_excel_00.png"])
diff --git a/spec/data/samples/gradients.rb.txt b/spec/data/samples/gradients.rb.txt
index 6b7c222..08e4e03 100644
--- a/spec/data/samples/gradients.rb.txt
+++ b/spec/data/samples/gradients.rb.txt
@@ -48,7 +48,6 @@ cairo: set_source([LinearPattern])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source([LinearPattern])
cairo: translate([75, 700])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -62,6 +61,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source([LinearPattern])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/gradient_00.png"])
diff --git a/spec/data/samples/hello_world.rb.txt b/spec/data/samples/hello_world.rb.txt
index 41169a0..2f90111 100644
--- a/spec/data/samples/hello_world.rb.txt
+++ b/spec/data/samples/hello_world.rb.txt
@@ -1,7 +1,6 @@
cairo: antialias=(["subpixel"])
cairo: antialias=(["subpixel"])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -15,10 +14,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -32,6 +31,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/card_00.png"])
diff --git a/spec/data/samples/portrait-landscape.rb.txt b/spec/data/samples/portrait-landscape.rb.txt
index 901f11e..01e265f 100644
--- a/spec/data/samples/portrait-landscape.rb.txt
+++ b/spec/data/samples/portrait-landscape.rb.txt
@@ -4,7 +4,6 @@ cairo: set_source_color(["#aaa"])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -18,6 +17,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/portrait_00.png"])
@@ -27,7 +27,6 @@ cairo: set_source_color(["#aaa"])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -41,6 +40,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: translate([412.5, 562.5])
diff --git a/spec/data/samples/ranges.rb.txt b/spec/data/samples/ranges.rb.txt
index 851cc56..1aeb037 100644
--- a/spec/data/samples/ranges.rb.txt
+++ b/spec/data/samples/ranges.rb.txt
@@ -14,7 +14,6 @@ cairo: set_source_color([:white])
cairo: paint([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -28,10 +27,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -45,10 +44,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -62,10 +61,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -79,10 +78,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -96,10 +95,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -113,10 +112,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -131,10 +130,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -149,10 +148,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -167,10 +166,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 200])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -184,10 +183,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 200])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -201,10 +200,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 250])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -218,10 +217,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 250])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -235,10 +234,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 650])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -252,10 +251,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 650])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -269,10 +268,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 300])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -286,10 +285,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 300])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -303,10 +302,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:red])
cairo: translate([40, 700])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -320,10 +319,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:red])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:green])
cairo: translate([80, 750])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -337,10 +336,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:green])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:blue])
cairo: translate([120, 800])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -354,10 +353,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:blue])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -371,10 +370,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -388,10 +387,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 500])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -405,10 +404,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([25, 500])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -422,6 +421,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
surface: write_to_png(["_output/ranges_00.png"])
diff --git a/spec/data/samples/saves.rb.txt b/spec/data/samples/saves.rb.txt
index 2f57334..566879d 100644
--- a/spec/data/samples/saves.rb.txt
+++ b/spec/data/samples/saves.rb.txt
@@ -223,7 +223,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -237,10 +236,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -254,10 +253,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -271,10 +270,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -288,10 +287,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -305,10 +304,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -322,10 +321,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -339,10 +338,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -356,10 +355,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -373,10 +372,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -390,10 +389,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -407,10 +406,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -424,10 +423,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -441,10 +440,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -458,10 +457,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -475,10 +474,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -492,6 +491,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: scale([0.24, 0.24])
diff --git a/spec/data/samples/showcase.rb.txt b/spec/data/samples/showcase.rb.txt
index 4b7aa99..df22302 100644
--- a/spec/data/samples/showcase.rb.txt
+++ b/spec/data/samples/showcase.rb.txt
@@ -55,7 +55,6 @@ cairo: set_source_color(["#DED4B9"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([78, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -70,10 +69,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([78, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -88,10 +87,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([78, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -106,10 +105,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([78, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -124,6 +123,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
diff --git a/spec/data/samples/text_options.rb.txt b/spec/data/samples/text_options.rb.txt
index 006bd8e..5598a19 100644
--- a/spec/data/samples/text_options.rb.txt
+++ b/spec/data/samples/text_options.rb.txt
@@ -68,7 +68,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -82,10 +81,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -99,10 +98,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -116,10 +115,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:burnt_orange])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -133,10 +132,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:burnt_orange])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:burnt_orange])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -150,10 +149,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:burnt_orange])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:burnt_orange])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -167,10 +166,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:burnt_orange])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -184,10 +183,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -201,10 +200,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -218,10 +217,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -235,10 +234,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -252,10 +251,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -269,10 +268,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -287,10 +286,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -305,10 +304,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -323,10 +322,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -342,6 +341,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -349,7 +349,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -365,6 +364,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -372,7 +372,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -388,6 +387,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -395,7 +395,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 550])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -410,10 +409,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 550])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -428,10 +427,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 550])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -446,6 +445,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
@@ -476,7 +476,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -492,6 +491,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
@@ -499,7 +499,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -515,6 +514,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
@@ -522,7 +522,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -538,6 +537,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
@@ -545,7 +545,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -559,6 +558,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -566,7 +566,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -580,6 +579,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -587,7 +587,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -601,6 +600,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -608,7 +608,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -622,10 +621,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -639,10 +638,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -656,10 +655,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: move_to([0, 0])
@@ -673,6 +672,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -680,7 +680,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: move_to([0, 0])
@@ -694,6 +693,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -701,7 +701,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: move_to([0, 0])
@@ -715,6 +714,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
@@ -722,7 +722,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -738,10 +737,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -757,10 +756,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -776,10 +775,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([540.0, 750.0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -795,10 +794,10 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([540.0, 750.0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -814,10 +813,10 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([540.0, 750.0])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -833,10 +832,79 @@ cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
+cairo: show_pango_layout([MockDouble])
+cairo: restore([])
+cairo: save([])
+cairo: translate([540.0, 900.0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Stroke n fill"])
+pango: markup=(["foo"])
+pango: width=([261120.0])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: spacing=([0])
+cairo: update_pango_layout([MockDouble])
+cairo: move_to([0, 0])
+cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:blue])
+cairo: set_line_width([3.0])
+cairo: pango_layout_path([MockDouble])
+cairo: stroke([])
+cairo: set_source_color([:green])
+cairo: show_pango_layout([MockDouble])
+cairo: restore([])
+cairo: save([])
+cairo: translate([540.0, 900.0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Stroke n fill"])
+pango: markup=(["foo"])
+pango: width=([261120.0])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: spacing=([0])
+cairo: update_pango_layout([MockDouble])
+cairo: move_to([0, 0])
+cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:blue])
+cairo: set_line_width([3.0])
+cairo: pango_layout_path([MockDouble])
+cairo: stroke([])
+cairo: set_source_color([:green])
+cairo: show_pango_layout([MockDouble])
+cairo: restore([])
+cairo: save([])
+cairo: translate([540.0, 900.0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Stroke n fill"])
+pango: markup=(["foo"])
+pango: width=([261120.0])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: spacing=([0])
+cairo: update_pango_layout([MockDouble])
+cairo: move_to([0, 0])
+cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:blue])
+cairo: set_line_width([3.0])
+cairo: pango_layout_path([MockDouble])
+cairo: stroke([])
+cairo: set_source_color([:green])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -853,6 +921,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -860,7 +929,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -877,6 +945,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
@@ -884,7 +953,6 @@ cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -901,6 +969,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
diff --git a/spec/data/samples/tgc_proofs.rb.txt b/spec/data/samples/tgc_proofs.rb.txt
index d16876a..3d3d512 100644
--- a/spec/data/samples/tgc_proofs.rb.txt
+++ b/spec/data/samples/tgc_proofs.rb.txt
@@ -22,7 +22,6 @@ cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -36,10 +35,10 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
-cairo: set_source_color([:black])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: move_to([0, 0])
@@ -54,6 +53,7 @@ pango: spacing=([0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
+cairo: set_source_color([:black])
cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
diff --git a/spec/graphics/graphics_text_spec.rb b/spec/graphics/graphics_text_spec.rb
index 6bb7231..13744a4 100644
--- a/spec/graphics/graphics_text_spec.rb
+++ b/spec/graphics/graphics_text_spec.rb
@@ -52,11 +52,12 @@ describe Squib::Card, '#text' do
# text(str, font, font_size, color,
# x, y, width, height,
# markup, justify, wrap, ellipsize,
- # spacing, align, valign, hint, angle)
+ # spacing, align, valign, hint, angle,
+ # stroke_width, stroke_color)
ret = card.text(Squib::TextEmbed.new,'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 25,
nil, false, false, false,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
expect(ret).to eq({width: 0, height: 0})
end
end
@@ -83,7 +84,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, false, false,
- 1.0, 'right', :top, nil, 0.0)
+ 1.0, 'right', :top, nil, 0.0, '#fff', 0)
end
it 'aligns center with strings' do
@@ -92,7 +93,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, false, false,
- 1.0, 'center', :top, nil, 0.0)
+ 1.0, 'center', :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to char with string char' do
@@ -101,7 +102,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, 'char', false,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word with word string' do
@@ -110,7 +111,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, 'word', false,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word_char with symbol word_char' do
@@ -119,7 +120,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, :word_char, false,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word_char with true' do
@@ -128,7 +129,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, false,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets ellipsize to start properly' do
@@ -137,7 +138,7 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, :start,
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets ellipsize to middle properly' do
@@ -146,7 +147,17 @@ describe Squib::Card, '#text' do
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, 'middle',
- 1.0, :left, :top, nil, 0.0)
+ 1.0, :left, :top, nil, 0.0, '#fff', 0)
+ end
+
+ it 'implements stroke and fill when asked to' do
+ card = Squib::Card.new(deck, 100, 150)
+ expect(context).to receive(:set_line_width).with(3.0).once
+ expect(context).to receive(:pango_layout_path).once
+ card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
+ 10, 15, 20, 50,
+ nil, false, true, 'middle',
+ 1.0, :left, :top, nil, 0.0, '#f00', 3.0)
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index db702c4..d390ac1 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -102,7 +102,7 @@ def mock_cairo(strio)
update_pango_layout width height show_pango_layout rounded_rectangle
set_line_width stroke fill set_source scale render_rsvg_handle circle
triangle line_to operator= show_page clip transform mask rectangle
- reset_clip antialias= curve_to matrix=).each do |m|
+ reset_clip antialias= curve_to matrix= pango_layout_path).each do |m|
allow(cxt).to receive(m) { |*args| strio << scrub_hex("cairo: #{m}(#{args})\n") }
end