X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fpart.rb;h=d285c19dba139d61cd8ce5dfcd5613b2bca2b426;hb=4e6ba7263d1434ef932dac0ef8a4b489ee8e4a83;hp=0150a354cc185da8851d24e5ebfddb293498b691;hpb=eb3e06dccf913ce26dd7c002eccbe12a44c32600;p=redact.git diff --git a/lib/redact/part.rb b/lib/redact/part.rb index 0150a35..d285c19 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 45 2005-06-08 18:02:12Z tilman $ +# $Id: part.rb 68 2005-09-19 20:03:09Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -112,6 +112,7 @@ module Redact "dragable.y" => [@dragable.enabled[1], :char], "dragable.step_y" => [@dragable.step[1]], "dragable.count_y" => [@dragable.count[1]], + "dragable.events_id" => [-1], "dragable.counfine_id" => [confine_id]} # not a typo! end @@ -400,18 +401,34 @@ 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(im, 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 - attr_reader :image, :auto_rel, :tweens, :border_fill_middle + attr_reader :image, :auto_rel, :tweens, :border_fill_middle, + :fill_smooth, :fill_pos_rel, :fill_pos_abs, + :fill_rel, :fill_abs def initialize(name = "default", value = 0.0) super @@ -420,7 +437,13 @@ module Redact @tweens = Tweens.new @border = [0, 0, 0, 0] @border_fill_middle = true + @fill_smooth = true + @fill_pos_rel = [0.0, 0.0] + @fill_pos_abs = [0, 0] + @fill_rel = [1.0, 1.0] + @fill_abs = [0, 0] + @auto_rel = false end @@ -429,11 +452,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? + + return if !@image.nil? && im2 == @image.filename - @image = EDJE.image_dir.find { |e| e.filename == im } + @image = EDJE.image_dir.find { |e| e.filename == im2 } if @image.nil? - @image = ImageDirectoryEntry.new(im) + @image = ImageDirectoryEntry.new(im, im2) EDJE.image_dir << @image end @@ -453,7 +479,27 @@ module Redact end def set_border(l = 0, r = 0, t = 0, b = 0) - @border = [r, r, t, b] + @border = [l, r, t, b] + end + + def fill_smooth=(v) + @fill_smooth = (v == true) + end + + def fill_pos_rel=(x, y) + @fill_pos_rel = [x.to_f, y.to_f] + end + + def fill_pos_abs=(x, y) + @fill_pos_abs = [x.to_i, y.to_i] + end + + def fill_rel=(x, y) + @fill_rel = [x.to_f, y.to_f] + end + + def fill_abs=(x, y) + @fill_abs = [x.to_i, y.to_i] end protected @@ -467,14 +513,24 @@ module Redact "border.b" => [@border[3]], "border.no_fill" => [!@border_fill_middle], "fill.smooth" => [@fill_smooth], - "fill.pos_rel_x" => [0.0, :double], - "fill.pos_abs_x" => [0], - "fill.rel_x" => [1.0, :double], - "fill.abs_x" => [0], - "fill.pos_rel_y" => [0.0, :double], - "fill.pos_abs_y" => [0], - "fill.rel_y" => [1.0, :double], - "fill.abs_y" => [0]}) + "fill.pos_rel_x" => [@fill_pos_rel[0], :double], + "fill.pos_abs_x" => [@fill_pos_abs[0]], + "fill.rel_x" => [@fill_rel[0], :double], + "fill.abs_x" => [@fill_abs[0]], + "fill.pos_rel_y" => [@fill_pos_rel[1], :double], + "fill.pos_abs_y" => [@fill_pos_abs[1]], + "fill.rel_y" => [@fill_rel[1], :double], + "fill.abs_y" => [@fill_abs[1]]}) + 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 @@ -530,8 +586,10 @@ module Redact found = EDJE.font_dir.find { |font| font.filename == f2 } if found.nil? - EDJE.font_dir << FontDirectoryEntry.new(f2) - @font = EDJE.font_dir.last.filename + EDJE.font_dir << FontDirectoryEntry.new(f, f2) + @font = EDJE.font_dir.last.alias + else + @font = found.alias end else @font = f