| Class | Texy::ImageElement |
| In: |
lib/texy/modules/image.rb
|
| Parent: | HtmlElement |
Html element image
| height | [RW] | |
| image | [RW] | |
| link_image | [RW] | |
| over_image | [RW] | |
| width | [RW] |
# File lib/texy/modules/image.rb, line 162 def initialize(texy) super self.image = Url.new(texy) self.over_image = Url.new(texy) self.link_image = Url.new(texy) end
# File lib/texy/modules/image.rb, line 261 def require_link_image link_image.set(image.value, texy.image_module.linked_root, true) if link_image.as_url.empty? end
# File lib/texy/modules/image.rb, line 169 def set_images(url = nil, url_over = nil, url_link = nil) image.set(url, texy.image_module.root, true) over_image.set(url_over, texy.image_module.root, true) link_image.set(url_link, texy.image_module.linked_root, true) end
# File lib/texy/modules/image.rb, line 180 def set_images_raw(urls) el_ref = texy.image_module.reference(urls.strip) if el_ref urls = el_ref.urls self.modifier = el_ref.modifier.dup end urls = urls.split('|') # dimensions if match_data = /^(.*?)\ (?:(\d+)|\?)\ *x\ *(?:(\d+)|\?)\ *()/.match(urls[0]) urls[0] = match_data[1] set_size(match_data[2], match_data[3]) end set_images(*urls) end
# File lib/texy/modules/image.rb, line 175 def set_size(width, height) self.width = width.to_i.abs self.height = height.to_i.abs end
# File lib/texy/modules/image.rb, line 202 def generate_tags(tags) return if (image_url = image.as_url).empty? # image URL is required # classes & styles attrs = modifier.attrs_of('img') attrs['class'] = modifier.classes attrs['style'] = modifier.styles attrs['id'] = modifier.id if modifier.h_align == :left if texy.image_module.left_class attrs['class'] << texy.image_module.left_class else attrs['style']['float'] = 'left' end elsif modifier.h_align == :right if texy.image_module.right_class attrs['class'] << texy.image_module.right_class else attrs['style']['float'] = 'right' end end attrs['style']['vertical-align'] = modifier.v_align.to_s if modifier.v_align # width x height generate require_size attrs['width'] = width.to_s if width attrs['height'] = height.to_s if height # attribute generate texy.summary[:images] << attrs['src'] = image_url # onmouseover actions generate unless (over_url = over_image.as_url).empty? attrs['onmouseover'] = "this.src=\"#{over_url}\"" attrs['onmouseout'] = "this.src=\"#{image.as_url}\"" texy.summary[:preload] << over_url end # alternative text generate attrs['alt'] = modifier.title || texy.image_module.default_alt tags << ['img', attrs] end