# File lib/rabbit/element/base.rb, line 393 def [](name) @user_property[name] end
# File lib/rabbit/element/base.rb, line 397 def []=(name, value) @user_property[name] = value end
# File lib/rabbit/element/base.rb, line 148 def add_default_prop(name, value) name = normalize_property_name(name) @default_prop[name] = make_prop_value(name, value) end
# File lib/rabbit/element/base.rb, line 217 def adjust_x_centering(x, w) x -= centering_adjusted_width w += centering_adjusted_width [x, w] end
# File lib/rabbit/element/base.rb, line 237 def adjust_y_margin(y, h) y += @margin_bottom h -= @margin_bottom [y, h] end
# File lib/rabbit/element/base.rb, line 223 def adjust_y_padding(y, h) y -= @padding_top h += @padding_top + @padding_bottom [y, h] end
# File lib/rabbit/element/base.rb, line 318 def available_w @w - @padding_left - @padding_right end
# File lib/rabbit/element/base.rb, line 334 def centering_adjusted_height @centering_adjusted_height || 0 end
# File lib/rabbit/element/base.rb, line 330 def centering_adjusted_width @centering_adjusted_width || 0 end
# File lib/rabbit/element/base.rb, line 268 def clear_margin @margin_left = @default_margin_left @margin_right = @default_margin_right @margin_top = @default_margin_top @margin_bottom = @default_margin_bottom end
# File lib/rabbit/element/base.rb, line 261 def clear_padding @padding_left = @default_padding_left @padding_right = @default_padding_right @padding_top = @default_padding_top @padding_bottom = @default_padding_bottom end
# File lib/rabbit/element/base.rb, line 182 def clear_theme @slide = nil @visible = @default_visible @real_simulation = true @width = @height = nil @centering_adjusted_width = nil @centering_adjusted_height = nil @horizontal_centering = @vertical_centering = false @prop = default_prop clear_margin clear_padding clear_draw_procs dirty! end
# File lib/rabbit/element/base.rb, line 346 def clone obj = super obj.user_property = @user_property.clone obj.prop = @prop.clone obj end
# File lib/rabbit/element/base.rb, line 95 def compile(canvas, x, y, w, h) compile_element(canvas, x, y, w, h) end
# File lib/rabbit/element/base.rb, line 99 def compile_element(canvas, x, y, w, h) @base_x, @base_y, @base_w, @base_h = x, y, w, h @px, @py, @pw, @ph = @x, @y, @w, @h x, y, w, h = setup_margin(x, y, w, h) @canvas, @x, @y, @w, @h = canvas, x, y, w, h if [@px, @py, @pw, @ph] != [@x, @y, @w, @h] dirty! end end
# File lib/rabbit/element/base.rb, line 109 def compile_for_horizontal_centering(canvas, x, y, w, h) compile(canvas, x, y, w, h) end
# File lib/rabbit/element/base.rb, line 113 def compile_horizontal(canvas, x, y, w, h) if do_horizontal_centering? do_horizontal_centering(canvas, x, y, w, h) else reset_horizontal_centering(canvas, x, y, w, h) end end
# File lib/rabbit/element/base.rb, line 353 def default_prop @default_prop.dup end
# File lib/rabbit/element/base.rb, line 75 def dirty! @dirty = true end
# File lib/rabbit/element/base.rb, line 304 def do_horizontal_centering(canvas, x, y, w, h) end
# File lib/rabbit/element/base.rb, line 282 def do_horizontal_centering? @horizontal_centering or (parent and parent.do_horizontal_centering?) end
# File lib/rabbit/element/base.rb, line 287 def do_vertical_centering? @vertical_centering or (parent and parent.do_horizontal_centering?) end
# File lib/rabbit/element/base.rb, line 64 def draw(simulation=false) x, y, w, h = setup_padding(@x, @y, @w, @h) x, y, w, h = _draw(@canvas, x, y, w, h, simulation) x, w = restore_x_padding(x, w) x, w = restore_x_margin(x, w) x, w = adjust_x_centering(x, w) y, h = adjust_y_padding(y, h) y, h = adjust_y_margin(y, h) [x, y, w, h] end
# File lib/rabbit/element/base.rb, line 153 def font(props) props.each do |key, value| key, value = normalize_font_property(key, value) if value prop_set(key, value) else prop_delete(key) end end end
# File lib/rabbit/element/base.rb, line 87 def have_tag?(name) false end
# File lib/rabbit/element/base.rb, line 91 def have_wait_tag? false end
# File lib/rabbit/element/base.rb, line 326 def height @height + @padding_top + @padding_bottom end
# File lib/rabbit/element/base.rb, line 389 def hide(&block) change_visible(false, &block) end
# File lib/rabbit/element/base.rb, line 292 def horizontal_centering=(new_value) if @horizontal_centering != new_value dirty! end @horizontal_centering = new_value end
# File lib/rabbit/element/base.rb, line 275 def if_dirty if dirty? yield @dirty = false end end
# File lib/rabbit/element/base.rb, line 250 def init_default_margin @default_margin_left = 0 @default_margin_right = 0 @default_margin_top = 0 @default_margin_bottom = 0 end
# File lib/rabbit/element/base.rb, line 243 def init_default_padding @default_padding_left = 0 @default_padding_right = 0 @default_padding_top = 0 @default_padding_bottom = 0 end
# File lib/rabbit/element/base.rb, line 257 def init_default_visible @default_visible = !have_wait_tag? end
# File lib/rabbit/element/base.rb, line 164 def inline_element? true end
# File lib/rabbit/element/base.rb, line 338 def inspect(verbose=false) if verbose super() else "<#{self.class.name}>" end end
# File lib/rabbit/element/base.rb, line 361 def margin_set(*values) top, right, bottom, left = parse_four_way(*values) @margin_top = top if top @margin_right = right if right @margin_bottom = bottom if bottom @margin_left = left if left end
# File lib/rabbit/element/base.rb, line 369 def margin_with(params) margin_set(params) end
# File lib/rabbit/element/base.rb, line 357 def match?(pattern) pattern === text end
# File lib/rabbit/element/base.rb, line 314 def next_element sibling_element(1) end
# File lib/rabbit/element/base.rb, line 373 def padding_set(*values) top, right, bottom, left = parse_four_way(*values) @padding_top = top if top @padding_right = right if right @padding_bottom = bottom if bottom @padding_left = left if left end
# File lib/rabbit/element/base.rb, line 381 def padding_with(params) padding_set(params) end
# File lib/rabbit/element/base.rb, line 51 def parent=(parent) @slide = nil @parent = parent end
# File lib/rabbit/element/base.rb, line 310 def previous_element sibling_element(-1) end
# File lib/rabbit/element/base.rb, line 141 def prop_delete(name) name = normalize_property_name(name) @prop.delete(name) dirty! end
# File lib/rabbit/element/base.rb, line 128 def prop_get(name) name = normalize_property_name(name) @prop[name] end
# File lib/rabbit/element/base.rb, line 121 def prop_set(name, *values) name = normalize_property_name(name) @prop[name] = make_prop_value(name, *values) dirty! end
# File lib/rabbit/element/base.rb, line 134 def prop_value(name) name = normalize_property_name(name) value = @prop[name] value = value.value if value.respond_to?(:value) value end
# File lib/rabbit/element/base.rb, line 307 def reset_horizontal_centering(canvas, x, y, w, h) end
# File lib/rabbit/element/base.rb, line 211 def restore_x_margin(x, w) x -= @margin_left w += @margin_left + @margin_right [x, w] end
# File lib/rabbit/element/base.rb, line 205 def restore_x_padding(x, w) x -= @padding_left w += @padding_left + @padding_right [x, w] end
# File lib/rabbit/element/base.rb, line 229 def setup_margin(x, y, w, h) x += @margin_left y += @margin_top w -= @margin_left + @margin_right h -= @margin_top + @margin_bottom [x, y, w, h] end
# File lib/rabbit/element/base.rb, line 197 def setup_padding(x, y, w, h) x += @padding_left y += @padding_top w -= @padding_left + @padding_right h -= @padding_top + @padding_bottom [x, y, w, h] end
# File lib/rabbit/element/base.rb, line 385 def show(&block) change_visible(true, &block) end
# File lib/rabbit/element/base.rb, line 60 def slide @slide ||= _slide end
# File lib/rabbit/element/base.rb, line 176 def substitute_newline substitute_text do |text| text.gsub(/(\\)?\\n/) {$1 ? "\\n" : "\n"} end end
# File lib/rabbit/element/base.rb, line 172 def substitute_text false end
# File lib/rabbit/element/base.rb, line 168 def text_renderer? false end
# File lib/rabbit/element/base.rb, line 299 def vertical_centering=(new_value) dirty! if @vertical_centering != new_value @vertical_centering = new_value end
# File lib/rabbit/element/base.rb, line 56 def visible? @visible end
Generated with the Darkfish Rdoc Generator 2.