File: svg-viewer.rb

package info (click to toggle)
ruby-gnome 4.3.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,320 kB
  • sloc: ruby: 55,206; ansic: 29,012; xml: 333; sh: 229; cpp: 45; makefile: 42
file content (31 lines) | stat: -rwxr-xr-x 689 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env ruby

require 'gtk3'
require 'rsvg2'

if ARGV.size != 1
  puts "usage: #{$0} input.svg"
  exit(-1)
end

input = ARGV.shift

handle = Rsvg::Handle.new(:path => input)
width, height = handle.dimensions.to_a

window = Gtk::Window.new
window.set_default_size(width, height)
window.signal_connect(:destroy) { Gtk.main_quit }

area = Gtk::DrawingArea.new
area.signal_connect(:draw) do |widget, _event|
  context = widget.window.create_cairo_context
  window_width, window_height = widget.window.width, widget.window.height
  context.scale(window_width.to_f / width, window_height.to_f / height)
  context.render_rsvg_handle(handle)
end

window.add(area)
window.show_all

Gtk.main