X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Faccessibility-manager%2Faccessibility-manager-impl.h;h=b55d448606af8605938fc6e181b57edcd4093b82;hp=1e84bfbf4b666db4bd7319d6ad0b66b720fb4ce8;hb=8a647e87a01c5c78451653c1264a9eea81ac9b20;hpb=04807c7be2d762bb23e3865fd2642ace1b3f1855 diff --git a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h index 1e84bfb..b55d448 100644 --- a/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h +++ b/dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h @@ -20,15 +20,11 @@ // EXTERNAL INCLUDES #include -#include -#include -#include -#include +#include #include // INTERNAL INCLUDES #include -#include namespace Dali { @@ -44,46 +40,19 @@ class AccessibilityManager; /** * @copydoc Toolkit::AccessibilityManager */ -class AccessibilityManager : public Dali::BaseObject, Dali::AccessibilityActionHandler, Dali::AccessibilityGestureHandler, public Dali::ConnectionTracker +class AccessibilityManager : public Dali::BaseObject, public Dali::ConnectionTracker { public: typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionSignalType AccessibilityActionSignalType; typedef Dali::Toolkit::AccessibilityManager::AccessibilityActionScrollSignalType AccessibilityActionScrollSignalType; - struct ActorAdditionalInfo - { - ActorAdditionalInfo() - : mFocusOrder(0) - { - } - - unsigned int mFocusOrder; ///< The focus order of the actor. It is undefined by default. - - std::string mAccessibilityAttributes[Toolkit::AccessibilityManager::ACCESSIBILITY_ATTRIBUTE_NUM]; ///< The array of attribute texts - }; - - typedef std::pair FocusIDPair; - typedef std::map FocusIDContainer; - typedef FocusIDContainer::iterator FocusIDIter; - typedef FocusIDContainer::const_iterator FocusIDConstIter; - - typedef std::pair IDAdditionalInfoPair; - typedef std::map IDAdditionalInfoContainer; - typedef IDAdditionalInfoContainer::iterator IDAdditionalInfoIter; - typedef IDAdditionalInfoContainer::const_iterator IDAdditionalInfoConstIter; - /** * Construct a new AccessibilityManager. */ AccessibilityManager(); /** - * Initialise the AccessibilityManager - */ - void Initialise(); - - /** * @copydoc Toolkit::AccessibilityManager::SetAccessibilityAttribute */ void SetAccessibilityAttribute(Actor actor, Toolkit::AccessibilityManager::AccessibilityAttribute type, const std::string& text); @@ -174,6 +143,16 @@ public: bool GetGroupMode() const; /** + * @copydoc Toolkit::AccessibilityManager::GetFocusGroup + */ + Actor GetFocusGroup(Actor actor); + + /** + * @copydoc Toolkit::AccessibilityManager::GetReadPosition + */ + Vector2 GetReadPosition() const; + + /** * @copydoc Toolkit::AccessibilityManager::SetWrapMode */ void SetWrapMode(bool wrapped); @@ -193,16 +172,6 @@ public: */ Actor GetFocusIndicatorActor(); - /** - * @copydoc Toolkit::AccessibilityManager::GetFocusGroup - */ - Actor GetFocusGroup(Actor actor); - - /** - * @copydoc Toolkit::AccessibilityManager::GetReadPosition - */ - Vector2 GetReadPosition() const; - public: /** @@ -439,234 +408,6 @@ protected: private: - /** - * Get the additional information (e.g. focus order and description) of the given actor. - * @param actorID The ID of the actor to be queried - * @return The additional information of the actor - */ - ActorAdditionalInfo GetActorAdditionalInfo(const unsigned int actorID) const; - - /** - * Synchronize the actor's additional information to reflect its latest focus order - * @param actorID The ID of the actor - * @param order The focus order of the actor - * @return The additional information of the actor - */ - void SynchronizeActorAdditionalInfo(const unsigned int actorID, const unsigned int order); - - /** - * Move the focus to the specified actor and send notification for the focus change. - * @param actorID The ID of the actor to be queried - * @return Whether the focus is successful or not - */ - bool DoSetCurrentFocusActor(const unsigned int actorID); - - /** - * Move the focus to the next actor in the focus chain towards the specified direction. - * @param focusIDIter The iterator pointing to the current focused actor - * @param forward Whether the focus movement is forward or not. The focus movement will be backward if this is false. - * @param wrapped Whether the focus shoule be moved wrapped around or not - * @return Whether the focus is successful or not - */ - bool DoMoveFocus(FocusIDIter focusIDIter, bool forward, bool wrapped); - - /** - * Activate the actor. If the actor is control, call OnAccessibilityActivated virtual function. - * This function will emit FocusedActorActivatedSignal. - * @param actor The actor to activate - */ - void DoActivate(Actor actor); - - /** - * Set whether the actor is focusable or not. A focusable property will be registered for - * the actor if not yet. - * @param actor The actor to be focused - * @param focusable Whether the actor is focusable or not - */ - void SetFocusable(Actor actor, bool focusable); - - /** - * Handle the accessibility pan gesture. - * @param[in] panEvent The pan event to be handled. - * @return whether the gesture is handled successfully or not. - */ - bool HandlePanGesture(const AccessibilityGestureEvent& panEvent) override; - - /** - * Change the accessibility status when Accessibility feature(screen-reader) turned on or off. - * @return whether the status is changed or not. - */ - bool ChangeAccessibilityStatus() override; - - /** - * Clear the accessibility focus from the current focused actor. - * @return whether the focus is cleared or not. - */ - bool ClearAccessibilityFocus() override; - - /** - * Perform the accessibility action associated with a scroll event. - * @param touch The touch point (and time) of the event. - * @return whether the focus is cleared or not. - */ - bool AccessibilityActionScroll( Dali::TouchEvent& touch ) override; - - /** - * Perform the accessibility action to move focus to the previous focusable actor (by one finger flick up). - * @param allowEndFeedback true if end of list feedback should be played when the focus is alread reached to the end - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionPrevious(bool allowEndFeedback) override; - - /** - * Perform the accessibility action to move focus to the next focusable actor (by one finger flick down). - * @param allowEndFeedback true if end of list feedback should be played when the focus is alread reached to the end - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionNext(bool allowEndFeedback) override; - - /** - * Perform the accessibility action to move focus to the previous focusable actor (by one finger flick left). - * @param allowEndFeedback true if end of list feedback should be played when the focus is alread reached to the end - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionReadPrevious(bool allowEndFeedback) override; - - /** - * Perform the accessibility action to move focus to the next focusable actor (by one finger flick right). - * @param allowEndFeedback true if end of list feedback should be played when the focus is alread reached to the end - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionReadNext(bool allowEndFeedback) override; - - /** - * Perform the accessibility action to focus and read the actor (by one finger tap or move). - * @param allowReadAgain true if the action read again the same object (i.e. read action) - * false if the action just read when the focus object is changed (i.e. over action) - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionRead(bool allowReadAgain) override; - - /** - * Perform the accessibility action to activate the current focused actor (by one finger double tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionActivate() override; - - /** - * Perform the accessibility action to change the value when the current focused actor is a slider - * (by double finger down and move up and right). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionUp() override; - - /** - * Perform the accessibility action to change the value when the current focused actor is a slider - * (by double finger down and move down and left). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionDown() override; - - /** - * Perform the accessibility action to navigate back (by two fingers circle draw). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionBack() override; - - /** - * Perform the accessibility action to scroll up the list and focus on the first item on the list - * after the scrolling and read the item (by two finger swipe up). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionScrollUp() override; - - /** - * Perform the accessibility action to scroll down the list and focus on the first item on the list - * after the scrolling and read the item (by two finger swipe down). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionScrollDown() override; - - /** - * Perform the accessibility action to scroll left to the previous page (by two finger swipe left). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionPageLeft() override; - - /** - * Perform the accessibility action to scroll right to the next page (by two finger swipe right). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionPageRight() override; - - /** - * Perform the accessibility action to scroll up to the previous page (by one finger swipe left and right). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionPageUp() override; - - /** - * Perform the accessibility action to scroll down to the next page (by one finger swipe right and left). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionPageDown() override; - - /** - * Perform the accessibility action to move the focus to the first item on the screen - * (by one finger swipe up and down). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionMoveToFirst() override; - - /** - * Perform the accessibility action to move the focus to the last item on the screen - * (by one finger swipe down and up). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionMoveToLast() override; - - /** - * Perform the accessibility action to move the focus to the first item on the top - * and read from the top item continuously (by three fingers single tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionReadFromTop() override; - - /** - * Perform the accessibility action to move the focus to and read from the next item - * continuously (by three fingers double tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionReadFromNext() override; - - /** - * Perform the accessibility action to move the focus to do the zooming (by one finger triple tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionZoom() override; - - /** - * Perform the accessibility action to pause/resume the current read out (by two fingers single tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionReadPauseResume() override; - - /** - * Perform the accessibility action to start/stop the current action (by two fingers double tap). - * @return whether the accessibility action is performed or not. - */ - bool AccessibilityActionStartStop() override; - - /** - * This function is connected to the TtsPlayer StateChangeSignal. - * It is called when the TTS players state changes. - * @param previousState The previous state of the TTS player (for comparison) - * @param currentState The current state of the TTS player - */ - void TtsStateChanged( const Dali::TtsPlayer::State previousState, const Dali::TtsPlayer::State currentState ); - -private: - // Undefined AccessibilityManager(const AccessibilityManager&); @@ -674,6 +415,8 @@ private: private: + std::vector mFocusOrder; + Toolkit::AccessibilityManager::FocusChangedSignalType mFocusChangedSignal; ///< The signal to notify the focus change Toolkit::AccessibilityManager::FocusOvershotSignalType mFocusOvershotSignal; ///< The signal to notify the focus overshooted Toolkit::AccessibilityManager::FocusedActorActivatedSignalType mFocusedActorActivatedSignal; ///< The signal to notify the activation of focused actor @@ -702,31 +445,10 @@ private: AccessibilityActionSignalType mActionReadFromTopSignal; AccessibilityActionSignalType mActionReadFromNextSignal; AccessibilityActionSignalType mActionZoomSignal; + AccessibilityActionSignalType mActionReadIndicatorInformationSignal; AccessibilityActionSignalType mActionReadPauseResumeSignal; AccessibilityActionSignalType mActionStartStopSignal; AccessibilityActionScrollSignalType mActionScrollSignal; - - FocusIDContainer mFocusIDContainer; ///< The container to look up actor ID by focus order - IDAdditionalInfoContainer mIDAdditionalInfoContainer; ///< The container to look up additional information by actor ID - FocusIDPair mCurrentFocusActor; ///< The focus order and actor ID of current focused actor - Actor mCurrentGesturedActor; ///< The actor that will handle the gesture - Actor mFocusIndicatorActor; ///< The focus indicator actor shared by all the focusable actors for highlight - Vector2 mPreviousPosition; ///< The previous pan position; useful for calculating velocity for GestureState::FINISHED events - unsigned int mRecursiveFocusMoveCounter; ///< The counter to count the number of recursive focus movement attempted before the focus movement is successful. - std::string mFocusSoundFilePath; ///< The path of the focus sound file - std::string mFocusChainEndSoundFilePath; ///< The path of the focus chain end sound file - - bool mIsWrapped:1; ///< Whether the focus movement is wrapped around or not - bool mIsFocusWithinGroup:1; ///< Whether the focus movement is limited to the current focus group or not - bool mIsEndcapFeedbackEnabled:1; ///< Whether the endcap feedback need to be played when the focus leaves the end or vice versa - bool mIsEndcapFeedbackPlayed:1; ///< Whether the endcap feedback was played or not - bool mIsAccessibilityTtsEnabled:1; ///< Whether accessibility feature(screen-reader) turned on/off - bool mTtsCreated:1; ///< Whether the TTS Player has been accessed - bool mIsFocusIndicatorEnabled:1; ///< Whether indicator should be shown / hidden. It could be enabled when TTS enabled or 'Tab' key operated. - bool mContinuousPlayMode:1; ///< Keeps track of whether or not we are in continuous play mode - bool mIsFocusSoundFilePathSet:1; ///< Whether the path of the focus sound file has been set - bool mIsFocusChainEndSoundFilePathSet:1; ///< Whether the path of the focus chain end sound file has been set - }; } // namespace Internal