X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Flayer.h;h=87e91a1462ecdf7195360fe4e97eab8f2cf8f88e;hb=c03c4194371a7030144d0897ecbb8e6282379cd5;hp=c00233099a400306a588164bbd0d495d76585c30;hpb=2aa82e84160499903d3e7f85a7770ffe3d04ddb2;p=synfig.git diff --git a/synfig-core/src/synfig/layer.h b/synfig-core/src/synfig/layer.h index c002330..87e91a1 100644 --- a/synfig-core/src/synfig/layer.h +++ b/synfig-core/src/synfig/layer.h @@ -81,6 +81,7 @@ if (param==#x && value.same_type_as(x)) \ { \ value.put(&x); \ + set_param_static(#x,value.get_static()); \ { \ y; \ } \ @@ -92,6 +93,7 @@ if (param==y && value.same_type_as(x)) \ { \ value.put(&x); \ + set_param_static(#x,value.get_static()); \ return true; \ } @@ -102,7 +104,11 @@ //! Exports a parameter 'x' if param is same type as given 'y' #define EXPORT_AS(x,y) \ if (param==y) \ - return ValueBase(x); + { \ + synfig::ValueBase ret(x); \ + ret.set_static(get_param_static(y)); \ + return ret; \ + } //! Exports a parameter if it is the same type as value #define EXPORT(x) \ @@ -124,6 +130,19 @@ //! It prevents these layers showing up in the menu. #define CATEGORY_DO_NOT_USE "Do Not Use" +//! x=variable name, y=static bool value +#define SET_STATIC(x,y) \ + if(param==#x && x ## _static != y) \ + { \ + x ## _static = y; \ + return true; \ + } + +#define GET_STATIC(x) \ + if(param==#x) \ + return x ## _static; \ + + /* === T Y P E D E F S ===================================================== */ /* === C L A S S E S & S T R U C T S ======================================= */ @@ -253,6 +272,9 @@ private: //! The depth parameter of the layer in the layer stack float z_depth_; + //! True if zdepth is not affected when in animation mode + bool z_depth__static; + //! \writeme mutable Time dirty_time_; @@ -446,6 +468,9 @@ public: */ virtual bool set_param(const String ¶m, const ValueBase &value); + virtual bool set_param_static(const String ¶m, const bool x); + virtual bool get_param_static(const String ¶m) const; + //! Sets a list of parameters virtual bool set_param_list(const ParamList &);