Merge "When calculating the layout size, the problem occurs. because it is calculated...
authorjoogab yun <joogab.yun@samsung.com>
Thu, 5 Mar 2020 04:47:29 +0000 (04:47 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Thu, 5 Mar 2020 04:47:29 +0000 (04:47 +0000)
26 files changed:
automated-tests/src/dali-toolkit-internal/CMakeLists.txt
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-CharacterSetConversion.cpp
automated-tests/src/dali-toolkit-styling/CMakeLists.txt
automated-tests/src/dali-toolkit/CMakeLists.txt
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-feedback-player.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-input-method-context.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-input-method-context.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.cpp [deleted file]
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.h [deleted file]
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-sound-player.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-test-application.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-text-abstraction.cpp
dali-toolkit/devel-api/focus-manager/keyinput-focus-manager.cpp
dali-toolkit/devel-api/visual-factory/visual-factory.cpp
dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp
dali-toolkit/internal/styling/style-manager-impl.cpp
dali-toolkit/internal/text/character-set-conversion.cpp
dali-toolkit/internal/text/multi-language-support-impl.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.cpp
dali-toolkit/internal/text/rendering/text-backend-impl.cpp
dali-toolkit/internal/text/rendering/vector-based/vector-blob-atlas-share.cpp
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/visuals/npatch-loader.h
dali-toolkit/public-api/accessibility-manager/accessibility-manager.cpp
dali-toolkit/public-api/dali-toolkit-version.cpp
packaging/dali-toolkit.spec

index 9954a74..650bbee 100755 (executable)
@@ -47,7 +47,6 @@ LIST(APPEND TC_SOURCES
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-orientation.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-physical-keyboard.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-style-monitor.cpp
-   ../dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-test-application.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-timer.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-tts-player.cpp
index 3175baf..f3725d2 100755 (executable)
@@ -134,6 +134,8 @@ int UtcDaliTextCharacterSetConversionGetUtf8Length(void)
   const static uint8_t U2 = 2u;
   const static uint8_t U3 = 3u;
   const static uint8_t U4 = 4u;
+  const static uint8_t U5 = 5u;
+  const static uint8_t U6 = 6u;
   const static uint8_t U0 = 0u;
   const static uint8_t UTF8_LENGTH[256] = {
     U1, U1, U1, U1, U1, U1, U1, U1, U1, U1, //
@@ -167,8 +169,11 @@ int UtcDaliTextCharacterSetConversionGetUtf8Length(void)
 
     U4, U4, U4, U4, U4, U4, U4, U4,         // lead byte = 1111 0xxx (U+10000 - U+1FFFFF)
 
-    U0, U0, U0, U0,                         // Non valid.
-    U0, U0, U0, U0,                         // Non valid.
+    U5, U5, U5, U5,                         // lead byte = 1111 10xx (U+200000 - U+3FFFFFF)
+
+    U6, U6,                                 // lead byte = 1111 110x (U+4000000 - U+7FFFFFFF)
+
+    U0, U0,                                 // Non valid.
   };
 
   for( unsigned int index = 0; index < 256u; ++index )
@@ -211,8 +216,18 @@ int UtcDaliTextCharacterSetConversionGetNumberOfUtf8Characters(void)
       "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84",
       7u,
     },
+    {
+      "5 bytes test",
+      "\xF8\xA0\x80\x80\x80",
+      1u,
+    },
+    {
+      "6 bytes test",
+      "\xFC\x84\x80\x80\x80\x80",
+      1u,
+    },
   };
-  const unsigned int numberOfTests = 4u;
+  const unsigned int numberOfTests = 6u;
 
   for( unsigned int index = 0u; index < numberOfTests; ++index )
   {
@@ -235,6 +250,8 @@ int UtcDaliTextCharacterSetConversionGetNumberOfUtf8Bytes(void)
   unsigned int utf32_02[] = { 0x645, 0x631, 0x62D, 0x628, 0x627, 0x20, 0x628, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645 }; // مرحبا بالعالم
   unsigned int utf32_03[] = { 0x939, 0x948, 0x932, 0x94B, 0x20, 0x935, 0x930, 0x94D, 0x932, 0x94D, 0x921 }; // हैलो वर्ल्ड
   unsigned int utf32_04[] = { 0x1F601, 0x20, 0x1F602, 0x20, 0x1F603, 0x20, 0x1F604 }; // Emojis
+  unsigned int utf32_05[] = { 0x800000 };
+  unsigned int utf32_06[] = { 0x4000000 };
 
   const GetNumberOfUtf8BytesData data[] =
   {
@@ -262,8 +279,20 @@ int UtcDaliTextCharacterSetConversionGetNumberOfUtf8Bytes(void)
       7u,
       19u,
     },
+    {
+      "5 bytes test",
+      utf32_05,
+      1u,
+      5u,
+    },
+    {
+      "6 bytes test",
+      utf32_06,
+      1u,
+      6u
+    },
   };
-  const unsigned int numberOfTests = 4u;
+  const unsigned int numberOfTests = 6u;
 
   for( unsigned int index = 0u; index < numberOfTests; ++index )
   {
@@ -282,14 +311,16 @@ int UtcDaliTextCharacterSetConversionUtf8ToUtf32(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextCharacterSetConversionGetNumberOfUtf8Bytes");
 
-  char utf8_06[] = { -8, -7, -6, -5, -4, -3, -2, -1 }; // Invalid string
+  char utf8_06[] = { -2, -1 }; // Invalid string
 
   unsigned int utf32_01[] = { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64 }; // Hello World
   unsigned int utf32_02[] = { 0xA, 0x20, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0xA, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64 }; // Hello World + CR and CR+LF
   unsigned int utf32_03[] = { 0x645, 0x631, 0x62D, 0x628, 0x627, 0x20, 0x628, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645 }; // مرحبا بالعالم
   unsigned int utf32_04[] = { 0x939, 0x948, 0x932, 0x94B, 0x20, 0x935, 0x930, 0x94D, 0x932, 0x94D, 0x921 }; // हैलो वर्ल्ड
   unsigned int utf32_05[] = { 0x1F601, 0x20, 0x1F602, 0x20, 0x1F603, 0x20, 0x1F604 }; // Emojis
-  unsigned int utf32_06[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }; // Invalid string
+  unsigned int utf32_06[] = { 0x800000 };
+  unsigned int utf32_07[] = { 0x4000000 };
+  unsigned int utf32_08[] = { 0x20, 0x20 }; // Invalid string
 
   const Utf8ToUtf32Data data[] =
   {
@@ -319,12 +350,22 @@ int UtcDaliTextCharacterSetConversionUtf8ToUtf32(void)
       utf32_05,
     },
     {
+      "5 bytes test",
+      "\xF8\xA0\x80\x80\x80",
+      utf32_06,
+    },
+    {
+      "6 bytes test",
+      "\xFC\x84\x80\x80\x80\x80",
+      utf32_07,
+    },
+    {
       "Invalid text",
       utf8_06,
-      utf32_06,
+      utf32_08,
     },
   };
-  const unsigned int numberOfTests = 6u;
+  const unsigned int numberOfTests = 8u;
 
   for( unsigned int index = 0u; index < numberOfTests; ++index )
   {
@@ -347,6 +388,8 @@ int UtcDaliTextCharacterSetConversionUtf32ToUtf8(void)
   unsigned int utf32_02[] = { 0x645, 0x631, 0x62D, 0x628, 0x627, 0x20, 0x628, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645 }; // مرحبا بالعالم
   unsigned int utf32_03[] = { 0x939, 0x948, 0x932, 0x94B, 0x20, 0x935, 0x930, 0x94D, 0x932, 0x94D, 0x921 }; // हैलो वर्ल्ड
   unsigned int utf32_04[] = { 0x1F601, 0x20, 0x1F602, 0x20, 0x1F603, 0x20, 0x1F604 }; // Emojis
+  unsigned int utf32_05[] = { 0x800000 };
+  unsigned int utf32_06[] = { 0x4000000 };
 
   struct Utf32ToUtf8Data data[] =
   {
@@ -374,9 +417,21 @@ int UtcDaliTextCharacterSetConversionUtf32ToUtf8(void)
       7u,
       "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84",
     },
+    {
+      "5 bytes test",
+      utf32_05,
+      1u,
+      "\xF8\xA0\x80\x80\x80",
+    },
+    {
+      "6 bytes test",
+      utf32_06,
+      1u,
+      "\xFC\x84\x80\x80\x80\x80",
+    },
   };
 
-  const unsigned int numberOfTests = 4u;
+  const unsigned int numberOfTests = 6u;
 
   for( unsigned int index = 0u; index < numberOfTests; ++index )
   {
index 0b08ff4..b4414fe 100644 (file)
@@ -28,7 +28,6 @@ LIST(APPEND TC_SOURCES
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-orientation.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-physical-keyboard.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-style-monitor.cpp
-   ../dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-sound-player.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-test-application.cpp
    ../dali-toolkit/dali-toolkit-test-utils/toolkit-text-abstraction.cpp
index 7177d8c..76492c3 100755 (executable)
@@ -86,7 +86,6 @@ LIST(APPEND TC_SOURCES
   dali-toolkit-test-utils/toolkit-orientation.cpp
   dali-toolkit-test-utils/toolkit-physical-keyboard.cpp
   dali-toolkit-test-utils/toolkit-style-monitor.cpp
-  dali-toolkit-test-utils/toolkit-singleton-service.cpp
   dali-toolkit-test-utils/toolkit-test-application.cpp
   dali-toolkit-test-utils/toolkit-timer.cpp
   dali-toolkit-test-utils/toolkit-trigger-event-factory.cpp
index 999249a..9111d8d 100644 (file)
@@ -15,7 +15,7 @@
  */
 
 #include <dali/devel-api/adaptor-framework/feedback-player.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/public-api/object/base-object.h>
 
 using namespace Dali;
index 2446f29..0f74724 100755 (executable)
@@ -60,7 +60,7 @@ public:
   void ApplyOptions( const InputMethodOptions& options );
   bool FilterEventKey( const Dali::KeyEvent& keyEvent );
   void SetPreeditStyle( Dali::InputMethodContext::PreeditStyle type );
-  void GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttributeData >& attrs ) const;
+  void GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const;
 
 public:  // Signals
   ActivatedSignalType& ActivatedSignal() { return mActivatedSignal; }
@@ -87,7 +87,7 @@ private:
   bool mRestoreAfterFocusLost:1;             ///< Whether the keyboard needs to be restored (activated ) after focus regained.
   bool mIdleCallbackConnected:1;             ///< Whether the idle callback is already connected.
   InputMethodOptions        mOptions;
-  Vector< Dali::InputMethodContext::PreeditAttributeData > mPreeditAttrs; ///< Stores preedit attr data
+  Dali::InputMethodContext::PreEditAttributeDataContainer mPreeditAttrs; ///< Stores preedit attribute data
 
   ActivatedSignalType      mActivatedSignal;
   KeyboardEventSignalType  mEventSignal;
@@ -223,7 +223,7 @@ void InputMethodContext::SetPreeditStyle( Dali::InputMethodContext::PreeditStyle
   mPreeditAttrs.PushBack( data );
 }
 
-void InputMethodContext::GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttributeData >& attrs ) const
+void InputMethodContext::GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const
 {
   attrs = mPreeditAttrs;
 }
@@ -328,7 +328,7 @@ void InputMethodContext::SetPreeditStyle( Dali::InputMethodContext::PreeditStyle
   Internal::Adaptor::InputMethodContext::GetImplementation(*this).SetPreeditStyle( type );
 }
 
-void InputMethodContext::GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttributeData >& attrs ) const
+void InputMethodContext::GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const
 {
   Internal::Adaptor::InputMethodContext::GetImplementation(*this).GetPreeditStyle( attrs );
 }
index 395ad4d..d53e02a 100755 (executable)
@@ -117,9 +117,16 @@ public:
    */
   struct PreeditAttributeData
   {
-    PreeditStyle preeditType; /// The preedit style type
-    unsigned int startIndex;  /// The start index of preedit
-    unsigned int endIndex;    /// The end index of preedit
+    PreeditAttributeData()
+    : preeditType( PreeditStyle::NONE ),
+      startIndex( 0 ),
+      endIndex( 0 )
+    {
+    }
+
+    PreeditStyle preeditType;  /// The preedit style type
+    unsigned int startIndex;   /// The start index of preedit
+    unsigned int endIndex;     /// The end index of preedit
   };
 
   /**
@@ -203,6 +210,8 @@ public:
   typedef Signal< void () > VoidSignalType;
   typedef Signal< void (bool) > StatusSignalType;
 
+  using PreEditAttributeDataContainer = Vector< Dali::InputMethodContext::PreeditAttributeData >;
+
 public:
 
   /**
@@ -323,11 +332,11 @@ public:
   void SetPreeditStyle( PreeditStyle type );
 
   /**
-   * @brief Gets the preedit attrs data.
+   * @brief Gets the preedit attributes data.
    *
-   * @param[out] attrs The preedit attrs data.
+   * @param[out] attrs The preedit attributes data.
    */
-  void GetPreeditStyle( Vector<PreeditAttributeData>& attrs ) const;
+  void GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const;
 
 public:
 
diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.cpp
deleted file mode 100644 (file)
index 7ba5ca4..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (c) 2019 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <toolkit-singleton-service.h>
-
-#include <dali-toolkit/public-api/dali-toolkit-common.h>
-#include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/common/map-wrapper.h>
-#include <dali/public-api/signals/dali-signal.h>
-#include <dali/integration-api/processor-interface.h>
-
-namespace Dali
-{
-
-
-namespace Internal
-{
-namespace Adaptor
-{
-
-namespace
-{
-Dali::IntrusivePtr<SingletonService> gSingletonService;
-} // unnamed namespace
-
-
-class SingletonService : public Dali::BaseObject
-{
-public:
-
-  /**
-   * Create a SingletonService.
-   * This should only be called once by the Application class.
-   * @return A newly created SingletonService.
-   */
-  static Dali::SingletonService New()
-  {
-    DALI_ASSERT_ALWAYS( 0 && "SingletonService New method used");
-    gSingletonService = Dali::IntrusivePtr<SingletonService>( new SingletonService() );
-    return Dali::SingletonService( gSingletonService.Get() );
-  }
-
-  /**
-   * @copydoc Dali::SingletonService::Get()
-   */
-  static Dali::SingletonService Get()
-  {
-    Dali::SingletonService singletonService;
-    if ( !gSingletonService )
-    {
-      gSingletonService = Dali::IntrusivePtr<SingletonService>( new SingletonService() );
-    }
-    return Dali::SingletonService( gSingletonService.Get() );
-  }
-
-  /**
-   * @copydoc Dali::SingletonService::Register()
-   */
-  void Register( const std::type_info& info, BaseHandle singleton )
-  {
-    if( singleton )
-    {
-      mSingletonContainer.insert( SingletonPair( info.name(), singleton ) );
-
-      Integration::Processor* processor = dynamic_cast<Integration::Processor*>( &singleton.GetBaseObject() );
-      if( processor )
-      {
-        Integration::Core& core = mTestApplication->GetCore();
-        core.RegisterProcessor( *processor );
-      }
-    }
-  }
-
-  /**
-   * @copydoc Dali::SingletonService::UnregisterAll()
-   */
-  void UnregisterAll()
-  {
-    mSingletonContainer.clear();
-  }
-
-  /**
-   * @copydoc Dali::SingletonService::GetSingleton()
-   */
-  BaseHandle GetSingleton( const std::type_info& info ) const
-  {
-    BaseHandle object;
-
-    SingletonConstIter iter = mSingletonContainer.find(info.name());
-    if( iter != mSingletonContainer.end() )
-    {
-      object = ( *iter ).second;
-    }
-    return object;
-  }
-
-  void SetApplication( Dali::TestApplication& testApplication )
-  {
-    mTestApplication = &testApplication;
-  }
-
-private:
-
-  /**
-   * Private Constructor
-   * @see SingletonService::New()
-   */
-  SingletonService()
-  : mSingletonContainer()
-  {
-    // Can only have one instance of SingletonService
-    DALI_ASSERT_ALWAYS( !gSingletonService && "Only one instance of SingletonService is allowed");
-    gSingletonService = this;
-  }
-
-  /**
-   * Virtual Destructor
-   */
-  virtual ~SingletonService()
-  {
-    gSingletonService = 0;
-  }
-
-  // Undefined
-  SingletonService( const SingletonService& );
-  SingletonService& operator=( SingletonService& );
-
-private:
-  typedef std::pair<std::string, BaseHandle> SingletonPair;
-  typedef std::map<std::string, BaseHandle>  SingletonContainer;
-  typedef SingletonContainer::const_iterator SingletonConstIter;
-
-  SingletonContainer mSingletonContainer; ///< The container to look up singleton by its type name
-  TestApplication* mTestApplication;
-};
-
-} // namespace Adaptor
-} // namespace Internal
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-inline Internal::Adaptor::SingletonService& GetImplementation(Dali::SingletonService& player)
-{
-  DALI_ASSERT_ALWAYS( player && "SingletonService handle is empty" );
-  BaseObject& handle = player.GetBaseObject();
-  return static_cast<Internal::Adaptor::SingletonService&>(handle);
-}
-
-inline const Internal::Adaptor::SingletonService& GetImplementation(const Dali::SingletonService& player)
-{
-  DALI_ASSERT_ALWAYS( player && "SingletonService handle is empty" );
-  const BaseObject& handle = player.GetBaseObject();
-  return static_cast<const Internal::Adaptor::SingletonService&>(handle);
-}
-
-SingletonService::SingletonService()
-{
-}
-
-SingletonService SingletonService::New()
-{
-  return Internal::Adaptor::SingletonService::New();
-}
-
-SingletonService SingletonService::Get()
-{
-  return Internal::Adaptor::SingletonService::Get();
-}
-
-SingletonService::~SingletonService()
-{
-}
-
-void SingletonService::Register( const std::type_info& info, BaseHandle singleton )
-{
-  GetImplementation( *this ).Register( info, singleton );
-}
-
-void SingletonService::UnregisterAll()
-{
-  GetImplementation( *this ).UnregisterAll();
-}
-
-BaseHandle SingletonService::GetSingleton( const std::type_info& info ) const
-{
-  return GetImplementation( *this ).GetSingleton( info );
-}
-
-SingletonService::SingletonService( Internal::Adaptor::SingletonService* singletonService )
-: BaseHandle( singletonService )
-{
-}
-
-} // namespace Dali
-
-
-namespace Test
-{
-
-void SetApplication( Dali::SingletonService singletonService, TestApplication& testApplication )
-{
-  GetImplementation( singletonService ).SetApplication( testApplication );
-}
-
-} // Test
diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-singleton-service.h
deleted file mode 100644 (file)
index 7f57f55..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef DALI_TOOLKIT_TEST_SINGLETON_SERVICE_H
-#define DALI_TOOLKIT_TEST_SINGLETON_SERVICE_H
-
-/*
- * Copyright (c) 2018 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
-#include "test-application.h"
-
-namespace Test
-{
-
-void SetApplication( Dali::SingletonService singletonService, TestApplication& testApplication );
-
-} // Test
-
-#endif //DALI_TOOLKIT_TEST_SINGLETON_SERVICE_H
index 8eefcfa..167f6d8 100644 (file)
@@ -15,7 +15,7 @@
  */
 
 #include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/devel-api/adaptor-framework/sound-player.h>
 
 using namespace Dali;
index fdcd24d..07c6ad8 100644 (file)
@@ -23,7 +23,6 @@
 #include <dali/devel-api/text-abstraction/font-client.h>
 #include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <toolkit-adaptor-impl.h>
-#include <toolkit-singleton-service.h>
 #include <toolkit-lifecycle-controller.h>
 
 namespace Dali
@@ -49,9 +48,6 @@ ToolkitTestApplication::ToolkitTestApplication( size_t surfaceWidth, size_t surf
   // Core needs to be initialized next before we start the adaptor
   InitializeCore();
 
-  auto singletonService = SingletonService::Get();
-  Test::SetApplication( singletonService, *this );
-
   // This will also emit the window created signals
   AdaptorImpl::GetImpl( *mAdaptor ).Start( *mMainWindow );
 
index 5b478ba..cae7871 100755 (executable)
@@ -22,7 +22,7 @@
 #include <dali/devel-api/text-abstraction/segmentation.h>
 #include <dali/devel-api/text-abstraction/shaping.h>
 #include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <cstring>
 
 using namespace Dali;
index 8f11b45..a951045 100644 (file)
@@ -19,7 +19,7 @@
 #include "keyinput-focus-manager.h"
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.h>
index 666a2a1..b24adbb 100644 (file)
@@ -19,7 +19,7 @@
 #include "visual-factory.h"
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/devel-api/adaptor-framework/environment-variable.h>
 
 // INTERNAL INCLUDES
index 4bc1cc5..c0fffa0 100644 (file)
@@ -22,7 +22,7 @@
 #include <cstring> // for strcmp
 #include <dali/public-api/actors/layer.h>
 #include <dali/devel-api/adaptor-framework/accessibility-adaptor.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/devel-api/adaptor-framework/lifecycle-controller.h>
 #include <dali/public-api/animation/constraints.h>
 #include <dali/public-api/common/stage.h>
index 106ec54..066d812 100644 (file)
@@ -18,7 +18,7 @@
 #include "style-manager-impl.h"
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/public-api/object/type-registry.h>
 #include <dali/public-api/object/type-registry-helper.h>
 #include <dali/integration-api/debug.h>
index d79fbc3..7402292 100644 (file)
@@ -33,6 +33,8 @@ namespace
   const static uint8_t U2 = 2u;
   const static uint8_t U3 = 3u;
   const static uint8_t U4 = 4u;
+  const static uint8_t U5 = 5u;
+  const static uint8_t U6 = 6u;
   const static uint8_t U0 = 0u;
   const static uint8_t UTF8_LENGTH[256] = {
     U1, U1, U1, U1, U1, U1, U1, U1, U1, U1, //
@@ -66,8 +68,11 @@ namespace
 
     U4, U4, U4, U4, U4, U4, U4, U4,         // lead byte = 1111 0xxx (U+10000 - U+1FFFFF)
 
-    U0, U0, U0, U0,                         // Non valid.
-    U0, U0, U0, U0,                         // Non valid.
+    U5, U5, U5, U5,                         // lead byte = 1111 10xx (U+200000 - U+3FFFFFF)
+
+    U6, U6,                                 // lead byte = 1111 110x (U+4000000 - U+7FFFFFFF)
+
+    U0, U0,                                 // Non valid.
   };
 
   const uint8_t CR = 0xd;
@@ -118,6 +123,14 @@ uint32_t GetNumberOfUtf8Bytes( const uint32_t* const utf32, uint32_t numberOfCha
     {
       numberOfBytes += U4;
     }
+    else if( code < 0x4000000u )
+    {
+      numberOfBytes += U5;
+    }
+    else if( code < 0x80000000u )
+    {
+      numberOfBytes += U6;
+    }
   }
 
   return numberOfBytes;
@@ -197,6 +210,40 @@ uint32_t Utf8ToUtf32( const uint8_t* const utf8, uint32_t length, uint32_t* utf3
         break;
       }
 
+      case U5:
+      {
+        uint32_t& code = *utf32++;
+        code = leadByte & 0x03u;
+        begin++;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        break;
+      }
+
+      case U6:
+      {
+        uint32_t& code = *utf32++;
+        code = leadByte & 0x01u;
+        begin++;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        code <<= 6u;
+        code |= *begin++ & 0x3fu;
+        break;
+      }
+
       case U0:    // Invalid case
       {
         begin++;
@@ -231,13 +278,30 @@ uint32_t Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters,
     }
     else if( code < 0x10000u )
     {
-      *utf8++ = static_cast<uint8_t>(   code >> 12u )          | 0xe0u; // lead byte for 2 byte sequence
+      *utf8++ = static_cast<uint8_t>(   code >> 12u )          | 0xe0u; // lead byte for 3 byte sequence
       *utf8++ = static_cast<uint8_t>( ( code >> 6u )  & 0x3f ) | 0x80u; // continuation byte
       *utf8++ = static_cast<uint8_t>(   code          & 0x3f ) | 0x80u; // continuation byte
     }
     else if( code < 0x200000u )
     {
-      *utf8++ = static_cast<uint8_t>(   code >> 18u )          | 0xf0u; // lead byte for 2 byte sequence
+      *utf8++ = static_cast<uint8_t>(   code >> 18u )          | 0xf0u; // lead byte for 4 byte sequence
+      *utf8++ = static_cast<uint8_t>( ( code >> 12u ) & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>( ( code >> 6u )  & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>(   code          & 0x3f ) | 0x80u; // continuation byte
+    }
+    else if( code < 0x4000000u )
+    {
+      *utf8++ = static_cast<uint8_t>(   code >> 24u )          | 0xf8u; // lead byte for 5 byte sequence
+      *utf8++ = static_cast<uint8_t>( ( code >> 18u ) & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>( ( code >> 12u ) & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>( ( code >> 6u )  & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>(   code          & 0x3f ) | 0x80u; // continuation byte
+    }
+    else if( code < 0x80000000u )
+    {
+      *utf8++ = static_cast<uint8_t>(   code >> 30u )          | 0xfcu; // lead byte for 6 byte sequence
+      *utf8++ = static_cast<uint8_t>( ( code >> 24u ) & 0x3f ) | 0x80u; // continuation byte
+      *utf8++ = static_cast<uint8_t>( ( code >> 18u ) & 0x3f ) | 0x80u; // continuation byte
       *utf8++ = static_cast<uint8_t>( ( code >> 12u ) & 0x3f ) | 0x80u; // continuation byte
       *utf8++ = static_cast<uint8_t>( ( code >> 6u )  & 0x3f ) | 0x80u; // continuation byte
       *utf8++ = static_cast<uint8_t>(   code          & 0x3f ) | 0x80u; // continuation byte
index a8834b9..99a969c 100755 (executable)
@@ -20,7 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 #include <dali/devel-api/text-abstraction/font-client.h>
 
 // INTERNAL INCLUDES
index 357f431..4ce469e 100644 (file)
@@ -19,7 +19,7 @@
 #include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h>
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h>
index 5ae10c8..10eb270 100644 (file)
@@ -20,7 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/text/rendering-backend.h>
index 81a2817..98c94a8 100644 (file)
@@ -20,7 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 namespace
 {
index c39d5e8..8f4de65 100755 (executable)
@@ -1086,16 +1086,16 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
       mEventData->mPreEditFlag &&
       ( 0u != mModel->mVisualModel->mCharactersToGlyph.Count() ) )
   {
-    Vector< Dali::InputMethodContext::PreeditAttributeData > attrs;
+    Dali::InputMethodContext::PreEditAttributeDataContainer attrs;
     mEventData->mInputMethodContext.GetPreeditStyle( attrs );
     Dali::InputMethodContext::PreeditStyle type = Dali::InputMethodContext::PreeditStyle::NONE;
 
     // Check the type of preedit and run it.
-    for( Vector<Dali::InputMethodContext::PreeditAttributeData>::Iterator it = attrs.Begin(), endIt = attrs.End(); it != endIt; it++ )
+    for( Dali::InputMethodContext::PreEditAttributeDataContainer::Iterator it = attrs.Begin(), endIt = attrs.End(); it != endIt; it++ )
     {
       Dali::InputMethodContext::PreeditAttributeData attrData = *it;
       DALI_LOG_INFO( gLogFilter, Debug::General, "Controller::UpdateModel PreeditStyle type : %d  start %d end %d \n", attrData.preeditType, attrData.startIndex, attrData.endIndex  );
-      type =  attrData.preeditType;
+      type = attrData.preeditType;
 
       // Check the number of commit characters for the start position.
       unsigned int numberOfCommit = mEventData->mPrimaryCursorPosition - mEventData->mPreEditLength;
@@ -1108,7 +1108,7 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
           // Add the underline for the pre-edit text.
           GlyphRun underlineRun;
           underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
-          underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+          underlineRun.numberOfGlyphs = numberOfIndices;
           mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
           break;
         }
@@ -1152,7 +1152,7 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
 
           GlyphRun underlineRun;
           underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
-          underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+          underlineRun.numberOfGlyphs = numberOfIndices;
           mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
           break;
         }
@@ -1167,7 +1167,7 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
 
           GlyphRun underlineRun;
           underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
-          underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+          underlineRun.numberOfGlyphs = numberOfIndices;
           mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
           break;
         }
@@ -1182,7 +1182,7 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
 
           GlyphRun underlineRun;
           underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
-          underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+          underlineRun.numberOfGlyphs = numberOfIndices;
           mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
           break;
         }
@@ -1197,7 +1197,7 @@ bool Controller::Impl::UpdateModel( OperationsMask operationsRequired )
 
           GlyphRun underlineRun;
           underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
-          underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+          underlineRun.numberOfGlyphs = numberOfIndices;
           mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
           break;
         }
index 0d39d0d..6bdc2f9 100644 (file)
@@ -66,7 +66,13 @@ public:
   struct Data
   {
     Data()
-    : loadCompleted( false )
+    : url(),
+      textureSet(),
+      hash( 0 ),
+      croppedWidth( 0 ),
+      croppedHeight( 0 ),
+      border( 0, 0, 0, 0 ),
+      loadCompleted( false )
     {}
 
     std::string url;                              ///< Url of the N-Patch
index e0d7b9a..a683838 100644 (file)
@@ -20,7 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
index 1ece1d1..d6ee5d7 100644 (file)
@@ -31,7 +31,7 @@ namespace Toolkit
 
 const unsigned int TOOLKIT_MAJOR_VERSION = 1;
 const unsigned int TOOLKIT_MINOR_VERSION = 9;
-const unsigned int TOOLKIT_MICRO_VERSION = 0;
+const unsigned int TOOLKIT_MICRO_VERSION = 1;
 const char * const TOOLKIT_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 77aff09..7d63a05 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali-toolkit
 Summary:    Dali 3D engine Toolkit
-Version:    1.9.0
+Version:    1.9.1
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT