class Pong::Window
Public Class Methods
new(speed=30)
click to toggle source
Calls superclass method
Gtk::Window.new
# File gtk2/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
Public Instance Methods
set_draw()
click to toggle source
# File gtk3/sample/misc/cairo-pong.rb, line 204 def set_draw @drawing_area.signal_connect("draw") do |widget, cr| window = widget.window cr.scale(window.width, window.height) @field.draw(cr) end end
set_expose_event()
click to toggle source
# File gtk2/sample/misc/cairo-pong.rb, line 204 def set_expose_event @drawing_area.signal_connect('expose_event') do |widget, event| cr = widget.window.create_cairo_context cr.scale(*widget.window.size) @field.draw(cr) end end