class Rabbit::Renderer::Widget::DrawingArea
Public Class Methods
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
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
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 44 def clear_compiled_slides @compiled_slides = {} end
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 52 def height @area.allocation.height end
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 36 def queue_redraw @area.queue_redraw end
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 48 def width @area.allocation.width end
Private Instance Methods
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 86 def compile_slide(slide) @compiled_slides[slide] = true slide.draw(@canvas, true) end
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 82 def compiled_slide?(slide) @compiled_slides.has_key?(slide) end
Source
# File lib/rabbit/renderer/widget/drawing-area.rb, line 66 def draw(widget) draw_current_slide end
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
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