class Canvas

Public Class Methods

new() click to toggle source
Calls superclass method
# File gtk2/sample/misc/drawing.rb, line 13
def initialize
  super
  signal_connect("expose_event") { |w,e| expose_event(w,e) }
  signal_connect("configure_event") { |w, e| configure_event(w,e) }
  @buffer = nil
  @bgc = nil
end

Public Instance Methods

clear(b = @buffer) click to toggle source
# File gtk2/sample/misc/drawing.rb, line 30
def clear(b = @buffer)
  return if b.nil?

  g = b.size
  @bgc = self.style.bg_gc(self.state) if @bgc.nil?
  if (g[0] > 0 && g[1] > 0)
    b.draw_rectangle(@bgc, true, 0,0, g[0], g[1])
  end
end
configure_event(w,e) click to toggle source
# File gtk2/sample/misc/drawing.rb, line 40
def configure_event(w,e)
  g = w.window.geometry
  if (g[2] > 0 && g[3] > 0)
    b = Gdk::Pixmap::new(w.window, g[2], g[3], -1)
    clear(b)
    if not @buffer.nil?
      g = @buffer.size
      b.draw_drawable(@bgc, @buffer, 0, 0, 0, 0, g[0], g[1])
    end
    @buffer = b
  end
  true
end
expose_event(w,e) click to toggle source
# File gtk2/sample/misc/drawing.rb, line 21
def expose_event(w,e)
  unless @buffer.nil?
    rec = e.area
    w.window.draw_drawable(@bgc, @buffer, rec.x, rec.y,
                         rec.x, rec.y, rec.width, rec.height)
  end
  false
end