projects
/
redact.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed font/image handling.
[redact.git]
/
lib
/
redact
/
part.rb
diff --git
a/lib/redact/part.rb
b/lib/redact/part.rb
index f915a4b5edf1ba2f2139f66d63c13c18c4e4149c..c9dc87f16e81e3645ebfa2aea37073fe46538ab4 100644
(file)
--- a/
lib/redact/part.rb
+++ b/
lib/redact/part.rb
@@
-1,5
+1,5
@@
#--
#--
-# $Id: part.rb
22 2005-04-02 22:29:50
Z tilman $
+# $Id: part.rb
49 2005-06-09 17:21:05
Z tilman $
#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
@@
-31,8
+31,8
@@
module Redact
include Comparable
include Comparable
- attr_reader :collection, :id, :name, :dragable, :clip
-
attr_accessor
:mouse_events, :repeat_events
+ attr_reader :collection, :id, :name, :dragable, :clip
,
+
:mouse_events, :repeat_events
def initialize(collection, id, name)
@collection = collection
def initialize(collection, id, name)
@collection = collection
@@
-57,6
+57,14
@@
module Redact
@id <=> b.id
end
@id <=> b.id
end
+ def mouse_events=(val)
+ @mouse_events = (val == true)
+ end
+
+ def repeat_events=(val)
+ @repeat_events = (val == true)
+ end
+
def clip=(part)
if part == self
raise(ArgumentError, "cannot clip part to itself")
def clip=(part)
if part == self
raise(ArgumentError, "cannot clip part to itself")
@@
-208,13
+216,18
@@
module Redact
end
def to=(part)
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
class Description
end
end
class Description
- attr_reader :rel, :aspect, :step
- attr_accessor :
visible, :aspect_preference, :color_class
+ attr_reader :rel, :aspect, :step
, :visible, :color_class
+ attr_accessor :
aspect_preference
def initialize(name = "default", value = 0.0)
@name = name.to_str.dup.freeze
def initialize(name = "default", value = 0.0)
@name = name.to_str.dup.freeze
@@
-231,6
+244,14
@@
module Redact
@color_class = ""
end
@color_class = ""
end
+ def visible=(v)
+ @visible = (v == true)
+ end
+
+ def color_class=(v)
+ @color_class = v.to_str.dup
+ end
+
def set_step(x = 0, y = 0)
@step = [x, y]
end
def set_step(x = 0, y = 0)
@step = [x, y]
end
@@
-331,6
+352,7
@@
module Redact
"border.r" => [0],
"border.t" => [0],
"border.b" => [0],
"border.r" => [0],
"border.t" => [0],
"border.b" => [0],
+ "border.no_fill" => [false],
"fill.smooth" => [true],
"fill.pos_rel_x" => [0.0, :double],
"fill.pos_abs_x" => [0],
"fill.smooth" => [true],
"fill.pos_rel_x" => [0.0, :double],
"fill.pos_abs_x" => [0],
@@
-370,6
+392,7
@@
module Redact
@id = image.id
end
@id = image.id
end
+ protected
def to_eet_name
"Edje_Part_Image_Id"
end
def to_eet_name
"Edje_Part_Image_Id"
end
@@
-377,18
+400,32
@@
module Redact
class Tweens < Array
def <<(im)
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?
if image.nil?
- image = ImageDirectoryEntry.new(im)
+ image = ImageDirectoryEntry.new(im
, im2
)
EDJE.image_dir << image
end
super(Tween.new(image))
end
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
end
class ImageDescription < Description
- attr_reader :image, :auto_rel, :tweens
+ attr_reader :image, :auto_rel, :tweens
, :border_fill_middle
def initialize(name = "default", value = 0.0)
super
def initialize(name = "default", value = 0.0)
super
@@
-396,16
+433,24
@@
module Redact
@image = nil
@tweens = Tweens.new
@border = [0, 0, 0, 0]
@image = nil
@tweens = Tweens.new
@border = [0, 0, 0, 0]
+ @border_fill_middle = true
@fill_smooth = true
@auto_rel = false
end
@fill_smooth = true
@auto_rel = false
end
+ def border_fill_middle=(var)
+ @border_fill_middle = (var == true)
+ end
+
def image=(im)
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 == im
2
}
if @image.nil?
if @image.nil?
- @image = ImageDirectoryEntry.new(im)
+ @image = ImageDirectoryEntry.new(im
, im2
)
EDJE.image_dir << @image
end
EDJE.image_dir << @image
end
@@
-428,6
+473,7
@@
module Redact
@border = [r, r, t, b]
end
@border = [r, r, t, b]
end
+ protected
def to_eet_properties
super.merge!(
{"image.id" => [@image.nil? ? -1 : @image.id],
def to_eet_properties
super.merge!(
{"image.id" => [@image.nil? ? -1 : @image.id],
@@
-436,6
+482,7
@@
module Redact
"border.r" => [@border[1]],
"border.t" => [@border[2]],
"border.b" => [@border[3]],
"border.r" => [@border[1]],
"border.t" => [@border[2]],
"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.smooth" => [@fill_smooth],
"fill.pos_rel_x" => [0.0, :double],
"fill.pos_abs_x" => [0],
@@
-446,11
+493,20
@@
module Redact
"fill.rel_y" => [1.0, :double],
"fill.abs_y" => [0]})
end
"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
end
class TextDescription < Description
- attr_reader :font
- attr_accessor :text, :font_size, :text_class
+ attr_reader :font, :text, :font_size, :text_class
def initialize(name = "default", value = 0.0)
super
def initialize(name = "default", value = 0.0)
super
@@
-468,6
+524,18
@@
module Redact
@text_id_text_source = -1
end
@text_id_text_source = -1
end
+ def text=(v)
+ @text = v.to_str.dup
+ end
+
+ def font_size=(v)
+ @font_size = v.to_int
+ end
+
+ def text_class=(v)
+ @text_class = v.to_str.dup
+ end
+
def set_fit(x = false, y = false)
@fit = [x, y]
end
def set_fit(x = false, y = false)
@fit = [x, y]
end
@@
-481,15
+549,22
@@
module Redact
end
def font=(f)
end
def font=(f)
- md = f.to_str.match(/.*\.ttf/)
+ f = f.to_str.strip
+ md = f.match(/.*\.ttf$/)
unless md.nil?
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?
if found.nil?
- EDJE.font_dir << FontDirectoryEntry.new(f)
+ EDJE.font_dir << FontDirectoryEntry.new(f, f2)
+ @font = EDJE.font_dir.last.alias
+ else
+ @font = found.alias
end
end
+ else
+ @font = f
end
end
-
- @font = f.dup
end
def outline_color=(c)
end
def outline_color=(c)
@@
-500,6
+575,7
@@
module Redact
@shadow_color = parse_hex_color(c)
end
@shadow_color = parse_hex_color(c)
end
+ protected
def to_eet_properties
super.merge!(
{"color2.r" => [@outline_color[0], :char],
def to_eet_properties
super.merge!(
{"color2.r" => [@outline_color[0], :char],
@@
-523,5
+599,15
@@
module Redact
"text.id_source" => [@text_id_source],
"text.id_text_source" => [@text_id_text_source]})
end
"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
end
end