Class: Rabbit::Element::Image
- Inherits:
-
Object
- Object
- Rabbit::Element::Image
- Includes:
- Base, BlockElement, BlockHorizontalCentering, ImageManipulable
- Defined in:
- lib/rabbit/element/image.rb
Constant Summary
Constants included from GetText
Instance Attribute Summary collapse
-
#caption ⇒ Object
readonly
Returns the value of attribute caption.
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#normalized_height ⇒ Object
readonly
Returns the value of attribute normalized_height.
-
#normalized_width ⇒ Object
readonly
Returns the value of attribute normalized_width.
-
#relative_height ⇒ Object
readonly
Returns the value of attribute relative_height.
-
#relative_margin_bottom ⇒ Object
readonly
Returns the value of attribute relative_margin_bottom.
-
#relative_margin_left ⇒ Object
readonly
Returns the value of attribute relative_margin_left.
-
#relative_margin_right ⇒ Object
readonly
Returns the value of attribute relative_margin_right.
-
#relative_margin_top ⇒ Object
readonly
Returns the value of attribute relative_margin_top.
-
#relative_padding_bottom ⇒ Object
readonly
Returns the value of attribute relative_padding_bottom.
-
#relative_padding_left ⇒ Object
readonly
Returns the value of attribute relative_padding_left.
-
#relative_padding_right ⇒ Object
readonly
Returns the value of attribute relative_padding_right.
-
#relative_padding_top ⇒ Object
readonly
Returns the value of attribute relative_padding_top.
-
#relative_width ⇒ Object
readonly
Returns the value of attribute relative_width.
Attributes included from BlockHorizontalCentering
Attributes included from Base
#base_h, #base_w, #base_x, #base_y, #default_margin_bottom, #default_margin_left, #default_margin_right, #default_margin_top, #default_padding_bottom, #default_padding_left, #default_padding_right, #default_padding_top, #default_visible, #h, #horizontal_centering, #margin_bottom, #margin_left, #margin_right, #margin_top, #padding_bottom, #padding_left, #padding_right, #padding_top, #parent, #ph, #pw, #px, #py, #real_simulation, #user_property, #vertical_centering, #w, #x, #y
Instance Method Summary collapse
- #_compile ⇒ Object
- #as_large_as_possible? ⇒ Boolean
- #compile(canvas, x, y, w, h) ⇒ Object
- #compile_for_horizontal_centering(canvas, x, y, w, h) ⇒ Object
- #dither_mode ⇒ Object
- #draw_element(canvas, x, y, w, h, simulation) ⇒ Object
- #height ⇒ Object
-
#initialize(filename, prop) ⇒ Image
constructor
A new instance of Image.
- #text ⇒ Object
- #to_html(generator) ⇒ Object
- #to_rd ⇒ Object
- #width ⇒ Object
- #x_dither ⇒ Object
- #y_dither ⇒ Object
Methods included from BlockHorizontalCentering
#clear_theme, #do_horizontal_centering, #reset_horizontal_centering
Methods included from BlockElement
#adjust_y_padding, #inline_element?
Methods included from Base
#[], #[]=, #add_default_prop, #adjust_x_centering, #adjust_y_margin, #adjust_y_padding, #available_w, #centering_adjusted_height, #centering_adjusted_width, #clear_margin, #clear_padding, #clear_theme, #clone, #compile_element, #compile_horizontal, #default_prop, #dirty!, #dirty?, #do_horizontal_centering, #do_horizontal_centering?, #do_vertical_centering?, #font, #have_tag?, #have_wait_tag?, #hide, #if_dirty, #init_default_margin, #init_default_padding, #init_default_visible, #inline_element?, #inspect, #margin_set, #margin_with, #match?, #next_element, #padding_set, #padding_with, #previous_element, #prop_delete, #prop_get, #prop_set, #prop_value, #reset_horizontal_centering, #restore_x_margin, #restore_x_padding, #setup_margin, #setup_padding, #show, #slide, #substitute_newline, #substitute_text, #text_renderer?, #visible?, #wait
Methods included from Base::DrawHook
#clear_draw_procs, def_draw_hook, def_draw_hooks
Methods included from Utils
arg_list, collect_classes_under_module, collect_modules_under_module, collect_under_module, combination, compute_bottom_y, compute_left_x, compute_right_x, compute_top_y, corresponding_class_under_module, corresponding_module_under_module, corresponding_objects, drawable_to_pixbuf, ensure_time, events_pending_available?, extract_four_way, find_path_in_load_path, init_by_constants_as_default_value, move_to, move_to_bottom_left, move_to_bottom_right, move_to_top_left, move_to_top_right, parse_four_way, process_pending_events, process_pending_events_proc, quartz?, require_files_under_directory_in_load_path, require_safe, split_number_to_minute_and_second, stringify_hash_key, support_console_input?, support_console_output?, syntax_highlighting_debug?, time, to_class_name, unescape_title, windows?
Methods included from GetText
Constructor Details
#initialize(filename, prop) ⇒ Image
Returns a new instance of Image.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rabbit/element/image.rb', line 25 def initialize(filename, prop) @filename = filename prop = Utils.stringify_hash_key(prop) super(filename, prop) normalized_prop = {} prop.each do |name, value| normalized_prop[name.gsub(/-/, '_')] = value end prop = normalized_prop %w(caption dither_mode).each do |name| instance_variable_set("@#{name}", prop[name]) end %w(keep_scale keep_ratio).each do |name| unless prop[name].nil? self.keep_ratio = true_value?(prop[name]) end end %w(as_large_as_possible).each do |name| instance_variable_set("@#{name}", true_value?(prop[name])) end %w(width height x_dither y_dither normalized_width normalized_height relative_width relative_height relative_margin_top relative_margin_bottom relative_margin_left relative_margin_right relative_padding_top relative_padding_bottom relative_padding_left relative_padding_right ).each do |name| begin instance_variable_set("@#{name}", prop[name] && Integer(prop[name])) rescue ArgumentError raise InvalidImageSizeError.new(filename, name, prop[name]) end end setup_draw_parameters(prop) resize(@width, @height) end |
Instance Attribute Details
#caption ⇒ Object (readonly)
Returns the value of attribute caption.
17 18 19 |
# File 'lib/rabbit/element/image.rb', line 17 def @caption end |
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
16 17 18 |
# File 'lib/rabbit/element/image.rb', line 16 def filename @filename end |
#normalized_height ⇒ Object (readonly)
Returns the value of attribute normalized_height.
18 19 20 |
# File 'lib/rabbit/element/image.rb', line 18 def normalized_height @normalized_height end |
#normalized_width ⇒ Object (readonly)
Returns the value of attribute normalized_width.
18 19 20 |
# File 'lib/rabbit/element/image.rb', line 18 def normalized_width @normalized_width end |
#relative_height ⇒ Object (readonly)
Returns the value of attribute relative_height.
19 20 21 |
# File 'lib/rabbit/element/image.rb', line 19 def relative_height @relative_height end |
#relative_margin_bottom ⇒ Object (readonly)
Returns the value of attribute relative_margin_bottom.
20 21 22 |
# File 'lib/rabbit/element/image.rb', line 20 def relative_margin_bottom @relative_margin_bottom end |
#relative_margin_left ⇒ Object (readonly)
Returns the value of attribute relative_margin_left.
21 22 23 |
# File 'lib/rabbit/element/image.rb', line 21 def relative_margin_left @relative_margin_left end |
#relative_margin_right ⇒ Object (readonly)
Returns the value of attribute relative_margin_right.
21 22 23 |
# File 'lib/rabbit/element/image.rb', line 21 def relative_margin_right @relative_margin_right end |
#relative_margin_top ⇒ Object (readonly)
Returns the value of attribute relative_margin_top.
20 21 22 |
# File 'lib/rabbit/element/image.rb', line 20 def relative_margin_top @relative_margin_top end |
#relative_padding_bottom ⇒ Object (readonly)
Returns the value of attribute relative_padding_bottom.
22 23 24 |
# File 'lib/rabbit/element/image.rb', line 22 def relative_padding_bottom @relative_padding_bottom end |
#relative_padding_left ⇒ Object (readonly)
Returns the value of attribute relative_padding_left.
23 24 25 |
# File 'lib/rabbit/element/image.rb', line 23 def relative_padding_left @relative_padding_left end |
#relative_padding_right ⇒ Object (readonly)
Returns the value of attribute relative_padding_right.
23 24 25 |
# File 'lib/rabbit/element/image.rb', line 23 def relative_padding_right @relative_padding_right end |
#relative_padding_top ⇒ Object (readonly)
Returns the value of attribute relative_padding_top.
22 23 24 |
# File 'lib/rabbit/element/image.rb', line 22 def relative_padding_top @relative_padding_top end |
#relative_width ⇒ Object (readonly)
Returns the value of attribute relative_width.
19 20 21 |
# File 'lib/rabbit/element/image.rb', line 19 def relative_width @relative_width end |
Instance Method Details
#_compile ⇒ Object
106 |
# File 'lib/rabbit/element/image.rb', line 106 alias _compile compile |
#as_large_as_possible? ⇒ Boolean
124 125 126 |
# File 'lib/rabbit/element/image.rb', line 124 def as_large_as_possible? @as_large_as_possible end |
#compile(canvas, x, y, w, h) ⇒ Object
111 112 113 114 |
# File 'lib/rabbit/element/image.rb', line 111 def compile(canvas, x, y, w, h) super adjust_size(canvas, @x, @y, @w, @h) end |
#compile_for_horizontal_centering(canvas, x, y, w, h) ⇒ Object
107 108 109 |
# File 'lib/rabbit/element/image.rb', line 107 def compile_for_horizontal_centering(canvas, x, y, w, h) _compile(canvas, x, y, w, h) end |
#dither_mode ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/rabbit/element/image.rb', line 88 def dither_mode @dither_mode ||= "normal" mode_name = "DITHER_#{@dither_mode.upcase}" if Gdk::RGB.const_defined?(mode_name) Gdk::RGB.const_get(mode_name) else Gdk::RGB::DITHER_NORMAL end end |
#draw_element(canvas, x, y, w, h, simulation) ⇒ Object
65 66 67 |
# File 'lib/rabbit/element/image.rb', line 65 def draw_element(canvas, x, y, w, h, simulation) draw_image(canvas, x, y, w, h, simulation) end |
#height ⇒ Object
120 121 122 |
# File 'lib/rabbit/element/image.rb', line 120 def height super + @padding_top + @padding_bottom end |
#text ⇒ Object
69 70 71 |
# File 'lib/rabbit/element/image.rb', line 69 def text @caption.to_s end |
#to_html(generator) ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/rabbit/element/image.rb', line 77 def to_html(generator) src = generator.save_pixbuf(pixbuf, File.basename(@filename)) html = "<img " if @caption alt = generator.h(@caption) html << "title=\"#{alt}\" alt=\"#{alt}\" " end html << "src=\"#{src}\" />" html end |
#to_rd ⇒ Object
73 74 75 |
# File 'lib/rabbit/element/image.rb', line 73 def to_rd text end |
#width ⇒ Object
116 117 118 |
# File 'lib/rabbit/element/image.rb', line 116 def width super + @padding_left + @padding_right end |
#x_dither ⇒ Object
98 99 100 |
# File 'lib/rabbit/element/image.rb', line 98 def x_dither @x_dither || 0 end |
#y_dither ⇒ Object
102 103 104 |
# File 'lib/rabbit/element/image.rb', line 102 def y_dither @y_dither || 0 end |