Added enumerations for LineWrap::Mode
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-editor-impl.cpp
index 9602d74..638cf37 100644 (file)
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/text/rendering-backend.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
 #include <dali-toolkit/public-api/visuals/color-visual-properties.h>
 #include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h>
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
+#include <dali-toolkit/internal/text/text-enumerations-impl.h>
 #include <dali-toolkit/internal/text/rendering/text-backend.h>
 #include <dali-toolkit/internal/text/text-effects-style.h>
 #include <dali-toolkit/internal/text/text-font-style.h>
@@ -67,23 +69,6 @@ const float DEFAULT_SCROLL_SPEED = 1200.f; ///< The default scroll speed for the
 
 namespace
 {
-
-const Scripting::StringEnum HORIZONTAL_ALIGNMENT_STRING_TABLE[] =
-{
-  { "BEGIN",  Toolkit::Text::Layout::HORIZONTAL_ALIGN_BEGIN  },
-  { "CENTER", Toolkit::Text::Layout::HORIZONTAL_ALIGN_CENTER },
-  { "END",    Toolkit::Text::Layout::HORIZONTAL_ALIGN_END    },
-};
-const unsigned int HORIZONTAL_ALIGNMENT_STRING_TABLE_COUNT = sizeof( HORIZONTAL_ALIGNMENT_STRING_TABLE ) / sizeof( HORIZONTAL_ALIGNMENT_STRING_TABLE[0] );
-
-
-const Scripting::StringEnum LINE_WRAP_MODE_STRING_TABLE[] =
-{
-  { "WORD",      Toolkit::Text::Layout::LineWrap::WORD      },
-  { "CHARACTER", Toolkit::Text::Layout::LineWrap::CHARACTER }
-};
-const unsigned int LINE_WRAP_MODE_STRING_TABLE_COUNT = sizeof( LINE_WRAP_MODE_STRING_TABLE ) / sizeof( LINE_WRAP_MODE_STRING_TABLE[0] );
-
 const char* const SCROLL_BAR_POSITION("sourcePosition");
 const char* const SCROLL_BAR_POSITION_MIN("sourcePositionMin");
 const char* const SCROLL_BAR_POSITION_MAX("sourcePositionMax");
@@ -138,18 +123,18 @@ DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "emboss",
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "inputEmboss",                          MAP,       INPUT_EMBOSS                         )
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "outline",                              MAP,       OUTLINE                              )
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "inputOutline",                         MAP,       INPUT_OUTLINE                        )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScroll",                   BOOLEAN,   SMOOTH_SCROLL                        )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScrollDuration",           FLOAT,     SMOOTH_SCROLL_DURATION               )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "enableScrollBar",                BOOLEAN,   ENABLE_SCROLL_BAR                    )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "scrollBarShowDuration",          FLOAT,     SCROLL_BAR_SHOW_DURATION             )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "scrollBarFadeDuration",          FLOAT,     SCROLL_BAR_FADE_DURATION             )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "pixelSize",                      FLOAT,     PIXEL_SIZE                           )
-DALI_DEVEL_PROPERTY_REGISTRATION_READ_ONLY( Toolkit, TextEditor, "lineCount",            INTEGER,   LINE_COUNT                           )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScroll",                         BOOLEAN,   SMOOTH_SCROLL                        )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScrollDuration",                 FLOAT,     SMOOTH_SCROLL_DURATION               )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "enableScrollBar",                      BOOLEAN,   ENABLE_SCROLL_BAR                    )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "scrollBarShowDuration",                FLOAT,     SCROLL_BAR_SHOW_DURATION             )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "scrollBarFadeDuration",                FLOAT,     SCROLL_BAR_FADE_DURATION             )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "pixelSize",                            FLOAT,     PIXEL_SIZE                           )
+DALI_PROPERTY_REGISTRATION_READ_ONLY( Toolkit, TextEditor, "lineCount",                  INTEGER,   LINE_COUNT                           )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "enableSelection",                      BOOLEAN,   ENABLE_SELECTION                     )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "placeholder",                          MAP,       PLACEHOLDER                          )
+DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "lineWrapMode",                         INTEGER,   LINE_WRAP_MODE                       )
 DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "placeholderText",                STRING,    PLACEHOLDER_TEXT                     )
 DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "placeholderTextColor",           VECTOR4,   PLACEHOLDER_TEXT_COLOR               )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "enableSelection",                BOOLEAN,   ENABLE_SELECTION                     )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "placeholder",                    MAP,       PLACEHOLDER                          )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "lineWrapMode",                   STRING,    LINE_WRAP_MODE                       )
 
 DALI_SIGNAL_REGISTRATION( Toolkit, TextEditor, "textChanged",        SIGNAL_TEXT_CHANGED )
 DALI_SIGNAL_REGISTRATION( Toolkit, TextEditor, "inputStyleChanged",  SIGNAL_INPUT_STYLE_CHANGED )
@@ -259,15 +244,10 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
       {
         if( impl.mController )
         {
-          const std::string& alignStr = value.Get< std::string >();
-          DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor %p HORIZONTAL_ALIGNMENT %s\n", impl.mController.Get(), alignStr.c_str() );
-
-          Layout::HorizontalAlignment alignment( Layout::HORIZONTAL_ALIGN_BEGIN );
-          if( Scripting::GetEnumeration< Layout::HorizontalAlignment >( alignStr.c_str(),
-                                                                        HORIZONTAL_ALIGNMENT_STRING_TABLE,
-                                                                        HORIZONTAL_ALIGNMENT_STRING_TABLE_COUNT,
-                                                                        alignment ) )
+          Text::HorizontalAlignment::Type alignment( static_cast< Text::HorizontalAlignment::Type >( -1 ) ); // Set to invalid value to ensure a valid mode does get set
+          if( Text::GetHorizontalAlignmentEnumeration( value, alignment ) )
           {
+            DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor %p HORIZONTAL_ALIGNMENT %d\n", impl.mController.Get(), alignment );
             impl.mController->SetHorizontalAlignment( alignment );
           }
         }
@@ -618,7 +598,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL:
+      case Toolkit::TextEditor::Property::SMOOTH_SCROLL:
       {
         const bool enable = value.Get< bool >();
         DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor SMOOTH_SCROLL %d\n", enable );
@@ -626,7 +606,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         impl.mScrollAnimationEnabled = enable;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL_DURATION:
+      case Toolkit::TextEditor::Property::SMOOTH_SCROLL_DURATION:
       {
         const float duration = value.Get< float >();
         DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor SMOOTH_SCROLL_DURATION %f\n", duration );
@@ -638,7 +618,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::ENABLE_SCROLL_BAR:
+      case Toolkit::TextEditor::Property::ENABLE_SCROLL_BAR:
       {
         const bool enable = value.Get< bool >();
         DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor SHOW_SCROLL_BAR %d\n", enable );
@@ -646,7 +626,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         impl.mScrollBarEnabled = enable;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SCROLL_BAR_SHOW_DURATION:
+      case Toolkit::TextEditor::Property::SCROLL_BAR_SHOW_DURATION:
       {
         const float duration = value.Get< float >();
         DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor SCROLL_BAR_SHOW_DURATION %f\n", duration );
@@ -654,7 +634,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         impl.mAnimationPeriod.delaySeconds = duration;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SCROLL_BAR_FADE_DURATION:
+      case Toolkit::TextEditor::Property::SCROLL_BAR_FADE_DURATION:
       {
         const float duration = value.Get< float >();
         DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor SCROLL_BAR_FADE_DURATION %f\n", duration );
@@ -662,7 +642,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         impl.mAnimationPeriod.durationSeconds = duration;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::PIXEL_SIZE:
+      case Toolkit::TextEditor::Property::PIXEL_SIZE:
       {
         if( impl.mController )
         {
@@ -702,7 +682,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::ENABLE_SELECTION:
+      case Toolkit::TextEditor::Property::ENABLE_SELECTION:
       {
         if( impl.mController )
         {
@@ -712,7 +692,7 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::PLACEHOLDER:
+      case Toolkit::TextEditor::Property::PLACEHOLDER:
       {
         const Property::Map* map = value.GetMap();
         if( map )
@@ -721,18 +701,16 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::LINE_WRAP_MODE:
+      case Toolkit::TextEditor::Property::LINE_WRAP_MODE:
       {
-        const std::string& wrapModeStr = value.Get< std::string >();
-        DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor %p LINE_WRAP_MODE %s\n", impl.mController.Get(), wrapModeStr.c_str() );
-
-        Layout::LineWrap::Mode lineWrapMode( Layout::LineWrap::WORD );
-        if( Scripting::GetEnumeration< Layout::LineWrap::Mode >( wrapModeStr.c_str(),
-                                                                 LINE_WRAP_MODE_STRING_TABLE,
-                                                                 LINE_WRAP_MODE_STRING_TABLE_COUNT,
-                                                                 lineWrapMode ) )
+        if( impl.mController )
         {
-          impl.mController->SetLineWrapMode( lineWrapMode );
+          Text::LineWrap::Mode lineWrapMode( static_cast< Text::LineWrap::Mode >( -1 ) ); // Set to invalid value to ensure a valid mode does get set
+          if( GetLineWrapModeEnumeration( value, lineWrapMode ) )
+          {
+            DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel %p LineWrap::MODE %d\n", impl.mController.Get(), lineWrapMode );
+            impl.mController->SetLineWrapMode( lineWrapMode );
+          }
         }
         break;
       }
@@ -801,9 +779,7 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
       {
         if( impl.mController )
         {
-          const char* name = Scripting::GetEnumerationName< Toolkit::Text::Layout::HorizontalAlignment >( impl.mController->GetHorizontalAlignment(),
-                                                                                                          HORIZONTAL_ALIGNMENT_STRING_TABLE,
-                                                                                                          HORIZONTAL_ALIGNMENT_STRING_TABLE_COUNT );
+          const char* name = GetHorizontalAlignmentString( impl.mController->GetHorizontalAlignment() );
           if( name )
           {
             value = std::string( name );
@@ -1037,32 +1013,32 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
         GetOutlineProperties( impl.mController, value, Text::EffectStyle::INPUT );
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL:
+      case Toolkit::TextEditor::Property::SMOOTH_SCROLL:
       {
         value = impl.mScrollAnimationEnabled;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL_DURATION:
+      case Toolkit::TextEditor::Property::SMOOTH_SCROLL_DURATION:
       {
         value = impl.mScrollAnimationDuration;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::ENABLE_SCROLL_BAR:
+      case Toolkit::TextEditor::Property::ENABLE_SCROLL_BAR:
       {
         value = impl.mScrollBarEnabled;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SCROLL_BAR_SHOW_DURATION:
+      case Toolkit::TextEditor::Property::SCROLL_BAR_SHOW_DURATION:
       {
         value = impl.mAnimationPeriod.delaySeconds;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::SCROLL_BAR_FADE_DURATION:
+      case Toolkit::TextEditor::Property::SCROLL_BAR_FADE_DURATION:
       {
         value = impl.mAnimationPeriod.durationSeconds;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::PIXEL_SIZE:
+      case Toolkit::TextEditor::Property::PIXEL_SIZE:
       {
         if( impl.mController )
         {
@@ -1070,7 +1046,7 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::LINE_COUNT:
+      case Toolkit::TextEditor::Property::LINE_COUNT:
       {
         if( impl.mController )
         {
@@ -1097,7 +1073,7 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::ENABLE_SELECTION:
+      case Toolkit::TextEditor::Property::ENABLE_SELECTION:
       {
         if( impl.mController )
         {
@@ -1105,14 +1081,14 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
         }
         break;
       }
-      case Toolkit::DevelTextEditor::Property::PLACEHOLDER:
+      case Toolkit::TextEditor::Property::PLACEHOLDER:
       {
         Property::Map map;
         impl.mController->GetPlaceholderProperty( map );
         value = map;
         break;
       }
-      case Toolkit::DevelTextEditor::Property::LINE_WRAP_MODE:
+      case Toolkit::TextEditor::Property::LINE_WRAP_MODE:
       {
         if( impl.mController )
         {
@@ -1159,7 +1135,7 @@ Toolkit::TextEditor::InputStyleChangedSignalType& TextEditor::InputStyleChangedS
   return mInputStyleChangedSignal;
 }
 
-Toolkit::DevelTextEditor::ScrollStateChangedSignalType& TextEditor::ScrollStateChangedSignal()
+Toolkit::TextEditor::ScrollStateChangedSignalType& TextEditor::ScrollStateChangedSignal()
 {
   return mScrollStateChangedSignal;
 }
@@ -1647,7 +1623,7 @@ void TextEditor::UpdateScrollBar()
   {
     mScrollStarted = true;
     Dali::Toolkit::TextEditor handle( GetOwner() );
-    mScrollStateChangedSignal.Emit( handle, DevelTextEditor::Scroll::STARTED );
+    mScrollStateChangedSignal.Emit( handle, Toolkit::TextEditor::Scroll::STARTED );
   }
 
   Actor indicator = mScrollBar.GetScrollIndicator();
@@ -1672,7 +1648,7 @@ void TextEditor::OnScrollIndicatorAnimationFinished( Animation& animation )
   {
     mScrollStarted = false;
     Dali::Toolkit::TextEditor handle( GetOwner() );
-    mScrollStateChangedSignal.Emit( handle, DevelTextEditor::Scroll::FINISHED );
+    mScrollStateChangedSignal.Emit( handle, Toolkit::TextEditor::Scroll::FINISHED );
   }
 }