synfig-core  1.0.3
valuenode_const.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_VALUENODE_CONST_H
26 #define __SYNFIG_VALUENODE_CONST_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <synfig/valuenode.h>
31 
32 /* === M A C R O S ========================================================= */
33 
34 /* === C L A S S E S & S T R U C T S ======================================= */
35 
36 namespace synfig {
37 
38 class ValueNode_Const : public ValueNode
39 {
40 public:
41  typedef etl::handle<ValueNode_Const> Handle;
42  typedef etl::handle<const ValueNode_Const> ConstHandle;
43 
44 private:
45  ValueBase value;
46 
48  ValueNode_Const(const ValueBase &x, etl::loose_handle<Canvas> canvas = 0);
49 
50 public:
51 
52  virtual ValueBase operator()(Time t)const;
53  virtual ~ValueNode_Const();
54 
55  const ValueBase &get_value()const;
57  void set_value(const ValueBase &data);
58 
59  bool get_static()const {return get_value().get_static();}
60  void set_static(bool x) { get_value().set_static(x); }
63  virtual String get_name()const;
64  virtual String get_local_name()const;
65 
66  virtual ValueNode::Handle clone(etl::loose_handle<Canvas> canvas, const GUID& deriv_guid=GUID())const;
67 #ifdef _DEBUG
68  String get_string()const;
69 #endif // _DEBUG
70 public:
71  // create a new ValueNode_Const object with the given value.
72  // Unless the given value is a Bone, in which case make a ValueNode_Bone.
73  static ValueNode* create(const ValueBase &x=ValueBase(), etl::loose_handle<Canvas> canvas = 0);
74 
75 protected:
76  virtual void get_times_vfunc(Node::time_set &set) const;
77 };
78 
79 }; // END of namespace synfig
80 
81 /* === E N D =============================================================== */
82 
83 #endif