From: Bartlomiej Grzelewski Date: Fri, 18 Sep 2020 11:35:26 +0000 (+0200) Subject: [AT-SPI] Add Pause and Resume signals X-Git-Tag: dali_2.0.0~6^2~25 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=6c1385cd7a2ba2ffbd628e10576780a1620674b7;ds=sidebyside [AT-SPI] Add Pause and Resume signals Change-Id: Ic69d7342c55c12e51266bda1ba608feeb2687853 --- diff --git a/dali-toolkit/devel-api/controls/control-devel.cpp b/dali-toolkit/devel-api/controls/control-devel.cpp index 0b33685..34ffc19 100644 --- a/dali-toolkit/devel-api/controls/control-devel.cpp +++ b/dali-toolkit/devel-api/controls/control-devel.cpp @@ -139,6 +139,18 @@ Toolkit::DevelControl::AccessibilityReadingSkippedSignalType &AccessibilityReadi return ac->mAccessibilityReadingSkippedSignal; } +Toolkit::DevelControl::AccessibilityReadingPausedSignalType &AccessibilityReadingPausedSignal( Toolkit::Control control ) +{ + auto ac = GetControlImplementationIfAny ( control ); + return ac->mAccessibilityReadingPausedSignal; +} + +Toolkit::DevelControl::AccessibilityReadingResumedSignalType &AccessibilityReadingResumedSignal( Toolkit::Control control ) +{ + auto ac = GetControlImplementationIfAny ( control ); + return ac->mAccessibilityReadingResumedSignal; +} + Toolkit::DevelControl::AccessibilityReadingCancelledSignalType &AccessibilityReadingCancelledSignal( Toolkit::Control control ) { auto ac = GetControlImplementationIfAny ( control ); diff --git a/dali-toolkit/devel-api/controls/control-devel.h b/dali-toolkit/devel-api/controls/control-devel.h index b5f40a0..5753a69 100644 --- a/dali-toolkit/devel-api/controls/control-devel.h +++ b/dali-toolkit/devel-api/controls/control-devel.h @@ -44,6 +44,12 @@ typedef Signal< void ( ) > AccessibilityActivateSignalType; /// @brief AccessibilityReadingSkipped signal type. typedef Signal< void ( ) > AccessibilityReadingSkippedSignalType; +/// @brief AccessibilityReadingPaused signal type. +typedef Signal< void ( ) > AccessibilityReadingPausedSignalType; + +/// @brief AccessibilityReadingResumed signal type. +typedef Signal< void ( ) > AccessibilityReadingResumedSignalType; + /// @brief AccessibilityReadingCancelled signal type. typedef Signal< void ( ) > AccessibilityReadingCancelledSignalType; @@ -366,6 +372,20 @@ DALI_TOOLKIT_API AccessibilityActivateSignalType &AccessibilityActivateSignal( T DALI_TOOLKIT_API AccessibilityReadingSkippedSignalType &AccessibilityReadingSkippedSignal( Toolkit::Control control ); /** + * @brief + * + * @return The signal to connect to + */ +DALI_TOOLKIT_API AccessibilityReadingPausedSignalType &AccessibilityReadingPausedSignal( Toolkit::Control control ); + +/** + * @brief + * + * @return The signal to connect to + */ +DALI_TOOLKIT_API AccessibilityReadingResumedSignalType &AccessibilityReadingResumedSignal( Toolkit::Control control ); + +/** * @brief The signal is emmited when text send via Dali::Accessibility::Bridge::Say * was placed in TTS queue and reading was started but other text with higher priority cancelled it. * diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index 7c6aa9a..c3c8062 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -189,72 +189,63 @@ void MoveVisual( RegisteredVisualContainer::Iterator sourceIter, RegisteredVisua * @param[in] attributes The attributes with which to perfrom this action. * @return true if action has been accepted by this control */ -const char* ACTION_ACCESSIBILITY_ACTIVATED = "accessibilityActivated"; -const char* ACTION_ACCESSIBILITY_READING_SKIPPED = "ReadingSkipped"; +const char* ACTION_ACCESSIBILITY_ACTIVATED = "accessibilityActivated"; const char* ACTION_ACCESSIBILITY_READING_CANCELLED = "ReadingCancelled"; -const char* ACTION_ACCESSIBILITY_READING_STOPPED = "ReadingStopped"; +const char* ACTION_ACCESSIBILITY_READING_PAUSED = "ReadingPaused"; +const char* ACTION_ACCESSIBILITY_READING_RESUMED = "ReadingResumed"; +const char* ACTION_ACCESSIBILITY_READING_SKIPPED = "ReadingSkipped"; +const char* ACTION_ACCESSIBILITY_READING_STOPPED = "ReadingStopped"; static bool DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes ) { - bool ret = false; + if (!object) + return false; + + Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); + if ( !control ) + return false; - if( object && - ( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_ACTIVATED ) || - actionName == "activate" ) ) + if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_ACTIVATED ) || + actionName == "activate" ) { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - if( control ) - { - // if cast succeeds there is an implementation so no need to check - if (!DevelControl::AccessibilityActivateSignal( control ).Empty()) { - DevelControl::AccessibilityActivateSignal( control ).Emit(); - ret = true; - } - else - ret = Internal::GetImplementation( control ).OnAccessibilityActivated(); - } + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityActivateSignal( control ).Empty()) + DevelControl::AccessibilityActivateSignal( control ).Emit(); + else + return Internal::GetImplementation( control ).OnAccessibilityActivated(); } - else if( object && ( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_SKIPPED ) ) ) + else if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_SKIPPED ) ) { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - if( control ) - { - // if cast succeeds there is an implementation so no need to check - if (!DevelControl::AccessibilityReadingSkippedSignal( control ).Empty()) - { - DevelControl::AccessibilityReadingSkippedSignal( control ).Emit(); - ret = true; - } - } + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityReadingSkippedSignal( control ).Empty()) + DevelControl::AccessibilityReadingSkippedSignal( control ).Emit(); } - else if( object && ( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_CANCELLED ) ) ) + else if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_PAUSED) ) { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - if( control ) - { - // if cast succeeds there is an implementation so no need to check - if (!DevelControl::AccessibilityReadingCancelledSignal( control ).Empty()) - { - DevelControl::AccessibilityReadingCancelledSignal( control ).Emit(); - ret = true; - } - } + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityReadingPausedSignal( control ).Empty()) + DevelControl::AccessibilityReadingPausedSignal( control ).Emit(); } - else if( object && ( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_STOPPED ) ) ) + else if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_RESUMED ) ) { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - if( control ) - { - // if cast succeeds there is an implementation so no need to check - if (!DevelControl::AccessibilityReadingStoppedSignal( control ).Empty()) - { - DevelControl::AccessibilityReadingStoppedSignal( control ).Emit(); - ret = true; - } - } + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityReadingResumedSignal( control ).Empty()) + DevelControl::AccessibilityReadingResumedSignal( control ).Emit(); + } + else if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_CANCELLED ) ) + { + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityReadingCancelledSignal( control ).Empty()) + DevelControl::AccessibilityReadingCancelledSignal( control ).Emit(); + } + else if( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_READING_STOPPED ) ) + { + // if cast succeeds there is an implementation so no need to check + if (!DevelControl::AccessibilityReadingStoppedSignal( control ).Empty()) + DevelControl::AccessibilityReadingStoppedSignal( control ).Emit(); } - return ret; + return true; } /** @@ -364,6 +355,8 @@ TypeAction registerAction2( typeRegistration, ACTION_ACCESSIBILITY_ACTIVATED, &D TypeAction registerAction3( typeRegistration, ACTION_ACCESSIBILITY_READING_SKIPPED, &DoAction ); TypeAction registerAction4( typeRegistration, ACTION_ACCESSIBILITY_READING_CANCELLED, &DoAction ); TypeAction registerAction5( typeRegistration, ACTION_ACCESSIBILITY_READING_STOPPED, &DoAction ); +TypeAction registerAction6( typeRegistration, ACTION_ACCESSIBILITY_READING_PAUSED, &DoAction ); +TypeAction registerAction7( typeRegistration, ACTION_ACCESSIBILITY_READING_RESUMED, &DoAction ); DALI_TYPE_REGISTRATION_END() diff --git a/dali-toolkit/internal/controls/control/control-data-impl.h b/dali-toolkit/internal/controls/control/control-data-impl.h index abbd0ee..0d00428 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.h +++ b/dali-toolkit/internal/controls/control/control-data-impl.h @@ -465,6 +465,8 @@ public: DevelControl::VisualEventSignalType mVisualEventSignal; Toolkit::DevelControl::AccessibilityActivateSignalType mAccessibilityActivateSignal; Toolkit::DevelControl::AccessibilityReadingSkippedSignalType mAccessibilityReadingSkippedSignal; + Toolkit::DevelControl::AccessibilityReadingPausedSignalType mAccessibilityReadingPausedSignal; + Toolkit::DevelControl::AccessibilityReadingResumedSignalType mAccessibilityReadingResumedSignal; Toolkit::DevelControl::AccessibilityReadingCancelledSignalType mAccessibilityReadingCancelledSignal; Toolkit::DevelControl::AccessibilityReadingStoppedSignalType mAccessibilityReadingStoppedSignal;