26 #ifndef __SYNFIG_APP_ACTION_PARAM_H
27 #define __SYNFIG_APP_ACTION_PARAM_H
31 #include <synfig/string.h>
32 #include <synfig/canvas.h>
34 #include <ETL/stringf>
35 #include <ETL/trivial>
40 #include <synfig/layer.h>
41 #include <synfig/canvas.h>
42 #include <synfig/valuenode.h>
44 #include <synfig/value.h>
45 #include <synfig/activepoint.h>
46 #include <synfig/valuenodes/valuenode_animated.h>
47 #include <synfig/string.h>
48 #include <synfig/keyframe.h>
49 #include <synfig/waypoint.h>
60 class ProgressCallback;
67 class CanvasInterface;
104 etl::trivial<synfig::Canvas::LooseHandle>
canvas;
105 etl::trivial<synfig::Layer::LooseHandle>
layer;
107 etl::trivial<synfig::ValueBase>
value;
109 etl::trivial<synfig::ValueNode_Animated::Waypoint>
waypoint;
113 etl::trivial<synfig::Time>
time;
128 Param(
const etl::handle<synfigapp::CanvasInterface>& x);
129 Param(
const etl::loose_handle<synfigapp::CanvasInterface>& x);
132 Param(
const synfig::Canvas::LooseHandle& x);
134 Param(
const synfig::Layer::LooseHandle& x);
136 Param(
const synfig::ValueNode::LooseHandle& x);
137 Param(
const synfig::Activepoint& x);
138 Param(
const synfig::Waypoint& x);
139 Param(
const synfig::Waypoint::Model& x);
140 Param(
const synfig::String& x);
141 Param(
const synfig::RendDesc& x);
142 Param(
const char * x);
143 Param(
const synfig::Keyframe& x);
147 Param(
const synfig::Real& x);
148 Param(
const synfig::Time& x);
149 Param(
const bool& x);
150 Param(
const synfig::ValueBase& x);
151 Param(
const synfig::Interpolation& x);
161 const synfig::Layer::LooseHandle&
get_layer()
const { assert(type_==
TYPE_LAYER);
return data.layer.get(); }
182 class ParamList :
public std::multimap<synfig::String,Param>
185 ParamList&
add(
const synfig::String& name,
const Param &x) { insert(std::pair<synfig::String,Param>(name,x));
return *
this; }
193 synfig::String name_;
194 synfig::String local_name_;
195 synfig::String desc_;
196 synfig::String mutual_exclusion_;
199 bool supports_multiple_;
200 bool requires_multiple_;
202 bool value_provided_;
209 user_supplied_(false),
210 supports_multiple_(false),
211 requires_multiple_(false),
213 value_provided_(false)
216 const synfig::String&
get_name()
const {
return name_; }
217 const synfig::String&
get_desc()
const {
return desc_; }