{
namespace
{
+//TODO: Move the below defined characters to "defined-characters.h"
constexpr unsigned int WHITE_SPACE_THRESHOLD = 0x21; ///< All characters below 0x21 are considered white spaces.
+constexpr unsigned int CHAR_SPACE = 0x20; ///< Space.
constexpr unsigned int CHAR_LF = 0x000A; ///< NL Line feed, new line.
constexpr unsigned int CHAR_VT = 0x000B; ///< Vertical tab.
constexpr unsigned int CHAR_FF = 0x000C; ///< NP Form feed, new page.
constexpr unsigned int CHAR_LS = 0x2028; ///< Line separator.
constexpr unsigned int CHAR_PS = 0x2029; ///< Paragraph separator
-constexpr unsigned int CHAR_ZWS = 0x200B; ///< Zero width space.
constexpr unsigned int CHAR_ZWNJ = 0x200C; ///< Zero width non joiner.
constexpr unsigned int CHAR_ZWJ = 0x200D; ///< Zero width joiner.
constexpr unsigned int CHAR_LTRM = 0x200E; ///< Left to Right Mark.
}
// U+1f170 4. Enclosed characters: negative squared latin capital letter A
// U+1f6ff 6b. Additional transport and map symbols
+ // Exclude U+1f170 ~ U+1f189. They are SYMBOLS_NSLCL (negative squared latin capital letter)
else if((0x1f170 <= character) && (character <= 0x1f6ff))
{
script = EMOJI;
{
Script script = UNKNOWN;
- if(IsCommonScript(character))
+ if(IsTextPresentationSelector(character))
+ {
+ script = EMOJI_TEXT;
+ }
+ else if(IsEmojiPresentationSelector(character))
+ {
+ script = EMOJI_COLOR;
+ }
+ else if(IsEmojiItem(character))
+ {
+ script = EMOJI;
+ }
+ else if(IsNegativeSquaredLatinCapitalLetter(character))
+ {
+ script = SYMBOLS_NSLCL;
+ }
+ else if(IsCommonScript(character))
{
script = COMMON;
}
return character < WHITE_SPACE_THRESHOLD;
}
+bool IsSpace(Character character)
+{
+ return CHAR_SPACE == character;
+}
+
bool IsNewParagraph(Character character)
{
return ((CHAR_LF == character) ||
(ARABIC == script));
}
+Length GetNumberOfScripts()
+{
+ return SYMBOLS_NSLCL + 1;
+}
+
} // namespace TextAbstraction
} // namespace Dali