Layer::Layer():
active_(true),
- z_depth_(0.0f),
- dirty_time_(Time::end())
+ z_depth(0.0f),
+ dirty_time_(Time::end())//,
+ //z_depth_static(false)
{
_LayerCounter::counter++;
+ Vocab vocab=get_param_vocab();
+ fill_static(vocab);
}
Layer::LooseHandle
bool
Layer::set_param(const String ¶m, const ValueBase &value)
{
- if(param=="z_depth" && value.same_type_as(z_depth_))
- {
- z_depth_=value.get(z_depth_);
- z_depth_static=value.get_static();
- return true;
- }
+ IMPORT(z_depth)
return false;
}
bool
Layer::set_param_static(const String ¶m, const bool x)
{
- if(param=="z_depth" && z_depth_static!=x)
+ Sparams::iterator iter=static_params.find(param);
+ if(iter!=static_params.end())
{
- z_depth_static=x;
+ iter->second=x;
return true;
}
-
return false;
}
+void Layer::fill_static(Vocab vocab)
+{
+ Vocab::const_iterator viter;
+ for(viter=vocab.begin();viter!=vocab.end();viter++)
+ {
+ if(static_params.find(viter->get_name())==static_params.end())
+ static_params.insert(make_pair(viter->get_name(),false));
+ }
+}
+
+
bool
Layer::get_param_static(const String ¶m) const
{
- if(param=="z_depth")
- return z_depth_static;
+ Sparams::const_iterator iter=static_params.find(param);
+ if(iter!=static_params.end())
+ return iter->second;
return false;
}
Layer::get_z_depth(const synfig::Time& t)const
{
if(!dynamic_param_list().count("z_depth"))
- return z_depth_;
+ return z_depth;
return (*dynamic_param_list().find("z_depth")->second)(t).get(Real());
}
if(param=="z_depth")
{
synfig::ValueBase ret(get_z_depth());
- ret.set_static(z_depth_static);
+ ret.set_static(get_param_static(param));
return ret;
}
return ValueBase();
{
Layer::Vocab ret;
- ret.push_back(ParamDesc(z_depth_,"z_depth")
+ ret.push_back(ParamDesc(z_depth,"z_depth")
.set_local_name(_("Z Depth"))
.set_animation_only(true)
+ .set_description(_("Modifies the position of the layer in the layer stack"))
);
return ret;