X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Ftext%2Fscript.cpp;h=c320a7e4a804bcf706e8f380212816b9571debe9;hp=8860a142b0622f4865bd56313ef634579b748d33;hb=c24e97fce74115f16793a88dfbf5db2bbb73ccb1;hpb=306d2f61a1b64179e801fa8a0bb2bd7b4e9dd682 diff --git a/dali-toolkit/public-api/text/script.cpp b/dali-toolkit/public-api/text/script.cpp index 8860a14..c320a7e 100644 --- a/dali-toolkit/public-api/text/script.cpp +++ b/dali-toolkit/public-api/text/script.cpp @@ -27,6 +27,24 @@ namespace Toolkit namespace Text { +namespace +{ +const unsigned int WHITE_SPACE_THRESHOLD = 0x21; ///< All characters below 0x21 are considered white spaces. +const unsigned int CHAR_FL = 0x000A; ///< NL Line feed, new line. +const unsigned int CHAR_VT = 0x000B; ///< Vertical tab. +const unsigned int CHAR_FF = 0x000C; ///< NP Form feed, new page. +const unsigned int CHAR_NEL = 0x0085; ///< Next line. +const unsigned int CHAR_LS = 0x2028; ///< Line separator. +const unsigned int CHAR_PS = 0x2029; ///< Paragraph separator + +const unsigned int CHAR_ZWS = 0x200B; ///< Zero width space. +const unsigned int CHAR_ZWNJ = 0x200C; ///< Zero width non joiner. +const unsigned int CHAR_ZWJ = 0x200D; ///< Zero width joiner. +const unsigned int CHAR_LTRM = 0x200E; ///< Left to Right Mark. +const unsigned int CHAR_RTLM = 0x200F; ///< Right to Left Mark. +const unsigned int CHAR_TS = 0x2009; ///< Thin Space. +} // namespace + Script GetCharacterScript( Character character ) { // Latin script: @@ -107,8 +125,7 @@ Script GetCharacterScript( Character character ) // 0x0e00 - 0x0e7f Thai // Burmese script - // 0x1000 - 0x104f Myanmar - + // 0x1000 - 0x109f Myanmar if( character <= 0x0cff ) { @@ -201,7 +218,7 @@ Script GetCharacterScript( Character character ) { return TextAbstraction::LAO; } - if( ( 0x1000 <= character ) && ( character <= 0x104f ) ) + if( ( 0x1000 <= character ) && ( character <= 0x109f ) ) { return TextAbstraction::BURMESE; } @@ -364,6 +381,51 @@ Script GetCharacterScript( Character character ) return TextAbstraction::UNKNOWN; } +bool IsWhiteSpace( Character character ) +{ + return character < WHITE_SPACE_THRESHOLD; +} + +bool IsNewParagraph( Character character ) +{ + return ( ( CHAR_FL == character ) || + ( CHAR_VT == character ) || + ( CHAR_FF == character ) || + ( CHAR_NEL == character ) || + ( CHAR_LS == character ) || + ( CHAR_PS == character ) ); +} + +bool IsZeroWidthNonJoiner( Character character ) +{ + return CHAR_ZWNJ == character; +} + +bool IsZeroWidthJoiner( Character character ) +{ + return CHAR_ZWJ == character; +} + +bool IsZeroWidthSpace( Character character ) +{ + return CHAR_ZWS == character; +} + +bool IsLeftToRightMark( Character character ) +{ + return CHAR_LTRM == character; +} + +bool IsRightToLeftMark( Character character ) +{ + return CHAR_RTLM == character; +} + +bool IsThinSpace( Character character ) +{ + return CHAR_TS == character; +} + } // namespace Text } // namespace Toolkit