#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 local_name__; }
+#define EXPORT_NAME() if(param=="Name" || param=="name" || param=="name__") { return name__; } if(param=="local_name__") { return dgettext("synfig",local_name__); }
//! \writeme
#define EXPORT_VERSION() if(param=="Version" || param=="version" || param=="version__") { return version__; }
//! \writeme
void set_description(const String& x);
+ //! 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 -----------------------------------
*/
//! 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;