X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fpart.rb;h=90a29776875acd36c849cc09752062ca47403475;hb=bf303d7901b8d8105571f66c1fa4fb7f0907bed4;hp=974a6bec8ba47d8bc7720039582b2541e56ad61a;hpb=1c7f10346bf5a3639736d9179a492d01c2a4d127;p=redact.git diff --git a/lib/redact/part.rb b/lib/redact/part.rb index 974a6be..90a2977 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 29 2005-04-16 15:59:07Z tilman $ +# $Id: part.rb 48 2005-06-08 21:38:34Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -216,7 +216,12 @@ module Redact end def to=(part) - @to_id = [].fill(part.nil? ? -1 : part.id, 0..1) + self.set_to(part) + end + + def set_to(part_x, part_y = part_x) + @to_id = [part_x.nil? ? -1 : part_x.id, + part_y.nil? ? -1 : part_y.id] end end @@ -395,14 +400,28 @@ module Redact class Tweens < Array def <<(im) - image = EDJE.image_dir.find { |e| e.filename == im } + im2 = find_image(im.to_str.strip) + raise(RedactError, "cannot find image - #{im}") if im2.nil? + + image = EDJE.image_dir.find { |e| e.filename == im2 } if image.nil? - image = ImageDirectoryEntry.new(im) + image = ImageDirectoryEntry.new(im2) EDJE.image_dir << image end super(Tween.new(image)) end + + private + def find_image(file) + [".", OPTIONS.image_dir].each do |d| + f2 = File.join(d, file) + return Pathname.new(f2).cleanpath.to_s if File.file?(f2) + end + + nil + end + end class ImageDescription < Description @@ -424,11 +443,14 @@ module Redact end def image=(im) - return if !@image.nil? && im == @image.filename + im2 = find_image(im.to_str.strip) + raise(RedactError, "cannot find image - #{im}") if im2.nil? - @image = EDJE.image_dir.find { |e| e.filename == im } + return if !@image.nil? && im2 == @image.filename + + @image = EDJE.image_dir.find { |e| e.filename == im2 } if @image.nil? - @image = ImageDirectoryEntry.new(im) + @image = ImageDirectoryEntry.new(im2) EDJE.image_dir << @image end @@ -471,6 +493,16 @@ module Redact "fill.rel_y" => [1.0, :double], "fill.abs_y" => [0]}) end + + private + def find_image(file) + [".", OPTIONS.image_dir].each do |d| + f2 = File.join(d, file) + return Pathname.new(f2).cleanpath.to_s if File.file?(f2) + end + + nil + end end class TextDescription < Description @@ -520,13 +552,19 @@ module Redact f = f.to_str.strip md = f.match(/.*\.ttf$/) unless md.nil? - found = EDJE.font_dir.find { |font| font.filename == f } + f2 = find_font(f) + raise(RedactError, "cannot find font - #{f}") if f2.nil? + + found = EDJE.font_dir.find { |font| font.filename == f2 } if found.nil? - EDJE.font_dir << FontDirectoryEntry.new(f) + EDJE.font_dir << FontDirectoryEntry.new(f2) + @font = EDJE.font_dir.last.alias + else + @font = found.alias end + else + @font = f end - - @font = f end def outline_color=(c) @@ -561,5 +599,15 @@ module Redact "text.id_source" => [@text_id_source], "text.id_text_source" => [@text_id_text_source]}) end + + private + def find_font(file) + [".", OPTIONS.font_dir].each do |d| + f2 = File.join(d, file) + return Pathname.new(f2).cleanpath.to_s if File.file?(f2) + end + + nil + end end end