From 2aa1f9512df87dfd031ed27eb4f006741f967a65 Mon Sep 17 00:00:00 2001 From: Adeel Kazmi Date: Tue, 14 Jul 2020 15:12:06 +0100 Subject: [PATCH] Add methods to Application & Adaptor classes to retrieve the ObjectRegistry Change-Id: I249478a4b3246d4cf07681fc5239cc9c569577a1 --- .../src/dali-adaptor/utc-Dali-Application.cpp | 7 +++++++ .../src/dali-adaptor/utc-Dali-PixelBuffer.cpp | 4 ++-- dali/integration-api/adaptor-framework/adaptor.h | 7 +++++++ dali/internal/adaptor/common/adaptor-impl.cpp | 22 +++++++++++++++++----- dali/internal/adaptor/common/adaptor-impl.h | 5 +++++ dali/internal/adaptor/common/adaptor.cpp | 6 ++++++ dali/internal/adaptor/common/application-impl.cpp | 11 +++++++++++ dali/internal/adaptor/common/application-impl.h | 5 +++++ dali/public-api/adaptor-framework/application.cpp | 6 ++++++ dali/public-api/adaptor-framework/application.h | 12 ++++++++++++ 10 files changed, 78 insertions(+), 7 deletions(-) mode change 100755 => 100644 dali/integration-api/adaptor-framework/adaptor.h mode change 100755 => 100644 dali/internal/adaptor/common/adaptor-impl.cpp mode change 100755 => 100644 dali/internal/adaptor/common/adaptor-impl.h mode change 100755 => 100644 dali/internal/adaptor/common/adaptor.cpp mode change 100755 => 100644 dali/internal/adaptor/common/application-impl.cpp mode change 100755 => 100644 dali/internal/adaptor/common/application-impl.h diff --git a/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp b/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp index a127398..b37574b 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-Application.cpp @@ -537,3 +537,10 @@ int UtcDaliApplicationGetLanguageP(void) END_TEST; } + +int UtcDaliApplicationGetObjectRegistryN(void) +{ + Application application = Application::New(); + DALI_TEST_CHECK( !application.GetObjectRegistry() ); + END_TEST; +} diff --git a/automated-tests/src/dali-adaptor/utc-Dali-PixelBuffer.cpp b/automated-tests/src/dali-adaptor/utc-Dali-PixelBuffer.cpp index 9123b19..47d3138 100644 --- a/automated-tests/src/dali-adaptor/utc-Dali-PixelBuffer.cpp +++ b/automated-tests/src/dali-adaptor/utc-Dali-PixelBuffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 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. @@ -244,7 +244,7 @@ int UtcDaliPixelBufferConvert(void) a.AddRenderer(r); a.SetProperty( Actor::Property::SIZE, Vector2(10, 10) ); a.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); - Stage::GetCurrent().Add(a); + application.GetScene().Add(a); application.SendNotification(); application.Render(); diff --git a/dali/integration-api/adaptor-framework/adaptor.h b/dali/integration-api/adaptor-framework/adaptor.h old mode 100755 new mode 100644 index 7ad1912..4f708e4 --- a/dali/integration-api/adaptor-framework/adaptor.h +++ b/dali/integration-api/adaptor-framework/adaptor.h @@ -36,6 +36,7 @@ namespace Dali { +class ObjectRegistry; class RenderSurfaceInterface; using WindowContainer = std::vector; @@ -477,6 +478,12 @@ public: SceneHolderList GetSceneHolders() const; /** + * @brief Gets the Object registry. + * @return The object registry + */ + Dali::ObjectRegistry GetObjectRegistry() const; + + /** * @brief Called when the window becomes fully or partially visible. */ void OnWindowShown(); diff --git a/dali/internal/adaptor/common/adaptor-impl.cpp b/dali/internal/adaptor/common/adaptor-impl.cpp old mode 100755 new mode 100644 index 58f9c85..d1600e9 --- a/dali/internal/adaptor/common/adaptor-impl.cpp +++ b/dali/internal/adaptor/common/adaptor-impl.cpp @@ -22,9 +22,9 @@ // EXTERNAL INCLUDES #include #include -#include #include #include +#include #include #include #include @@ -1130,6 +1130,16 @@ Dali::SceneHolderList Adaptor::GetSceneHolders() const return sceneHolderList; } +Dali::ObjectRegistry Adaptor::GetObjectRegistry() const +{ + Dali::ObjectRegistry registry; + if( mCore ) + { + registry = mCore->GetObjectRegistry(); + } + return registry; +} + Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor, Dali::RenderSurfaceInterface* surface, EnvironmentOptions* environmentOptions) : mResizedSignal(), mLanguageChangedSignal(), @@ -1168,10 +1178,12 @@ Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor, void Adaptor::SetRootLayoutDirection( std::string locale ) { - Dali::Stage stage = Dali::Stage::GetCurrent(); - - stage.GetRootLayer().SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, - static_cast< LayoutDirection::Type >( Internal::Adaptor::Locale::GetDirection( std::string( locale ) ) ) ); + for ( auto& window : mWindows ) + { + Dali::Actor root = window->GetRootLayer(); + root.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, + static_cast< LayoutDirection::Type >( Internal::Adaptor::Locale::GetDirection( std::string( locale ) ) ) ); + } } bool Adaptor::AddIdleEnterer( CallbackBase* callback, bool forceAdd ) diff --git a/dali/internal/adaptor/common/adaptor-impl.h b/dali/internal/adaptor/common/adaptor-impl.h old mode 100755 new mode 100644 index 151a4b1..115f78a --- a/dali/internal/adaptor/common/adaptor-impl.h +++ b/dali/internal/adaptor/common/adaptor-impl.h @@ -315,6 +315,11 @@ public: // AdaptorInternalServices implementation */ Dali::SceneHolderList GetSceneHolders() const; + /** + * @copydoc Dali::Adaptor::GetObjectRegistry() + */ + Dali::ObjectRegistry GetObjectRegistry() const; + public: /** diff --git a/dali/internal/adaptor/common/adaptor.cpp b/dali/internal/adaptor/common/adaptor.cpp old mode 100755 new mode 100644 index 9551d82..cbb3d19 --- a/dali/internal/adaptor/common/adaptor.cpp +++ b/dali/internal/adaptor/common/adaptor.cpp @@ -19,6 +19,7 @@ #include // EXTERNAL INCLUDES +#include #include // INTERNAL INCLUDES @@ -270,6 +271,11 @@ SceneHolderList Adaptor::GetSceneHolders() const return mImpl->GetSceneHolders(); } +Dali::ObjectRegistry Adaptor::GetObjectRegistry() const +{ + return mImpl->GetObjectRegistry(); +} + void Adaptor::OnWindowShown() { mImpl->OnWindowShown(); diff --git a/dali/internal/adaptor/common/application-impl.cpp b/dali/internal/adaptor/common/application-impl.cpp old mode 100755 new mode 100644 index a4a0825..d626def --- a/dali/internal/adaptor/common/application-impl.cpp +++ b/dali/internal/adaptor/common/application-impl.cpp @@ -19,6 +19,7 @@ #include // EXTERNAL INCLUDES +#include #include #include @@ -361,6 +362,16 @@ std::string Application::GetLanguage() const return mFramework->GetLanguage(); } +Dali::ObjectRegistry Application::GetObjectRegistry() const +{ + Dali::ObjectRegistry objectRegistry; + if( mAdaptor ) + { + objectRegistry = mAdaptor->GetObjectRegistry(); + } + return objectRegistry; +} + Dali::Adaptor& Application::GetAdaptor() { return *mAdaptor; diff --git a/dali/internal/adaptor/common/application-impl.h b/dali/internal/adaptor/common/application-impl.h old mode 100755 new mode 100644 index 53f8556..d8d7363 --- a/dali/internal/adaptor/common/application-impl.h +++ b/dali/internal/adaptor/common/application-impl.h @@ -137,6 +137,11 @@ public: std::string GetLanguage() const; /** + * @copydoc Dali::Application::GetObjectRegistry(); + */ + Dali::ObjectRegistry GetObjectRegistry() const; + + /** * @copydoc Dali::Application::GetResourcePath(); */ static std::string GetResourcePath(); diff --git a/dali/public-api/adaptor-framework/application.cpp b/dali/public-api/adaptor-framework/application.cpp index 3986735..b0f7b2a 100644 --- a/dali/public-api/adaptor-framework/application.cpp +++ b/dali/public-api/adaptor-framework/application.cpp @@ -19,6 +19,7 @@ #include // EXTERNAL INCLUDES +#include #include // INTERNAL INCLUDES @@ -195,6 +196,11 @@ std::string Application::GetLanguage() const return Internal::Adaptor::GetImplementation(*this).GetLanguage(); } +ObjectRegistry Application::GetObjectRegistry() const +{ + return Internal::Adaptor::GetImplementation(*this).GetObjectRegistry(); +} + Application::AppSignalType& Application::InitSignal() { return Internal::Adaptor::GetImplementation(*this).InitSignal(); diff --git a/dali/public-api/adaptor-framework/application.h b/dali/public-api/adaptor-framework/application.h index b2eba8e..c264e46 100644 --- a/dali/public-api/adaptor-framework/application.h +++ b/dali/public-api/adaptor-framework/application.h @@ -29,6 +29,9 @@ namespace Dali { + +class ObjectRegistry; + /** * @addtogroup dali_adaptor_framework * @{ @@ -302,6 +305,15 @@ public: */ std::string GetLanguage() const; + /** + * @brief Gets the Object registry. + * + * @SINCE_1_9.21 + * @return The object registry + * @note This will only be a valid handle after the InitSignal has been emitted. + */ + ObjectRegistry GetObjectRegistry() const; + public: // Signals /** -- 2.7.4