Hi,

In <73800bf00612130933y3687294fp709276366a686fa7 / mail.gmail.com>
  "SVG Canvas" on Thu, 14 Dec 2006 02:33:44 +0900,
  "Steven Quinones-Colon" <stevenq1967 / gmail.com> wrote:

> I've been looking for a couple of days now and I can't find a library
> for svg graphics with a canvas object so I can make a financial
> charting application(stand alone, not web based), is there such a
> thing? maybe I'm missing something obvious.

If you want to only show SVG, the following example will
help you:

  http://ruby-gnome2.cvs.sourceforge.net/ruby-gnome2/ruby-gnome2/rsvg/sample/svg-viewer.rb?revision=HEAD&view=markup

If you want to output your chart to screen and SVG file, the
following small script will help you:

====
#!/usr/bin/env ruby

require 'gtk2'
require 'rsvg2'

def draw(context, width, height)
  context.move_to(0, 0)
  context.line_to(width, height)
  context.stroke

  context.move_to(width, 0)
  context.line_to(0, height)
  context.stroke
end

window = Gtk::Window.new
window.set_default_size(300, 300)
vbox = Gtk::VBox.new
area = Gtk::DrawingArea.new
save = Gtk::Button.new("save")

window.signal_connect("destroy") do
  Gtk.main_quit
end

area.signal_connect("expose_event") do |widget, event|
  width, height = area.window.size
  context = widget.window.create_cairo_context
  draw(context, width, height)
  true
end

save.signal_connect("clicked") do |widget, event|
  width, height = area.window.size
  surface = Cairo::SVGSurface.new("output.svg", width, height)
  context = Cairo::Context.new(surface)
  draw(context, width, height)
  context.show_page
  surface.finish
  true
end

vbox.pack_start(area, true, true)
vbox.pack_end(save, false, false)
window.add(vbox)
window.show_all

Gtk.main
====

Thanks,
--
kou