Using mutexes around accesses to refcounts seems to make the Windows build much less...
[synfig.git] / synfig-core / trunk / src / synfig / paramdesc.cpp
1 /* === S Y N F I G ========================================================= */
2 /*!     \file paramdesc.cpp
3 **      \brief Template File
4 **
5 **      $Id$
6 **
7 **      \legal
8 **      Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
9 **      Copyright (c) 2008 Chris Moore
10 **
11 **      This package is free software; you can redistribute it and/or
12 **      modify it under the terms of the GNU General Public License as
13 **      published by the Free Software Foundation; either version 2 of
14 **      the License, or (at your option) any later version.
15 **
16 **      This package is distributed in the hope that it will be useful,
17 **      but WITHOUT ANY WARRANTY; without even the implied warranty of
18 **      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 **      General Public License for more details.
20 **      \endlegal
21 */
22 /* ========================================================================= */
23
24 /* === H E A D E R S ======================================================= */
25
26 #ifdef USING_PCH
27 #       include "pch.h"
28 #else
29 #ifdef HAVE_CONFIG_H
30 #       include <config.h>
31 #endif
32
33 #include "paramdesc.h"
34 #include "value.h"
35
36 #endif
37
38 /* === U S I N G =========================================================== */
39
40 using namespace std;
41 using namespace etl;
42 using namespace synfig;
43
44 /* === M A C R O S ========================================================= */
45
46 /* === G L O B A L S ======================================================= */
47
48 /* === P R O C E D U R E S ================================================= */
49
50 /* === M E T H O D S ======================================================= */
51
52 ParamDesc::ParamDesc(synfig::Color::BlendMethod, const String &a):
53         name_                   (a),
54         local_name_             (a),
55         scalar_                 (1.0),
56         critical_               (true),
57         hidden_                 (false),
58         invisible_duck_ (false),
59         is_distance_    (false),
60         animation_only_ (false)
61 {
62         set_local_name(_("Blend Method"))
63                 .set_hint("enum")               // used shortcuts: A B C D E F G H I K L M N O P R S T U V Y; free: J Q W X Z
64                 .add_enum_value(Color::BLEND_COMPOSITE,                 "composite",            _("_Composite"          ))
65                 .add_enum_value(Color::BLEND_STRAIGHT,                  "straight",                     _("_Straight"           ))
66                 .add_enum_value(Color::BLEND_ONTO,                              "onto",                         _("_Onto"                       ))
67                 .add_enum_value(Color::BLEND_STRAIGHT_ONTO,             "straightonto",         _("S_traight Onto"      ))
68                 .add_enum_value(Color::BLEND_BEHIND,                    "behind",                       _("_Behind"                     ))
69                 .add_enum_value(Color::BLEND_SCREEN,                    "screen",                       _("Sc_reen"                     ))
70                 .add_enum_value(Color::BLEND_OVERLAY,                   "overlay",                      _("Overla_y"            ))
71                 .add_enum_value(Color::BLEND_HARD_LIGHT,                "hard_light",           _("_Hard Light"         ))
72                 .add_enum_value(Color::BLEND_MULTIPLY,                  "multiply",                     _("_Multiply"           ))
73                 .add_enum_value(Color::BLEND_DIVIDE,                    "divide",                       _("_Divide"                     ))
74                 .add_enum_value(Color::BLEND_ADD,                               "add",                          _("_Add"                        ))
75                 .add_enum_value(Color::BLEND_SUBTRACT,                  "subtract",                     _("S_ubtract"           ))
76                 .add_enum_value(Color::BLEND_DIFFERENCE,                "difference",           _("Di_fference"         ))
77                 .add_enum_value(Color::BLEND_BRIGHTEN,                  "brighten",                     _("Bri_ghten"           ))
78                 .add_enum_value(Color::BLEND_DARKEN,                    "darken",                       _("Dar_ken"                     ))
79                 .add_enum_value(Color::BLEND_COLOR,                             "color",                        _("Co_lor"                      ))
80                 .add_enum_value(Color::BLEND_HUE,                               "hue",                          _("Hu_e"                        ))
81                 .add_enum_value(Color::BLEND_SATURATION,                "saturation",           _("Saturatio_n"         ))
82                 .add_enum_value(Color::BLEND_LUMINANCE,                 "luminance",            _("Lum_inance"          ))
83                 // These are deprecated
84                 .add_enum_value(Color::BLEND_ALPHA_OVER,                "alphaover",            _("Alpha O_ver"         ))
85                 .add_enum_value(Color::BLEND_ALPHA_BRIGHTEN,    "alphabrighten",        _("Al_pha Brighten"     ))
86                 .add_enum_value(Color::BLEND_ALPHA_DARKEN,              "alphadarken",          _("Al_pha Darken"       ))
87                 ; // end of enums
88 }
89
90 ParamDesc::ParamDesc(const ValueBase&, const String &a):
91         name_                   (a),
92         local_name_             (a),
93         scalar_                 (1.0),
94         critical_               (true),
95         hidden_                 (false),
96         invisible_duck_ (false),
97                 is_distance_    (false),
98                 animation_only_ (false)
99 {
100 }