module Rabbit::Element::SlideElement
Attributes
Public Class Methods
Source
# File lib/rabbit/element/slide-element.rb, line 26 def initialize(title_element) @index = -1 @default_waited_draw_procs = [] @default_waited_targets = [] super(title_element) end
Calls superclass method
Rabbit::Element::ContainerElement::new
Public Instance Methods
Source
# File lib/rabbit/element/slide-element.rb, line 70 def clear_theme super clear_waiting clear_transition @waited_draw_procs = @default_waited_draw_procs.dup @waited_targets = @default_waited_targets.dup end
Calls superclass method
Rabbit::Element::ContainerElement#clear_theme
Source
# File lib/rabbit/element/slide-element.rb, line 66 def clear_transition @transition = nil end
Source
# File lib/rabbit/element/slide-element.rb, line 62 def clear_waiting @drawing_index = 0 end
Source
# File lib/rabbit/element/slide-element.rb, line 45 def draw(canvas, simulation=nil) if simulation.nil? begin draw(canvas, true) draw(canvas, false) rescue StandardError, LoadError Rabbit.logger.warn($!) end else canvas.draw_slide(self, simulation) do compile(canvas, 0, 0, canvas.width, canvas.height) super(simulation) end run_gc unless simulation end end
Calls superclass method
Source
# File lib/rabbit/element/slide-element.rb, line 78 def first?(index=nil) (index || @drawing_index).zero? end
Source
# File lib/rabbit/element/slide-element.rb, line 107 def flush @drawing_index = @waited_draw_procs.size end
Source
# File lib/rabbit/element/slide-element.rb, line 82 def last?(index=nil) @waited_draw_procs.size == (index || @drawing_index) end
Source
# File lib/rabbit/element/slide-element.rb, line 86 def move_to_next @drawing_index += 1 unless last? end
Source
# File lib/rabbit/element/slide-element.rb, line 90 def move_to_previous @drawing_index -= 1 unless first? end
Source
# File lib/rabbit/element/slide-element.rb, line 94 def register_default_wait_proc(target, exact=false, &proc) @default_waited_draw_procs << [target, exact, proc] end
Source
# File lib/rabbit/element/slide-element.rb, line 98 def register_default_wait_target(target) @default_waited_targets << target end
Source
# File lib/rabbit/element/slide-element.rb, line 102 def register_wait_proc(target, exact=false, &proc) @waited_draw_procs << [target, exact, proc] @waited_targets << target end
Source
# File lib/rabbit/element/slide-element.rb, line 41 def size_ratio self["size-ratio"] end
Source
# File lib/rabbit/element/slide-element.rb, line 37 def title @elements.first.text end
Source
# File lib/rabbit/element/slide-element.rb, line 111 def visible_waited_target?(target) @waited_targets[0, @drawing_index].include?(target) end
Source
# File lib/rabbit/element/slide-element.rb, line 115 def waited_draw_procs(target) procs = [] candidates = @waited_draw_procs[0, @drawing_index] candidates.each_with_index do |(t, exact, proc), i| next unless target == t if exact procs << proc if i == @drawing_index - 1 else procs << proc end end procs end
Private Instance Methods
Source
# File lib/rabbit/element/slide-element.rb, line 130 def run_gc lazy_gc_timout_msec = 1000 @compressed_gc_task_id ||= GLib::Timeout.add(lazy_gc_timout_msec) do GC.start @compressed_gc_task_id = nil GLib::Source::REMOVE end end