return mIsWrapped;
}
-void FocusManager::SetEndCapFeedbackEnabled(bool enabled)
-{
- mIsEndcapFeedbackEnabled = enabled;
-}
-
-bool FocusManager::GetEndCapFeedbackEnabled() const
-{
- return mIsEndcapFeedbackEnabled;
-}
-
void FocusManager::SetFocusIndicatorActor(Actor indicator)
{
mFocusIndicatorActor = indicator;
if( (forward && ++focusIDIter == mFocusIDContainer.end())
|| (!forward && focusIDIter-- == mFocusIDContainer.begin()) )
{
- if(wrapped)
+ if(mIsEndcapFeedbackEnabled)
{
- if(mIsEndcapFeedbackEnabled)
+ if(mIsEndcapFeedbackPlayed == false)
{
- if(mIsEndcapFeedbackPlayed == false)
- {
- // play sound & skip to move once
- Dali::SoundPlayer soundPlayer = Dali::SoundPlayer::Get();
- soundPlayer.PlaySound(FOCUS_CHAIN_END_SOUND_FILE);
+ // play sound & skip moving once
+ Dali::SoundPlayer soundPlayer = Dali::SoundPlayer::Get();
+ soundPlayer.PlaySound(FOCUS_CHAIN_END_SOUND_FILE);
- mIsEndcapFeedbackPlayed = true;
- return true;
- }
- mIsEndcapFeedbackPlayed = false;
+ mIsEndcapFeedbackPlayed = true;
+ return true;
}
+ mIsEndcapFeedbackPlayed = false;
+ }
+ if(wrapped)
+ {
if(forward)
{
focusIDIter = mFocusIDContainer.begin();
}
else
{
- if(mIsEndcapFeedbackEnabled)
- {
- Dali::SoundPlayer soundPlayer = Dali::SoundPlayer::Get();
- soundPlayer.PlaySound(FOCUS_CHAIN_END_SOUND_FILE);
- }
-
DALI_LOG_INFO( gLogFilter, Debug::General, "[%s:%d] Overshot\n", __FUNCTION__, __LINE__);
// Send notification for handling overshooted situation
mFocusOvershotSignalV2.Emit(GetCurrentFocusActor(), forward ? Toolkit::FocusManager::OVERSHOT_NEXT : Toolkit::FocusManager::OVERSHOT_PREVIOUS);
return true;
}
-bool FocusManager::AccessibilityActionNext()
+bool FocusManager::AccessibilityActionNext(bool allowEndFeedback)
{
if(mIsAccessibilityTtsEnabled)
{
+ mIsEndcapFeedbackEnabled = allowEndFeedback;
return MoveFocusForward();
}
else
}
}
-bool FocusManager::AccessibilityActionPrevious()
+bool FocusManager::AccessibilityActionPrevious(bool allowEndFeedback)
{
if(mIsAccessibilityTtsEnabled)
{
+ mIsEndcapFeedbackEnabled = allowEndFeedback;
return MoveFocusBackward();
}
else
return ret;
}
-bool FocusManager::AccessibilityActionReadNext()
+bool FocusManager::AccessibilityActionReadNext(bool allowEndFeedback)
{
if(mIsAccessibilityTtsEnabled)
{
}
}
-bool FocusManager::AccessibilityActionReadPrevious()
+bool FocusManager::AccessibilityActionReadPrevious(bool allowEndFeedback)
{
if(mIsAccessibilityTtsEnabled)
{
return mIsAccessibilityTtsEnabled;
}
+bool FocusManager::AccessibilityActionTouch(const TouchEvent& touchEvent)
+{
+ bool handled = false;
+
+ // TODO: Need to convert the touchevent for the focused actor?
+
+ Dali::Toolkit::Control control = Dali::Toolkit::Control::DownCast(GetCurrentFocusActor());
+ if(control)
+ {
+ handled = control.GetImplementation().OnAccessibilityTouch(touchEvent);
+ }
+
+ return handled;
+}
+
bool FocusManager::HandlePanGesture(const Integration::PanGestureEvent& panEvent)
{
bool handled = false;
bool GetWrapMode() const;
/**
- * @copydoc Toolkit::FocusManager::SetEndCapFeedbackEnabled
- */
- void SetEndCapFeedbackEnabled(bool enabled);
-
- /**
- * @copydoc Toolkit::FocusManager::GetEndCapFeedbackEnabled
- */
- bool GetEndCapFeedbackEnabled() const;
-
- /**
* @copydoc Toolkit::FocusManager::SetFocusIndicatorActor
*/
void SetFocusIndicatorActor(Actor indicator);
/**
* 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.
*/
- virtual bool AccessibilityActionPrevious();
+ virtual bool AccessibilityActionPrevious(bool allowEndFeedback);
/**
* 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.
*/
- virtual bool AccessibilityActionNext();
+ virtual bool AccessibilityActionNext(bool allowEndFeedback);
/**
* 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.
*/
- virtual bool AccessibilityActionReadPrevious();
+ virtual bool AccessibilityActionReadPrevious(bool allowEndFeedback);
/**
* 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.
*/
- virtual bool AccessibilityActionReadNext();
+ virtual bool AccessibilityActionReadNext(bool allowEndFeedback);
/**
* Perform the accessibility action to focus and read the actor (by one finger tap or move).
*/
virtual bool AccessibilityActionBack();
+ /**
+ * Perform the accessibility action to mouse move (by one finger tap & hold and move).
+ * @param touchEvent touch event structure
+ * @return whether the accessibility action is performed or not.
+ */
+ virtual bool AccessibilityActionTouch(const TouchEvent& touchEvent);
+
private:
// Undefined
return false; // Accessibility pan gesture is not handled by default
}
+bool Control::OnAccessibilityTouch(const TouchEvent& touchEvent)
+{
+ return false; // Accessibility touch event is not handled by default
+}
+
bool Control::OnAccessibilityValueChange(bool isIncrease)
{
return false; // Accessibility value change action is not handled by default
return GetImpl(*this).GetWrapMode();
}
-void FocusManager::SetEndCapFeedbackEnabled(bool enabled)
-{
- GetImpl(*this).SetEndCapFeedbackEnabled(enabled);
-}
-
-bool FocusManager::GetEndCapFeedbackEnabled() const
-{
- return GetImpl(*this).GetEndCapFeedbackEnabled();
-}
-
void FocusManager::SetFocusIndicatorActor(Actor indicator)
{
GetImpl(*this).SetFocusIndicatorActor(indicator);
virtual bool OnAccessibilityPan(PanGesture gesture);
/**
+ * @brief This method should be overridden by deriving classes when they wish to respond the accessibility
+ * touch event.
+ *
+ * @param[in] touchEvent The touch event.
+ * @return true if the touch event has been consumed by this control
+ */
+ virtual bool OnAccessibilityTouch(const TouchEvent& touchEvent);
+
+ /**
* @brief This method should be overridden by deriving classes when they wish to respond
* the accessibility up and down action (i.e. value change of slider control).
*
bool GetWrapMode() const;
/**
- * @brief Set whether focus manager will play a feedback when the focus leaves the end or vice versa.
- *
- * If wrap mode is enabled, the feedback will be played once. In next time, focus will move continueously.
- * Otherwise, feedback will be played with overshot signal
- *
- * @pre The FocusManager has been initialized.
- * @param enabled Whether the endcap feedback is enabled or not
- */
- void SetEndCapFeedbackEnabled(bool enabled);
-
- /**
- * @brief Get whether the endcap feedback is enabled or not.
- *
- * @pre The FocusManager has been initialized.
- * @return Whether the endcap feedback is enabled or not.
- */
- bool GetEndCapFeedbackEnabled() const;
-
- /**
* @brief Set the focus indicator actor.
*
* This will replace the default focus indicator actor in