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=04c15c44e67a99999283e9d3444c2d2b4fba8019;hp=691f9ab400ce1002cf6d477e1830f807c59ac02e;hb=8a647e87a01c5c78451653c1264a9eea81ac9b20;hpb=d9d91f29650b038915c668a8433a65b01e9d0f2a 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 691f9ab..04c15c4 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,17 +21,14 @@ // EXTERNAL INCLUDES #include // for strcmp #include -#include #include #include #include -#include #include -#include +#include #include #include #include -#include #include #include #include @@ -41,10 +38,10 @@ #include #include #include -#include #include #include #include +#include namespace Dali { @@ -148,7 +145,7 @@ void KeyboardFocusManager::OnAdaptorInit() for( auto iter = sceneHolders.begin(); iter != sceneHolders.end(); ++iter ) { ( *iter ).KeyEventSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent ); - ( *iter ).TouchSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch ); + ( *iter ).TouchedSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch ); Dali::Window window = DevelWindow::DownCast( *iter ); if( window ) { @@ -164,7 +161,7 @@ void KeyboardFocusManager::OnAdaptorInit() void KeyboardFocusManager::OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder ) { sceneHolder.KeyEventSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent ); - sceneHolder.TouchSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch ); + sceneHolder.TouchedSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch ); Dali::Window window = DevelWindow::DownCast( sceneHolder ); if( window ) { @@ -203,7 +200,7 @@ bool KeyboardFocusManager::SetCurrentFocusActor( Actor actor ) bool KeyboardFocusManager::DoSetCurrentFocusActor( Actor actor ) { bool success = false; - if( actor && actor.IsKeyboardFocusable() && actor.OnStage() ) + if( actor && actor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) && actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) ) { Integration::SceneHolder currentWindow = Integration::SceneHolder::Get( actor ); @@ -227,7 +224,7 @@ bool KeyboardFocusManager::DoSetCurrentFocusActor( Actor actor ) } // Check whether the actor is in the stage and is keyboard focusable. - if( actor && actor.IsKeyboardFocusable() && actor.OnStage() ) + if( actor && actor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) && actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) ) { if( ( mIsFocusIndicatorShown == SHOW ) && ( mEnableFocusIndicator == ENABLE ) ) { @@ -301,7 +298,7 @@ Actor KeyboardFocusManager::GetCurrentFocusActor() { Actor actor = mCurrentFocusActor.GetHandle(); - if( actor && ! actor.OnStage() ) + if( actor && ! actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) ) { // If the actor has been removed from the stage, then it should not be focused actor.Reset(); @@ -323,7 +320,7 @@ Actor KeyboardFocusManager::GetFocusActorFromCurrentWindow() } } - if( actor && ! actor.OnStage() ) + if( actor && ! actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) ) { // If the actor has been removed from the window, then the window doesn't have any focused actor actor.Reset(); @@ -353,7 +350,7 @@ void KeyboardFocusManager::MoveFocusBackward() Actor target = mFocusHistory[ mFocusHistory.size() -1 ].GetHandle(); // Impl of Actor is not null - if( target && target.OnStage() ) + if( target && target.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) ) { // Delete pre focused actor in history because it will pushed again by SetCurrentFocusActor() mFocusHistory.pop_back(); @@ -504,7 +501,7 @@ bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocus::Direction } } - if( nextFocusableActor && nextFocusableActor.IsKeyboardFocusable() ) + if( nextFocusableActor && nextFocusableActor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) ) { // Whether the next focusable actor is a layout control if( IsLayoutControl( nextFocusableActor ) ) @@ -530,7 +527,7 @@ bool KeyboardFocusManager::DoMoveFocusWithinLayoutControl(Toolkit::Control contr Actor nextFocusableActor = GetImplementation( control ).GetNextKeyboardFocusableActor(actor, direction, mFocusGroupLoopEnabled); if(nextFocusableActor) { - if(!nextFocusableActor.IsKeyboardFocusable()) + if(!nextFocusableActor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE )) { // If the actor is not focusable, ask the same layout control for the next actor to focus return DoMoveFocusWithinLayoutControl(control, nextFocusableActor, direction); @@ -549,7 +546,7 @@ bool KeyboardFocusManager::DoMoveFocusWithinLayoutControl(Toolkit::Control contr mIsWaitingKeyboardFocusChangeCommit = false; } - if (committedFocusActor && committedFocusActor.IsKeyboardFocusable()) + if (committedFocusActor && committedFocusActor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE )) { // Whether the commited focusable actor is a layout control if(IsLayoutControl(committedFocusActor)) @@ -739,21 +736,16 @@ Actor KeyboardFocusManager::GetFocusIndicatorActor() mFocusIndicatorActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); } - mFocusIndicatorActor.SetParentOrigin( ParentOrigin::CENTER ); - mFocusIndicatorActor.SetAnchorPoint( AnchorPoint::CENTER ); - mFocusIndicatorActor.SetPosition(0.0f, 0.0f); + mFocusIndicatorActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mFocusIndicatorActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + mFocusIndicatorActor.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f)); return mFocusIndicatorActor; } void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) { - AccessibilityAdaptor accessibilityAdaptor = AccessibilityAdaptor::Get(); - bool isAccessibilityEnabled = accessibilityAdaptor.IsEnabled(); - - Toolkit::AccessibilityManager accessibilityManager = Toolkit::AccessibilityManager::Get(); - - std::string keyName = event.keyPressedName; + std::string keyName = event.GetKeyName(); if( mIsFocusIndicatorShown == UNKNOWN ) { @@ -762,11 +754,11 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) bool isFocusStartableKey = false; - if(event.state == KeyEvent::Down) + if(event.GetState() == KeyEvent::DOWN) { if (keyName == "Left") { - if(!isAccessibilityEnabled) + if(!mIsFocusIndicatorShown) { if(mIsFocusIndicatorShown == HIDE) { @@ -783,13 +775,15 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) } else { - // Move the accessibility focus backward - accessibilityManager.MoveFocusBackward(); + // Move the focus towards left + MoveFocus(Toolkit::Control::KeyboardFocus::LEFT); } + + isFocusStartableKey = true; } else if (keyName == "Right") { - if(!isAccessibilityEnabled) + if(!mIsFocusIndicatorShown) { if( mIsFocusIndicatorShown == HIDE ) { @@ -804,13 +798,13 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) } else { - // Move the accessibility focus forward - accessibilityManager.MoveFocusForward(); + // Move the focus towards right + MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT); } isFocusStartableKey = true; } - else if (keyName == "Up" && !isAccessibilityEnabled) + else if (keyName == "Up") { if( mIsFocusIndicatorShown == HIDE ) { @@ -825,7 +819,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "Down" && !isAccessibilityEnabled) + else if (keyName == "Down") { if( mIsFocusIndicatorShown == HIDE ) { @@ -840,7 +834,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "Prior" && !isAccessibilityEnabled) + else if (keyName == "Prior") { if( mIsFocusIndicatorShown == HIDE ) { @@ -855,7 +849,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "Next" && !isAccessibilityEnabled) + else if (keyName == "Next") { if( mIsFocusIndicatorShown == HIDE ) { @@ -870,7 +864,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "Tab" && !isAccessibilityEnabled) + else if (keyName == "Tab") { if( mIsFocusIndicatorShown == HIDE ) { @@ -886,7 +880,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "space" && !isAccessibilityEnabled) + else if (keyName == "space") { if( mIsFocusIndicatorShown == HIDE ) { @@ -896,7 +890,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "" && !isAccessibilityEnabled) + else if (keyName == "") { // Check the fake key event for evas-plugin case if( mIsFocusIndicatorShown == HIDE ) @@ -907,19 +901,19 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) isFocusStartableKey = true; } - else if (keyName == "Backspace" && !isAccessibilityEnabled) + else if (keyName == "Backspace") { // Emit signal to go back to the previous view??? } - else if (keyName == "Escape" && !isAccessibilityEnabled) + else if (keyName == "Escape") { } } - else if(event.state == KeyEvent::Up) + else if(event.GetState() == KeyEvent::UP) { if (keyName == "Return") { - if((mIsFocusIndicatorShown == HIDE) && !isAccessibilityEnabled) + if( mIsFocusIndicatorShown == HIDE ) { // Show focus indicator mIsFocusIndicatorShown = SHOW; @@ -927,16 +921,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) else { // The focused actor has enter pressed on it - Actor actor; - if( !isAccessibilityEnabled ) - { - actor = GetCurrentFocusActor(); - } - else - { - actor = accessibilityManager.GetCurrentFocusActor(); - } - + Actor actor = GetCurrentFocusActor(); if( actor ) { DoKeyboardEnter( actor ); @@ -947,7 +932,7 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) } } - if(isFocusStartableKey && ( mIsFocusIndicatorShown == SHOW ) && !isAccessibilityEnabled) + if( isFocusStartableKey && mIsFocusIndicatorShown == SHOW ) { Actor actor = GetCurrentFocusActor(); if( actor ) @@ -964,10 +949,11 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) // Let's try to move the initial focus MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT); } + } } -void KeyboardFocusManager::OnTouch(const TouchData& touch) +void KeyboardFocusManager::OnTouch(const TouchEvent& touch) { // if mIsFocusIndicatorShown is UNKNOWN, it means Configuration is not loaded. // Try to load configuration.