#--
-# $Id: part.rb 67 2005-09-19 19:46:43Z tilman $
-#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
# Permission is hereby granted, free of charge, to any person obtaining
"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
@type = TYPE_TEXT
@effect = :none
+ @use_alternate_font_metrics = false
+ end
+
+ def use_alternate_font_metrics=(b)
+ @use_alternate_font_metrics = (b == true)
end
protected
raise(RedactError, "invalid effect value - #{@effect}")
end
- super.merge!({"effect" => [effect, :char]})
+ super.merge!(
+ {"effect" => [effect, :char],
+ "use_alternate_font_metrics" => [@use_alternate_font_metrics, :char]})
end
end
attr_reader :rel, :to_id, :offset
def initialize(rel, offset)
- @rel = [rel, rel]
+ @rel = [rel.to_f, rel.to_f]
@to_id = [-1, -1]
@offset = [offset, offset]
end
def set_rel(x, y)
- @rel = [x, y]
+ @rel = [x.to_f, y.to_f]
end
def set_offset(x, y)
@color_class = ""
end
+ def inherit(other)
+ unless other.is_a?(Description)
+ raise(ArgumentError, "Cannot inherit from description")
+ end
+
+ prot = ["@name", "@value"]
+
+ (instance_variables - prot).each do |v|
+ n = other.instance_variable_get(v.intern)
+ n = n.dup rescue n
+ instance_variable_set(v.intern, n)
+ end
+ end
+
def visible=(v)
@visible = (v == true)
end
@fill_smooth = (v == true)
end
- def fill_pos_rel=(x, y)
+ def set_fill_pos_rel(x, y)
@fill_pos_rel = [x.to_f, y.to_f]
end
- def fill_pos_abs=(x, y)
+ def set_fill_pos_abs(x, y)
@fill_pos_abs = [x.to_i, y.to_i]
end
- def fill_rel=(x, y)
+ def set_fill_rel(x, y)
@fill_rel = [x.to_f, y.to_f]
end
- def fill_abs=(x, y)
+ def set_fill_abs(x, y)
@fill_abs = [x.to_i, y.to_i]
end
@font_size = 0
@fit = [false, false]
@text_min = [false, false]
+ @text_max = [false, false]
@text_align = [0.5, 0.5]
@text_id_source = -1
@text_id_text_source = -1
@text_min = [x, y]
end
+ def set_text_max(x = false, y = false)
+ @text_max = [x, y]
+ end
+
def set_text_align(x = 0.5, y = 0.5)
@text_align = [x, y]
end
"text.fit_y" => [@fit[1]],
"text.min_x" => [@text_min[0]],
"text.min_y" => [@text_min[1]],
+ "text.max_x" => [@text_max[0]],
+ "text.max_y" => [@text_max[1]],
"text.align.x" => [@text_align[0], :double],
"text.align.y" => [@text_align[1], :double],
"text.id_source" => [@text_id_source],