class Rabbit::Renderer::Widget::DrawingArea

Public Class Methods

new(canvas) click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 25
def initialize(canvas)
  @canvas = canvas
  @area = Gtk::DrawingArea.new
  clear_compiled_slides
  set_draw
end

Public Instance Methods

clear_compiled_slide(slide=nil) click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 40
def clear_compiled_slide(slide=nil)
  @compiled_slides.delete(slide || @canvas.current_slide)
end
clear_compiled_slides() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 44
def clear_compiled_slides
  @compiled_slides = {}
end
height() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 52
def height
  @area.allocation.height
end
queue_redraw() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 36
def queue_redraw
  @area.queue_redraw
end
raw() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 32
def raw
  @area
end
width() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 48
def width
  @area.allocation.width
end

Private Instance Methods

compile_slide(slide) click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 86
def compile_slide(slide)
  @compiled_slides[slide] = true
  slide.draw(@canvas, true)
end
compiled_slide?(slide) click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 82
def compiled_slide?(slide)
  @compiled_slides.has_key?(slide)
end
draw(widget) click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 66
def draw(widget)
  draw_current_slide
end
draw_current_slide() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 70
def draw_current_slide
  slide = @canvas.current_slide
  if slide
    begin
      compile_slide(slide) unless compiled_slide?(slide)
      slide.draw(@canvas, false)
    rescue
      @canvas.logger.warn($!)
    end
  end
end
set_draw() click to toggle source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 57
def set_draw
  @area.signal_connect(:draw) do |widget, context|
    init_context(context)
    draw(widget)
    finish_renderer
    Gdk::Event::PROPAGATE
  end
end