+ /**
+ * @copydoc CustomActorImpl::OnSceneDisconnection()
+ */
+ void OnSceneDisconnection();
+
+ /**
+ * @brief Sets the margin.
+ * @param[in] margin Margin is a collections of extent ( start, end, top, bottom )
+ */
+ void SetMargin(Extents margin);
+
+ /**
+ * @brief Returns the value of margin
+ * @return The value of margin
+ */
+ Extents GetMargin() const;
+
+ /**
+ * @brief Sets the padding.
+ * @param[in] padding Padding is a collections of extent ( start, end, top, bottom ).
+ */
+ void SetPadding(Extents padding);
+
+ /**
+ * @brief Returns the value of padding
+ * @return The value of padding
+ */
+ Extents GetPadding() const;
+
+ /**
+ * @brief Set the input method context.
+ * @param[in] inputMethodContext The input method context.
+ */
+ void SetInputMethodContext(InputMethodContext& inputMethodContext);
+
+ /**
+ * @brief Filter an key event.
+ * @param[in] event The key to be filtered.
+ * @return True if the key handled, otherwise false.
+ */
+ bool FilterKeyEvent(const KeyEvent& event);
+
+ /**
+ * @brief Adds accessibility attribute
+ * @param[in] key Attribute name to set
+ * @param[in] value Attribute value to set
+ *
+ * Attribute is added if not existed previously or updated
+ * if existed.
+ */
+ void AppendAccessibilityAttribute(const std::string& key, const std::string value);
+
+ /**
+ * @brief Removes accessibility attribute
+ * @param[in] key Attribute name to remove
+ *
+ * Function does nothing if attribute doesn't exist.
+ */
+ void RemoveAccessibilityAttribute(const std::string& key);
+
+ /**
+ * @brief Removes all accessibility attributes
+ */
+ void ClearAccessibilityAttributes();
+
+ /**
+ * @brief Sets reading info type attributes
+ * @param[in] types info type attributes to set
+ *
+ * This function sets, which part of object will be read out
+ * by screen-reader.
+ */
+ void SetAccessibilityReadingInfoType(const Dali::Accessibility::ReadingInfoTypes types);
+
+ /**
+ * @brief Gets currently active reading info type attributes
+ */
+ Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType() const;
+
+ /**
+ * @copydoc DevelControl::VisualEventSignal()
+ */
+ 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();
+
+ /**
+ * @copydoc DevelControl::GetVisualProperty()
+ */
+ Dali::Property GetVisualProperty(Dali::Property::Index index, Dali::Property::Key visualPropertyKey);
+
+ /**
+ * @brief Retrieves source and destination visual properties for the Transition of this Control.
+ * The properties of this Control will be transitioned from the propeties of source Control to that of destination control.
+ * If a property value is different between source and destination Control,
+ * the property information of each Control will be included in sourceProperties and destinationProperties.
+ *
+ * @param[out] sourceProperties Source property list to be applied on this Control.
+ * @param[out] destinationProperties Destination property list to be applied on this Control.
+ * @param[in] source Source control of the animation.
+ * @param[in] destination Destination control of the animation.
+ *
+ * @note This method do not handle Actor properties.
+ * And the size and order of the sourceProperties and destinationProperties must be synchronized.
+ *
+ * This method triggers Control::OnCreateTransition().
+ */
+ void CreateTransitions(std::vector<std::pair<Dali::Property::Index, Dali::Property::Map>>& sourceProperties,
+ std::vector<std::pair<Dali::Property::Index, Dali::Property::Map>>& destinationProperties,
+ Dali::Toolkit::Control source, Dali::Toolkit::Control destination);
+
+ /**
+ * @brief Update visual properties.
+ * @param[in] properties Property list to be used to update visual properties of this Control.
+ *
+ * @note This method triggers Control::OnUpdateVisualProperties().
+ */
+ void UpdateVisualProperties(const std::vector<std::pair<Dali::Property::Index, Dali::Property::Map>>& properties);
+
+ /**
+ * @brief Gets the current control's accessible object.
+ *
+ * @return The handle to Accessible object
+ */
+ Dali::Accessibility::Accessible* GetAccessibilityObject();
+
+ /**
+ * @brief Gets Accessible object handle.
+ *
+ * The method acquires Accessible handle from Actor object
+ * @param actor Actor object
+ * @return The handle to Accessible object
+ */
+ static Dali::Accessibility::Accessible* GetAccessibilityObject(Dali::Actor actor);
+
+private:
+ /**
+ * Used as an alternative to boolean so that it is obvious whether a visual is enabled/disabled.
+ */
+ struct VisualState
+ {
+ enum Type
+ {
+ DISABLED = 0, ///< Visual disabled.
+ ENABLED = 1 ///< Visual enabled.
+ };
+ };
+
+ /**
+ * Used as an alternative to boolean so that it is obvious whether a visual's depth value has been set or not by the caller.
+ */
+ struct DepthIndexValue
+ {
+ enum Type
+ {
+ NOT_SET = 0, ///< Visual depth value not set by caller.
+ SET = 1 ///< Visual depth value set by caller.
+ };
+ };
+
+ /**
+ * @brief Adds the visual to the list of registered visuals.
+ * @param[in] index The Property index of the visual, used to reference visual
+ * @param[in,out] visual The visual to register, which can be altered in this function
+ * @param[in] enabled false if derived class wants to control when visual is set on stage
+ * @param[in] depthIndexValueSet Set to true if the depthIndex has actually been set manually
+ * @param[in] depthIndex The visual's depth-index is set to this
+ *
+ * @note Registering a visual with an index that already has a registered visual will replace it. The replacement will
+ * occur once the replacement visual is ready (loaded).
+ */
+ 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();
+
+ /**
+ * @brief Checks highlighted object geometry if it is showing or not
+ */
+ void CheckHighlightedObjectGeometry();
+
+ /**
+ * @brief Register property notification to check highlighted object position
+ */
+ void RegisterAccessibilityPositionPropertyNotification();
+
+ /**
+ * @brief Remove property notification added by RegisterPropertyNotification
+ */
+ void UnregisterAccessibilityPositionPropertyNotification();