From: Paul Wisbey
Date: Tue, 1 Nov 2016 14:40:45 +0000 (-0700)
Subject: Merge "Text - UNDERLINE, SHADOW, INPUT_UNDERLINE and INPUT_SHADOW properties refactor...
X-Git-Tag: dali_1.2.13~6
X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=afa6a15b3ae8deb2e8cdf4f1262fd0d2d08d2eac;hp=533d8c2ec94a43bbe098b556bb905cbe10f427ab
Merge "Text - UNDERLINE, SHADOW, INPUT_UNDERLINE and INPUT_SHADOW properties refactor." into devel/master
---
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
index 1532883..022695d 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
@@ -542,16 +542,36 @@ int UtcDaliTextEditorSetPropertyP(void)
DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::INPUT_LINE_SPACING ), 20.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
// Check the underline property
- editor.SetProperty( TextEditor::Property::UNDERLINE, "{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}" );
- DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::UNDERLINE ), std::string("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}"), TEST_LOCATION );
+
+ Property::Map underlineMapSet;
+ Property::Map underlineMapGet;
+
+ underlineMapSet.Insert( "enable", "true" );
+ underlineMapSet.Insert( "color", "red" );
+ underlineMapSet.Insert( "height", "1" );
+
+ editor.SetProperty( TextEditor::Property::UNDERLINE, underlineMapSet );
+
+ underlineMapGet = editor.GetProperty( TextEditor::Property::UNDERLINE );
+ DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
// Check the input underline property
editor.SetProperty( TextEditor::Property::INPUT_UNDERLINE, "Underline input properties" );
DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::INPUT_UNDERLINE ), std::string("Underline input properties"), TEST_LOCATION );
// Check the shadow property
- editor.SetProperty( TextEditor::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\"}" );
- DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::SHADOW ), std::string("{\"color\":\"green\",\"offset\":\"2 2\"}"), TEST_LOCATION );
+ Property::Map shadowMapSet;
+ Property::Map shadowMapGet;
+
+ shadowMapSet.Insert( "color", "green" );
+ shadowMapSet.Insert( "offset", "2 2" );
+
+ editor.SetProperty( TextEditor::Property::SHADOW, shadowMapSet );
+
+ shadowMapGet = editor.GetProperty( TextEditor::Property::SHADOW );
+ DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
// Check the input shadow property
editor.SetProperty( TextEditor::Property::INPUT_SHADOW, "Shadow input properties" );
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
index d72f232..7dffc69 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
@@ -712,17 +712,36 @@ int UtcDaliTextFieldSetPropertyP(void)
DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+ Property::Map underlineMapSet;
+ Property::Map underlineMapGet;
+
+ underlineMapSet.Insert( "enable", "true" );
+ underlineMapSet.Insert( "color", "red" );
+ underlineMapSet.Insert( "height", "1" );
+
// Check the underline property
- field.SetProperty( TextField::Property::UNDERLINE, "{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}" );
- DALI_TEST_EQUALS( field.GetProperty( TextField::Property::UNDERLINE ), std::string("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}"), TEST_LOCATION );
+ field.SetProperty( TextField::Property::UNDERLINE, underlineMapSet );
+
+ underlineMapGet = field.GetProperty( TextField::Property::UNDERLINE );
+ DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
// Check the input underline property
field.SetProperty( TextField::Property::INPUT_UNDERLINE, "Underline input properties" );
DALI_TEST_EQUALS( field.GetProperty( TextField::Property::INPUT_UNDERLINE ), std::string("Underline input properties"), TEST_LOCATION );
// Check the shadow property
- field.SetProperty( TextField::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\"}" );
- DALI_TEST_EQUALS( field.GetProperty( TextField::Property::SHADOW ), std::string("{\"color\":\"green\",\"offset\":\"2 2\"}"), TEST_LOCATION );
+ Property::Map shadowMapSet;
+ Property::Map shadowMapGet;
+
+ shadowMapSet.Insert( "color", "green" );
+ shadowMapSet.Insert( "offset", "2 2" );
+
+ field.SetProperty( TextField::Property::SHADOW, shadowMapSet );
+
+ shadowMapGet = field.GetProperty( TextField::Property::SHADOW );
+ DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
// Check the input shadow property
field.SetProperty( TextField::Property::INPUT_SHADOW, "Shadow input properties" );
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
index 8261530..1045ad4 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
@@ -299,7 +299,16 @@ int UtcDaliToolkitTextLabelSetPropertyP(void)
// The underline color is changed as well.
DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::UNDERLINE_COLOR ), Color::BLUE, TEST_LOCATION );
- DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::UNDERLINE ), std::string("{\"enable\":\"false\",\"color\":\"blue\",\"height\":\"0\"}"), TEST_LOCATION );
+ Property::Map underlineMapSet;
+ Property::Map underlineMapGet;
+
+ underlineMapSet.Insert( "enable", "false" );
+ underlineMapSet.Insert( "color", "blue" );
+ underlineMapSet.Insert( "height", "0" );
+
+ underlineMapGet = label.GetProperty( TextLabel::Property::UNDERLINE );
+ DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
// Check that shadow parameters can be correctly set
label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 3.0f, 3.0f ) );
@@ -345,18 +354,54 @@ int UtcDaliToolkitTextLabelSetPropertyP(void)
DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::LINE_SPACING ), 10.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
// Check the underline property
- label.SetProperty( TextLabel::Property::UNDERLINE, "{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}" );
- DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::UNDERLINE ), std::string("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}"), TEST_LOCATION );
- label.SetProperty( TextLabel::Property::UNDERLINE, "" );
- DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::UNDERLINE ), std::string("{\"enable\":\"false\",\"color\":\"red\",\"height\":\"1\"}"), TEST_LOCATION );
+ underlineMapSet.Clear();
+ underlineMapSet.Insert( "enable", "true" );
+ underlineMapSet.Insert( "color", "red" );
+ underlineMapSet.Insert( "height", "1" );
+
+ label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
+
+ underlineMapGet = label.GetProperty( TextLabel::Property::UNDERLINE );
+ DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
+
+ underlineMapSet.Clear();
+
+ Property::Map underlineDisabledMapGet;
+ underlineDisabledMapGet.Insert( "enable", "false" );
+ underlineDisabledMapGet.Insert( "color", "red" );
+ underlineDisabledMapGet.Insert( "height", "1" );
+
+ label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
+ underlineMapGet = label.GetProperty( TextLabel::Property::UNDERLINE );
+ DALI_TEST_EQUALS( underlineMapGet.Count(), underlineDisabledMapGet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineDisabledMapGet ), true, TEST_LOCATION );
// Check the shadow property
- label.SetProperty( TextLabel::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\"}" );
- DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::SHADOW ), std::string("{\"color\":\"green\",\"offset\":\"2 2\"}"), TEST_LOCATION );
- label.SetProperty( TextLabel::Property::SHADOW, "" );
- DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::SHADOW ), std::string("{\"color\":\"green\",\"offset\":\"0 0\"}"), TEST_LOCATION );
+ Property::Map shadowMapSet;
+ Property::Map shadowMapGet;
+
+ shadowMapSet.Insert( "color", "green" );
+ shadowMapSet.Insert( "offset", "2 2" );
+
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+
+ shadowMapGet = label.GetProperty( TextLabel::Property::SHADOW );
+ DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
+
+ shadowMapSet.Clear();
+ Property::Map shadowDisabledMapGet;
+ shadowDisabledMapGet.Insert( "color", "green" );
+ shadowDisabledMapGet.Insert( "offset", "0 0" );
+
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+
+ shadowMapGet = label.GetProperty( TextLabel::Property::SHADOW );
+ DALI_TEST_EQUALS( shadowMapGet.Count(), shadowDisabledMapGet.Count(), TEST_LOCATION );
+ DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowDisabledMapGet ), true, TEST_LOCATION );
// Check the emboss property
label.SetProperty( TextLabel::Property::EMBOSS, "Emboss properties" );
diff --git a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
index 274f40e..273ffee 100644
--- a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
+++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
@@ -173,11 +173,11 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
Vector4 color;
bool offsetDefined = false;
Vector2 offset;
- const bool empty = Text::ParseProperties( value.Get(),
- colorDefined,
- color,
- offsetDefined,
- offset );
+ const bool empty = Text::ParseShadowProperties( value.Get(),
+ colorDefined,
+ color,
+ offsetDefined,
+ offset );
if( !empty )
{
@@ -191,11 +191,11 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
Vector4 color;
bool offsetDefined = false;
Vector2 offset;
- const bool empty = Text::ParseProperties( value.Get(),
- colorDefined,
- color,
- offsetDefined,
- offset );
+ const bool empty = Text::ParseShadowProperties( value.Get(),
+ colorDefined,
+ color,
+ offsetDefined,
+ offset );
if( !empty )
{
@@ -210,12 +210,12 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
Vector4 color;
bool heightDefined = false;
float height = 0.f;
- const bool empty = Text::ParseProperties( value.Get(),
- enabled,
- colorDefined,
- color,
- heightDefined,
- height );
+ const bool empty = Text::ParseUnderlineProperties( value.Get(),
+ enabled,
+ colorDefined,
+ color,
+ heightDefined,
+ height );
if( !empty )
{
@@ -230,12 +230,12 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
Vector4 color;
bool heightDefined = false;
float height = 0.f;
- const bool empty = Text::ParseProperties( value.Get(),
- enabled,
- colorDefined,
- color,
- heightDefined,
- height );
+ const bool empty = Text::ParseUnderlineProperties( value.Get(),
+ enabled,
+ colorDefined,
+ color,
+ heightDefined,
+ height );
if( !empty && colorDefined )
{
@@ -250,12 +250,12 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
Vector4 color;
bool heightDefined = false;
float height = 0.f;
- const bool empty = Text::ParseProperties( value.Get(),
- enabled,
- colorDefined,
- color,
- heightDefined,
- height );
+ const bool empty = Text::ParseUnderlineProperties( value.Get(),
+ enabled,
+ colorDefined,
+ color,
+ heightDefined,
+ height );
if( !empty && heightDefined )
{
diff --git a/dali-toolkit/internal/text/text-effects-style.cpp b/dali-toolkit/internal/text/text-effects-style.cpp
index 083cf47..44302d7 100644
--- a/dali-toolkit/internal/text/text-effects-style.cpp
+++ b/dali-toolkit/internal/text/text-effects-style.cpp
@@ -38,99 +38,86 @@ const std::string OFFSET_KEY( "offset" );
const std::string HEIGHT_KEY( "height" );
const std::string ENABLE_KEY( "enable" );
const std::string TRUE_TOKEN( "true" );
+const std::string FALSE_TOKEN( "false" );
}
-bool ParseProperties( const std::string& shadowProperties,
- bool& colorDefined,
- Vector4& color,
- bool& offsetDefined,
- Vector2& offset )
+bool ParseShadowProperties( const Property::Map& shadowPropertiesMap,
+ bool& colorDefined,
+ Vector4& color,
+ bool& offsetDefined,
+ Vector2& offset )
{
- // Parses and applies the style.
- Property::Map map;
- Text::ParsePropertyString( shadowProperties, map );
-
- const bool empty = map.Empty();
+ const unsigned int numberOfItems = shadowPropertiesMap.Count();
- if( !empty )
+ // Parses and applies the style.
+ for( unsigned int index = 0u; index < numberOfItems; ++index )
{
- /// Color key.
- Property::Value* colorValue = map.Find( COLOR_KEY );
+ const KeyValuePair& valueGet = shadowPropertiesMap.GetKeyValue( index );
- colorDefined = colorValue != NULL;
- if( colorDefined )
+ if( COLOR_KEY == valueGet.first.stringKey )
{
- const std::string colorStr = colorValue->Get();
+ /// Color key.
+ colorDefined = true;
+
+ const std::string colorStr = valueGet.second.Get();
Text::ColorStringToVector4( colorStr.c_str(), colorStr.size(), color );
}
-
- /// Offset key.
- Property::Value* offsetValue = map.Find( OFFSET_KEY );
-
- offsetDefined = offsetValue != NULL;
- if( offsetDefined )
+ else if( OFFSET_KEY == valueGet.first.stringKey )
{
- const std::string offsetStr = offsetValue->Get();
+ /// Offset key.
+ offsetDefined = true;
+
+ const std::string offsetStr = valueGet.second.Get();
StringToVector2( offsetStr.c_str(), offsetStr.size(), offset );
}
}
- return empty;
+ return 0u == numberOfItems;
}
-bool ParseProperties( const std::string& underlineProperties,
- bool& enabled,
- bool& colorDefined,
- Vector4& color,
- bool& heightDefined,
- float& height )
+bool ParseUnderlineProperties( const Property::Map& underlinePropertiesMap,
+ bool& enabled,
+ bool& colorDefined,
+ Vector4& color,
+ bool& heightDefined,
+ float& height )
{
- // Parses and applies the style.
- Property::Map map;
- Text::ParsePropertyString( underlineProperties, map );
+ const unsigned int numberOfItems = underlinePropertiesMap.Count();
- const bool empty = map.Empty();
-
- if( !empty )
+ // Parses and applies the style.
+ for( unsigned int index = 0u; index < numberOfItems; ++index )
{
- /// Enable key.
- Property::Value* enableValue = map.Find( ENABLE_KEY );
+ const KeyValuePair& valueGet = underlinePropertiesMap.GetKeyValue( index );
- enabled = false;
- const bool enabledDefined = enableValue != NULL;
- if( enabledDefined )
+ if( ENABLE_KEY == valueGet.first.stringKey )
{
- const std::string enableStr = enableValue->Get();
+ /// Enable key.
+ const std::string enableStr = valueGet.second.Get();
enabled = Text::TokenComparison( TRUE_TOKEN, enableStr.c_str(), enableStr.size() );
}
-
- /// Color key.
- Property::Value* colorValue = map.Find( COLOR_KEY );
-
- colorDefined = colorValue != NULL;
- if( colorDefined )
+ else if( COLOR_KEY == valueGet.first.stringKey )
{
- const std::string colorStr = colorValue->Get();
+ /// Color key.
+ colorDefined = true;
+
+ const std::string colorStr = valueGet.second.Get();
Text::ColorStringToVector4( colorStr.c_str(), colorStr.size(), color );
}
-
- /// Height key.
- Property::Value* heightValue = map.Find( HEIGHT_KEY );
-
- height = 0.f;
- heightDefined = heightValue != NULL;
- if( heightDefined )
+ else if( HEIGHT_KEY == valueGet.first.stringKey )
{
- const std::string heightStr = heightValue->Get();
+ /// Height key.
+ heightDefined = true;
+
+ const std::string heightStr = valueGet.second.Get();
height = StringToFloat( heightStr.c_str() );
}
}
- return empty;
+ return 0u == numberOfItems;
}
bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type )
@@ -139,26 +126,26 @@ bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& va
if( controller )
{
- const std::string properties = value.Get();
-
- bool enabled = false;
- bool colorDefined = false;
- Vector4 color;
- bool heightDefined = false;
- float height = 0.f;
-
- const bool empty = ParseProperties( properties,
- enabled,
- colorDefined,
- color,
- heightDefined,
- height );
-
- if( !empty )
+ switch( type )
{
- switch( type )
+ case EffectStyle::DEFAULT:
{
- case EffectStyle::DEFAULT:
+ const Property::Map& propertiesMap = value.Get();
+
+ bool enabled = false;
+ bool colorDefined = false;
+ Vector4 color;
+ bool heightDefined = false;
+ float height = 0.f;
+
+ const bool empty = ParseUnderlineProperties( propertiesMap,
+ enabled,
+ colorDefined,
+ color,
+ heightDefined,
+ height );
+
+ if( !empty )
{
if( enabled != controller->IsUnderlineEnabled() )
{
@@ -178,21 +165,8 @@ bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& va
controller->SetUnderlineHeight( height );
update = true;
}
- break;
}
- case EffectStyle::INPUT:
- {
- // Sets the input underline values.
- // TODO: to be implemented.
- break;
- }
- }
- }
- else
- {
- switch( type )
- {
- case EffectStyle::DEFAULT:
+ else
{
// Disable underline.
if( controller->IsUnderlineEnabled() )
@@ -200,18 +174,18 @@ bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& va
controller->SetUnderlineEnabled( false );
update = true;
}
- break;
- }
- case EffectStyle::INPUT:
- {
- // Sets the input underline values.
- // TODO: to be implemented.
- controller->SetInputUnderlineProperties( properties );
- break;
}
+ break;
}
- }
- }
+ case EffectStyle::INPUT:
+ {
+ const std::string& underlineProperties = value.Get();
+
+ controller->SetInputUnderlineProperties( underlineProperties );
+ break;
+ }
+ } // switch
+ } // if( controller )
return update;
}
@@ -228,19 +202,20 @@ void GetUnderlineProperties( ControllerPtr controller, Property::Value& value, E
const Vector4& color = controller->GetUnderlineColor();
const float height = controller->GetUnderlineHeight();
- std::string underlineProperties = "{\"enable\":";
- const std::string enabledStr = enabled ? "true" : "false";
- underlineProperties += "\"" + enabledStr + "\",";
+ Property::Map map;
+
+ const std::string enabledStr = enabled ? TRUE_TOKEN : FALSE_TOKEN;
+ map.Insert( ENABLE_KEY, enabledStr );
std::string colorStr;
Vector4ToColorString( color, colorStr );
- underlineProperties += "\"color\":\"" + colorStr + "\",";
+ map.Insert( COLOR_KEY, colorStr );
std::string heightStr;
FloatToString( height, heightStr );
- underlineProperties += "\"height\":\"" + heightStr + "\"}";
+ map.Insert( HEIGHT_KEY, heightStr );
- value = underlineProperties;
+ value = map;
break;
}
case EffectStyle::INPUT:
@@ -258,24 +233,24 @@ bool SetShadowProperties( ControllerPtr controller, const Property::Value& value
if( controller )
{
- const std::string properties = value.Get< std::string >();
+ switch( type )
+ {
+ case EffectStyle::DEFAULT:
+ {
+ const Property::Map& propertiesMap = value.Get();
- bool colorDefined = false;
- Vector4 color;
- bool offsetDefined = false;
- Vector2 offset;
+ bool colorDefined = false;
+ Vector4 color;
+ bool offsetDefined = false;
+ Vector2 offset;
- const bool empty = ParseProperties( properties,
- colorDefined,
- color,
- offsetDefined,
- offset );
+ const bool empty = ParseShadowProperties( propertiesMap,
+ colorDefined,
+ color,
+ offsetDefined,
+ offset );
- if( !empty )
- {
- switch( type )
- {
- case EffectStyle::DEFAULT:
+ if( !empty )
{
// Sets the default shadow values.
if( colorDefined && ( controller->GetShadowColor() != color ) )
@@ -289,39 +264,26 @@ bool SetShadowProperties( ControllerPtr controller, const Property::Value& value
controller->SetShadowOffset( offset );
update = true;
}
- break;
}
- case EffectStyle::INPUT:
- {
- // Sets the input shadow values.
- // TODO: to be implemented.
- break;
- }
- }
- }
- else
- {
- switch( type )
- {
- case EffectStyle::DEFAULT:
+ else
{
// Disable shadow.
if( Vector2::ZERO != controller->GetShadowOffset() )
{
controller->SetShadowOffset( Vector2::ZERO );
}
- break;
- }
- case EffectStyle::INPUT:
- {
- // Sets the input shadow values.
- // TODO: to be implemented.
- controller->SetInputShadowProperties( properties );
- break;
}
+ break;
}
- }
- }
+ case EffectStyle::INPUT:
+ {
+ const std::string& shadowString = value.Get();
+
+ controller->SetInputShadowProperties( shadowString );
+ break;
+ }
+ } // switch
+ } // if( controller )
return update;
}
@@ -337,17 +299,17 @@ void GetShadowProperties( ControllerPtr controller, Property::Value& value, Effe
const Vector4& color = controller->GetShadowColor();
const Vector2& offset = controller->GetShadowOffset();
- std::string shadowProperties = "{";
+ Property::Map map;
std::string colorStr;
Vector4ToColorString( color, colorStr );
- shadowProperties += "\"color\":\"" + colorStr + "\",";
+ map.Insert( COLOR_KEY, colorStr );
std::string offsetStr;
Vector2ToString( offset, offsetStr );
- shadowProperties += "\"offset\":\"" + offsetStr + "\"}";
+ map.Insert( OFFSET_KEY, offsetStr );
- value = shadowProperties;
+ value = map;
break;
}
case EffectStyle::INPUT:
diff --git a/dali-toolkit/internal/text/text-effects-style.h b/dali-toolkit/internal/text/text-effects-style.h
index fb21fe9..4ab61a3 100644
--- a/dali-toolkit/internal/text/text-effects-style.h
+++ b/dali-toolkit/internal/text/text-effects-style.h
@@ -42,32 +42,34 @@ namespace EffectStyle
/**
* @brief Parses the shadow properties.
*
+ * @param[in] shadowProperties The map with the shadow properties.
* @param[out] colorDefined Whether the shadow's color is defined.
* @param[out] color The shadow's color.
* @param[out] offsetDefined Whether the shadow's offset is defined.
* @param[out] offset The shadow's offset.
*/
-bool ParseProperties( const std::string& shadowProperties,
- bool& colorDefined,
- Vector4& color,
- bool& offsetDefined,
- Vector2& offset );
+bool ParseShadowProperties( const Property::Map& shadowProperties,
+ bool& colorDefined,
+ Vector4& color,
+ bool& offsetDefined,
+ Vector2& offset );
/**
* @brief Parses the underline properties.
*
+ * @param[in] underlineProperties The map with the underline properties.
* @param[out] enabled Whether the underline is enabled.
* @param[out] colorDefined Whether the underline's color is defined.
* @param[out] color The underline's color.
* @param[out] heightDefined Whether the underline's height is defined.
* @param[out] height The underline's height.
*/
-bool ParseProperties( const std::string& underlineProperties,
- bool& enabled,
- bool& colorDefined,
- Vector4& color,
- bool& heightDefined,
- float& height );
+bool ParseUnderlineProperties( const Property::Map& underlineProperties,
+ bool& enabled,
+ bool& colorDefined,
+ Vector4& color,
+ bool& heightDefined,
+ float& height );
/**
* @brief Sets the underline properties.
diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp
index abaa703..c597e27 100644
--- a/dali-toolkit/internal/visuals/text/text-visual.cpp
+++ b/dali-toolkit/internal/visuals/text/text-visual.cpp
@@ -554,7 +554,7 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert
case Toolkit::TextVisual::Property::UNDERLINE:
{
// TODO : This switch can be removed when the deprecated SHADOW_OFFSET and SHADOW_COLOR properties are finally removed.
- // Only the code for the STRING case should be kept.
+ // Only the code for the MAP case should be kept.
switch( propertyValue.GetType() )
{
case Property::VECTOR4:
@@ -587,7 +587,7 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert
}
break;
}
- case Property::STRING:
+ case Property::MAP:
{
const bool update = SetUnderlineProperties( mController, propertyValue, Text::EffectStyle::DEFAULT );
if( update )
@@ -608,7 +608,7 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert
case Toolkit::TextVisual::Property::SHADOW:
{
// TODO : This switch can be removed when the deprecated SHADOW_OFFSET and SHADOW_COLOR properties are finally removed.
- // Only the code for the STRING case should be kept.
+ // Only the code for the MAP case should be kept.
switch( propertyValue.GetType() )
{
case Property::VECTOR2:
@@ -631,7 +631,7 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert
}
break;
}
- case Property::STRING:
+ case Property::MAP:
{
const bool update = SetShadowProperties( mController, propertyValue, Text::EffectStyle::DEFAULT );
if( update )