-/* === 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;
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
//! 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;
Gamma gamma_;
bool remove_alpha;
-
+
bool avoid_time_sync_;
-
+
protected:
Target();
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_; }
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 =============================================================== */