module Rabbit::Element::TextContainerElement

Attributes

prop[R]

Public Instance Methods

clear_theme() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 67
def clear_theme
  container_clear_theme
  super
end
compile(canvas, x, y, w, h) click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 54
def compile(canvas, x, y, w, h)
  compile_element(canvas, x, y, w, h)
  text_compile(canvas, @x, @y, @w, @h)
end
dirty?() click to toggle source
Calls superclass method Rabbit::Element::TextRenderer#dirty?
# File lib/rabbit/element/text-container-element.rb, line 59
def dirty?
  super or text_dirty?
end
do_horizontal_centering?() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 50
def do_horizontal_centering?
  super and not width.nil?
end
draw_elements(canvas, x, y, w, h, simulation) click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 16
def draw_elements(canvas, x, y, w, h, simulation)
  unless simulation
    # TODO: This is too workaround. :<
    draw_sub_elements(canvas, x, y, w, h) do
      draw_layout(canvas, x, y)
    end
  end
  [x, y + @height, w, h - @height]
end
empty?() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 63
def empty?
  /\A\s*\z/ =~ text
end
have_numerical_font_size?() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 72
def have_numerical_font_size?
  super or @elements.any? {|elem| elem.have_numerical_font_size?}
end
inline_element?() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 76
def inline_element?
  true
end
markuped_text() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 33
def markuped_text
  mt = @elements.collect do |elem|
    elem.markuped_text
  end.join("")
  markup(mt)
end
text() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 40
def text
  @elements.collect do |elem|
    elem.text
  end.join("")
end
to_html(generator) click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 26
def to_html(generator)
  html = @elements.collect do |elem|
    elem.to_html(generator)
  end.join("")
  markup_as_html(html)
end
to_rd() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 46
def to_rd
  text
end

Protected Instance Methods

compute_next_font_size(previous_size, scale) click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 90
def compute_next_font_size(previous_size, scale)
  i = -1
  my_font_size, elements_font_size = previous_size
  [
   super(my_font_size, scale),
   elements_font_size.collect do |size|
     i += 1
     @elements[i].compute_next_font_size(size, scale)
   end
  ]
end
draw_sub_elements(canvas, x, y, w, h) { || ... } click to toggle source

TODO: This is too workaround. :<

# File lib/rabbit/element/text-container-element.rb, line 112
def draw_sub_elements(canvas, x, y, w, h)
  draw_sub_elements_recursive(canvas, x, y, w, h, 0) do
    yield
  end
end
draw_sub_elements_recursive(canvas, x, y, w, h, i) { || ... } click to toggle source

TODO: This is too workaround. :<

# File lib/rabbit/element/text-container-element.rb, line 119
def draw_sub_elements_recursive(canvas, x, y, w, h, i)
  if i == @elements.size
    yield
  else
    draw_sub_elements_recursive(canvas, x, y, w, h, i + 1) do
      element = @elements[i]
      if element.is_a?(TextContainerElement)
        element.draw_sub_elements(canvas, x, y, w, h) do
          yield
        end
      else
        yield
      end
    end
  end
end
initial_font_size_for_compute_font_size() click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 81
def initial_font_size_for_compute_font_size
  [
   super,
   @elements.collect do |elem|
     elem.initial_font_size_for_compute_font_size
   end
  ]
end
set_computed_font_size(new_size) click to toggle source
# File lib/rabbit/element/text-container-element.rb, line 102
def set_computed_font_size(new_size)
  my_font_size, elements_font_size = new_size
  elements_font_size.each_with_index do |size, i|
    dirty! if @elements[i].set_computed_font_size(size)
  end
  super(my_font_size)
end