X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffocus-manager%2Fkeyboard-focus-manager-impl.cpp;h=fb20d56f6835d281b74b992ac2f2278737dba043;hp=44041ba8dde25c3c048994a6f207584817727d4e;hb=a78bb823aebc305823855ac35b3413aaff7bc684;hpb=1b1e10a3f4e486553200d8ddeb57d953c2284579 diff --git a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp index 44041ba..fb20d56 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp @@ -19,21 +19,23 @@ #include "keyboard-focus-manager-impl.h" // EXTERNAL INCLUDES +#include // for strcmp #include -#include -#include +#include +#include #include #include #include #include +#include #include +#include // INTERNAL INCLUDES #include #include #include #include -#include namespace Dali { @@ -44,23 +46,16 @@ namespace Toolkit namespace Internal { -namespace // unnamed namespace +namespace // Unnamed namespace { -// Signals - -const char* const SIGNAL_PRE_FOCUS_CHANGE = "keyboard-pre-focus-change"; -const char* const SIGNAL_FOCUS_CHANGED = "keyboard-focus-changed"; -const char* const SIGNAL_FOCUS_GROUP_CHANGED = "keyboard-focus-group-changed"; -const char* const SIGNAL_FOCUSED_ACTOR_ACTIVATED = "keyboard-focused-actor-activated"; - #if defined(DEBUG_ENABLED) Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_KEYBOARD_FOCUS_MANAGER"); #endif -const std::string IS_FOCUS_GROUP_PROPERTY_NAME("is-keyboard-focus-group"); // This property will be replaced by a flag in Control. +const char* const IS_FOCUS_GROUP_PROPERTY_NAME = "is-keyboard-focus-group"; // This property will be replaced by a flag in Control. -const char* FOCUS_BORDER_IMAGE_PATH = DALI_IMAGE_DIR "keyboard_focus.png"; +const char* const FOCUS_BORDER_IMAGE_PATH = DALI_IMAGE_DIR "keyboard_focus.png"; const Vector4 FOCUS_BORDER_IMAGE_BORDER = Vector4(7.0f, 7.0f, 7.0f, 7.0f); BaseHandle Create() @@ -81,12 +76,14 @@ BaseHandle Create() return handle; } -TypeRegistration KEYBOARD_FOCUS_MANAGER_TYPE( typeid(Dali::Toolkit::KeyboardFocusManager), typeid(Dali::BaseHandle), Create, true /* Create instance at startup */ ); +DALI_TYPE_REGISTRATION_BEGIN_CREATE( Toolkit::KeyboardFocusManager, Dali::BaseHandle, Create, true ) + +DALI_SIGNAL_REGISTRATION( Toolkit, KeyboardFocusManager, "keyboard-pre-focus-change", SIGNAL_PRE_FOCUS_CHANGE ) +DALI_SIGNAL_REGISTRATION( Toolkit, KeyboardFocusManager, "keyboard-focus-changed", SIGNAL_FOCUS_CHANGED ) +DALI_SIGNAL_REGISTRATION( Toolkit, KeyboardFocusManager, "keyboard-focus-group-changed", SIGNAL_FOCUS_GROUP_CHANGED ) +DALI_SIGNAL_REGISTRATION( Toolkit, KeyboardFocusManager, "keyboard-focused-actor-activated", SIGNAL_FOCUSED_ACTOR_ACTIVATED ) -SignalConnectorType signalConnector1( KEYBOARD_FOCUS_MANAGER_TYPE, SIGNAL_PRE_FOCUS_CHANGE , &KeyboardFocusManager::DoConnectSignal ); -SignalConnectorType signalConnector2( KEYBOARD_FOCUS_MANAGER_TYPE, SIGNAL_FOCUS_CHANGED , &KeyboardFocusManager::DoConnectSignal ); -SignalConnectorType signalConnector3( KEYBOARD_FOCUS_MANAGER_TYPE, SIGNAL_FOCUS_GROUP_CHANGED , &KeyboardFocusManager::DoConnectSignal ); -SignalConnectorType signalConnector4( KEYBOARD_FOCUS_MANAGER_TYPE, SIGNAL_FOCUSED_ACTOR_ACTIVATED , &KeyboardFocusManager::DoConnectSignal ); +DALI_TYPE_REGISTRATION_END() } // unnamed namespace @@ -198,7 +195,7 @@ Actor KeyboardFocusManager::GetCurrentFocusGroup() bool KeyboardFocusManager::IsLayoutControl(Actor actor) const { Toolkit::Control control = Toolkit::Control::DownCast(actor); - return control && control.GetImplementation().IsKeyboardNavigationSupported(); + return control && GetImplementation( control ).IsKeyboardNavigationSupported(); } Toolkit::Control KeyboardFocusManager::GetParentLayoutControl(Actor actor) const @@ -219,7 +216,7 @@ Toolkit::Control KeyboardFocusManager::GetParentLayoutControl(Actor actor) const return Toolkit::Control::DownCast(parent); } -bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocusNavigationDirection direction) +bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocus::Direction direction) { Actor currentFocusActor = GetCurrentFocusActor(); @@ -260,10 +257,10 @@ bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocusNavigationDi return succeed; } -bool KeyboardFocusManager::DoMoveFocusWithinLayoutControl(Toolkit::Control control, Actor actor, Toolkit::Control::KeyboardFocusNavigationDirection direction) +bool KeyboardFocusManager::DoMoveFocusWithinLayoutControl(Toolkit::Control control, Actor actor, Toolkit::Control::KeyboardFocus::Direction direction) { // Ask the control for the next actor to focus - Actor nextFocusableActor = control.GetImplementation().GetNextKeyboardFocusableActor(actor, direction, mFocusGroupLoopEnabled); + Actor nextFocusableActor = GetImplementation( control ).GetNextKeyboardFocusableActor(actor, direction, mFocusGroupLoopEnabled); if(nextFocusableActor) { if(!nextFocusableActor.IsKeyboardFocusable()) @@ -302,7 +299,7 @@ bool KeyboardFocusManager::DoMoveFocusWithinLayoutControl(Toolkit::Control contr // If the application hasn't changed our proposed actor, we informs the layout control we will // move the focus to what the control returns. The control might wish to perform some actions // before the focus is actually moved. - control.GetImplementation().OnKeyboardFocusChangeCommitted(committedFocusActor); + GetImplementation( control ).OnKeyboardFocusChangeCommitted( committedFocusActor ); } return SetCurrentFocusActor(committedFocusActor); @@ -332,7 +329,7 @@ bool KeyboardFocusManager::DoMoveFocusToNextFocusGroup(bool forward) { // If the current focus group has a parent layout control, we can probably automatically // move the focus to the next focus group in the forward or backward direction. - Toolkit::Control::KeyboardFocusNavigationDirection direction = forward ? Toolkit::Control::Right : Toolkit::Control::Left; + Toolkit::Control::KeyboardFocus::Direction direction = forward ? Toolkit::Control::KeyboardFocus::RIGHT : Toolkit::Control::KeyboardFocus::LEFT; succeed = DoMoveFocusWithinLayoutControl(parentLayoutControl, GetCurrentFocusActor(), direction); parentLayoutControl = GetParentLayoutControl(parentLayoutControl); } @@ -354,7 +351,7 @@ void KeyboardFocusManager::DoActivate(Actor actor) if(control) { // Notify the control that it is activated - control.GetImplementation().Activate(); + GetImplementation( control ).AccessibilityActivate(); } // Send notification for the activation of focused actor @@ -481,10 +478,7 @@ void KeyboardFocusManager::CreateDefaultFocusIndicatorActor() focusIndicator.SetPosition(Vector3(0.0f, 0.0f, 1.0f)); // Apply size constraint to the focus indicator - Constraint constraint = Constraint::New(Actor::SIZE, - ParentSource(Actor::SIZE), - EqualToConstraint()); - focusIndicator.ApplyConstraint(constraint); + focusIndicator.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); SetFocusIndicatorActor(focusIndicator); } @@ -548,7 +542,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) else { // Move the focus towards left - MoveFocus(Toolkit::Control::Left); + MoveFocus(Toolkit::Control::KeyboardFocus::LEFT); } isFocusStartableKey = true; @@ -571,7 +565,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) else { // Move the focus towards right - MoveFocus(Toolkit::Control::Right); + MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT); } } else @@ -592,7 +586,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) else { // Move the focus towards up - MoveFocus(Toolkit::Control::Up); + MoveFocus(Toolkit::Control::KeyboardFocus::UP); } isFocusStartableKey = true; @@ -607,7 +601,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) else { // Move the focus towards down - MoveFocus(Toolkit::Control::Down); + MoveFocus(Toolkit::Control::KeyboardFocus::DOWN); } isFocusStartableKey = true; @@ -693,7 +687,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) { // No actor is focused but keyboard focus is activated by the key press // Let's try to move the initial focus - MoveFocus(Toolkit::Control::Right); + MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT); } else if(mFocusIndicatorActor) {