2 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/devel-api/text-abstraction/emoji-character-properties.h>
23 namespace TextAbstraction
27 //Emoji Variation Sequences for UTS #51: https://www.unicode.org/Public/14.0.0/ucd/emoji/emoji-variation-sequences.txt
28 //emoji-variation-sequences-14.0.0.txt
29 std::set<unsigned int> SET_CHAR_EMOJI_VARIATION_SEQUENCES = {
30 0x002A, // #(1.1)ASTERISK
31 0x0030, // #(1.1)DIGITZERO
32 0x0031, // #(1.1)DIGITONE
33 0x0032, // #(1.1)DIGITTWO
34 0x0033, // #(1.1)DIGITTHREE
35 0x0034, // #(1.1)DIGITFOUR
36 0x0035, // #(1.1)DIGITFIVE
37 0x0036, // #(1.1)DIGITSIX
38 0x0037, // #(1.1)DIGITSEVEN
39 0x0038, // #(1.1)DIGITEIGHT
40 0x0039, // #(1.1)DIGITNINE
41 0x00A9, // #(1.1)COPYRIGHTSIGN
42 0x00AE, // #(1.1)REGISTEREDSIGN
43 0x203C, // #(1.1)DOUBLEEXCLAMATIONMARK
44 0x2049, // #(3.0)EXCLAMATIONQUESTIONMARK
45 0x2122, // #(1.1)TRADEMARKSIGN
46 0x2139, // #(3.0)INFORMATIONSOURCE
47 0x2194, // #(1.1)LEFTRIGHTARROW
48 0x2195, // #(1.1)UPDOWNARROW
49 0x2196, // #(1.1)NORTHWESTARROW
50 0x2197, // #(1.1)NORTHEASTARROW
51 0x2198, // #(1.1)SOUTHEASTARROW
52 0x2199, // #(1.1)SOUTHWESTARROW
53 0x21A9, // #(1.1)LEFTWARDSARROWWITHHOOK
54 0x21AA, // #(1.1)RIGHTWARDSARROWWITHHOOK
55 0x231A, // #(1.1)WATCH
56 0x231B, // #(1.1)HOURGLASS
57 0x2328, // #(1.1)KEYBOARD
58 0x23CF, // #(4.0)EJECTSYMBOL
59 0x23E9, // #(6.0)BLACKRIGHT-POINTINGDOUBLETRIANGLE
60 0x23EA, // #(6.0)BLACKLEFT-POINTINGDOUBLETRIANGLE
61 0x23ED, // #(6.0)BLACKRIGHT-POINTINGDOUBLETRIANGLEWITHVERTICALBAR
62 0x23EE, // #(6.0)BLACKLEFT-POINTINGDOUBLETRIANGLEWITHVERTICALBAR
63 0x23EF, // #(6.0)BLACKRIGHT-POINTINGTRIANGLEWITHDOUBLEVERTICALBAR
64 0x23F1, // #(6.0)STOPWATCH
65 0x23F2, // #(6.0)TIMERCLOCK
66 0x23F3, // #(6.0)HOURGLASSWITHFLOWINGSAND
67 0x23F8, // #(7.0)DOUBLEVERTICALBAR
68 0x23F9, // #(7.0)BLACKSQUAREFORSTOP
69 0x23FA, // #(7.0)BLACKCIRCLEFORRECORD
70 0x24C2, // #(1.1)CIRCLEDLATINCAPITALLETTERM
71 0x25AA, // #(1.1)BLACKSMALLSQUARE
72 0x25AB, // #(1.1)WHITESMALLSQUARE
73 0x25B6, // #(1.1)BLACKRIGHT-POINTINGTRIANGLE
74 0x25C0, // #(1.1)BLACKLEFT-POINTINGTRIANGLE
75 0x25FB, // #(3.2)WHITEMEDIUMSQUARE
76 0x25FC, // #(3.2)BLACKMEDIUMSQUARE
77 0x25FD, // #(3.2)WHITEMEDIUMSMALLSQUARE
78 0x25FE, // #(3.2)BLACKMEDIUMSMALLSQUARE
79 0x2600, // #(1.1)BLACKSUNWITHRAYS
80 0x2601, // #(1.1)CLOUD
81 0x2602, // #(1.1)UMBRELLA
82 0x2603, // #(1.1)SNOWMAN
83 0x2604, // #(1.1)COMET
84 0x260E, // #(1.1)BLACKTELEPHONE
85 0x2611, // #(1.1)BALLOTBOXWITHCHECK
86 0x2614, // #(4.0)UMBRELLAWITHRAINDROPS
87 0x2615, // #(4.0)HOTBEVERAGE
88 0x2618, // #(4.1)SHAMROCK
89 0x261D, // #(1.1)WHITEUPPOINTINGINDEX
90 0x2620, // #(1.1)SKULLANDCROSSBONES
91 0x2622, // #(1.1)RADIOACTIVESIGN
92 0x2623, // #(1.1)BIOHAZARDSIGN
93 0x2626, // #(1.1)ORTHODOXCROSS
94 0x262A, // #(1.1)STARANDCRESCENT
95 0x262E, // #(1.1)PEACESYMBOL
96 0x262F, // #(1.1)YINYANG
97 0x2638, // #(1.1)WHEELOFDHARMA
98 0x2639, // #(1.1)WHITEFROWNINGFACE
99 0x263A, // #(1.1)WHITESMILINGFACE
100 0x2640, // #(1.1)FEMALESIGN
101 0x2642, // #(1.1)MALESIGN
102 0x2648, // #(1.1)ARIES
103 0x2649, // #(1.1)TAURUS
104 0x264A, // #(1.1)GEMINI
105 0x264B, // #(1.1)CANCER
107 0x264D, // #(1.1)VIRGO
108 0x264E, // #(1.1)LIBRA
109 0x264F, // #(1.1)SCORPIUS
110 0x2650, // #(1.1)SAGITTARIUS
111 0x2651, // #(1.1)CAPRICORN
112 0x2652, // #(1.1)AQUARIUS
113 0x2653, // #(1.1)PISCES
114 0x265F, // #(1.1)BLACKCHESSPAWN
115 0x2660, // #(1.1)BLACKSPADESUIT
116 0x2663, // #(1.1)BLACKCLUBSUIT
117 0x2665, // #(1.1)BLACKHEARTSUIT
118 0x2666, // #(1.1)BLACKDIAMONDSUIT
119 0x2668, // #(1.1)HOTSPRINGS
120 0x267B, // #(3.2)BLACKUNIVERSALRECYCLINGSYMBOL
121 0x267E, // #(4.1)PERMANENTPAPERSIGN
122 0x267F, // #(4.1)WHEELCHAIRSYMBOL
123 0x2692, // #(4.1)HAMMERANDPICK
124 0x2693, // #(4.1)ANCHOR
125 0x2694, // #(4.1)CROSSEDSWORDS
126 0x2695, // #(4.1)STAFFOFAESCULAPIUS
127 0x2696, // #(4.1)SCALES
128 0x2697, // #(4.1)ALEMBIC
129 0x2699, // #(4.1)GEAR
130 0x269B, // #(4.1)ATOMSYMBOL
131 0x269C, // #(4.1)FLEUR-DE-LIS
132 0x26A0, // #(4.0)WARNINGSIGN
133 0x26A1, // #(4.0)HIGHVOLTAGESIGN
134 0x26A7, // #(4.1)MALEWITHSTROKEANDMALEANDFEMALESIGN
135 0x26AA, // #(4.1)MEDIUMWHITECIRCLE
136 0x26AB, // #(4.1)MEDIUMBLACKCIRCLE
137 0x26B0, // #(4.1)COFFIN
138 0x26B1, // #(4.1)FUNERALURN
139 0x26BD, // #(5.2)SOCCERBALL
140 0x26BE, // #(5.2)BASEBALL
141 0x26C4, // #(5.2)SNOWMANWITHOUTSNOW
142 0x26C5, // #(5.2)SUNBEHINDCLOUD
143 0x26C8, // #(5.2)THUNDERCLOUDANDRAIN
144 0x26CF, // #(5.2)PICK
145 0x26D1, // #(5.2)HELMETWITHWHITECROSS
146 0x26D3, // #(5.2)CHAINS
147 0x26D4, // #(5.2)NOENTRY
148 0x26E9, // #(5.2)SHINTOSHRINE
149 0x26EA, // #(5.2)CHURCH
150 0x26F0, // #(5.2)MOUNTAIN
151 0x26F1, // #(5.2)UMBRELLAONGROUND
152 0x26F2, // #(5.2)FOUNTAIN
153 0x26F3, // #(5.2)FLAGINHOLE
154 0x26F4, // #(5.2)FERRY
155 0x26F5, // #(5.2)SAILBOAT
156 0x26F7, // #(5.2)SKIER
157 0x26F8, // #(5.2)ICESKATE
158 0x26F9, // #(5.2)PERSONWITHBALL
159 0x26FA, // #(5.2)TENT
160 0x26FD, // #(5.2)FUELPUMP
161 0x2702, // #(1.1)BLACKSCISSORS
162 0x2708, // #(1.1)AIRPLANE
163 0x2709, // #(1.1)ENVELOPE
164 0x270C, // #(1.1)VICTORYHAND
165 0x270D, // #(1.1)WRITINGHAND
166 0x270F, // #(1.1)PENCIL
167 0x2712, // #(1.1)BLACKNIB
168 0x2714, // #(1.1)HEAVYCHECKMARK
169 0x2716, // #(1.1)HEAVYMULTIPLICATIONX
170 0x271D, // #(1.1)LATINCROSS
171 0x2721, // #(1.1)STAROFDAVID
172 0x2733, // #(1.1)EIGHTSPOKEDASTERISK
173 0x2734, // #(1.1)EIGHTPOINTEDBLACKSTAR
174 0x2744, // #(1.1)SNOWFLAKE
175 0x2747, // #(1.1)SPARKLE
176 0x2753, // #(6.0)BLACKQUESTIONMARKORNAMENT
177 0x2757, // #(5.2)HEAVYEXCLAMATIONMARKSYMBOL
178 0x2763, // #(1.1)HEAVYHEARTEXCLAMATIONMARKORNAMENT
179 0x2764, // #(1.1)HEAVYBLACKHEART
180 0x27A1, // #(1.1)BLACKRIGHTWARDSARROW
181 0x2934, // #(3.2)ARROWPOINTINGRIGHTWARDSTHENCURVINGUPWARDS
182 0x2935, // #(3.2)ARROWPOINTINGRIGHTWARDSTHENCURVINGDOWNWARDS
183 0x2B05, // #(4.0)LEFTWARDSBLACKARROW
184 0x2B06, // #(4.0)UPWARDSBLACKARROW
185 0x2B07, // #(4.0)DOWNWARDSBLACKARROW
186 0x2B1B, // #(5.1)BLACKLARGESQUARE
187 0x2B1C, // #(5.1)WHITELARGESQUARE
188 0x2B50, // #(5.1)WHITEMEDIUMSTAR
189 0x2B55, // #(5.2)HEAVYLARGECIRCLE
190 0x3030, // #(1.1)WAVYDASH
191 0x303D, // #(3.2)PARTALTERNATIONMARK
192 0x3297, // #(1.1)CIRCLEDIDEOGRAPHCONGRATULATION
193 0x3299, // #(1.1)CIRCLEDIDEOGRAPHSECRET
194 0x1F004, // #(5.1)MAHJONGTILEREDDRAGON
195 0x1F170, // #(6.0)NEGATIVESQUAREDLATINCAPITALLETTERA
196 0x1F171, // #(6.0)NEGATIVESQUAREDLATINCAPITALLETTERB
197 0x1F17E, // #(6.0)NEGATIVESQUAREDLATINCAPITALLETTERO
198 0x1F17F, // #(5.2)NEGATIVESQUAREDLATINCAPITALLETTERP
199 0x1F202, // #(6.0)SQUAREDKATAKANASA
200 0x1F21A, // #(5.2)SQUAREDCJKUNIFIEDIDEOGRAPH-7121
201 0x1F22F, // #(5.2)SQUAREDCJKUNIFIEDIDEOGRAPH-6307
202 0x1F237, // #(6.0)SQUAREDCJKUNIFIEDIDEOGRAPH-6708
203 0x1F30D, // #(6.0)EARTHGLOBEEUROPE-AFRICA
204 0x1F30E, // #(6.0)EARTHGLOBEAMERICAS
205 0x1F30F, // #(6.0)EARTHGLOBEASIA-AUSTRALIA
206 0x1F315, // #(6.0)FULLMOONSYMBOL
207 0x1F31C, // #(6.0)LASTQUARTERMOONWITHFACE
208 0x1F321, // #(7.0)THERMOMETER
209 0x1F324, // #(7.0)WHITESUNWITHSMALLCLOUD
210 0x1F325, // #(7.0)WHITESUNBEHINDCLOUD
211 0x1F326, // #(7.0)WHITESUNBEHINDCLOUDWITHRAIN
212 0x1F327, // #(7.0)CLOUDWITHRAIN
213 0x1F328, // #(7.0)CLOUDWITHSNOW
214 0x1F329, // #(7.0)CLOUDWITHLIGHTNING
215 0x1F32A, // #(7.0)CLOUDWITHTORNADO
216 0x1F32B, // #(7.0)FOG
217 0x1F32C, // #(7.0)WINDBLOWINGFACE
218 0x1F336, // #(7.0)HOTPEPPER
219 0x1F378, // #(6.0)COCKTAILGLASS
220 0x1F37D, // #(7.0)FORKANDKNIFEWITHPLATE
221 0x1F393, // #(6.0)GRADUATIONCAP
222 0x1F396, // #(7.0)MILITARYMEDAL
223 0x1F397, // #(7.0)REMINDERRIBBON
224 0x1F399, // #(7.0)STUDIOMICROPHONE
225 0x1F39A, // #(7.0)LEVELSLIDER
226 0x1F39B, // #(7.0)CONTROLKNOBS
227 0x1F39E, // #(7.0)FILMFRAMES
228 0x1F39F, // #(7.0)ADMISSIONTICKETS
229 0x1F3A7, // #(6.0)HEADPHONE
230 0x1F3AC, // #(6.0)CLAPPERBOARD
231 0x1F3AD, // #(6.0)PERFORMINGARTS
232 0x1F3AE, // #(6.0)VIDEOGAME
233 0x1F3C2, // #(6.0)SNOWBOARDER
234 0x1F3C4, // #(6.0)SURFER
235 0x1F3C6, // #(6.0)TROPHY
236 0x1F3CA, // #(6.0)SWIMMER
237 0x1F3CB, // #(7.0)WEIGHTLIFTER
238 0x1F3CC, // #(7.0)GOLFER
239 0x1F3CD, // #(7.0)RACINGMOTORCYCLE
240 0x1F3CE, // #(7.0)RACINGCAR
241 0x1F3D4, // #(7.0)SNOWCAPPEDMOUNTAIN
242 0x1F3D5, // #(7.0)CAMPING
243 0x1F3D6, // #(7.0)BEACHWITHUMBRELLA
244 0x1F3D7, // #(7.0)BUILDINGCONSTRUCTION
245 0x1F3D8, // #(7.0)HOUSEBUILDINGS
246 0x1F3D9, // #(7.0)CITYSCAPE
247 0x1F3DA, // #(7.0)DERELICTHOUSEBUILDING
248 0x1F3DB, // #(7.0)CLASSICALBUILDING
249 0x1F3DC, // #(7.0)DESERT
250 0x1F3DD, // #(7.0)DESERTISLAND
251 0x1F3DE, // #(7.0)NATIONALPARK
252 0x1F3DF, // #(7.0)STADIUM
253 0x1F3E0, // #(6.0)HOUSEBUILDING
254 0x1F3ED, // #(6.0)FACTORY
255 0x1F3F3, // #(7.0)WAVINGWHITEFLAG
256 0x1F3F5, // #(7.0)ROSETTE
257 0x1F3F7, // #(7.0)LABEL
258 0x1F408, // #(6.0)CAT
259 0x1F415, // #(6.0)DOG
260 0x1F41F, // #(6.0)FISH
261 0x1F426, // #(6.0)BIRD
262 0x1F43F, // #(7.0)CHIPMUNK
263 0x1F441, // #(7.0)EYE
264 0x1F442, // #(6.0)EAR
265 0x1F446, // #(6.0)WHITEUPPOINTINGBACKHANDINDEX
266 0x1F447, // #(6.0)WHITEDOWNPOINTINGBACKHANDINDEX
267 0x1F448, // #(6.0)WHITELEFTPOINTINGBACKHANDINDEX
268 0x1F449, // #(6.0)WHITERIGHTPOINTINGBACKHANDINDEX
269 0x1F44D, // #(6.0)THUMBSUPSIGN
270 0x1F44E, // #(6.0)THUMBSDOWNSIGN
271 0x1F453, // #(6.0)EYEGLASSES
272 0x1F46A, // #(6.0)FAMILY
273 0x1F47D, // #(6.0)EXTRATERRESTRIALALIEN
274 0x1F4A3, // #(6.0)BOMB
275 0x1F4B0, // #(6.0)MONEYBAG
276 0x1F4B3, // #(6.0)CREDITCARD
277 0x1F4BB, // #(6.0)PERSONALCOMPUTER
278 0x1F4BF, // #(6.0)OPTICALDISC
279 0x1F4CB, // #(6.0)CLIPBOARD
280 0x1F4DA, // #(6.0)BOOKS
281 0x1F4DF, // #(6.0)PAGER
282 0x1F4E4, // #(6.0)OUTBOXTRAY
283 0x1F4E5, // #(6.0)INBOXTRAY
284 0x1F4E6, // #(6.0)PACKAGE
285 0x1F4EA, // #(6.0)CLOSEDMAILBOXWITHLOWEREDFLAG
286 0x1F4EB, // #(6.0)CLOSEDMAILBOXWITHRAISEDFLAG
287 0x1F4EC, // #(6.0)OPENMAILBOXWITHRAISEDFLAG
288 0x1F4ED, // #(6.0)OPENMAILBOXWITHLOWEREDFLAG
289 0x1F4F7, // #(6.0)CAMERA
290 0x1F4F9, // #(6.0)VIDEOCAMERA
291 0x1F4FA, // #(6.0)TELEVISION
292 0x1F4FB, // #(6.0)RADIO
293 0x1F4FD, // #(7.0)FILMPROJECTOR
294 0x1F508, // #(6.0)SPEAKER
295 0x1F50D, // #(6.0)LEFT-POINTINGMAGNIFYINGGLASS
296 0x1F512, // #(6.0)LOCK
297 0x1F513, // #(6.0)OPENLOCK
298 0x1F549, // #(7.0)OMSYMBOL
299 0x1F54A, // #(7.0)DOVEOFPEACE
300 0x1F550, // #(6.0)CLOCKFACEONEOCLOCK
301 0x1F551, // #(6.0)CLOCKFACETWOOCLOCK
302 0x1F552, // #(6.0)CLOCKFACETHREEOCLOCK
303 0x1F553, // #(6.0)CLOCKFACEFOUROCLOCK
304 0x1F554, // #(6.0)CLOCKFACEFIVEOCLOCK
305 0x1F555, // #(6.0)CLOCKFACESIXOCLOCK
306 0x1F556, // #(6.0)CLOCKFACESEVENOCLOCK
307 0x1F557, // #(6.0)CLOCKFACEEIGHTOCLOCK
308 0x1F558, // #(6.0)CLOCKFACENINEOCLOCK
309 0x1F559, // #(6.0)CLOCKFACETENOCLOCK
310 0x1F55A, // #(6.0)CLOCKFACEELEVENOCLOCK
311 0x1F55B, // #(6.0)CLOCKFACETWELVEOCLOCK
312 0x1F55C, // #(6.0)CLOCKFACEONE-THIRTY
313 0x1F55D, // #(6.0)CLOCKFACETWO-THIRTY
314 0x1F55E, // #(6.0)CLOCKFACETHREE-THIRTY
315 0x1F55F, // #(6.0)CLOCKFACEFOUR-THIRTY
316 0x1F560, // #(6.0)CLOCKFACEFIVE-THIRTY
317 0x1F561, // #(6.0)CLOCKFACESIX-THIRTY
318 0x1F562, // #(6.0)CLOCKFACESEVEN-THIRTY
319 0x1F563, // #(6.0)CLOCKFACEEIGHT-THIRTY
320 0x1F564, // #(6.0)CLOCKFACENINE-THIRTY
321 0x1F565, // #(6.0)CLOCKFACETEN-THIRTY
322 0x1F566, // #(6.0)CLOCKFACEELEVEN-THIRTY
323 0x1F567, // #(6.0)CLOCKFACETWELVE-THIRTY
324 0x1F56F, // #(7.0)CANDLE
325 0x1F570, // #(7.0)MANTELPIECECLOCK
326 0x1F573, // #(7.0)HOLE
327 0x1F574, // #(7.0)MANINBUSINESSSUITLEVITATING
328 0x1F575, // #(7.0)SLEUTHORSPY
329 0x1F576, // #(7.0)DARKSUNGLASSES
330 0x1F577, // #(7.0)SPIDER
331 0x1F578, // #(7.0)SPIDERWEB
332 0x1F579, // #(7.0)JOYSTICK
333 0x1F587, // #(7.0)LINKEDPAPERCLIPS
334 0x1F58A, // #(7.0)LOWERLEFTBALLPOINTPEN
335 0x1F58B, // #(7.0)LOWERLEFTFOUNTAINPEN
336 0x1F58C, // #(7.0)LOWERLEFTPAINTBRUSH
337 0x1F58D, // #(7.0)LOWERLEFTCRAYON
338 0x1F590, // #(7.0)RAISEDHANDWITHFINGERSSPLAYED
339 0x1F5A5, // #(7.0)DESKTOPCOMPUTER
340 0x1F5A8, // #(7.0)PRINTER
341 0x1F5B1, // #(7.0)THREEBUTTONMOUSE
342 0x1F5B2, // #(7.0)TRACKBALL
343 0x1F5BC, // #(7.0)FRAMEWITHPICTURE
344 0x1F5C2, // #(7.0)CARDINDEXDIVIDERS
345 0x1F5C3, // #(7.0)CARDFILEBOX
346 0x1F5C4, // #(7.0)FILECABINET
347 0x1F5D1, // #(7.0)WASTEBASKET
348 0x1F5D2, // #(7.0)SPIRALNOTEPAD
349 0x1F5D3, // #(7.0)SPIRALCALENDARPAD
350 0x1F5DC, // #(7.0)COMPRESSION
351 0x1F5DD, // #(7.0)OLDKEY
352 0x1F5DE, // #(7.0)ROLLED-UPNEWSPAPER
353 0x1F5E1, // #(7.0)DAGGERKNIFE
354 0x1F5E3, // #(7.0)SPEAKINGHEADINSILHOUETTE
355 0x1F5E8, // #(7.0)LEFTSPEECHBUBBLE
356 0x1F5EF, // #(7.0)RIGHTANGERBUBBLE
357 0x1F5F3, // #(7.0)BALLOTBOXWITHBALLOT
358 0x1F5FA, // #(7.0)WORLDMAP
359 0x1F610, // #(6.0)NEUTRALFACE
360 0x1F687, // #(6.0)METRO
361 0x1F68D, // #(6.0)ONCOMINGBUS
362 0x1F691, // #(6.0)AMBULANCE
363 0x1F694, // #(6.0)ONCOMINGPOLICECAR
364 0x1F698, // #(6.0)ONCOMINGAUTOMOBILE
365 0x1F6AD, // #(6.0)NOSMOKINGSYMBOL
366 0x1F6B2, // #(6.0)BICYCLE
367 0x1F6B9, // #(6.0)MENSSYMBOL
368 0x1F6BA, // #(6.0)WOMENSSYMBOL
369 0x1F6BC, // #(6.0)BABYSYMBOL
370 0x1F6CB, // #(7.0)COUCHANDLAMP
371 0x1F6CD, // #(7.0)SHOPPINGBAGS
372 0x1F6CE, // #(7.0)BELLHOPBELL
373 0x1F6CF, // #(7.0)BED
374 0x1F6E0, // #(7.0)HAMMERANDWRENCH
375 0x1F6E1, // #(7.0)SHIELD
376 0x1F6E2, // #(7.0)OILDRUM
377 0x1F6E3, // #(7.0)MOTORWAY
378 0x1F6E4, // #(7.0)RAILWAYTRACK
379 0x1F6E5, // #(7.0)MOTORBOAT
380 0x1F6E9, // #(7.0)SMALLAIRPLANE
381 0x1F6F0, // #(7.0)SATELLITE
382 0x1F6F3, // #(7.0)PASSENGERSHIP
386 //TODO: find/create library or API to check emoji properties. OR parse file https://www.unicode.org/Public/14.0.0/ucd/emoji/emoji-data.txt then call the below APIs
388 DALI_ADAPTOR_API bool IsEmojiComponent(Character character)
390 return (TextAbstraction::CHAR_EMOJI_COMPONENT_BALD == character ||
391 TextAbstraction::CHAR_EMOJI_COMPONENT_RED_HAIR == character ||
392 TextAbstraction::CHAR_EMOJI_COMPONENT_CURLY_HAIR == character ||
393 TextAbstraction::CHAR_EMOJI_COMPONENT_WHITE_HAIR == character);
396 DALI_ADAPTOR_API bool IsEmojiModifier(Character character)
398 return (TextAbstraction::CHAR_EMOJI_MODIFIER_FITZPATRICK_TYPE_1_2 <= character &&
399 TextAbstraction::CHAR_EMOJI_MODIFIER_FITZPATRICK_TYPE_6 >= character);
402 DALI_ADAPTOR_API bool IsCombiningEnclosingKeycap(Character character)
404 return (TextAbstraction::CHAR_COMBINING_ENCLOSING_KEYCAP == character);
407 DALI_ADAPTOR_API bool IsRegionalIndicator(Character character)
409 return (TextAbstraction::CHAR_REGIONAL_INDICATOR_SYMBOL_LETTER_A <= character &&
410 TextAbstraction::CHAR_REGIONAL_INDICATOR_SYMBOL_LETTER_Z >= character);
413 DALI_ADAPTOR_API bool IsTextPresentationSelector(Character character)
415 return (TextAbstraction::CHAR_VARIATION_SELECTOR_15 == character);
418 DALI_ADAPTOR_API bool IsEmojiPresentationSelector(Character character)
420 return (TextAbstraction::CHAR_VARIATION_SELECTOR_16 == character);
423 DALI_ADAPTOR_API bool IsTagSpec(Character character)
425 return (TextAbstraction::CHAR_TAG_SPACE <= character &&
426 TextAbstraction::CHAR_TAG_TILDE >= character);
429 DALI_ADAPTOR_API bool IsTagEnd(Character character)
431 return (TextAbstraction::CHAR_CANCEL_TAG == character);
434 DALI_ADAPTOR_API bool IsEmojiItem(Character character)
436 return (IsEmojiComponent(character) ||
437 IsEmojiModifier(character) ||
438 IsTextPresentationSelector(character) ||
439 IsEmojiPresentationSelector(character) ||
440 IsTagSpec(character) ||
441 IsTagEnd(character));
444 DALI_ADAPTOR_API bool IsMiscellaneousSymbolsAndArrowsEmoji(Character character)
446 return (CHAR_NORTH_EAST_WHITE_ARROW <= character &&
447 CHAR_HELLSCHREIBER_PAUSE_SYMBOL >= character);
450 DALI_ADAPTOR_API bool IsDingbatsEmoji(Character character)
452 return (CHAR_BLACK_SAFETY_SCISSORS <= character &&
453 CHAR_DOUBLE_CURLY_LOOP_EMOJI >= character);
456 DALI_ADAPTOR_API bool IsASCIIDigits(Character character)
458 return (CHAR_ASCII_DIGIT_0 <= character &&
459 CHAR_ASCII_DIGIT_9 >= character);
462 DALI_ADAPTOR_API bool IsEmojiVariationSequences(Character character)
464 return SET_CHAR_EMOJI_VARIATION_SEQUENCES.find(character) != SET_CHAR_EMOJI_VARIATION_SEQUENCES.end();
467 } // namespace TextAbstraction