X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Flayer.cpp;h=ae25ab49f5dcda0d77b76f4f0f66ff68a2e567eb;hb=42e8f249832b9ca81691bbf76a6668aa4612117f;hp=8fcbfbff9843dcfffd41611292315f7bc5ea43ce;hpb=adfc80c126f482d7ea2bac38001a2c4a7c7df88c;p=synfig.git diff --git a/synfig-core/src/synfig/layer.cpp b/synfig-core/src/synfig/layer.cpp index 8fcbfbf..ae25ab4 100644 --- a/synfig-core/src/synfig/layer.cpp +++ b/synfig-core/src/synfig/layer.cpp @@ -23,8 +23,6 @@ /* === H E A D E R S ======================================================= */ -#define SYNFIG_NO_ANGLE - #ifdef USING_PCH # include "pch.h" #else @@ -137,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 @@ -294,14 +295,45 @@ Layer::on_changed() bool Layer::set_param(const String ¶m, 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 ¶m, 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 ¶m) const +{ + + Sparams::const_iterator iter=static_params.find(param); + if(iter!=static_params.end()) + return iter->second; + return false; +} + + etl::handle Layer::get_transform()const { @@ -312,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()); } @@ -451,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(); } @@ -546,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;