Ensure not to emit the resource ready signal during the callback
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / control / control-data-impl.h
index 2223215..e042113 100755 (executable)
@@ -125,7 +125,7 @@ public:
    * @param[in] object The visual whose resources are ready
    * @note Overriding method in Visual::EventObserver.
    */
-  virtual void ResourceReady( Visual::Base& object ) override;
+  void ResourceReady( Visual::Base& object ) override;
 
   /**
    * @brief Called when an event occurs.
@@ -133,7 +133,7 @@ public:
    * @param[in] signalId The signal to emit. See Visual to find supported signals
    * @note Overriding method in Visual::EventObserver.
    */
-  virtual void NotifyVisualEvent( Visual::Base& object, Property::Index signalId ) override;
+  void NotifyVisualEvent( Visual::Base& object, Property::Index signalId ) override;
 
   /**
    * @copydoc Dali::Toolkit::DevelControl::RegisterVisual()
@@ -290,9 +290,9 @@ public:
   bool IsResourceReady() const;
 
   /**
-   * @copydoc CustomActorImpl::OnStageDisconnection()
+   * @copydoc CustomActorImpl::OnSceneDisconnection()
    */
-  void OnStageDisconnection();
+  void OnSceneDisconnection();
 
   /**
    * @brief Sets the margin.
@@ -336,6 +336,17 @@ public:
    */
   DevelControl::VisualEventSignalType& VisualEventSignal();
 
+  /**
+   * @brief Sets the shadow with a property map.
+   * @param[in] map The shadow property map
+   */
+  void SetShadow(const Property::Map& map);
+
+  /**
+   * @brief Clear the shadow.
+   */
+  void ClearShadow();
+
 private:
 
   /**
@@ -375,6 +386,16 @@ private:
    */
   void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, VisualState::Type enabled, DepthIndexValue::Type depthIndexValueSet, int depthIndex = 0 );
 
+  /**
+   * @brief Emits the resource ready signal.
+   */
+  void EmitResourceReadySignal();
+
+  /**
+   * @brief Callbacks called on idle.
+   */
+  void OnIdleCallback();
+
 public:
 
   Control& mControlImpl;
@@ -408,10 +429,13 @@ public:
   TooltipPtr mTooltip;
 
   InputMethodContext mInputMethodContext;
+  CallbackBase* mIdleCallback;             ///< The idle callback to emit the resource ready signal.
 
   ControlBehaviour mFlags : CONTROL_BEHAVIOUR_FLAG_COUNT;    ///< Flags passed in from constructor.
   bool mIsKeyboardNavigationSupported :1;  ///< Stores whether keyboard navigation is supported by the control.
   bool mIsKeyboardFocusGroup :1;           ///< Stores whether the control is a focus group.
+  bool mIsEmittingResourceReadySignal :1;  ///< True during ResourceReady().
+  bool mNeedToEmitResourceReady :1;        ///< True if need to emit the resource ready signal again.
 
   RegisteredVisualContainer mRemoveVisuals;         ///< List of visuals that are being replaced by another visual once ready
 
@@ -431,6 +455,7 @@ public:
   static const PropertyRegistration PROPERTY_12;
   static const PropertyRegistration PROPERTY_13;
   static const PropertyRegistration PROPERTY_14;
+  static const PropertyRegistration PROPERTY_15;
 };