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, //
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 )
"\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 )
{
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[] =
{
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 )
{
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[] =
{
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 )
{
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[] =
{
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 )
{
imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "w", 6, 1 );
controller->OnInputMethodContextEvent( inputMethodContext, imfEvent );
- // Set the preedit style as HIGHLIGHT_SUB4
- inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::HIGHLIGHT_SUB4 );
+ // Set the preedit style as CUSTOM_PLATFORM_STYLE_1
+ inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_1 );
controller->GetNaturalSize();
controller->GetText( text );
imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "w", 6, 1 );
controller->OnInputMethodContextEvent( inputMethodContext, imfEvent );
- // Set the preedit style as HIGHLIGHT_SUB5
- inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::HIGHLIGHT_SUB5 );
+ // Set the preedit style as CUSTOM_PLATFORM_STYLE_2
+ inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_2 );
controller->GetNaturalSize();
controller->GetText( text );
imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "w", 6, 1 );
controller->OnInputMethodContextEvent( inputMethodContext, imfEvent );
- // Set the preedit style as HIGHLIGHT_SUB6
- inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::HIGHLIGHT_SUB6 );
+ // Set the preedit style as CUSTOM_PLATFORM_STYLE_3
+ inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_3 );
controller->GetNaturalSize();
controller->GetText( text );
imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "w", 6, 1 );
controller->OnInputMethodContextEvent( inputMethodContext, imfEvent );
- // Set the preedit style as HIGHLIGHT_SUB7
- inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::HIGHLIGHT_SUB7 );
+ // Set the preedit style as CUSTOM_PLATFORM_STYLE_4
+ inputMethodContext.SetPreeditStyle( InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_4 );
controller->GetNaturalSize();
controller->GetText( text );
void ApplyOptions( const InputMethodOptions& options );
bool FilterEventKey( const Dali::KeyEvent& keyEvent );
void SetPreeditStyle( Dali::InputMethodContext::PreeditStyle type );
- void GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttrData >& attrs ) const;
+ void GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const;
public: // Signals
ActivatedSignalType& ActivatedSignal() { return mActivatedSignal; }
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::PreeditAttrData > mPreeditAttrs; ///< Stores preedit attr data
+ Dali::InputMethodContext::PreEditAttributeDataContainer mPreeditAttrs; ///< Stores preedit attribute data
ActivatedSignalType mActivatedSignal;
KeyboardEventSignalType mEventSignal;
void InputMethodContext::SetPreeditStyle( Dali::InputMethodContext::PreeditStyle type )
{
- Dali::InputMethodContext::PreeditAttrData data;
+ Dali::InputMethodContext::PreeditAttributeData data;
data.preeditType = type;
mPreeditAttrs.PushBack( data );
}
-void InputMethodContext::GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttrData >& attrs ) const
+void InputMethodContext::GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const
{
attrs = mPreeditAttrs;
}
Internal::Adaptor::InputMethodContext::GetImplementation(*this).SetPreeditStyle( type );
}
-void InputMethodContext::GetPreeditStyle( Vector< Dali::InputMethodContext::PreeditAttrData >& attrs ) const
+void InputMethodContext::GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const
{
Internal::Adaptor::InputMethodContext::GetImplementation(*this).GetPreeditStyle( attrs );
}
*/
enum class PreeditStyle
{
- NONE, ///< None style
- UNDERLINE, ///< Underline substring style
- REVERSE, ///< Reverse substring style
- HIGHLIGHT, ///< Highlight substring style
- HIGHLIGHT_SUB4, ///< SUB4 substring style
- HIGHLIGHT_SUB5, ///< SUB5 substring style
- HIGHLIGHT_SUB6, ///< SUB6 substring style
- HIGHLIGHT_SUB7 ///< SUB7 substring style
+ NONE, ///< None style
+ UNDERLINE, ///< Underline substring style
+ REVERSE, ///< Reverse substring style
+ HIGHLIGHT, ///< Highlight substring style
+ CUSTOM_PLATFORM_STYLE_1, ///< Custom style for platform
+ CUSTOM_PLATFORM_STYLE_2, ///< Custom style for platform
+ CUSTOM_PLATFORM_STYLE_3, ///< Custom style for platform
+ CUSTOM_PLATFORM_STYLE_4 ///< Custom style for platform
};
/**
* @brief This structure is for the preedit style types and indices.
*/
- struct PreeditAttrData
+ 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
};
/**
typedef Signal< void () > VoidSignalType;
typedef Signal< void (bool) > StatusSignalType;
+ using PreEditAttributeDataContainer = Vector< Dali::InputMethodContext::PreeditAttributeData >;
+
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<PreeditAttrData>& attrs ) const;
+ void GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const;
public:
DALI_TEST_CHECK( !field.GetProperty<bool>( DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP ) );
// Check the background property
- Property::Map backgroundMapSet;
- Property::Map backgroundMapGet;
-
- backgroundMapSet["enable"] = true;
- backgroundMapSet["color"] = Color::RED;
- field.SetProperty( DevelTextField::Property::BACKGROUND, backgroundMapSet );
-
- backgroundMapGet = field.GetProperty<Property::Map>( DevelTextField::Property::BACKGROUND );
- DALI_TEST_EQUALS( backgroundMapGet.Count(), backgroundMapSet.Count(), TEST_LOCATION );
- DALI_TEST_EQUALS( DaliTestCheckMaps( backgroundMapGet, backgroundMapSet ), true, TEST_LOCATION );
+ field.SetProperty( DevelTextField::Property::BACKGROUND, Color::RED );
+ DALI_TEST_EQUALS( field.GetProperty<Vector4>( DevelTextField::Property::BACKGROUND ), Color::RED, TEST_LOCATION );
application.SendNotification();
application.Render();
/**
* @brief The default text background parameters.
- * @details Name "textBackground", type Property::MAP.
- * @note Use "textBackground" as property name to avoid conflict with Control's "background" property
- *
- * The background map contains the following keys:
- *
- * | %Property Name | Type | Required | Description |
- * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
- * | enable | BOOLEAN | No | True to enable the background or false to disable (the default value is false) |
- * | color | VECTOR4 | No | The color of the background (the default value is Color::CYAN) |
- *
- * Example Usage:
- * @code
- * Property::Map propertyMap;
- * propertyMap["enable"] = true;
- * propertyMap["color"] = Color::RED;
- * field.SetProperty( DevelTextField::Property::BACKGROUND, propertyMap );
- * @endcode
+ * @details Name "textBackground", type Property::VECTOR4.
+ * @note Use "textBackground" as property name to avoid conflict with Control's "background" property.
+ * @note The default value is Color::TRANSPARENT.
*/
BACKGROUND = ELLIPSIS + 5
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableGrabHandle", BOOLEAN, ENABLE_GRAB_HANDLE )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "matchSystemLanguageDirection", BOOLEAN, MATCH_SYSTEM_LANGUAGE_DIRECTION )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableGrabHandlePopup", BOOLEAN, ENABLE_GRAB_HANDLE_POPUP )
-DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "textBackground", MAP, BACKGROUND )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "textBackground", VECTOR4, BACKGROUND )
DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED )
DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED )
}
case Toolkit::DevelTextField::Property::BACKGROUND:
{
- const bool update = SetBackgroundProperties( impl.mController, value, Text::EffectStyle::DEFAULT );
- if( update )
+ if( impl.mController )
{
- impl.mRenderer.Reset();
+ const Vector4 backgroundColor = value.Get< Vector4 >();
+ DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p BACKGROUND %f,%f,%f,%f\n", impl.mController.Get(), backgroundColor.r, backgroundColor.g, backgroundColor.b, backgroundColor.a );
+
+ impl.mController->SetBackgroundEnabled( true );
+ impl.mController->SetBackgroundColor( backgroundColor );
}
break;
}
}
case Toolkit::DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP:
{
- if (impl.mController)
+ if( impl.mController )
{
value = impl.mController->IsGrabHandlePopupEnabled();
}
}
case Toolkit::DevelTextField::Property::BACKGROUND:
{
- GetBackgroundProperties( impl.mController, value, Text::EffectStyle::DEFAULT );
+ if( impl.mController )
+ {
+ value = impl.mController->GetBackgroundColor();
+ }
break;
}
} //switch
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, //
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;
{
numberOfBytes += U4;
}
+ else if( code < 0x4000000u )
+ {
+ numberOfBytes += U5;
+ }
+ else if( code < 0x80000000u )
+ {
+ numberOfBytes += U6;
+ }
}
return numberOfBytes;
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++;
}
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
mEventData->mPreEditFlag &&
( 0u != mModel->mVisualModel->mCharactersToGlyph.Count() ) )
{
- Vector< Dali::InputMethodContext::PreeditAttrData > 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::PreeditAttrData>::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::PreeditAttrData attrData = *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;
// 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;
}
mModel->mLogicalModel->mBackgroundColorRuns.PushBack( backgroundColorRun );
break;
}
- case Dali::InputMethodContext::PreeditStyle::HIGHLIGHT_SUB4:
+ case Dali::InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_1:
{
- // HIGHLIGHT_SUB4 should be drawn with background and underline together.
+ // CUSTOM_PLATFORM_STYLE_1 should be drawn with background and underline together.
ColorRun backgroundColorRun;
backgroundColorRun.characterRun.characterIndex = attrData.startIndex + numberOfCommit;
backgroundColorRun.characterRun.numberOfCharacters = numberOfIndices;
GlyphRun underlineRun;
underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
- underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+ underlineRun.numberOfGlyphs = numberOfIndices;
mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
break;
}
- case Dali::InputMethodContext::PreeditStyle::HIGHLIGHT_SUB5:
+ case Dali::InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_2:
{
- // HIGHLIGHT_SUB5 should be drawn with background and underline together.
+ // CUSTOM_PLATFORM_STYLE_2 should be drawn with background and underline together.
ColorRun backgroundColorRun;
backgroundColorRun.characterRun.characterIndex = attrData.startIndex + numberOfCommit;
backgroundColorRun.characterRun.numberOfCharacters = numberOfIndices;
GlyphRun underlineRun;
underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
- underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+ underlineRun.numberOfGlyphs = numberOfIndices;
mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
break;
}
- case Dali::InputMethodContext::PreeditStyle::HIGHLIGHT_SUB6:
+ case Dali::InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_3:
{
- // HIGHLIGHT_SUB6 should be drawn with background and underline together.
+ // CUSTOM_PLATFORM_STYLE_3 should be drawn with background and underline together.
ColorRun backgroundColorRun;
backgroundColorRun.characterRun.characterIndex = attrData.startIndex + numberOfCommit;
backgroundColorRun.characterRun.numberOfCharacters = numberOfIndices;
GlyphRun underlineRun;
underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
- underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+ underlineRun.numberOfGlyphs = numberOfIndices;
mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
break;
}
- case Dali::InputMethodContext::PreeditStyle::HIGHLIGHT_SUB7:
+ case Dali::InputMethodContext::PreeditStyle::CUSTOM_PLATFORM_STYLE_4:
{
- // HIGHLIGHT_SUB7 should be drawn with background and underline together.
+ // CUSTOM_PLATFORM_STYLE_4 should be drawn with background and underline together.
ColorRun backgroundColorRun;
backgroundColorRun.characterRun.characterIndex = attrData.startIndex + numberOfCommit;
backgroundColorRun.characterRun.numberOfCharacters = numberOfIndices;
GlyphRun underlineRun;
underlineRun.glyphIndex = attrData.startIndex + numberOfCommit;
- underlineRun.numberOfGlyphs = attrData.endIndex - attrData.startIndex;
+ underlineRun.numberOfGlyphs = numberOfIndices;
mModel->mVisualModel->mUnderlineRuns.PushBack( underlineRun );
break;
}