squib 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/CHANGELOG.md +15 -8
- data/README.md +20 -11
- data/RELEASE TODO.md +13 -0
- data/lib/squib/api/data.rb +3 -2
- data/lib/squib/api/image.rb +11 -9
- data/lib/squib/api/shapes.rb +25 -25
- data/lib/squib/api/text.rb +4 -4
- data/lib/squib/api/units.rb +15 -1
- data/lib/squib/card.rb +3 -0
- data/lib/squib/constants.rb +34 -1
- data/lib/squib/deck.rb +5 -2
- data/lib/squib/graphics/image.rb +7 -1
- data/lib/squib/graphics/save_doc.rb +57 -0
- data/lib/squib/input_helpers.rb +36 -1
- data/lib/squib/version.rb +1 -1
- data/samples/load_images.rb +4 -2
- data/samples/saves.rb +32 -0
- data/samples/text_options.rb +0 -2
- data/samples/unicode.rb +27 -0
- data/samples/units.rb +21 -5
- data/spec/api/api_image_spec.rb +1 -1
- data/spec/data/layouts/empty-rule.yml +1 -0
- data/spec/data/layouts/empty.yml +1 -0
- data/spec/data/samples/load_images.rb.txt +8 -0
- data/spec/data/samples/saves.rb.txt +702 -0
- data/spec/data/samples/text_options.rb.txt +198 -168
- data/spec/data/samples/units.rb.txt +19 -1
- data/spec/deck_spec.rb +12 -0
- data/spec/graphics/graphics_images_spec.rb +14 -12
- data/spec/graphics/graphics_save_doc_spec.rb +2 -2
- data/spec/input_helpers_spec.rb +65 -1
- data/spec/samples/samples_regression_spec.rb +11 -9
- data/spec/spec_helper.rb +2 -0
- metadata +14 -5
- data/samples/save_pdf.rb +0 -14
data/lib/squib/graphics/image.rb
CHANGED
@@ -14,12 +14,18 @@ module Squib
|
|
14
14
|
|
15
15
|
# :nodoc:
|
16
16
|
# @api private
|
17
|
-
def png(file, x, y, alpha, blend, angle)
|
17
|
+
def png(file, x, y, width, height, alpha, blend, angle)
|
18
18
|
Squib.logger.debug {"Rendering: #{file} @#{x},#{y} #{width}x#{height}, alpha: #{alpha}, blend: #{blend}, angle: #{angle}"}
|
19
19
|
return if file.nil? or file.eql? ''
|
20
20
|
png = Squib.cache_load_image(file)
|
21
21
|
use_cairo do |cc|
|
22
22
|
cc.translate(x, y)
|
23
|
+
if width != :native || height != :native
|
24
|
+
width == :native && width = png.width.to_f
|
25
|
+
height == :native && height = png.height.to_f
|
26
|
+
Squib.logger.warn "PNG scaling results in antialiasing."
|
27
|
+
cc.scale(width.to_f / png.width.to_f, height.to_f / png.height.to_f)
|
28
|
+
end
|
23
29
|
cc.rotate(angle)
|
24
30
|
cc.translate(-1 * x, -1 * y)
|
25
31
|
cc.set_source(png, x, y)
|
@@ -40,6 +40,63 @@ module Squib
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
+
# Lays out the cards in range and renders a stitched PNG sheet
|
44
|
+
#
|
45
|
+
# @example
|
46
|
+
# save_png_sheet prefix: 'sheet_', margin: 75, gap: 5, trim: 37
|
47
|
+
#
|
48
|
+
# @option opts [Enumerable] range (:all) the range of cards over which this will be rendered. See {file:README.md#Specifying_Ranges Specifying Ranges}
|
49
|
+
# @option opts colulmns [Integer] (1) the number of columns in the grid
|
50
|
+
# @option opts rows [Integer] (:infinite) the number of rows in the grid. When set to :infinite, the sheet scales to the rows needed. If there are more cards than rows*columns, new sheets are started.
|
51
|
+
# @option opts [String] prefix (card_) the prefix of the file name(s)
|
52
|
+
# @option opts dir [String] (_output) the directory to save to. Created if it doesn't exist.
|
53
|
+
# @option opts margin [Integer] (0) the margin around the outside of the page
|
54
|
+
# @option opts gap [Integer] (0) the space in pixels between the cards
|
55
|
+
# @option opts trim [Integer] (0) the space around the edge of each card to trim (e.g. to cut off the bleed margin for print-and-play)
|
56
|
+
# @return [nil]
|
57
|
+
# @api public
|
58
|
+
def save_sheet(opts = {})
|
59
|
+
opts = {margin: 0}.merge(opts) # overriding the non-system default
|
60
|
+
p = needs(opts, [:range, :prefix, :creatable_dir, :margin, :gap, :trim, :rows, :columns])
|
61
|
+
# EXTRACT METHOD HERE
|
62
|
+
sheet_width = (p[:columns] * (@width + 2 * p[:gap] - 2 * p[:trim])) + (2 * p[:margin])
|
63
|
+
sheet_height = (p[:rows] * (@height + 2 * p[:gap] - 2 * p[:trim])) + (2 * p[:margin])
|
64
|
+
cc = Cairo::Context.new(Cairo::ImageSurface.new(sheet_width, sheet_height))
|
65
|
+
num_this_sheet = 0
|
66
|
+
sheet_num = 0
|
67
|
+
x, y = p[:margin], p[:margin]
|
68
|
+
@progress_bar.start("Saving PNG sheet to #{p[:dir]}/#{p[:prefix]}_*", @cards.size + 1) do |bar|
|
69
|
+
p[:range].each do |i|
|
70
|
+
if num_this_sheet >= (p[:columns] * p[:rows]) # new sheet
|
71
|
+
cc.target.write_to_png("#{p[:dir]}/#{p[:prefix]}#{sheet_num}.png")
|
72
|
+
new_sheet = false
|
73
|
+
num_this_sheet = 0
|
74
|
+
sheet_num += 1
|
75
|
+
x, y = p[:margin], p[:margin]
|
76
|
+
cc = Cairo::Context.new(Cairo::ImageSurface.new(sheet_width, sheet_height))
|
77
|
+
end
|
78
|
+
surface = trim(@cards[i].cairo_surface, p[:trim], @width, @height)
|
79
|
+
cc.set_source(surface, x, y)
|
80
|
+
cc.paint
|
81
|
+
bar.increment
|
82
|
+
num_this_sheet += 1
|
83
|
+
x += surface.width + p[:gap]
|
84
|
+
if num_this_sheet % p[:columns] == 0 # new row
|
85
|
+
x = p[:margin]
|
86
|
+
y += surface.height + p[:gap]
|
87
|
+
end
|
88
|
+
bar.increment
|
89
|
+
end
|
90
|
+
cc.target.write_to_png("#{p[:dir]}/#{p[:prefix]}#{sheet_num}.png")
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# Return a new Cairo::ImageSurface that is trimmed from the original
|
95
|
+
#
|
96
|
+
# @param surface The surface to trim
|
97
|
+
# @param trim The number of pixels around the edge to trim
|
98
|
+
# @param width The width of the surface prior to the trim
|
99
|
+
# @param height The height of the surface prior to the trim
|
43
100
|
# :nodoc:
|
44
101
|
# @api private
|
45
102
|
def trim(surface, trim, width, height)
|
data/lib/squib/input_helpers.rb
CHANGED
@@ -27,6 +27,8 @@ module Squib
|
|
27
27
|
opts = svgidify(opts) if params.include? :svgid
|
28
28
|
opts = formatify(opts) if params.include? :formats
|
29
29
|
opts = rotateify(opts) if params.include? :rotate
|
30
|
+
opts = rowify(opts) if params.include? :rows
|
31
|
+
opts = convert_units(opts, params)
|
30
32
|
opts
|
31
33
|
end
|
32
34
|
module_function :needs
|
@@ -188,7 +190,40 @@ module Squib
|
|
188
190
|
Squib.logger.debug {"After rotateify: #{opts}"}
|
189
191
|
opts
|
190
192
|
end
|
191
|
-
module_function :
|
193
|
+
module_function :rotateify
|
194
|
+
|
195
|
+
# Convert units
|
196
|
+
# :nodoc:
|
197
|
+
# @api private
|
198
|
+
def convert_units(opts, needed_params)
|
199
|
+
Squib::UNIT_CONVERSION_PARAMS.each_pair do |param_name, api_param|
|
200
|
+
if needed_params.include? param_name
|
201
|
+
opts[api_param].each_with_index do |arg, i|
|
202
|
+
case arg.to_s.rstrip
|
203
|
+
when /in$/ #ends with "in"
|
204
|
+
opts[api_param][i] = arg.rstrip[0..-2].to_f * @dpi
|
205
|
+
when /cm$/ #ends with "cm"
|
206
|
+
opts[api_param][i] = arg.rstrip[0..-2].to_f * @dpi * Squib::INCHES_IN_CM
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
211
|
+
Squib.logger.debug {"After convert_units: #{opts}"}
|
212
|
+
return opts
|
213
|
+
end
|
214
|
+
module_function :convert_units
|
215
|
+
|
216
|
+
# Handles expanding rows. If the "rows" does not respond to to_i (e.g. :infinite),
|
217
|
+
# then compute what we need based on number of cards and number of columns.
|
218
|
+
# :nodoc:
|
219
|
+
# @api private
|
220
|
+
def rowify(opts)
|
221
|
+
unless opts[:rows].respond_to? :to_i
|
222
|
+
raise "Columns must be an integer" unless opts[:columns].respond_to? :to_i
|
223
|
+
opts[:rows] = (@cards.size / opts[:columns].to_i).ceil
|
224
|
+
end
|
225
|
+
opts
|
226
|
+
end
|
192
227
|
|
193
228
|
end
|
194
229
|
end
|
data/lib/squib/version.rb
CHANGED
data/samples/load_images.rb
CHANGED
@@ -4,11 +4,13 @@ Squib::Deck.new(width: 825, height: 1125, cards: 1) do
|
|
4
4
|
background color: '#0b7c8e'
|
5
5
|
rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
|
6
6
|
|
7
|
-
png file: 'shiny-purse.png', x: 620, y: 75
|
7
|
+
png file: 'shiny-purse.png', x: 620, y: 75 # no scaling is done by default
|
8
8
|
svg file: 'spanner.svg', x: 620, y: 218
|
9
9
|
|
10
|
-
#
|
10
|
+
# Can be scaled if width and height are set
|
11
11
|
svg file: 'spanner.svg', x: 50, y: 50, width: 250, height: 250
|
12
|
+
png file: 'shiny-purse.png', x: 305, y: 50, width: 250, height: 250
|
13
|
+
#...but PNGs will warn if it's an upscale
|
12
14
|
|
13
15
|
# We can also limit our rendering to a single object, if the SVG ID is set
|
14
16
|
# Squib prepends a #-sign if one is not specified
|
data/samples/saves.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
# This sample demonstrates how to use the various save methods
|
4
|
+
|
5
|
+
Squib::Deck.new(width: 825, height: 1125, cards: 16) do
|
6
|
+
background color: :gray
|
7
|
+
rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
|
8
|
+
|
9
|
+
text str: (1..16).to_a, x: 220, y: 78, font: 'Arial 54'
|
10
|
+
|
11
|
+
# Place on multiple pages over the PDF, with bleed beeing trimmed off
|
12
|
+
save_pdf file: 'save-pdf.pdf', margin: 75, gap: 5, trim: 37
|
13
|
+
|
14
|
+
# Note that our PNGs still are not trimmed even though the pdf ones were
|
15
|
+
save_png range: 1, prefix: 'saves_notrim_'
|
16
|
+
|
17
|
+
# We can also save our PNGs into a single sheet,
|
18
|
+
# rows are calculated based on cols and number of cards
|
19
|
+
save_sheet prefix: 'save_single_sheet_',
|
20
|
+
columns: 2, margin: 75, gap: 5, trim: 37
|
21
|
+
|
22
|
+
# Or multiple sheets if rows are also specified
|
23
|
+
save_sheet prefix: 'save_sheet_',
|
24
|
+
columns: 4, rows: 2,
|
25
|
+
margin: 75, gap: 5, trim: 37
|
26
|
+
|
27
|
+
# Sheets support ranges too
|
28
|
+
save_sheet prefix: 'save_sheet_range_',
|
29
|
+
range: 0..5,
|
30
|
+
columns: 2, rows: 2,
|
31
|
+
margin: 75, gap: 5, trim: 37
|
32
|
+
end
|
data/samples/text_options.rb
CHANGED
@@ -14,8 +14,6 @@ Squib::Deck.new(width: 825, height: 1125, cards: 3) do
|
|
14
14
|
text str: data['name'], x: 250, y: 55, font: 'Arial weight=900 54'
|
15
15
|
text str: data['level'], x: 65, y: 40, font: 'Arial 72', color: :burnt_orange
|
16
16
|
|
17
|
-
text str: "UTF-8 \u2663", x: 565, y: 150, font: 'Arial weight=900 36'
|
18
|
-
|
19
17
|
text str: 'Font strings are expressive!', x:65, y: 200,
|
20
18
|
font: 'Impact bold italic 36'
|
21
19
|
|
data/samples/unicode.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
# Here's a handy list of game-related UTF-8 characters
|
4
|
+
# for those early pre-graphics prototypes
|
5
|
+
game_chars = %W(\u2620 \u2622 \u2623 \u00AB \u00BB \u2039 \u203A \u2022 \u20D8 \u20D9 \u20DA \u2023 \u20E1 \u20D4 \u20D5 \u20D6 \u20D7 \u2190 \u2191 \u2192 \u2193 \u2194 \u2196 \u2197 \u2198 \u2199 \u219A \u219B \u219C \u219D \u219E \u219F \u21A0 \u21A1 \u21A2 \u21A3 \u21A4 \u21A5 \u21A6 \u21A7 \u21A8 \u21A9 \u21AA \u21AB \u21AC \u21AD \u21AE \u21AF \u21B0 \u21B1 \u21B2 \u21B3 \u21B4 \u21B5 \u21B6 \u21B7 \u21B8 \u21B9 \u21BA \u21BB \u21C4 \u21C5 \u21C6 \u21C7 \u21C8 \u21C9 \u21CA \u21CD \u21CE \u21CF \u21D0 \u21D1 \u21D2 \u21D3 \u21D4 \u21D5 \u21D6 \u21D7 \u21D8 \u21D9 \u21DA \u21DB \u21DC \u21DD \u21DC \u21E0 \u21E1 \u21E2 \u21E3 \u21E4 \u21E5 \u21E6 \u21E7 \u21E8 \u21E9 \u21EA \u20DE \u20DD \u20DF \u20E0 \u2205 \u220E \u2234 \u2295 \u2296 \u2297 \u2298 \u2349 \u2299 \u229A \u229E \u22B9 \u2302 \u2316 \u231A \u231B \u2326 \u232B \u2327 \u2331 \u2460 \u2461 \u2462 \u2463 \u2464 \u2465 \u2466 \u2467 \u2468 \u2469 \u246A \u246B \u246C \u246D \u246E \u246F \u2470 \u2471 \u2472 \u2473 \u2600 \u2601 \u2602 \u2603 \u2604 \u2605 \u2606 \u2607 \u260E \u2611 \u261A \u261B \u261C \u261D \u261E \u261F \u2624 \u262E \u262F \u2639 \u263A \u2654 \u2655 \u2656 \u2657 \u2658 \u2659 \u265A \u265B \u265C \u265D \u265E \u265F \u2660 \u2661 \u2662 \u2663 \u2664 \u2665 \u2666 \u2667 \u2668 \u2690 \u2691 \u2692 \u2693 \u2694 \u2696 \u2699 \u269B \u26A0 \u26A1 \u26BD \u26BE \u26C4 \u26C5 \u26D4 \u26EA \u26F2 \u26F3 \u26F5 \u26FA \u26FD \u2707 \u270A \u270B \u270C \u2713 \u2714 \u271C \u27F2 \u27F3 \u27F4 \u2B1B \u2B1C \u1F601 \u00BD \u00BE \u00BC \u2153 \u2154 \u2155 \u2156 \u2157 )
|
6
|
+
|
7
|
+
cell_height = 80
|
8
|
+
cell_width = 400
|
9
|
+
cols = 7
|
10
|
+
x, y = 1, 80
|
11
|
+
Squib::Deck.new(height: (game_chars.size / cols + 1) * cell_height,
|
12
|
+
width: cell_width * cols) do
|
13
|
+
background color: :white
|
14
|
+
text str: 'Game-related UTF8 icons. Generated by Squib, https://github.com/andymeneely/squib'
|
15
|
+
game_chars.each_with_index do |c, i|
|
16
|
+
rect fill_color: %w(#eeee #ffff)[i % 2],
|
17
|
+
width: cell_width, height: cell_height, x: x, y: y
|
18
|
+
text str: c.inspect, font: 'Sans 42', x: x, y: y
|
19
|
+
text str: c, font: 'Sans,Segoe UI Symbol 42', x: x + 300, y: y
|
20
|
+
x += cell_width
|
21
|
+
if i % cols == cols - 1
|
22
|
+
x = 1
|
23
|
+
y += cell_height if i % cols == cols - 1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
save_png prefix: 'unicode_'
|
27
|
+
end
|
data/samples/units.rb
CHANGED
@@ -1,12 +1,28 @@
|
|
1
1
|
require 'squib'
|
2
2
|
|
3
|
-
Squib::Deck.new
|
4
|
-
background color:
|
3
|
+
Squib::Deck.new do
|
4
|
+
background color: '#ddd'
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
# We can use our DSL-method to use inches
|
7
|
+
# Computed using @dpi (set to 300 by default)
|
8
|
+
bleed = inches(0.125)
|
9
|
+
cut_width = inches(2.5)
|
8
10
|
cut_height = inches(3.5)
|
9
|
-
rect x: bleed, y: bleed,
|
11
|
+
rect x: bleed, y: bleed, radius: 25,
|
12
|
+
width: cut_width, height: cut_height
|
13
|
+
|
14
|
+
# We can also use cm this way
|
15
|
+
cm(2)
|
16
|
+
|
17
|
+
# Or we can use a string ending with cm or in
|
18
|
+
# (even cleaner in Yaml since we don't need quotes!)
|
19
|
+
safe_margin = '0.25in'
|
20
|
+
safe_width = '2.25in'
|
21
|
+
safe_height = '3.25in'
|
22
|
+
rect x: safe_margin, y: safe_margin,
|
23
|
+
width: safe_width, height: safe_height, radius: 25
|
24
|
+
|
25
|
+
rect x: '4cm', y: '4 cm ', width: 100, height: 100
|
10
26
|
|
11
27
|
save prefix: 'units_', format: :png
|
12
28
|
end
|
data/spec/api/api_image_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Squib::Deck, 'images' do
|
|
7
7
|
it 'calls Card#png, Dir, and progress bar' do
|
8
8
|
card = instance_double(Squib::Card)
|
9
9
|
progress = double(Squib::Progress)
|
10
|
-
expect(card).to receive(:png).with('foo', 0, 1, 0.5, :overlay, 0.75).once
|
10
|
+
expect(card).to receive(:png).with('foo', 0, 1, :native, :native, 0.5, :overlay, 0.75).once
|
11
11
|
expect(Dir).to receive(:chdir).with('.').and_yield.once
|
12
12
|
expect(progress).to receive(:start).and_yield(progress).once
|
13
13
|
expect(progress).to receive(:increment).once
|
@@ -0,0 +1 @@
|
|
1
|
+
empty: #no rules actually set
|
@@ -0,0 +1 @@
|
|
1
|
+
# testing for an empty yaml file here
|
@@ -36,6 +36,14 @@ cairo: translate([-50, -50])
|
|
36
36
|
cairo: set_source([MockDouble, 50, 50])
|
37
37
|
cairo: paint([1.0])
|
38
38
|
cairo: restore([])
|
39
|
+
cairo: save([])
|
40
|
+
cairo: translate([305, 50])
|
41
|
+
cairo: scale([1.953125, 1.953125])
|
42
|
+
cairo: rotate([0])
|
43
|
+
cairo: translate([-305, -50])
|
44
|
+
cairo: set_source([ImageSurface, 305, 50])
|
45
|
+
cairo: paint([1.0])
|
46
|
+
cairo: restore([])
|
39
47
|
cairo: scale([0.5859375, 0.5859375])
|
40
48
|
cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"])
|
41
49
|
cairo: save([])
|
@@ -0,0 +1,702 @@
|
|
1
|
+
cairo: save([])
|
2
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
3
|
+
cairo: paint([])
|
4
|
+
cairo: restore([])
|
5
|
+
cairo: save([])
|
6
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
7
|
+
cairo: paint([])
|
8
|
+
cairo: restore([])
|
9
|
+
cairo: save([])
|
10
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
11
|
+
cairo: paint([])
|
12
|
+
cairo: restore([])
|
13
|
+
cairo: save([])
|
14
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
15
|
+
cairo: paint([])
|
16
|
+
cairo: restore([])
|
17
|
+
cairo: save([])
|
18
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
19
|
+
cairo: paint([])
|
20
|
+
cairo: restore([])
|
21
|
+
cairo: save([])
|
22
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
23
|
+
cairo: paint([])
|
24
|
+
cairo: restore([])
|
25
|
+
cairo: save([])
|
26
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
27
|
+
cairo: paint([])
|
28
|
+
cairo: restore([])
|
29
|
+
cairo: save([])
|
30
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
31
|
+
cairo: paint([])
|
32
|
+
cairo: restore([])
|
33
|
+
cairo: save([])
|
34
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
35
|
+
cairo: paint([])
|
36
|
+
cairo: restore([])
|
37
|
+
cairo: save([])
|
38
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
39
|
+
cairo: paint([])
|
40
|
+
cairo: restore([])
|
41
|
+
cairo: save([])
|
42
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
43
|
+
cairo: paint([])
|
44
|
+
cairo: restore([])
|
45
|
+
cairo: save([])
|
46
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
47
|
+
cairo: paint([])
|
48
|
+
cairo: restore([])
|
49
|
+
cairo: save([])
|
50
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
51
|
+
cairo: paint([])
|
52
|
+
cairo: restore([])
|
53
|
+
cairo: save([])
|
54
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
55
|
+
cairo: paint([])
|
56
|
+
cairo: restore([])
|
57
|
+
cairo: save([])
|
58
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
59
|
+
cairo: paint([])
|
60
|
+
cairo: restore([])
|
61
|
+
cairo: save([])
|
62
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
|
63
|
+
cairo: paint([])
|
64
|
+
cairo: restore([])
|
65
|
+
cairo: save([])
|
66
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
67
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
68
|
+
cairo: set_line_width([2.0])
|
69
|
+
cairo: stroke([])
|
70
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
71
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
72
|
+
cairo: fill([])
|
73
|
+
cairo: restore([])
|
74
|
+
cairo: save([])
|
75
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
76
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
77
|
+
cairo: set_line_width([2.0])
|
78
|
+
cairo: stroke([])
|
79
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
80
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
81
|
+
cairo: fill([])
|
82
|
+
cairo: restore([])
|
83
|
+
cairo: save([])
|
84
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
85
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
86
|
+
cairo: set_line_width([2.0])
|
87
|
+
cairo: stroke([])
|
88
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
89
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
90
|
+
cairo: fill([])
|
91
|
+
cairo: restore([])
|
92
|
+
cairo: save([])
|
93
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
94
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
95
|
+
cairo: set_line_width([2.0])
|
96
|
+
cairo: stroke([])
|
97
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
98
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
99
|
+
cairo: fill([])
|
100
|
+
cairo: restore([])
|
101
|
+
cairo: save([])
|
102
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
103
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
104
|
+
cairo: set_line_width([2.0])
|
105
|
+
cairo: stroke([])
|
106
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
107
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
108
|
+
cairo: fill([])
|
109
|
+
cairo: restore([])
|
110
|
+
cairo: save([])
|
111
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
112
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
113
|
+
cairo: set_line_width([2.0])
|
114
|
+
cairo: stroke([])
|
115
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
116
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
117
|
+
cairo: fill([])
|
118
|
+
cairo: restore([])
|
119
|
+
cairo: save([])
|
120
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
121
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
122
|
+
cairo: set_line_width([2.0])
|
123
|
+
cairo: stroke([])
|
124
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
125
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
126
|
+
cairo: fill([])
|
127
|
+
cairo: restore([])
|
128
|
+
cairo: save([])
|
129
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
130
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
131
|
+
cairo: set_line_width([2.0])
|
132
|
+
cairo: stroke([])
|
133
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
134
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
135
|
+
cairo: fill([])
|
136
|
+
cairo: restore([])
|
137
|
+
cairo: save([])
|
138
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
139
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
140
|
+
cairo: set_line_width([2.0])
|
141
|
+
cairo: stroke([])
|
142
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
143
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
144
|
+
cairo: fill([])
|
145
|
+
cairo: restore([])
|
146
|
+
cairo: save([])
|
147
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
148
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
149
|
+
cairo: set_line_width([2.0])
|
150
|
+
cairo: stroke([])
|
151
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
152
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
153
|
+
cairo: fill([])
|
154
|
+
cairo: restore([])
|
155
|
+
cairo: save([])
|
156
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
157
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
158
|
+
cairo: set_line_width([2.0])
|
159
|
+
cairo: stroke([])
|
160
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
161
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
162
|
+
cairo: fill([])
|
163
|
+
cairo: restore([])
|
164
|
+
cairo: save([])
|
165
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
166
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
167
|
+
cairo: set_line_width([2.0])
|
168
|
+
cairo: stroke([])
|
169
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
170
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
171
|
+
cairo: fill([])
|
172
|
+
cairo: restore([])
|
173
|
+
cairo: save([])
|
174
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
175
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
176
|
+
cairo: set_line_width([2.0])
|
177
|
+
cairo: stroke([])
|
178
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
179
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
180
|
+
cairo: fill([])
|
181
|
+
cairo: restore([])
|
182
|
+
cairo: save([])
|
183
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
184
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
185
|
+
cairo: set_line_width([2.0])
|
186
|
+
cairo: stroke([])
|
187
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
188
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
189
|
+
cairo: fill([])
|
190
|
+
cairo: restore([])
|
191
|
+
cairo: save([])
|
192
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
193
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
194
|
+
cairo: set_line_width([2.0])
|
195
|
+
cairo: stroke([])
|
196
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
197
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
198
|
+
cairo: fill([])
|
199
|
+
cairo: restore([])
|
200
|
+
cairo: save([])
|
201
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
202
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
203
|
+
cairo: set_line_width([2.0])
|
204
|
+
cairo: stroke([])
|
205
|
+
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
|
206
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
|
207
|
+
cairo: fill([])
|
208
|
+
cairo: restore([])
|
209
|
+
cairo: save([])
|
210
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
211
|
+
cairo: translate([220, 78])
|
212
|
+
cairo: rotate([0])
|
213
|
+
cairo: translate([-220, -78])
|
214
|
+
cairo: move_to([220, 78])
|
215
|
+
pango: font_description=([])
|
216
|
+
pango: text=(["1"])
|
217
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
218
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
219
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
220
|
+
pango: justify=([false])
|
221
|
+
pango: spacing=([0])
|
222
|
+
cairo: update_pango_layout([MockDouble])
|
223
|
+
cairo: update_pango_layout([MockDouble])
|
224
|
+
cairo: show_pango_layout([MockDouble])
|
225
|
+
cairo: restore([])
|
226
|
+
cairo: save([])
|
227
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
228
|
+
cairo: translate([220, 78])
|
229
|
+
cairo: rotate([0])
|
230
|
+
cairo: translate([-220, -78])
|
231
|
+
cairo: move_to([220, 78])
|
232
|
+
pango: font_description=([])
|
233
|
+
pango: text=(["2"])
|
234
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
235
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
236
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
237
|
+
pango: justify=([false])
|
238
|
+
pango: spacing=([0])
|
239
|
+
cairo: update_pango_layout([MockDouble])
|
240
|
+
cairo: update_pango_layout([MockDouble])
|
241
|
+
cairo: show_pango_layout([MockDouble])
|
242
|
+
cairo: restore([])
|
243
|
+
cairo: save([])
|
244
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
245
|
+
cairo: translate([220, 78])
|
246
|
+
cairo: rotate([0])
|
247
|
+
cairo: translate([-220, -78])
|
248
|
+
cairo: move_to([220, 78])
|
249
|
+
pango: font_description=([])
|
250
|
+
pango: text=(["3"])
|
251
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
252
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
253
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
254
|
+
pango: justify=([false])
|
255
|
+
pango: spacing=([0])
|
256
|
+
cairo: update_pango_layout([MockDouble])
|
257
|
+
cairo: update_pango_layout([MockDouble])
|
258
|
+
cairo: show_pango_layout([MockDouble])
|
259
|
+
cairo: restore([])
|
260
|
+
cairo: save([])
|
261
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
262
|
+
cairo: translate([220, 78])
|
263
|
+
cairo: rotate([0])
|
264
|
+
cairo: translate([-220, -78])
|
265
|
+
cairo: move_to([220, 78])
|
266
|
+
pango: font_description=([])
|
267
|
+
pango: text=(["4"])
|
268
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
269
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
270
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
271
|
+
pango: justify=([false])
|
272
|
+
pango: spacing=([0])
|
273
|
+
cairo: update_pango_layout([MockDouble])
|
274
|
+
cairo: update_pango_layout([MockDouble])
|
275
|
+
cairo: show_pango_layout([MockDouble])
|
276
|
+
cairo: restore([])
|
277
|
+
cairo: save([])
|
278
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
279
|
+
cairo: translate([220, 78])
|
280
|
+
cairo: rotate([0])
|
281
|
+
cairo: translate([-220, -78])
|
282
|
+
cairo: move_to([220, 78])
|
283
|
+
pango: font_description=([])
|
284
|
+
pango: text=(["5"])
|
285
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
286
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
287
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
288
|
+
pango: justify=([false])
|
289
|
+
pango: spacing=([0])
|
290
|
+
cairo: update_pango_layout([MockDouble])
|
291
|
+
cairo: update_pango_layout([MockDouble])
|
292
|
+
cairo: show_pango_layout([MockDouble])
|
293
|
+
cairo: restore([])
|
294
|
+
cairo: save([])
|
295
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
296
|
+
cairo: translate([220, 78])
|
297
|
+
cairo: rotate([0])
|
298
|
+
cairo: translate([-220, -78])
|
299
|
+
cairo: move_to([220, 78])
|
300
|
+
pango: font_description=([])
|
301
|
+
pango: text=(["6"])
|
302
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
303
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
304
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
305
|
+
pango: justify=([false])
|
306
|
+
pango: spacing=([0])
|
307
|
+
cairo: update_pango_layout([MockDouble])
|
308
|
+
cairo: update_pango_layout([MockDouble])
|
309
|
+
cairo: show_pango_layout([MockDouble])
|
310
|
+
cairo: restore([])
|
311
|
+
cairo: save([])
|
312
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
313
|
+
cairo: translate([220, 78])
|
314
|
+
cairo: rotate([0])
|
315
|
+
cairo: translate([-220, -78])
|
316
|
+
cairo: move_to([220, 78])
|
317
|
+
pango: font_description=([])
|
318
|
+
pango: text=(["7"])
|
319
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
320
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
321
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
322
|
+
pango: justify=([false])
|
323
|
+
pango: spacing=([0])
|
324
|
+
cairo: update_pango_layout([MockDouble])
|
325
|
+
cairo: update_pango_layout([MockDouble])
|
326
|
+
cairo: show_pango_layout([MockDouble])
|
327
|
+
cairo: restore([])
|
328
|
+
cairo: save([])
|
329
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
330
|
+
cairo: translate([220, 78])
|
331
|
+
cairo: rotate([0])
|
332
|
+
cairo: translate([-220, -78])
|
333
|
+
cairo: move_to([220, 78])
|
334
|
+
pango: font_description=([])
|
335
|
+
pango: text=(["8"])
|
336
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
337
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
338
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
339
|
+
pango: justify=([false])
|
340
|
+
pango: spacing=([0])
|
341
|
+
cairo: update_pango_layout([MockDouble])
|
342
|
+
cairo: update_pango_layout([MockDouble])
|
343
|
+
cairo: show_pango_layout([MockDouble])
|
344
|
+
cairo: restore([])
|
345
|
+
cairo: save([])
|
346
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
347
|
+
cairo: translate([220, 78])
|
348
|
+
cairo: rotate([0])
|
349
|
+
cairo: translate([-220, -78])
|
350
|
+
cairo: move_to([220, 78])
|
351
|
+
pango: font_description=([])
|
352
|
+
pango: text=(["9"])
|
353
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
354
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
355
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
356
|
+
pango: justify=([false])
|
357
|
+
pango: spacing=([0])
|
358
|
+
cairo: update_pango_layout([MockDouble])
|
359
|
+
cairo: update_pango_layout([MockDouble])
|
360
|
+
cairo: show_pango_layout([MockDouble])
|
361
|
+
cairo: restore([])
|
362
|
+
cairo: save([])
|
363
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
364
|
+
cairo: translate([220, 78])
|
365
|
+
cairo: rotate([0])
|
366
|
+
cairo: translate([-220, -78])
|
367
|
+
cairo: move_to([220, 78])
|
368
|
+
pango: font_description=([])
|
369
|
+
pango: text=(["10"])
|
370
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
371
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
372
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
373
|
+
pango: justify=([false])
|
374
|
+
pango: spacing=([0])
|
375
|
+
cairo: update_pango_layout([MockDouble])
|
376
|
+
cairo: update_pango_layout([MockDouble])
|
377
|
+
cairo: show_pango_layout([MockDouble])
|
378
|
+
cairo: restore([])
|
379
|
+
cairo: save([])
|
380
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
381
|
+
cairo: translate([220, 78])
|
382
|
+
cairo: rotate([0])
|
383
|
+
cairo: translate([-220, -78])
|
384
|
+
cairo: move_to([220, 78])
|
385
|
+
pango: font_description=([])
|
386
|
+
pango: text=(["11"])
|
387
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
388
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
389
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
390
|
+
pango: justify=([false])
|
391
|
+
pango: spacing=([0])
|
392
|
+
cairo: update_pango_layout([MockDouble])
|
393
|
+
cairo: update_pango_layout([MockDouble])
|
394
|
+
cairo: show_pango_layout([MockDouble])
|
395
|
+
cairo: restore([])
|
396
|
+
cairo: save([])
|
397
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
398
|
+
cairo: translate([220, 78])
|
399
|
+
cairo: rotate([0])
|
400
|
+
cairo: translate([-220, -78])
|
401
|
+
cairo: move_to([220, 78])
|
402
|
+
pango: font_description=([])
|
403
|
+
pango: text=(["12"])
|
404
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
405
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
406
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
407
|
+
pango: justify=([false])
|
408
|
+
pango: spacing=([0])
|
409
|
+
cairo: update_pango_layout([MockDouble])
|
410
|
+
cairo: update_pango_layout([MockDouble])
|
411
|
+
cairo: show_pango_layout([MockDouble])
|
412
|
+
cairo: restore([])
|
413
|
+
cairo: save([])
|
414
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
415
|
+
cairo: translate([220, 78])
|
416
|
+
cairo: rotate([0])
|
417
|
+
cairo: translate([-220, -78])
|
418
|
+
cairo: move_to([220, 78])
|
419
|
+
pango: font_description=([])
|
420
|
+
pango: text=(["13"])
|
421
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
422
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
423
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
424
|
+
pango: justify=([false])
|
425
|
+
pango: spacing=([0])
|
426
|
+
cairo: update_pango_layout([MockDouble])
|
427
|
+
cairo: update_pango_layout([MockDouble])
|
428
|
+
cairo: show_pango_layout([MockDouble])
|
429
|
+
cairo: restore([])
|
430
|
+
cairo: save([])
|
431
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
432
|
+
cairo: translate([220, 78])
|
433
|
+
cairo: rotate([0])
|
434
|
+
cairo: translate([-220, -78])
|
435
|
+
cairo: move_to([220, 78])
|
436
|
+
pango: font_description=([])
|
437
|
+
pango: text=(["14"])
|
438
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
439
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
440
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
441
|
+
pango: justify=([false])
|
442
|
+
pango: spacing=([0])
|
443
|
+
cairo: update_pango_layout([MockDouble])
|
444
|
+
cairo: update_pango_layout([MockDouble])
|
445
|
+
cairo: show_pango_layout([MockDouble])
|
446
|
+
cairo: restore([])
|
447
|
+
cairo: save([])
|
448
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
449
|
+
cairo: translate([220, 78])
|
450
|
+
cairo: rotate([0])
|
451
|
+
cairo: translate([-220, -78])
|
452
|
+
cairo: move_to([220, 78])
|
453
|
+
pango: font_description=([])
|
454
|
+
pango: text=(["15"])
|
455
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
456
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
457
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
458
|
+
pango: justify=([false])
|
459
|
+
pango: spacing=([0])
|
460
|
+
cairo: update_pango_layout([MockDouble])
|
461
|
+
cairo: update_pango_layout([MockDouble])
|
462
|
+
cairo: show_pango_layout([MockDouble])
|
463
|
+
cairo: restore([])
|
464
|
+
cairo: save([])
|
465
|
+
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
|
466
|
+
cairo: translate([220, 78])
|
467
|
+
cairo: rotate([0])
|
468
|
+
cairo: translate([-220, -78])
|
469
|
+
cairo: move_to([220, 78])
|
470
|
+
pango: font_description=([])
|
471
|
+
pango: text=(["16"])
|
472
|
+
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
|
473
|
+
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
|
474
|
+
pango: alignment=([#<Pango::Layout::Alignment left>])
|
475
|
+
pango: justify=([false])
|
476
|
+
pango: spacing=([0])
|
477
|
+
cairo: update_pango_layout([MockDouble])
|
478
|
+
cairo: update_pango_layout([MockDouble])
|
479
|
+
cairo: show_pango_layout([MockDouble])
|
480
|
+
cairo: restore([])
|
481
|
+
cairo: set_source([MockDouble, -37, -37])
|
482
|
+
cairo: paint([])
|
483
|
+
cairo: set_source([MockDouble, 75, 75])
|
484
|
+
cairo: paint([])
|
485
|
+
cairo: set_source([MockDouble, -37, -37])
|
486
|
+
cairo: paint([])
|
487
|
+
cairo: set_source([MockDouble, 180, 75])
|
488
|
+
cairo: paint([])
|
489
|
+
cairo: set_source([MockDouble, -37, -37])
|
490
|
+
cairo: paint([])
|
491
|
+
cairo: set_source([MockDouble, 285, 75])
|
492
|
+
cairo: paint([])
|
493
|
+
cairo: set_source([MockDouble, -37, -37])
|
494
|
+
cairo: paint([])
|
495
|
+
cairo: set_source([MockDouble, 390, 75])
|
496
|
+
cairo: paint([])
|
497
|
+
cairo: set_source([MockDouble, -37, -37])
|
498
|
+
cairo: paint([])
|
499
|
+
cairo: set_source([MockDouble, 495, 75])
|
500
|
+
cairo: paint([])
|
501
|
+
cairo: set_source([MockDouble, -37, -37])
|
502
|
+
cairo: paint([])
|
503
|
+
cairo: set_source([MockDouble, 600, 75])
|
504
|
+
cairo: paint([])
|
505
|
+
cairo: set_source([MockDouble, -37, -37])
|
506
|
+
cairo: paint([])
|
507
|
+
cairo: set_source([MockDouble, 705, 75])
|
508
|
+
cairo: paint([])
|
509
|
+
cairo: set_source([MockDouble, -37, -37])
|
510
|
+
cairo: paint([])
|
511
|
+
cairo: set_source([MockDouble, 810, 75])
|
512
|
+
cairo: paint([])
|
513
|
+
cairo: set_source([MockDouble, -37, -37])
|
514
|
+
cairo: paint([])
|
515
|
+
cairo: set_source([MockDouble, 915, 75])
|
516
|
+
cairo: paint([])
|
517
|
+
cairo: set_source([MockDouble, -37, -37])
|
518
|
+
cairo: paint([])
|
519
|
+
cairo: set_source([MockDouble, 1020, 75])
|
520
|
+
cairo: paint([])
|
521
|
+
cairo: set_source([MockDouble, -37, -37])
|
522
|
+
cairo: paint([])
|
523
|
+
cairo: set_source([MockDouble, 1125, 75])
|
524
|
+
cairo: paint([])
|
525
|
+
cairo: set_source([MockDouble, -37, -37])
|
526
|
+
cairo: paint([])
|
527
|
+
cairo: set_source([MockDouble, 1230, 75])
|
528
|
+
cairo: paint([])
|
529
|
+
cairo: set_source([MockDouble, -37, -37])
|
530
|
+
cairo: paint([])
|
531
|
+
cairo: set_source([MockDouble, 1335, 75])
|
532
|
+
cairo: paint([])
|
533
|
+
cairo: set_source([MockDouble, -37, -37])
|
534
|
+
cairo: paint([])
|
535
|
+
cairo: set_source([MockDouble, 1440, 75])
|
536
|
+
cairo: paint([])
|
537
|
+
cairo: set_source([MockDouble, -37, -37])
|
538
|
+
cairo: paint([])
|
539
|
+
cairo: set_source([MockDouble, 1545, 75])
|
540
|
+
cairo: paint([])
|
541
|
+
cairo: set_source([MockDouble, -37, -37])
|
542
|
+
cairo: paint([])
|
543
|
+
cairo: set_source([MockDouble, 1650, 75])
|
544
|
+
cairo: paint([])
|
545
|
+
surface: write_to_png(["_output/saves_notrim_1.png"])
|
546
|
+
cairo: set_source([MockDouble, -37, -37])
|
547
|
+
cairo: paint([])
|
548
|
+
cairo: set_source([MockDouble, 75, 75])
|
549
|
+
cairo: paint([])
|
550
|
+
cairo: set_source([MockDouble, -37, -37])
|
551
|
+
cairo: paint([])
|
552
|
+
cairo: set_source([MockDouble, 180, 75])
|
553
|
+
cairo: paint([])
|
554
|
+
cairo: set_source([MockDouble, -37, -37])
|
555
|
+
cairo: paint([])
|
556
|
+
cairo: set_source([MockDouble, 75, 181])
|
557
|
+
cairo: paint([])
|
558
|
+
cairo: set_source([MockDouble, -37, -37])
|
559
|
+
cairo: paint([])
|
560
|
+
cairo: set_source([MockDouble, 180, 181])
|
561
|
+
cairo: paint([])
|
562
|
+
cairo: set_source([MockDouble, -37, -37])
|
563
|
+
cairo: paint([])
|
564
|
+
cairo: set_source([MockDouble, 75, 287])
|
565
|
+
cairo: paint([])
|
566
|
+
cairo: set_source([MockDouble, -37, -37])
|
567
|
+
cairo: paint([])
|
568
|
+
cairo: set_source([MockDouble, 180, 287])
|
569
|
+
cairo: paint([])
|
570
|
+
cairo: set_source([MockDouble, -37, -37])
|
571
|
+
cairo: paint([])
|
572
|
+
cairo: set_source([MockDouble, 75, 393])
|
573
|
+
cairo: paint([])
|
574
|
+
cairo: set_source([MockDouble, -37, -37])
|
575
|
+
cairo: paint([])
|
576
|
+
cairo: set_source([MockDouble, 180, 393])
|
577
|
+
cairo: paint([])
|
578
|
+
cairo: set_source([MockDouble, -37, -37])
|
579
|
+
cairo: paint([])
|
580
|
+
cairo: set_source([MockDouble, 75, 499])
|
581
|
+
cairo: paint([])
|
582
|
+
cairo: set_source([MockDouble, -37, -37])
|
583
|
+
cairo: paint([])
|
584
|
+
cairo: set_source([MockDouble, 180, 499])
|
585
|
+
cairo: paint([])
|
586
|
+
cairo: set_source([MockDouble, -37, -37])
|
587
|
+
cairo: paint([])
|
588
|
+
cairo: set_source([MockDouble, 75, 605])
|
589
|
+
cairo: paint([])
|
590
|
+
cairo: set_source([MockDouble, -37, -37])
|
591
|
+
cairo: paint([])
|
592
|
+
cairo: set_source([MockDouble, 180, 605])
|
593
|
+
cairo: paint([])
|
594
|
+
cairo: set_source([MockDouble, -37, -37])
|
595
|
+
cairo: paint([])
|
596
|
+
cairo: set_source([MockDouble, 75, 711])
|
597
|
+
cairo: paint([])
|
598
|
+
cairo: set_source([MockDouble, -37, -37])
|
599
|
+
cairo: paint([])
|
600
|
+
cairo: set_source([MockDouble, 180, 711])
|
601
|
+
cairo: paint([])
|
602
|
+
cairo: set_source([MockDouble, -37, -37])
|
603
|
+
cairo: paint([])
|
604
|
+
cairo: set_source([MockDouble, 75, 817])
|
605
|
+
cairo: paint([])
|
606
|
+
cairo: set_source([MockDouble, -37, -37])
|
607
|
+
cairo: paint([])
|
608
|
+
cairo: set_source([MockDouble, 180, 817])
|
609
|
+
cairo: paint([])
|
610
|
+
surface: write_to_png(["_output/save_single_sheet_0.png"])
|
611
|
+
cairo: set_source([MockDouble, -37, -37])
|
612
|
+
cairo: paint([])
|
613
|
+
cairo: set_source([MockDouble, 75, 75])
|
614
|
+
cairo: paint([])
|
615
|
+
cairo: set_source([MockDouble, -37, -37])
|
616
|
+
cairo: paint([])
|
617
|
+
cairo: set_source([MockDouble, 180, 75])
|
618
|
+
cairo: paint([])
|
619
|
+
cairo: set_source([MockDouble, -37, -37])
|
620
|
+
cairo: paint([])
|
621
|
+
cairo: set_source([MockDouble, 285, 75])
|
622
|
+
cairo: paint([])
|
623
|
+
cairo: set_source([MockDouble, -37, -37])
|
624
|
+
cairo: paint([])
|
625
|
+
cairo: set_source([MockDouble, 390, 75])
|
626
|
+
cairo: paint([])
|
627
|
+
cairo: set_source([MockDouble, -37, -37])
|
628
|
+
cairo: paint([])
|
629
|
+
cairo: set_source([MockDouble, 75, 181])
|
630
|
+
cairo: paint([])
|
631
|
+
cairo: set_source([MockDouble, -37, -37])
|
632
|
+
cairo: paint([])
|
633
|
+
cairo: set_source([MockDouble, 180, 181])
|
634
|
+
cairo: paint([])
|
635
|
+
cairo: set_source([MockDouble, -37, -37])
|
636
|
+
cairo: paint([])
|
637
|
+
cairo: set_source([MockDouble, 285, 181])
|
638
|
+
cairo: paint([])
|
639
|
+
cairo: set_source([MockDouble, -37, -37])
|
640
|
+
cairo: paint([])
|
641
|
+
cairo: set_source([MockDouble, 390, 181])
|
642
|
+
cairo: paint([])
|
643
|
+
surface: write_to_png(["_output/save_sheet_0.png"])
|
644
|
+
cairo: set_source([MockDouble, -37, -37])
|
645
|
+
cairo: paint([])
|
646
|
+
cairo: set_source([MockDouble, 75, 75])
|
647
|
+
cairo: paint([])
|
648
|
+
cairo: set_source([MockDouble, -37, -37])
|
649
|
+
cairo: paint([])
|
650
|
+
cairo: set_source([MockDouble, 180, 75])
|
651
|
+
cairo: paint([])
|
652
|
+
cairo: set_source([MockDouble, -37, -37])
|
653
|
+
cairo: paint([])
|
654
|
+
cairo: set_source([MockDouble, 285, 75])
|
655
|
+
cairo: paint([])
|
656
|
+
cairo: set_source([MockDouble, -37, -37])
|
657
|
+
cairo: paint([])
|
658
|
+
cairo: set_source([MockDouble, 390, 75])
|
659
|
+
cairo: paint([])
|
660
|
+
cairo: set_source([MockDouble, -37, -37])
|
661
|
+
cairo: paint([])
|
662
|
+
cairo: set_source([MockDouble, 75, 181])
|
663
|
+
cairo: paint([])
|
664
|
+
cairo: set_source([MockDouble, -37, -37])
|
665
|
+
cairo: paint([])
|
666
|
+
cairo: set_source([MockDouble, 180, 181])
|
667
|
+
cairo: paint([])
|
668
|
+
cairo: set_source([MockDouble, -37, -37])
|
669
|
+
cairo: paint([])
|
670
|
+
cairo: set_source([MockDouble, 285, 181])
|
671
|
+
cairo: paint([])
|
672
|
+
cairo: set_source([MockDouble, -37, -37])
|
673
|
+
cairo: paint([])
|
674
|
+
cairo: set_source([MockDouble, 390, 181])
|
675
|
+
cairo: paint([])
|
676
|
+
surface: write_to_png(["_output/save_sheet_1.png"])
|
677
|
+
cairo: set_source([MockDouble, -37, -37])
|
678
|
+
cairo: paint([])
|
679
|
+
cairo: set_source([MockDouble, 75, 75])
|
680
|
+
cairo: paint([])
|
681
|
+
cairo: set_source([MockDouble, -37, -37])
|
682
|
+
cairo: paint([])
|
683
|
+
cairo: set_source([MockDouble, 180, 75])
|
684
|
+
cairo: paint([])
|
685
|
+
cairo: set_source([MockDouble, -37, -37])
|
686
|
+
cairo: paint([])
|
687
|
+
cairo: set_source([MockDouble, 75, 181])
|
688
|
+
cairo: paint([])
|
689
|
+
cairo: set_source([MockDouble, -37, -37])
|
690
|
+
cairo: paint([])
|
691
|
+
cairo: set_source([MockDouble, 180, 181])
|
692
|
+
cairo: paint([])
|
693
|
+
surface: write_to_png(["_output/save_sheet_range_0.png"])
|
694
|
+
cairo: set_source([MockDouble, -37, -37])
|
695
|
+
cairo: paint([])
|
696
|
+
cairo: set_source([MockDouble, 75, 75])
|
697
|
+
cairo: paint([])
|
698
|
+
cairo: set_source([MockDouble, -37, -37])
|
699
|
+
cairo: paint([])
|
700
|
+
cairo: set_source([MockDouble, 180, 75])
|
701
|
+
cairo: paint([])
|
702
|
+
surface: write_to_png(["_output/save_sheet_range_1.png"])
|