Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / synfig / target.h
index e2c48cc..9f6e304 100644 (file)
@@ -1,31 +1,34 @@
-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
 /*!    \file target.h
 **     \brief Target Class Implementation
 **
-**     $Id: target.h,v 1.1.1.1 2005/01/04 01:23:15 darco Exp $
+**     $Id$
 **
 **     \legal
-**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
-**     This software and associated documentation
-**     are CONFIDENTIAL and PROPRIETARY property of
-**     the above-mentioned copyright holder.
+**     This package is free software; you can redistribute it and/or
+**     modify it under the terms of the GNU General Public License as
+**     published by the Free Software Foundation; either version 2 of
+**     the License, or (at your option) any later version.
 **
-**     You may not copy, print, publish, or in any
-**     other way distribute this software without
-**     a prior written agreement with
-**     the copyright holder.
+**     This package is distributed in the hope that it will be useful,
+**     but WITHOUT ANY WARRANTY; without even the implied warranty of
+**     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+**     General Public License for more details.
 **     \endlegal
 */
 /* ========================================================================= */
 
 /* === S T A R T =========================================================== */
 
-#ifndef __SINFG_TARGET_H
-#define __SINFG_TARGET_H
+#ifndef __SYNFIG_TARGET_H
+#define __SYNFIG_TARGET_H
 
 /* === H E A D E R S ======================================================= */
 
+#include <sigc++/signal.h>
 #include "string_decl.h"
 #include <utility>
 //#include <list>
 /* === M A C R O S ========================================================= */
 
 //! \writeme
-#define SINFG_TARGET_MODULE_EXT public: static const char name__[], version__[], ext__[],cvs_id__[]; static Target *create(const char *filename);
+#define SYNFIG_TARGET_MODULE_EXT public: static const char name__[], version__[], ext__[],cvs_id__[]; static Target *create(const char *filename);
 
 //! Sets the name of the target
-#define SINFG_TARGET_SET_NAME(class,x) const char class::name__[]=x
+#define SYNFIG_TARGET_SET_NAME(class,x) const char class::name__[]=x
 
 //! \writeme
-#define SINFG_TARGET_SET_EXT(class,x) const char class::ext__[]=x
+#define SYNFIG_TARGET_SET_EXT(class,x) const char class::ext__[]=x
 
 //! Sets the version of the target
-#define SINFG_TARGET_SET_VERSION(class,x) const char class::version__[]=x
+#define SYNFIG_TARGET_SET_VERSION(class,x) const char class::version__[]=x
 
 //! Sets the CVS ID of the target
-#define SINFG_TARGET_SET_CVS_ID(class,x) const char class::cvs_id__[]=x
+#define SYNFIG_TARGET_SET_CVS_ID(class,x) const char class::cvs_id__[]=x
 
 //! \writeme
-#define SINFG_TARGET_INIT(class) sinfg::Target* class::create(const char *filename) { return new class(filename); }
+#define SYNFIG_TARGET_INIT(class) synfig::Target* class::create(const char *filename) { return new class(filename); }
 
 /* === T Y P E D E F S ===================================================== */
 
 /* === C L A S S E S & S T R U C T S ======================================= */
 
-namespace sinfg {
+namespace synfig {
 
 class Surface;
 class RendDesc;
@@ -78,6 +81,27 @@ public:
        typedef etl::loose_handle<Target> LooseHandle;
        typedef etl::handle<const Target> ConstHandle;
 
+       /*
+ -- ** -- S I G N A L S -------------------------------------------------------
+       */
+
+private:
+
+       sigc::signal<void> signal_progress_;
+
+       /*
+ -- ** -- S I G N A L   I N T E R F A C E -------------------------------------
+       */
+
+public:
+
+       sigc::signal<void>& signal_progress() { return signal_progress_; }
+
+       /*
+ --    ** -- C O N S T R U C T O R S ---------------------------------------------
+       */
+
+public:
        typedef Target* (*Factory)(const char *filename);
 
        //! A type for a map of targets, indexed by the name of the Target
@@ -90,13 +114,13 @@ public:
 
        //! Map of target names indexed by associated file extension
        static ExtBook* ext_book_;
-       
+
        static Book& book();
        static ExtBook& ext_book();
 
        static bool subsys_init();
        static bool subsys_stop();
-       
+
        //! Adjusted Render description set by set_rend_desc()
        RendDesc desc;
 
@@ -106,9 +130,9 @@ public:
        Gamma gamma_;
 
        bool remove_alpha;
-       
+
        bool avoid_time_sync_;
-       
+
 protected:
 
        Target();
@@ -117,17 +141,17 @@ public:
        virtual ~Target() { }
 
        int get_quality()const { return quality_; }
-       
+
        void set_quality(int q) { quality_=q; }
-       
+
        void set_avoid_time_sync(bool x=true) { avoid_time_sync_=x; }
 
        bool get_avoid_time_sync()const { return avoid_time_sync_; }
-       
+
        bool get_remove_alpha()const { return remove_alpha; }
 
        void set_remove_alpha(bool x=true) { remove_alpha=x; }
-       
+
        Gamma &gamma() { return gamma_; }
 
        const Gamma &gamma()const { return gamma_; }
@@ -138,24 +162,24 @@ public:
 
        RendDesc &rend_desc() { return desc; }
        const RendDesc &rend_desc()const { return desc; }
-       
+
        //! Renders the canvas to the target
        virtual bool render(ProgressCallback *cb=NULL)=0;
 
        //! Sets the RendDesc for the Target to \a desc.
        /*!     If there are any parts of \a desc that the render target
        **      is not capable of doing, the render target will adjust
-       **      \a desc to fit it's needs.
+       **      \a desc to fit its needs.
        */
        virtual bool set_rend_desc(RendDesc *d) { desc=*d; return true; }
 
        virtual bool init() { return true; }
 
-       //! Creates a new Target described by \a type, outputing to a file described by \a filename.
+       //! Creates a new Target described by \a type, outputting to a file described by \a filename.
        static Handle create(const String &type, const String &filename);
 }; // END of class Target
 
-}; // END of namespace sinfg
+}; // END of namespace synfig
 
 /* === E N D =============================================================== */