{
/**
- * PageFactory is an abstract interface for providing image actors to PageTurnView
- * Each image actor is identified by a unique ID, and has a linear order from 0 to GetNumberOfPages()-1
+ * @brief PageFactory is an abstract interface for providing images to PageTurnView
+ * Each page is identified by a unique ID, and has a linear order from 0 to GetNumberOfPages()-1
+ *
+ * @SINCE_1_1.4
*/
class DALI_IMPORT_API PageFactory
{
public:
- // Property Names
- static const std::string ACTOR_HITTABLE; ///< name "actor-hittable", type bool
-
-public:
-
- /**
- * Constructor
- * By default, the off screen rendering is disabled
- * Is off screen rendering is required to create the page image,
- * call EnableOffscreenRendering() before pass it as parameter to the PageTurnView
- */
- PageFactory();
-
- /**
- * Virtual destructor
- */
- virtual ~PageFactory();
- /**
- * Enable the off screen rendering to create the page image from actor tree
- */
- void EnableOffscreenRendering( );
+ class Extension; ///< Forward declare future extension interface
/**
- * Query whether offscreen rendering is needed to create the page image
- * @return
+ * @brief Virtual destructor
+ * @SINCE_1_1.4
*/
- bool IsOffscreenRenderingNeeded();
+ virtual ~PageFactory(){};
/**
- * Query the number of pages available from the factory.
+ * @brief Query the number of pages available from the factory.
+ *
* The maximum available page has an ID of GetNumberOfPages()-1.
+ * @SINCE_1_1.4
+ * @return The page count.
*/
virtual unsigned int GetNumberOfPages() = 0;
/**
- * Create an actor to represent the page content.
+ * @brief Create an actor to represent the page content.
+ * @SINCE_1_1.30
+ *
+ * If no valid image provided, a broken image is displayed.
+ * For double-sided page( PageTurnLandscapeView ), the left half of image is used as page front side, and the right half as page back side.
+ *
* @param[in] pageId The ID of the page to create.
* @return An actor, or an uninitialized pointer if the ID is out of range.
*/
- virtual Actor NewPage( unsigned int pageId ) = 0;
-
-public: //Signal
- /**
- * Signal type for notification
- */
- typedef Signal< void ( int ) > RefreshSignal;
+ virtual Image NewPage( unsigned int pageId ) = 0;
/**
- * Signal emitted when the Actor tree is ready for rendering into the page image.
- * The signal is connected to the page refresh function inside PageTurnView.
+ * @brief Retrieve the extension for this factory
+ * @SINCE_1_1.30
+ *
+ * @return The extension if available, NULL otherwise.
*/
- RefreshSignal& PageRefreshSignal();
-
- /**
- * Emit the page ready singal. The PageTurn view will be notified to refresh the given page accordingly.
- * @param[in] pageId the index of the page which is ready for refreshing.
- */
- void EmitPageRefreshSignal( int pageId );
-
-protected:
-
- /**
- * Sets whether an actor should be hittable for the PageTurnView::GetHitActor().
- * It is useful when a sub-tree should be hit instead of the 'leaf' actor in the actor tree.
- * By default, actors are not hittable for PageTurnView::GetHitActor()
- * @param[in] actor The actor to be set with the hittablity
- * @param[in] hittable True to be hittable, false otherwise.
- */
- void SetActorHittability( Actor actor, bool hittable );
-
- /**
- * Query whether an actor is hittable for the PageTurnView::GetHitActor().
- */
- bool GetActorHittability( Actor actor );
-
-private:
-
- bool mNeedOffscreenRendering;
-
- RefreshSignal mPageRefreshSignal;
+ virtual Extension* GetExtension()
+ {
+ return NULL;
+ }
};
} // namespace Toolkit