X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftags%2Fsynfig_0_61_07_rc2%2Fsrc%2Fsynfig%2Fmodule.h;fp=synfig-core%2Ftags%2Fsynfig_0_61_07_rc2%2Fsrc%2Fsynfig%2Fmodule.h;h=0000000000000000000000000000000000000000;hb=6fa8f2f38d4b0b35f8539bf94e27ae27015c7689;hp=071e8e7956225c1eb08bc88278067b7411ff82bc;hpb=47fce282611fbba1044921d22ca887f9b53ad91a;p=synfig.git diff --git a/synfig-core/tags/synfig_0_61_07_rc2/src/synfig/module.h b/synfig-core/tags/synfig_0_61_07_rc2/src/synfig/module.h deleted file mode 100644 index 071e8e7..0000000 --- a/synfig-core/tags/synfig_0_61_07_rc2/src/synfig/module.h +++ /dev/null @@ -1,172 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file synfig/module.h -** \brief writeme -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** -** 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. -** -** 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 __SYNFIG_MODULE_H -#define __SYNFIG_MODULE_H - -/* === H E A D E R S ======================================================= */ - -#include "general.h" -#include -#include -#include "string.h" -#include -#include "vector.h" -#include "color.h" -#include "layer.h" -#include "canvas.h" - -//#include "value.h" - -/* === M A C R O S ========================================================= */ - -//! Marks the start of a module description -#define MODULE_DESC_BEGIN(x) struct x##_modclass : public synfig::Module { x##_modclass(synfig::ProgressCallback *callback=NULL); - -//! Sets the localized name of the module -#define MODULE_NAME(x) virtual const char * Name() { return x; } - -//! Sets a localized description of the module -#define MODULE_DESCRIPTION(x) virtual const char * Desc() { return x; } - -//! Sets the name of the module's author -#define MODULE_AUTHOR(x) virtual const char * Author() { return x; } - -//! Sets the version string for the module -#define MODULE_VERSION(x) virtual const char * Version() { return x; } - -//! Sets the copyright string for the module -#define MODULE_COPYRIGHT(x) virtual const char * Copyright() { return x; } - -//! Describes the module's construction function -#define MODULE_CONSTRUCTOR(x) bool constructor_(synfig::ProgressCallback *cb) { return x(cb); } - -//! Describes the module's destruction function -#define MODULE_DESTRUCTOR(x) virtual void destructor_() { return x(); } - -//! Marks the end of a module description -#define MODULE_DESC_END }; - -//#if 0 -#ifdef __APPLE__ -//! Marks the start of a module's inventory -#define MODULE_INVENTORY_BEGIN(x) extern "C" { \ - synfig::Module* _##x##_LTX_new_instance(synfig::ProgressCallback *cb) \ - { if(SYNFIG_CHECK_VERSION()){x##_modclass *mod=new x##_modclass(cb); mod->constructor_(cb); return mod; }\ - if(cb)cb->error(#x": Unable to load module due to version mismatch."); return NULL; } \ - }; x##_modclass::x##_modclass(synfig::ProgressCallback */*cb*/) { -#else -//! Marks the start of a module's inventory -#define MODULE_INVENTORY_BEGIN(x) extern "C" { \ - synfig::Module* x##_LTX_new_instance(synfig::ProgressCallback *cb) \ - { if(SYNFIG_CHECK_VERSION()){x##_modclass *mod=new x##_modclass(cb); mod->constructor_(cb); return mod; }\ - if(cb)cb->error(#x": Unable to load module due to version mismatch."); return NULL; } \ - }; x##_modclass::x##_modclass(synfig::ProgressCallback */*cb*/) { -#endif - -//! Marks the start of the layers in the module's inventory -#define BEGIN_LAYERS { - -//! DEPRECATED - use @INCLUDE_LAYER() -//#define LAYER(x) synfig::Layer::book()[synfig::String(x::name__)]=x::create; -#define LAYER(class) synfig::Layer::register_in_book(synfig::Layer::BookEntry(class::create,class::name__,class::local_name__,class::category__,class::cvs_id__,class::version__)); -#define LAYER_ALIAS(class,alias) synfig::Layer::register_in_book(synfig::Layer::BookEntry(class::create,alias,alias,_("Do Not Use"),class::cvs_id__,class::version__)); - -//! Marks the end of the layers in the module's inventory -#define END_LAYERS } - -//! Marks the start of the targets in the module's inventory -#define BEGIN_TARGETS { - -#define TARGET(x) synfig::Target::book()[synfig::String(x::name__)]=std::pair(x::create,synfig::String(x::ext__));synfig::Target::ext_book()[synfig::String(x::ext__)]=x::name__; - -#define TARGET_EXT(x,y) synfig::Target::ext_book()[synfig::String(y)]=x::name__; - -//! Marks the end of the targets in the module's inventory -#define END_TARGETS } - -//! Marks the start of the importers in the module's inventory -#define BEGIN_IMPORTERS { - -#define IMPORTER(x) synfig::Importer::book()[synfig::String(x::ext__)]=x::create; - -#define IMPORTER_EXT(x,y) synfig::Importer::book()[synfig::String(y)]=x::create; - -//! Marks the end of the importers in the module's inventory -#define END_IMPORTERS } - -//! Marks the end of a module's inventory -#define MODULE_INVENTORY_END } - -/* === T Y P E D E F S ===================================================== */ - -/* === C L A S S E S & S T R U C T S ======================================= */ - -namespace synfig { - -class ProgressCallback; - -/*! \class Module -** \todo writeme -*/ -class Module : public etl::shared_object -{ -public: - bool constructor_(synfig::ProgressCallback */*cb*/) { return true; } - virtual void destructor_() { } - - typedef etl::handle Handle; - typedef etl::loose_handle LooseHandle; - typedef etl::handle ConstHandle; - -public: - typedef Module*(*constructor_type)(ProgressCallback *); - typedef std::map Book; -private: - static Book* book_; -public: - static Book& book(); - - static bool subsys_init(const String &prefix); - static bool subsys_stop(); - static bool register_default_modules(); - - static void Register(Handle mod); - static bool Register(const String &module_name, ProgressCallback *cb=NULL); - static inline void Register(Module *mod) { Register(Handle(mod)); } - - virtual const char * Name() { return " "; } - virtual const char * Desc() { return " "; } - virtual const char * Author() { return " "; } - virtual const char * Version() { return " "; } - virtual const char * Copyright() { return SYNFIG_COPYRIGHT; } - - virtual ~Module() { destructor_(); } -}; - -}; // END of namespace synfig - -/* === E N D =============================================================== */ - -#endif