From: Adeel Kazmi Date: Thu, 9 Aug 2018 08:36:07 +0000 (+0000) Subject: Merge "Adding GridLayout" into devel/master X-Git-Tag: dali_1.3.36~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=2dd55c62173e94588e4bb45e263a32b3d77af65a;hp=d37b7a6f3e1530fbe9de36ed3d259761fbf1679f Merge "Adding GridLayout" into devel/master --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp index 8b9547a..1b82c49 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -1425,3 +1425,39 @@ int UtcDaliKeyboardFocusManagerFocusedActorUnstaged(void) END_TEST; } + +int UtcDaliKeyboardFocusManagerEnableFocusIndicator(void) +{ + ToolkitTestApplication application; + + tet_infoline( "Ensure we cannot set an actor to be focused if it is not staged and that we do not retrieve an actor if it has been unstaged" ); + + KeyboardFocusManager manager = KeyboardFocusManager::Get(); + DALI_TEST_CHECK( ! manager.GetCurrentFocusActor() ); + + Actor actor = Actor::New(); + actor.SetKeyboardFocusable( true ); + Stage::GetCurrent().Add( actor ); + manager.SetCurrentFocusActor( actor ); + + // Press Any key to notice physical keyboard event is comming to KeyboardFocusManager + // It makes mIsFocusIndicatorEnabled true and add focus indicator to focused actor. + Integration::KeyEvent rightEvent( "Right", "", 0, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ); + application.ProcessEvent(rightEvent); + + Actor indicatorActor = manager.GetFocusIndicatorActor(); + + tet_infoline( "Indicator is added to focused actor" ); + DALI_TEST_CHECK( actor == indicatorActor.GetParent() ); + + Dali::Toolkit::DevelKeyboardFocusManager::EnableFocusIndicator(manager, false); + DALI_TEST_CHECK( !Dali::Toolkit::DevelKeyboardFocusManager::IsFocusIndicatorEnabled(manager) ); + + tet_infoline( "Indicator is removed from focused actor because mUseFocusIndicator is false" ); + DALI_TEST_CHECK( !indicatorActor.GetParent() ); + + END_TEST; +} + + + diff --git a/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.cpp b/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.cpp index a56ece5..17645b9 100644 --- a/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.cpp +++ b/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.cpp @@ -33,6 +33,16 @@ void SetCustomAlgorithm(KeyboardFocusManager keyboardFocusManager, CustomAlgorit GetImpl(keyboardFocusManager).SetCustomAlgorithm(interface); } +void EnableFocusIndicator(KeyboardFocusManager keyboardFocusManager, bool enable) +{ + GetImpl(keyboardFocusManager).EnableFocusIndicator(enable); +} + +bool IsFocusIndicatorEnabled(KeyboardFocusManager keyboardFocusManager) +{ + return GetImpl(keyboardFocusManager).IsFocusIndicatorEnabled(); +} + } // namespace DevelKeyboardFocusManager } // namespace Toolkit diff --git a/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h b/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h index 4aa1887..dd59fcd 100644 --- a/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h +++ b/dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h @@ -71,6 +71,22 @@ public: */ DALI_TOOLKIT_API void SetCustomAlgorithm(KeyboardFocusManager keyboardFocusManager, CustomAlgorithmInterface& interface); +/** + * @brief Decide using focus indicator or not + * + * @param[in] keyboardFocusManager The instance of KeyboardFocusManager + * @param[in] enable Whether using focus indicator or not + */ +DALI_TOOLKIT_API void EnableFocusIndicator(KeyboardFocusManager keyboardFocusManager, bool enable); + +/** + * @brief Check focus indicator is enabled or not + * + * @param[in] keyboardFocusManager The instance of KeyboardFocusManager + * @return True when focus indicator is enabled + */ +DALI_TOOLKIT_API bool IsFocusIndicatorEnabled(KeyboardFocusManager keyboardFocusManager); + } // namespace DevelKeyboardFocusManager } // namespace Toolkit 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 9e34984..a20808c 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp @@ -123,6 +123,7 @@ KeyboardFocusManager::KeyboardFocusManager() mFocusGroupLoopEnabled( false ), mIsWaitingKeyboardFocusChangeCommit( false ), mClearFocusOnTouch( true ), + mEnableFocusIndicator( true ), mFocusHistory(), mSlotDelegate( this ), mCustomAlgorithmInterface(NULL) @@ -178,7 +179,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( mIsFocusIndicatorEnabled ) + if( mIsFocusIndicatorEnabled && mEnableFocusIndicator ) { actor.Add( GetFocusIndicatorActor() ); } @@ -836,8 +837,11 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event) Actor actor = GetCurrentFocusActor(); if( actor ) { - // Make sure the focused actor is highlighted - actor.Add( GetFocusIndicatorActor() ); + if( mEnableFocusIndicator ) + { + // Make sure the focused actor is highlighted + actor.Add( GetFocusIndicatorActor() ); + } } else { @@ -923,6 +927,21 @@ void KeyboardFocusManager::SetCustomAlgorithm(CustomAlgorithmInterface& interfac mCustomAlgorithmInterface = &interface; } +void KeyboardFocusManager::EnableFocusIndicator(bool enable) +{ + if( !enable && mFocusIndicatorActor ) + { + mFocusIndicatorActor.Unparent(); + } + + mEnableFocusIndicator = enable; +} + +bool KeyboardFocusManager::IsFocusIndicatorEnabled() const +{ + return mEnableFocusIndicator; +} + } // namespace Internal } // namespace Toolkit diff --git a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h index ad87b55..be69ce0 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h @@ -120,6 +120,16 @@ public: */ void SetCustomAlgorithm(CustomAlgorithmInterface& interface); + /** + * @copydoc Toolkit::DevelKeyboardFocusManager::UseFocusIndicator + */ + void EnableFocusIndicator(bool enable); + + /** + * @copydoc Toolkit::DevelKeyboardFocusManager::UseFocusIndicator + */ + bool IsFocusIndicatorEnabled() const; + public: /** @@ -267,6 +277,8 @@ private: bool mClearFocusOnTouch:1; ///< Whether clear focus on touch. + bool mEnableFocusIndicator; ///< Whether use focus indicator + FocusStack mFocusHistory; ///< Stack to contain pre-focused actor's BaseObject* SlotDelegate< KeyboardFocusManager > mSlotDelegate; diff --git a/dali-toolkit/internal/image-loader/image-load-thread.cpp b/dali-toolkit/internal/image-loader/image-load-thread.cpp index 857a55b..74d3e39 100644 --- a/dali-toolkit/internal/image-loader/image-load-thread.cpp +++ b/dali-toolkit/internal/image-loader/image-load-thread.cpp @@ -21,6 +21,7 @@ // EXTERNAL INCLUDES #include #include +#include namespace Dali { @@ -74,6 +75,7 @@ ImageLoadThread::~ImageLoadThread() void ImageLoadThread::Run() { + SetThreadName( "ImageLoadThread" ); mLogFactory.InstallLogFunction(); while( LoadingTask* task = NextTaskToProcess() ) diff --git a/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.cpp b/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.cpp index 53cb7e3..13140a7 100644 --- a/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.cpp @@ -21,6 +21,7 @@ // INTERNAL INCLUDES #include #include +#include namespace Dali { @@ -221,6 +222,7 @@ void SvgRasterizeThread::AddCompletedTask( RasterizingTaskPtr task ) void SvgRasterizeThread::Run() { + SetThreadName( "SVGThread" ); while( RasterizingTaskPtr task = NextTaskToProcess() ) { task->Rasterize( mRasterizer );