[Tizen] 1. Implement FocusFinder 87/267487/1
authorJoogab Yun <joogab.yun@samsung.com>
Fri, 16 Apr 2021 07:19:35 +0000 (16:19 +0900)
committerjoogab.yun <joogab.yun@samsung.com>
Mon, 6 Dec 2021 06:45:55 +0000 (15:45 +0900)
commitc426dd18a9eff6de4c2d80e91230400673f1136b
tree2459ef5aec00182d9f46b7baf29cc2dfb48b4109
parentb8a8602d476be1e0d69700fc4a4b0de389734835
[Tizen] 1. Implement FocusFinder

The class used for finding the next focusable actor in a given direction
from a actor that currently has focus.

2. Change FocusFinder to a method

3. Add Tab key focus movement.

If the focus group is not changed, Move the focus towards right, "Shift-Tap" key moves the focus towards left.
Still if the focus is not moved, Move the focus towards down, "Shift-Tap" key moves the focus towards up.

4. Users can implement focus movement by SetCustomAlgorithm.
So User implemented focus movement by SetCustomAlgorithm(AutoFocusAlgorithm.Instance);
And if user do SetCustomAlgorithm(null), the user expects the focus not to move.
this is for backward-compatibility.
Add EnableDefaultAlgorithm() and IsDefaultAlgorithmEnabled() for enable/disable the default algorithm

5. Fixed bug

6. Fixed IsCandidate bug

7. Check if actor can be focused.

8. If parent is hidden, the child cannot be focused.

Change-Id: Ieebaafc31fe5e943a63b8e2a079335eb578ab0cd
automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp
dali-toolkit/devel-api/file.list
dali-toolkit/devel-api/focus-manager/focus-finder.cpp [new file with mode: 0644]
dali-toolkit/devel-api/focus-manager/focus-finder.h [new file with mode: 0644]
dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.cpp
dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h
dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp
dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h