X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fcontrols%2Faccessible-impl.h;h=8bd07143bd42dcb553aaa7b8b2e59e300d49831b;hp=ff31c1e4475fbc804984c9d9492440d6ca184534;hb=90168515fb4b80ff64c068769420c0235a225d71;hpb=7f472b6fa56d5382514b9abb9a4c71419189acff diff --git a/dali-toolkit/devel-api/controls/accessible-impl.h b/dali-toolkit/devel-api/controls/accessible-impl.h index ff31c1e..8bd0714 100644 --- a/dali-toolkit/devel-api/controls/accessible-impl.h +++ b/dali-toolkit/devel-api/controls/accessible-impl.h @@ -46,10 +46,43 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc public virtual Dali::Accessibility::Collection, public virtual Dali::Accessibility::Action { - Dali::Actor self; - Dali::WeakHandle currentHighlightActor; - bool modal = false, root = false; +protected: + Vector2 mLastPosition{0.0f, 0.0f}; + Dali::WeakHandle mSelf; + Dali::WeakHandle mCurrentHighlightActor; + bool mIsModal = false; + bool mIsRoot = false; + Dali::Actor Self() + { + auto handle = mSelf.GetHandle(); + + // Control::Impl holds a std::unique_ptr to the Accessible object, + // so that one does not outlive the other. + DALI_ASSERT_ALWAYS(handle); + + return handle; + } + + void ScrollToSelf(); + + /** + * @brief Register property notification to check highlighted object position + */ + void RegisterPositionPropertyNotification(); + + /** + * @brief Remove property notification added by RegisterPropertyNotification + */ + void UnregisterPositionPropertyNotification(); + + /** + * @brief Check if the actor is showing + * @return True if the actor is showing + */ + bool IsShowing(); + +public: AccessibleImpl(Dali::Actor self, Dali::Accessibility::Role role, bool modal = false); /** @@ -98,6 +131,11 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc Dali::Accessibility::Role GetRole() override; /** + * @copydoc Dali::Accessibility::Accessible::GetLocalizedRoleName() + */ + std::string GetLocalizedRoleName() override; + + /** * @copydoc Dali::Accessibility::Accessible::GetStates() */ Dali::Accessibility::States GetStates() override; @@ -110,7 +148,7 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc /** * @copydoc Dali::Accessibility::Component::GetExtents() */ - Dali::Rect<> GetExtents(Dali::Accessibility::CoordType ctype) override; + Dali::Rect<> GetExtents(Accessibility::CoordinateType type) override; /** * @copydoc Dali::Accessibility::Component::GetLayer() @@ -188,20 +226,20 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc std::vector GetRelationSet() override; /** - * @copydoc Dali::Accessibility::Accessible::GetStates() + * @copydoc Dali::Accessibility::Accessible::GetInternalActor() */ - virtual Dali::Accessibility::States CalculateStates(); + Dali::Actor GetInternalActor() override; /** - * @brief Makes sure that a given child of this container (e.g. ItemView) is visible + * @copydoc Dali::Accessibility::Accessible::GetStates() */ - virtual void EnsureChildVisible(Actor child); + virtual Dali::Accessibility::States CalculateStates(); /** - * @brief Makes sure this actor is visible (when moving the highlight frame to an - * actor that is scrolled out of the viewport) + * @brief Makes sure that a given child (descendant) of this container (e.g. ItemView) is visible + * @return false if scrolling is not supported or child is already visible */ - virtual void EnsureSelfVisible(); + virtual bool ScrollToChild(Actor child); /** * @brief Returns the index of the property that represents this actor's name @@ -212,6 +250,18 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc * @brief Returns the index of the property that represents this actor's description */ virtual Dali::Property::Index GetDescriptionPropertyIndex(); + + /** + * @brief Sets last object position + * @param[in] position Last object position + */ + void SetLastPosition(Vector2 position); + + /** + * @brief Gets last object position + * @return The Last object position + */ + Vector2 GetLastPosition() const; }; } // namespace Dali::Toolkit::DevelControl