Set the description of some parameters
[synfig.git] / synfig-core / src / synfig / layer.cpp
index 9d1adf3..ae25ab4 100644 (file)
@@ -135,10 +135,13 @@ Layer::subsys_stop()
 
 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
@@ -292,14 +295,45 @@ Layer::on_changed()
 bool
 Layer::set_param(const String &param, const ValueBase &value)
 {
-       if(param=="z_depth" && value.same_type_as(z_depth_))
+       IMPORT(z_depth)
+       return false;
+}
+
+bool
+Layer::set_param_static(const String &param, const bool x)
+{
+       Sparams::iterator iter=static_params.find(param);
+       if(iter!=static_params.end())
        {
-               z_depth_=value.get(z_depth_);
+               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 &param) const
+{
+
+       Sparams::const_iterator iter=static_params.find(param);
+       if(iter!=static_params.end())
+               return iter->second;
+       return false;
+}
+
+
 etl::handle<Transform>
 Layer::get_transform()const
 {
@@ -310,7 +344,7 @@ float
 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());
 }
 
@@ -449,8 +483,11 @@ ValueBase
 Layer::get_param(const String & param)const
 {
        if(param=="z_depth")
-               return get_z_depth();
-
+       {
+               synfig::ValueBase ret(get_z_depth());
+               ret.set_static(get_param_static(param));
+               return ret;
+       }
        return ValueBase();
 }
 
@@ -544,9 +581,10 @@ Layer::get_param_vocab()const
 {
        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;