X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer.h;h=4287df493867bee6f3bff30ed1ba999e036b4e6f;hb=8746b1938adf421216cfffa4a442a776beb10b65;hp=7971fcbe880cb3e61d1078cdc1dc3ee4c281ee3b;hpb=09a59b4cf5f0806bdb959d9eeb2ca11cc5a96e66;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/layer.h b/synfig-core/trunk/src/synfig/layer.h index 7971fcb..4287df4 100644 --- a/synfig-core/trunk/src/synfig/layer.h +++ b/synfig-core/trunk/src/synfig/layer.h @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 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 @@ -41,46 +42,81 @@ /* === M A C R O S ========================================================= */ //! \writeme -#define SYNFIG_LAYER_MODULE_EXT public: static const char name__[], version__[], cvs_id__[], local_name__[], category__[]; static Layer *create(); +#define SYNFIG_LAYER_MODULE_EXT \ + public: \ + static const char name__[], version__[], cvs_id__[], local_name__[], category__[]; \ + static Layer *create(); //! Sets the name of the layer -#define SYNFIG_LAYER_SET_NAME(class,x) const char class::name__[]=x +#define SYNFIG_LAYER_SET_NAME(class,x) \ + const char class::name__[]=x //! Sets the local name of the layer -#define SYNFIG_LAYER_SET_LOCAL_NAME(class,x) const char class::local_name__[]=x; +#define SYNFIG_LAYER_SET_LOCAL_NAME(class,x) \ + const char class::local_name__[]=x; //! Sets the category of the layer -#define SYNFIG_LAYER_SET_CATEGORY(class,x) const char class::category__[]=x +#define SYNFIG_LAYER_SET_CATEGORY(class,x) \ + const char class::category__[]=x //! Sets the version string for the layer -#define SYNFIG_LAYER_SET_VERSION(class,x) const char class::version__[]=x +#define SYNFIG_LAYER_SET_VERSION(class,x) \ + const char class::version__[]=x //! Sets the CVS ID string for the layer -#define SYNFIG_LAYER_SET_CVS_ID(class,x) const char class::cvs_id__[]=x +#define SYNFIG_LAYER_SET_CVS_ID(class,x) \ + const char class::cvs_id__[]=x //! \writeme -#define SYNFIG_LAYER_INIT(class) synfig::Layer* class::create() { return new class(); } +#define SYNFIG_LAYER_INIT(class) \ + synfig::Layer* class::create() \ + { \ + return new class(); \ + } //! \writeme -#define IMPORT_PLUS(x,y) if(param==#x && value.same_type_as(x)) { value.put(&x);{y;}return true;} +#define IMPORT_PLUS(x,y) \ + if (param==#x && value.same_type_as(x)) \ + { \ + value.put(&x); \ + { \ + y; \ + } \ + return true; \ + } //! \writeme -#define IMPORT_AS(x,y) if(param==y && value.same_type_as(x)) { value.put(&x); return true;} +#define IMPORT_AS(x,y) \ + if (param==y && value.same_type_as(x)) \ + { \ + value.put(&x); \ + return true; \ + } //! \writeme -#define IMPORT(x) IMPORT_AS(x,#x) +#define IMPORT(x) \ + IMPORT_AS(x,#x) //! \writeme -#define EXPORT_AS(x,y) if(param==y) { return ValueBase(x); } +#define EXPORT_AS(x,y) \ + if (param==y) \ + return ValueBase(x); //! \writeme -#define EXPORT(x) EXPORT_AS(x,#x) +#define EXPORT(x) \ + EXPORT_AS(x,#x) //! \writeme -#define EXPORT_NAME() if(param=="Name" || param=="name" || param=="name__") { return name__; } if(param=="local_name__") { return dgettext("synfig",local_name__); } +#define EXPORT_NAME() \ + if (param=="Name" || param=="name" || param=="name__") \ + return name__; \ + else if (param=="local_name__") \ + return dgettext("synfig",local_name__); //! \writeme -#define EXPORT_VERSION() if(param=="Version" || param=="version" || param=="version__") { return version__; } +#define EXPORT_VERSION() \ + if (param=="Version" || param=="version" || param=="version__") \ + return version__; //! This is used as the category for layer book entries which represent aliases of layers. //! It prevents these layers showing up in the menu. @@ -325,6 +361,9 @@ public: //! Returns the layer's description if it's not empty, else its local name const String get_non_empty_description()const { return get_description().empty() ? get_local_name() : get_description(); } + //! Returns the localised version of the given layer parameter + const String get_param_local_name(const String ¶m_name)const; + /* -- ** -- V I R T U A L F U N C T I O N S ----------------------------------- */ @@ -425,6 +464,14 @@ public: //! Duplicates the Layer virtual Handle clone(const GUID& deriv_guid=GUID())const; + //! Returns true if the layer needs to be able to examine its context. + /*! context to render itself, other than for simple blending. For + ** example, the blur layer will return true - it can't do its job + ** if it can't see its context, and the circle layer will return + ** false - rendering a circle doesn't depend on the underlying + ** context until the final blend operation. */ + virtual bool reads_context()const; + #ifdef THIS_CODE_IS_NOT_USED //! Duplicates the Layer without duplicating the value nodes virtual Layer *simple_clone()const;