X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer.h;h=a9952990f7f6497dccd320578cd1753a1852d339;hb=2a49ebd8450b7b8a99ded6f98b7fa2ccf0e8f956;hp=67894f3ca24b7212e3a161731f5bd0299988d364;hpb=5ddcf36f04cfbd10fabda4e3c5633cb27cdd4c0a;p=synfig.git
diff --git a/synfig-core/trunk/src/synfig/layer.h b/synfig-core/trunk/src/synfig/layer.h
index 67894f3..a995299 100644
--- a/synfig-core/trunk/src/synfig/layer.h
+++ b/synfig-core/trunk/src/synfig/layer.h
@@ -2,7 +2,7 @@
/*! \file layer.h
** \brief Layer Class Header
**
-** $Id: layer.h,v 1.2 2005/01/24 03:08:18 darco Exp $
+** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -62,10 +62,10 @@
#define SYNFIG_LAYER_INIT(class) synfig::Layer* class::create() { return new class(); }
//! \writeme
-#define IMPORT_PLUS(x,y) if(param==#x && value.same_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_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)
@@ -77,11 +77,15 @@
#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__; }
+//! This is used as the category for layer book entries which represent aliases of layers.
+//! It prevents these layers showing up in the menu.
+#define CATEGORY_DO_NOT_USE "Do Not Use"
+
/* === T Y P E D E F S ===================================================== */
/* === C L A S S E S & S T R U C T S ======================================= */
@@ -168,7 +172,7 @@ public:
private:
- /*! \c true if the layer is visible, \c is it is to be skipped
+ /*! \c true if the layer is visible, \c false if it is to be skipped
** \see set_active(), enable(), disable, active()
*/
bool active_;
@@ -268,7 +272,7 @@ public:
//! Gets the name of the group that this layer belongs to
String get_group()const;
- //! \todo writeme
+ //! writeme
//DynamicParamList &dynamic_param_list() { return dynamic_param_list_; }
//! \todo writeme
@@ -318,6 +322,12 @@ public:
//! \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 -----------------------------------
*/
@@ -333,7 +343,7 @@ public:
//! Returns a string containing the localized name of the Layer
virtual String get_local_name()const;
- //! Gets the paramater vocabulary
+ //! Gets the parameter vocabulary
virtual Vocab get_param_vocab()const;
//! Gets the version string for this layer
@@ -376,41 +386,40 @@ public:
virtual ParamList get_param_list()const;
//! Sets the \a time for the selected Layer and those under it
- /*! \param context Context iterator refering to next Layer.
+ /*! \param context Context iterator referring to next Layer.
** \param time writeme
** \see Handle::set_time()
*/
virtual void set_time(Context context, Time time)const;
//! Sets the \a time for the selected Layer and those under it for a specific \a point
- /*! \param context Context iterator refering to next Layer.
+ /*! \param context Context iterator referring to next Layer.
** \param time writeme
** \param point writeme
** \see Handle::set_time()
** \todo \a point should be of the type const Point \& */
virtual void set_time(Context context, Time time, const Point &point)const;
- //! Gets the color of the Canvas at \a point
- /*! \param context Context iterator refering to next Layer.
- ** \param point Point which indicates where the desired Color should come from
- ** \todo \a point should be of the type const Point \&
+ //! Gets the color of the Canvas at \a pos
+ /*! \param context Context iterator referring to next Layer.
+ ** \param pos Point which indicates where the Color should come from
** \see Handle::get_color()
*/
- virtual Color get_color(Context context, const Point &point)const;
+ virtual Color get_color(Context context, const Point &pos)const;
//! Renders the Canvas to the given Surface in an accelerated manner
- /*! \param context Context iterator refering to next Layer.
+ /*! \param context Context iterator referring to next Layer.
** \param surface Pointer to Surface to render to.
** \param quality The requested quality-level to render at.
- ** \param rend_desc The associated RendDesc.
- ** \param callback Pointer to callback object. May be NULL if there is no callback.
+ ** \param renddesc The associated RendDesc.
+ ** \param cb Pointer to callback object. May be NULL if there is no callback.
** \return \c true on success, \c false on failure
** \see Handle::accelerated_render()
*/
- virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &rend_desc, ProgressCallback *callback)const;
+ virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
//! Checks to see if a part of the layer is directly under \a point
- /*! \param context Context iterator refering to next Layer.
+ /*! \param context Context iterator referring to next Layer.
** \param point The point to check
** \return The handle of the layer under \a point. If there is not
** a layer under \a point, then returns an empty handle. */
@@ -419,8 +428,18 @@ 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;
+#endif /* THIS_CODE_IS_NOT_USED */
protected: