Merge branch 'genete_static_values'
[synfig.git] / synfig-core / src / synfig / layer.h
index 8a6a2e6..a867197 100644 (file)
@@ -93,7 +93,7 @@
        if (param==y && value.same_type_as(x))                                                                                          \
        {                                                                                                                                                                       \
                value.put(&x);                                                                                                                                  \
-               set_param_static(#x,value.get_static());                                                                                \
+               set_param_static(y,value.get_static());                                                                         \
                return true;                                                                                                                                    \
        }
 
 //! This is used as the category for layer book entries which represent aliases of layers.
 //! 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)                                                                                                      \
 #define GET_STATIC(x)                                                                                                                                  \
        if(param==#x)                                                                                                                                           \
                return x ## _static;                                                                                                                    \
-
+*/
 
 /* === T Y P E D E F S ===================================================== */
 
@@ -270,10 +270,11 @@ private:
        String description_;
 
        //! The depth parameter of the layer in the layer stack
-       float z_depth_;
+       float z_depth;
 
        //! True if zdepth is not affected when in animation mode
-       bool z_depth_static;
+       typedef std::map<String, bool> Sparams;
+       Sparams static_params;
 
        //! \writeme
        mutable Time dirty_time_;
@@ -393,13 +394,13 @@ public:
        int get_depth()const;
 
        //! Gets the non animated z depth of the layer
-       float get_z_depth()const { return z_depth_; }
+       float get_z_depth()const { return z_depth; }
 
        //! Gets the z depth of the layer at a time t
        float get_z_depth(const synfig::Time& t)const;
 
        //! Sets the z depth of the layer (non animated)
-       void set_z_depth(float x) { z_depth_=x; }
+       void set_z_depth(float x) { z_depth=x; }
 
        //! Sets the Canvas that this Layer is a part of
        void set_canvas(etl::loose_handle<Canvas> canvas);
@@ -470,6 +471,7 @@ public:
 
        virtual bool set_param_static(const String &param, const bool x);
        virtual bool get_param_static(const String &param) const;
+       virtual void fill_static(Vocab vocab);
 
        //!     Sets a list of parameters
        virtual bool set_param_list(const ParamList &);