#--
-# $Id: program.rb 23 2005-04-02 23:20:32Z tilman $
+# $Id: program.rb 33 2005-04-24 15:54:39Z tilman $
#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
include Comparable
- attr_reader :collection, :id, :name, :after
- attr_accessor :signal, :source, :in_from, :in_range
+ attr_reader :collection, :id, :name, :after, :signal, :source,
+ :in_from, :in_range
def initialize(collection, id, name)
@collection = collection
@id <=> b.id
end
+ def signal=(v)
+ @signal = v.to_str.dup
+ end
+
+ def source=(v)
+ @source = v.to_str.dup
+ end
+
+ def in_from=(v)
+ unless v.is_a?(Float)
+ raise(ArgumentError,
+ "wrong argument type #{v.class.name} " +
+ "(expected Float)")
+ end
+
+ @in_from = v
+ end
+
+ def in_range=(v)
+ unless v.is_a?(Float)
+ raise(ArgumentError,
+ "wrong argument type #{v.class.name} " +
+ "(expected Float)")
+ end
+
+ @in_range = v
+ end
+
+ protected
def to_eet_name
"Edje_Program"
end
end
class SetStateProgram < Program
- attr_reader :targets
- attr_accessor :state, :value, :mode, :time
+ attr_reader :targets, :state, :value, :time
+ attr_accessor :mode
def initialize(collection, id, name)
super
@targets = ProgramArgs.new(collection)
end
+ def state=(v)
+ @state = v.to_str.dup
+ end
+
+ def value=(v)
+ unless v.is_a?(Float)
+ raise(ArgumentError,
+ "wrong argument type #{v.class.name} " +
+ "(expected Float)")
+ end
+
+ @value = v
+ end
+
+ def time=(v)
+ unless v.is_a?(Float)
+ raise(ArgumentError,
+ "wrong argument type #{v.class.name} " +
+ "(expected Float)")
+ end
+
+ @time = v
+ end
+
+ protected
def to_eet_properties
mode = case @mode
when :linear: 1
@targets = ProgramArgs.new(collection)
end
+ protected
def to_eet_properties
super.merge!({"targets" => [@targets]})
end
end
class EmitSignalProgram < Program
- attr_accessor :emission_signal, :emission_source
+ attr_reader :emission_signal, :emission_source
def initialize(collection, id, name)
super
@type = TYPE_EMIT_SIGNAL
- @emission_signal = nil
- @emission_source = nil
+ @emission_signal = ""
+ @emission_source = ""
+ end
+
+ def emission_signal=(v)
+ @emission_signal = v.to_str.dup
end
+ def emission_source=(v)
+ @emission_source = v.to_str.dup
+ end
+
+ protected
def to_eet_properties
super.merge!(
{"state" => [@emission_signal],
end
class ExecScriptProgram < Program
- attr_accessor :script
+ attr_reader :script
def initialize(collection, id, name)
super
@type = TYPE_EXEC_SCRIPT
@script = nil
end
+
+ def script=(v)
+ @script = v.to_str.dup
+ end
end
class ProgramArgs < Array
@id = v.id
end
+ protected
def to_eet_properties
{"id" => [@id]}
end
end
class ProgramAfter < ProgramArg
+ protected
def to_eet_name
"Edje_Program_After"
end
end
class ProgramTarget < ProgramArg
+ protected
def to_eet_name
"Edje_Program_Target"
end