X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_dynamiclist.h;h=e73afd97d31c07f51cc463d9a4879cf0e59d39bf;hb=416201bdb31852582681f49e03faaaebd68a307e;hp=c7877ce81f8693f4748ae9b7493cd24c4442bbe5;hpb=e8a065f2385c219c511b57dac52786120bfa097d;p=synfig.git
diff --git a/synfig-core/trunk/src/synfig/valuenode_dynamiclist.h b/synfig-core/trunk/src/synfig/valuenode_dynamiclist.h
index c7877ce..e73afd9 100644
--- a/synfig-core/trunk/src/synfig/valuenode_dynamiclist.h
+++ b/synfig-core/trunk/src/synfig/valuenode_dynamiclist.h
@@ -1,8 +1,8 @@
/* === S Y N F I G ========================================================= */
/*! \file valuenode_dynamiclist.h
-** \brief Template Header
+** \brief Header file for implementation of the "Dynamic List" valuenode conversion.
**
-** $Id: valuenode_dynamiclist.h,v 1.1.1.1 2005/01/04 01:23:15 darco Exp $
+** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -41,26 +41,27 @@
namespace synfig {
class ValueNode_BLine;
-
+class Canvas;
+
/*! \class ValueNode_DynamicList
** \brief Animated List ValueNode
**
-** This ValueNode was originaly set up to have a list
+** This ValueNode was originally set up to have a list
** of ValueNodes and their associated "on" and "off" points.
** ie: Any time that was directly after an "on" point,
-** the item would be "on", and any time that was directly
+** the item would be "on", and any time that was directly
** after an "off" point would be "off". This is pretty intuitive.
-** However, it does have it's problems.
+** However, it does have its problems.
**
-** The problems arrise when we introduce the concept of a
+** The problems arise when we introduce the concept of a
** Keyframe. Keyframes can be manipulated via the Synfig
** Application Library. They allow the user to quickly
-** and "automagickly" rearange an animation by moving
-** the associated keyframes. With they old way that the
+** and "automagically" rearrange an animation by moving
+** the associated keyframes. With the old way that the
** "on" and "off" points were handled, this task became
** overly complicated.
**
-** What is required is a "symetric" system of describing
+** What is required is a "symmetric" system of describing
** "on" and "off" points. Instead of the point representing
** the state of the item after that point in time, we have
** the point represent only that frame. The state
@@ -74,7 +75,7 @@ class ValueNode_BLine;
class ValueNode_DynamicList : public LinkableValueNode
{
public:
-
+
/*! \class ListEntry
** \brief Contains a potential list item, and associated timing information
**
@@ -90,43 +91,43 @@ public:
friend class ValueNode_BLine;
public:
typedef synfig::Activepoint Activepoint;
-
+
typedef std::list ActivepointList;
-
+
typedef std::pair findresult;
typedef std::pair const_findresult;
-
+
private:
mutable Node::time_set times;
public:
ValueNode::RHandle value_node;
-
+
ActivepointList timing_info;
-
+
private:
int index;
etl::loose_handle parent_;
- void set_parent_value_node(const etl::loose_handle &x) { parent_=x; }
+ void set_parent_value_node(const etl::loose_handle &x) { parent_=x; }
public:
int get_index()const { return index; }
-
-
+
+
bool status_at_time(const Time &x)const;
float amount_at_time(const Time &x, bool *rising=0)const;
ActivepointList::iterator add(Time time, bool status, int priority=0);
ActivepointList::iterator add(const Activepoint &x);
-
+
findresult find_uid(const UniqueID& x);
const_findresult find_uid(const UniqueID& x)const;
-
+
findresult find_time(const Time& x);
const_findresult find_time(const Time& x)const;
-
+
ActivepointList::iterator find(const UniqueID& x);
ActivepointList::const_iterator find(const UniqueID& x)const;
ActivepointList::iterator find(const Time& x);
@@ -141,10 +142,10 @@ public:
ActivepointList::iterator add(Time time)
{ return add(time, status_at_time(time)); }
- void erase(const UniqueID& x);
-
+ void erase(const UniqueID& x);
+
int find(const Time& begin,const Time& end,std::vector& list);
-
+
const synfig::Node::time_set &get_times() const;
const etl::loose_handle &get_parent_value_node()const { return parent_; }
@@ -153,7 +154,7 @@ public:
ListEntry(const ValueNode::Handle &value_node);
ListEntry(const ValueNode::Handle &value_node,Time begin, Time end);
}; // END of struct ValueNode_DynamicList::ListEntry
-
+
typedef etl::handle Handle;
typedef etl::handle ConstHandle;
@@ -169,7 +170,7 @@ public:
std::vector list;
public:
-
+
void add(const ValueNode::Handle &value_node, int index=-1);
void add(const ListEntry &value_node, int index=-1);
void erase(const ValueNode::Handle &value_node);
@@ -177,7 +178,7 @@ public:
int find_next_valid_entry(int x, Time t)const;
int find_prev_valid_entry(int x, Time t)const;
-
+
virtual ValueNode::LooseHandle get_link_vfunc(int i)const;
virtual int link_count()const;
@@ -197,6 +198,8 @@ public:
bool get_loop()const { return loop_; }
void set_loop(bool x) { loop_=x; }
+ void set_member_canvas(etl::loose_handle