# File gtk/sample/misc/cairo-pong.rb, line 170
    def initialize(speed=30)
      super()
      @speed = speed
      
      self.title = 'Pong Demonstration'
      signal_connect('destroy') { Gtk.main_quit }
      signal_connect("key_press_event") do |widget, event|
        if event.state.control_mask? and event.keyval == Gdk::Keyval::GDK_q
          destroy
          true
        else
          false
        end
      end

      set_default_size(260, 200)

      @field = Field.new

      @drawing_area = Gtk::DrawingArea.new
      set_expose_event

      vb = Gtk::VBox.new(false, 5)
      vb.border_width = 10
      vb.pack_start(@drawing_area, true, true, 0)
      vb.show_all
      add(vb)

      Gtk.timeout_add(@speed) do
        @field.update
        @drawing_area.queue_draw unless @drawing_area.destroyed?
      end
    end