# File libart/sample/gnome-canvas.rb, line 74
  def initialize
    super(Gtk::Window::TOPLEVEL)

    self.signal_connect("delete_event") do
      Gtk::main_quit()
    end

    sw = Gtk::ScrolledWindow.new
    sw.set_size_request(600, 400)
    self.add(sw)
    sw.show

    affine = Array.new(5)
    text = Array.new(5)
    affine[0] = Art::Affine.identity
    text[0] = 'No Conversion'
    affine[1] = Art::Affine.scale(1, 2)
    text[1] = 'Scale(1,2)'
    affine[2] = Art::Affine.rotate(45)
    text[2] = 'Rotate(45)'
    affine[3] = Art::Affine.shear(45)
    text[3] = 'Shear(45)'
    affine[4] = Art::Affine.translate(TRANSLATE_X, TRANSLATE_Y)
    text[4] = "Translate(#{TRANSLATE_X}, #{TRANSLATE_Y})"
    
    table = Gtk::Table.new(affine.size, affine.size, false)
    sw.add_with_viewport(table)
    table.show

    0.upto(affine.size - 1) do |x|
      0.upto(affine.size - 1) do |y|
        if x == 0
          label = text[y]
        elsif y == 0
          label = text[x]
        else
          label = text[x] + ' * ' + text[y]
        end
        setup_canvas_frame(table, x, y, label, affine[x] * affine[y])
      end
    end
    self.show
  end