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_; }