X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fpart.rb;h=974a6bec8ba47d8bc7720039582b2541e56ad61a;hb=1c7f10346bf5a3639736d9179a492d01c2a4d127;hp=b1b99786a179513975f302b1d6f17b9272b6c1df;hpb=04b09aeb9b490ef5f1dcf2e4aa04f7d5cc766752;p=redact.git diff --git a/lib/redact/part.rb b/lib/redact/part.rb index b1b9978..974a6be 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 20 2005-04-02 22:15:29Z tilman $ +# $Id: part.rb 29 2005-04-16 15:59:07Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -31,8 +31,8 @@ module Redact 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 @@ -57,6 +57,14 @@ module Redact @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") @@ -122,22 +130,13 @@ module Redact end class TextPart < Part - EFFECT_NONE = 0 - EFFECT_PLAIN = 1 - EFFECT_OUTLINE = 2 - EFFECT_SOFT_OUTLINE = 3 - EFFECT_SHADOW = 4 - EFFECT_SOFT_SHADOW = 5 - EFFECT_OUTLINE_SHADOW = 6 - EFFECT_OUTLINE_SOFT_SHADOW = 7 - attr_accessor :effect def initialize(collection, id, name) super @type = TYPE_TEXT - @effect = EFFECT_NONE + @effect = :none end protected @@ -146,7 +145,20 @@ module Redact end def to_eet_properties - super.merge!({"effect" => [@effect, :char]}) + effect = case @effect + when :none: 0 + when :plain: 1 + when :outline: 2 + when :soft_outline: 3 + when :shadow: 4 + when :soft_shadow: 5 + when :outline_shadow: 6 + when :outline_soft_shadow: 7 + else + raise(RedactError, "invalid effect value - #{@effect}") + end + + super.merge!({"effect" => [effect, :char]}) end end @@ -209,8 +221,8 @@ module Redact 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 @@ -227,6 +239,14 @@ module Redact @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 @@ -273,27 +293,21 @@ module Redact pairs.map { |p| p.hex } end - def map_aspect_preference - case @aspect_preference - when :none - 0 - when :vertical - 1 - when :horizontal - 2 - when :both - 3 - else - raise(RedactError, "invalid aspect preference value - " + - @aspect_preference.to_s) - end - end - def to_eet_name "Edje_Part_Description" end def to_eet_properties + asp_pref = case @aspect_preference + when :none: 0 + when :vertical: 1 + when :horizontal: 2 + when :both: 3 + else + raise(RedactError, "invalid aspect preference value - " + + @aspect_preference.to_s) + end + {"state.name" => [@name], "state.value" => [@value, :double], "visible" => [@visible], @@ -307,7 +321,7 @@ module Redact "step.y" => [@step[1]], "aspect.min" => [@aspect[0], :double], "aspect.max" => [@aspect[1], :double], - "aspect.prefer" => [map_aspect_preference, :char], + "aspect.prefer" => [asp_pref, :char], "rel1.relative_x" => [@rel[0].rel[0], :double], "rel1.relative_y" => [@rel[0].rel[1], :double], "rel1.offset_x" => [@rel[0].offset[0]], @@ -333,6 +347,7 @@ module Redact "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], @@ -372,6 +387,7 @@ module Redact @id = image.id end + protected def to_eet_name "Edje_Part_Image_Id" end @@ -390,7 +406,7 @@ module Redact 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 @@ -398,10 +414,15 @@ module Redact @image = nil @tweens = Tweens.new @border = [0, 0, 0, 0] + @border_fill_middle = true @fill_smooth = true @auto_rel = false end + def border_fill_middle=(var) + @border_fill_middle = (var == true) + end + def image=(im) return if !@image.nil? && im == @image.filename @@ -430,6 +451,7 @@ module Redact @border = [r, r, t, b] end + protected def to_eet_properties super.merge!( {"image.id" => [@image.nil? ? -1 : @image.id], @@ -438,6 +460,7 @@ module Redact "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], @@ -451,8 +474,7 @@ module Redact 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 @@ -470,6 +492,18 @@ module Redact @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 @@ -483,7 +517,8 @@ module Redact end def font=(f) - md = f.to_str.match(/.*\.ttf/) + f = f.to_str.strip + md = f.match(/.*\.ttf$/) unless md.nil? found = EDJE.font_dir.find { |font| font.filename == f } if found.nil? @@ -491,7 +526,7 @@ module Redact end end - @font = f.dup + @font = f end def outline_color=(c) @@ -502,6 +537,7 @@ module Redact @shadow_color = parse_hex_color(c) end + protected def to_eet_properties super.merge!( {"color2.r" => [@outline_color[0], :char],