Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / synfig / valuenode_dynamiclist.h
index c7877ce..e73afd9 100644 (file)
@@ -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
 
 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 <i>only that frame</i>. 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<Activepoint> ActivepointList;
-       
+
                typedef std::pair<ActivepointList::iterator,bool>               findresult;
                typedef std::pair<ActivepointList::const_iterator,bool> const_findresult;
 
-               
+
        private:
                mutable Node::time_set  times;
        public:
                ValueNode::RHandle value_node;
-               
+
                ActivepointList timing_info;
-               
+
        private:
                int index;
                etl::loose_handle<ValueNode> parent_;
-               void set_parent_value_node(const etl::loose_handle<ValueNode> &x) { parent_=x; }        
+               void set_parent_value_node(const etl::loose_handle<ValueNode> &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<Activepoint*>& list);
-                       
+
                const synfig::Node::time_set    &get_times() const;
 
                const etl::loose_handle<ValueNode> &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<ValueNode_DynamicList> Handle;
        typedef etl::handle<const ValueNode_DynamicList> ConstHandle;
 
@@ -169,7 +170,7 @@ public:
        std::vector<ListEntry> 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<Canvas>);
+
        ValueBase::Type get_contained_type()const;
 
 
@@ -217,7 +220,7 @@ public:
        virtual ListEntry create_list_entry(int index, Time time=0, Real origin=0.5);
 
 protected:
-       
+
        virtual bool set_link_vfunc(int i,ValueNode::Handle x);
        LinkableValueNode* create_new()const;