Add parameter static option for rest of layers.
[synfig.git] / synfig-core / src / synfig / layer_bitmap.cpp
index 7338078..7c6511c 100644 (file)
@@ -67,12 +67,11 @@ synfig::Layer_Bitmap::Layer_Bitmap():
        c                               (1),
        surface                 (128,128),
        trimmed                 (false),
-       gamma_adjust    (1.0),
-       tl_static               (false),
-       br_static               (false),
-       c_static                (true),
-       gamma_adjust_static(false)
+       gamma_adjust    (1.0)
 {
+       Layer::Vocab voc(get_param_vocab());
+       Layer::fill_static(voc);
+       set_param_static("c", true);
 }
 
 bool
@@ -83,6 +82,7 @@ synfig::Layer_Bitmap::set_param(const String & param, ValueBase value)
        IMPORT(c);
        if(param=="gamma_adjust"&& value.get_type()==ValueBase::TYPE_REAL)
        {
+               set_param_static(param, value.get_static());
                gamma_adjust=1.0/value.get(Real());
                //gamma_adjust.set_gamma(1.0/value.get(Real()));
                return true;
@@ -98,17 +98,31 @@ synfig::Layer_Bitmap::get_param(const String & param)const
        EXPORT(br);
        EXPORT(c);
        if(param=="gamma_adjust")
-               return 1.0/gamma_adjust;
+       {
+               ValueBase ret(1.0/gamma_adjust);
+               ret.set_static(get_param_static(param));
+               return ret;
+       }
 
        if(param=="_width")
        {
-               if (trimmed) return int(width);
-               return surface.get_w();
+               ValueBase ret1(ValueBase::TYPE_INTEGER);
+               ret1=int(width);
+               ValueBase ret2(surface.get_w());
+               ret1.set_static(get_param_static(param));
+               ret2.set_static(get_param_static(param));
+               if (trimmed) return ret1;
+               return ret2;
        }
        if(param=="_height")
        {
-               if (trimmed) return int(height);
-               return surface.get_h();
+               ValueBase ret1(ValueBase::TYPE_INTEGER);
+               ret1=int(height);
+               ValueBase ret2(surface.get_h());
+               ret1.set_static(get_param_static(param));
+               ret2.set_static(get_param_static(param));
+               if (trimmed) return ret1;
+               return ret2;
        }
 
        return Layer_Composite::get_param(param);
@@ -525,29 +539,3 @@ Layer_Bitmap::get_bounding_rect()const
 {
        return Rect(tl,br);
 }
-
-
-bool
-Layer_Bitmap::set_param_static(const String &param, const bool x)
-{
-
-       SET_STATIC(tl, x)
-       SET_STATIC(br, x)
-       SET_STATIC(c, x)
-       SET_STATIC(gamma_adjust, x)
-
-       return Layer_Composite::set_param_static(param, x);
-}
-
-
-bool
-Layer_Bitmap::get_param_static(const String &param) const
-{
-
-       GET_STATIC(tl)
-       GET_STATIC(br)
-       GET_STATIC(c)
-       GET_STATIC(gamma_adjust)
-
-       return Layer_Composite::get_param_static(param);
-}