X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Ftarget.h;h=19dc29519959ec7411255aad400fecd12958d015;hb=82f8b521a55c8985cd0189c9c71940a7312eccaa;hp=e2c48cce50a066262908e6090f429c0c1388b6d4;hpb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/target.h b/synfig-core/trunk/src/synfig/target.h index e2c48cc..19dc295 100644 --- a/synfig-core/trunk/src/synfig/target.h +++ b/synfig-core/trunk/src/synfig/target.h @@ -1,31 +1,33 @@ -/* === 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 ** -** 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 #include "string_decl.h" #include //#include @@ -39,28 +41,28 @@ /* === 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 +80,27 @@ public: typedef etl::loose_handle LooseHandle; typedef etl::handle ConstHandle; + /* + -- ** -- S I G N A L S ------------------------------------------------------- + */ + +private: + + sigc::signal signal_progress_; + + /* + -- ** -- S I G N A L I N T E R F A C E ------------------------------------- + */ + +public: + + sigc::signal& 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 +113,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 +129,9 @@ public: Gamma gamma_; bool remove_alpha; - + bool avoid_time_sync_; - + protected: Target(); @@ -117,17 +140,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 +161,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 =============================================================== */