Add AnimatedVectorImageVisual property
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / animated-vector-image / animated-vector-image-visual.h
index 6eaead5..5bf0f4e 100644 (file)
 #include <dali/public-api/object/property-notification.h>
 #include <dali/public-api/adaptor-framework/window.h>
 #include <dali/devel-api/actors/actor-devel.h>
-#include <dali/integration-api/processor-interface.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/visuals/visual-base-impl.h>
 #include <dali-toolkit/internal/visuals/visual-url.h>
 #include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-actions-devel.h>
 #include <dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.h>
+#include <dali-toolkit/internal/visuals/animated-vector-image/vector-animation-manager.h>
 
 namespace Dali
 {
@@ -56,7 +56,7 @@ using AnimatedVectorImageVisualPtr = IntrusivePtr< AnimatedVectorImageVisual >;
  * | url                      | STRING           |
  *
  */
-class AnimatedVectorImageVisual: public Visual::Base, public ConnectionTracker, public Integration::Processor
+class AnimatedVectorImageVisual: public Visual::Base, public ConnectionTracker, public VectorAnimationManager::LifecycleObserver
 {
 public:
 
@@ -98,6 +98,12 @@ public:  // from Visual
    */
   void DoCreateInstancePropertyMap( Property::Map& map ) const override;
 
+protected: // From VectorAnimationManager::LifecycleObserver:
+  /**
+   * @copydoc VectorAnimationManager::LifecycleObserver::VectorAnimationManagerDestroyed()
+   */
+  void VectorAnimationManagerDestroyed() override;
+
 protected:
 
   /**
@@ -112,7 +118,7 @@ protected:
   /**
    * @brief A reference counted object may only be deleted by calling Unreference().
    */
-  virtual ~AnimatedVectorImageVisual();
+  ~AnimatedVectorImageVisual() override;
 
   /**
    * @copydoc Visual::Base::DoSetProperties
@@ -120,14 +126,14 @@ protected:
   void DoSetProperties( const Property::Map& propertyMap ) override;
 
   /**
-   * @copydoc Visual::Base::DoSetOnStage
+   * @copydoc Visual::Base::DoSetOnScene
    */
-  void DoSetOnStage( Actor& actor ) override;
+  void DoSetOnScene( Actor& actor ) override;
 
   /**
-   * @copydoc Visual::Base::DoSetOffStage
+   * @copydoc Visual::Base::DoSetOffScene
    */
-  void DoSetOffStage( Actor& actor ) override;
+  void DoSetOffScene( Actor& actor ) override;
 
   /**
    * @copydoc Visual::Base::OnSetTransform
@@ -139,13 +145,6 @@ protected:
    */
   void OnDoAction( const Property::Index actionId, const Property::Value& attributes ) override;
 
-protected: // Implementation of Processor
-
-  /**
-   * @copydoc Dali::Integration::Processor::Process()
-   */
-  void Process() override;
-
 private:
 
   /**
@@ -205,6 +204,11 @@ private:
    */
   void OnWindowVisibilityChanged( Window window, bool visible );
 
+  /**
+   * @brief Callback when the event is processed.
+   */
+  void OnProcessEvents();
+
   // Undefined
   AnimatedVectorImageVisual( const AnimatedVectorImageVisual& visual ) = delete;
 
@@ -222,8 +226,10 @@ private:
   Vector2                                      mVisualScale;
   WeakHandle< Actor >                          mPlacementActor;
   DevelImageVisual::PlayState::Type            mPlayState;
+  CallbackBase*                                mEventCallback;    // Not owned
   bool                                         mRendererAdded;
-  bool                                         mRasterizationTriggered;
+  bool                                         mCoreShutdown;
+  bool                                         mRedrawInScalingDown;
 };
 
 } // namespace Internal