Fixed ImageDescription#set_border.
[redact.git] / lib / redact / part.rb
index 90a29776875acd36c849cc09752062ca47403475..8173e71d51fe0d3484b507cdb44426d9289a65fc 100644 (file)
@@ -1,5 +1,5 @@
 #--
-# $Id: part.rb 48 2005-06-08 21:38:34Z tilman $
+# $Id: part.rb 67 2005-09-19 19:46:43Z tilman $
 #
 # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
 #
@@ -405,7 +405,7 @@ module Redact
 
                        image = EDJE.image_dir.find { |e| e.filename == im2 }
                        if image.nil?
-                               image = ImageDirectoryEntry.new(im2)
+                               image = ImageDirectoryEntry.new(im, im2)
                                EDJE.image_dir << image
                        end
 
@@ -425,7 +425,9 @@ module Redact
        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
@@ -434,7 +436,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
 
@@ -450,7 +458,7 @@ module Redact
 
                        @image = EDJE.image_dir.find { |e| e.filename == im2 }
                        if @image.nil?
-                               @image = ImageDirectoryEntry.new(im2)
+                               @image = ImageDirectoryEntry.new(im, im2)
                                EDJE.image_dir << @image
                        end
 
@@ -470,7 +478,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
@@ -484,14 +512,14 @@ 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
@@ -557,7 +585,7 @@ module Redact
 
                                found = EDJE.font_dir.find { |font| font.filename == f2 }
                                if found.nil?
-                                       EDJE.font_dir << FontDirectoryEntry.new(f2)
+                                       EDJE.font_dir << FontDirectoryEntry.new(f, f2)
                                        @font = EDJE.font_dir.last.alias
                                else
                                        @font = found.alias