In the hex HTML code text entry box of the color dialog, ignore everything other...
[synfig.git] / synfig-core / trunk / src / synfig / canvas.h
index 972b6cf..a62c641 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -44,6 +45,8 @@
 
 /* === M A C R O S ========================================================= */
 
+#define CURRENT_CANVAS_VERSION "0.2"
+
 /* === T Y P E D E F S ===================================================== */
 
 /* === C L A S S E S & S T R U C T S ======================================= */
@@ -69,7 +72,7 @@ public:
 
        typedef std::list<Handle> Children;
 
-       friend void synfig::optimize_layers(Context, Canvas::Handle);
+       friend void synfig::optimize_layers(Context, Canvas::Handle, bool seen_motion_blur);
 
        /*
  --    ** -- D A T A -------------------------------------------------------------
@@ -89,6 +92,10 @@ private:
        /*!     \see set_description(), get_description() */
        String description_;
 
+       //! Contains the canvas' version string
+       /*!     \see set_version(), get_version() */
+       String version_;
+
        //! Contains the author's name
        /*!     \see set_author(), get_author() */
        String author_;
@@ -143,7 +150,7 @@ private:
        std::map<String,std::set<etl::handle<Layer> > > group_db_;
 
        //! Layer Connection database
-       std::map<etl::handle<Layer>,std::vector<sigc::connection> > connections_;
+       std::map<etl::loose_handle<Layer>,std::vector<sigc::connection> > connections_;
 
        /*
  -- ** -- S I G N A L S -------------------------------------------------------
@@ -188,6 +195,8 @@ private:
        //!     ValueBasenode Changed
        sigc::signal<void, etl::handle<ValueNode> > signal_value_node_changed_;
 
+       sigc::signal<void, etl::handle<ValueNode> > signal_value_node_renamed_;
+
        sigc::signal<void, etl::handle<ValueNode>, etl::handle<ValueNode> > signal_value_node_child_added_;
 
        sigc::signal<void, etl::handle<ValueNode>, etl::handle<ValueNode> > signal_value_node_child_removed_;
@@ -231,6 +240,8 @@ public:
 
        sigc::signal<void, etl::handle<ValueNode> >& signal_value_node_changed() { return signal_value_node_changed_; }
 
+       sigc::signal<void, etl::handle<ValueNode> >& signal_value_node_renamed() { return signal_value_node_renamed_; }
+
        //!     Dirty
        sigc::signal<void>& signal_dirty() { return signal_changed();   }
 
@@ -285,6 +296,12 @@ public:
        //! Sets the name of the canvas
        void set_name(const String &x);
 
+       //! Gets the version string of the canvas
+       const String get_version()const { return version_; }
+
+       //! Sets the version string of the canvas
+       void set_version(const String &x) { version_ = x; }
+
        //! Gets the author of the canvas
        const String & get_author()const { return author_; }
 
@@ -473,15 +490,15 @@ public:
 private:
        void add_group_pair(String group, etl::handle<Layer> layer);
        void remove_group_pair(String group, etl::handle<Layer> layer);
-       void add_connection(etl::handle<Layer> layer, sigc::connection connection);
-       void disconnect_connections(etl::handle<Layer> layer);
+       void add_connection(etl::loose_handle<Layer> layer, sigc::connection connection);
+       void disconnect_connections(etl::loose_handle<Layer> layer);
 
 protected:
        virtual void on_changed();
        virtual void get_times_vfunc(Node::time_set &set) const;
 }; // END of class Canvas
 
-void optimize_layers(Context context, Canvas::Handle op_canvas);
+void optimize_layers(Context context, Canvas::Handle op_canvas, bool seen_motion_blur=false);
 
 
 }; // END of namespace synfig