Purge underscored header file barriers
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / page-turn-view / page-factory.h
index c0d09a2..4768b21 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_PAGE_FACTORY_H__
-#define __DALI_TOOLKIT_PAGE_FACTORY_H__
+#ifndef DALI_TOOLKIT_PAGE_FACTORY_H
+#define DALI_TOOLKIT_PAGE_FACTORY_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/actor.h>
+#include <dali/public-api/rendering/texture.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 
 namespace Dali
 {
@@ -28,96 +31,54 @@ namespace Toolkit
 {
 
 /**
- * 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 textures 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
+class DALI_TOOLKIT_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();
+  class Extension; ///< Forward declare future extension interface
 
   /**
-   * Enable the off screen rendering to create the page image from actor tree
+   * @brief Virtual destructor
    */
-  void EnableOffscreenRendering( );
+  virtual ~PageFactory(){};
 
   /**
-   * Query whether offscreen rendering is needed to create the page image
-   * @return
-   */
-  bool IsOffscreenRenderingNeeded();
-
-  /**
-   * 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.
+   * @return The page count.
    */
   virtual unsigned int GetNumberOfPages() = 0;
 
   /**
-   * Create an actor to represent the page content.
+   * @brief Return the texture for the page
+   *
+   * For double-sided page( PageTurnLandscapeView ), the left half of texture is used as page front side, and the right half as page back side.
+   *
+   * @note Must return a valid texture handle!
+   *
    * @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;
-
-  /**
-   * 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.
-   */
-  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 );
+  virtual Texture NewPage( unsigned int pageId ) = 0;
 
   /**
-   * Query whether an actor is hittable for the PageTurnView::GetHitActor().
+   * @brief Retrieve the extension for this factory
+   *
+   * @return The extension if available, NULL otherwise.
    */
-  bool GetActorHittability( Actor actor );
-
-private:
-
-  bool mNeedOffscreenRendering;
-
-  RefreshSignal mPageRefreshSignal;
+  virtual Extension* GetExtension()
+  {
+    return NULL;
+  }
 };
 
 } // namespace Toolkit
 
 } // namespace Dali
-#endif /* __DALI_TOOLKIT_PAGE_FACTORY_H__ */
+#endif /* DALI_TOOLKIT_PAGE_FACTORY_H */