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