# File vtk/gtk/GtkVTKRenderWindow.rb, line 564
def main

  Gtk.init
  Gtk::GL.init

  # The main window
  window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
  window.set_title("A GtkVTKRenderWindow Demo!")
  window.signal_connect("destroy"){ Gtk.main_quit }
  window.signal_connect("delete_event"){ Gtk.main_quit }
  window.set_border_width(10)

  # A VBox into which widgets are packed.
  vbox = Gtk::VBox.new(false, 3)
  window.add(vbox)
  vbox.show

  # The GtkVTKRenderWindow
  gvtk = GtkVTKRenderWindow.new
  #gvtk.SetDesiredUpdateRate(1000)
  gvtk.set_usize(400, 400)
  vbox.pack_start(gvtk)
  gvtk.show

  # The VTK stuff.
  cone = Vtk::ConeSource.new
  cone.SetResolution(80)
  coneMapper = Vtk::PolyDataMapper.new
  coneMapper.SetInput(cone.GetOutput)
  #coneActor = Vtk::LODActor.new
  coneActor = Vtk::Actor.new
  coneActor.SetMapper(coneMapper)    
  coneActor.GetProperty.SetColor(0.5, 0.5, 1.0)
  ren = Vtk::Renderer.new
  gvtk.GetRenderWindow.AddRenderer(ren)
  ren.AddActor(coneActor)

  # A simple quit button
  quit = Gtk::Button.new("Quit!")
  quit.signal_connect("clicked"){ Gtk.main_quit }
  vbox.pack_start(quit)
  quit.show

  # show the main window && start event processing.
  window.show
  Gtk.main
end