00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FXUNICODE_H
00022 #define FXUNICODE_H
00023
00024
00025
00026
00027
00028 namespace FX {
00029
00030
00032 enum {
00033 CatNotAssigned = 0,
00034 CatControl = 1,
00035 CatFormat = 2,
00036 CatSurrogate = 3,
00037 CatOther = 4,
00038 CatMarkNonSpacing = 5,
00039 CatMarkSpacingCombining = 6,
00040 CatMarkEnclosing = 7,
00041 CatSeparatorSpace = 8,
00042 CatSeparatorLine = 9,
00043 CatSeparatorParagraph = 10,
00044 CatLetterUpper = 11,
00045 CatLetterLower = 12,
00046 CatLetterTitle = 13,
00047 CatLetterModifier = 14,
00048 CatLetterOther = 15,
00049 CatNumberLetter = 16,
00050 CatNumberDecimal = 17,
00051 CatNumberOther = 18,
00052 CatPunctConnector = 19,
00053 CatPunctDash = 20,
00054 CatPunctOpen = 21,
00055 CatPunctClose = 22,
00056 CatPunctInitial = 23,
00057 CatPunctFinal = 24,
00058 CatPunctOther = 25,
00059 CatSymbolMath = 26,
00060 CatSymbolCurrency = 27,
00061 CatSymbolModifier = 28,
00062 CatSymbolOther = 29
00063 };
00064
00065
00067 enum {
00068 DirL = 0,
00069 DirLRE = 1,
00070 DirLRO = 2,
00071 DirR = 3,
00072 DirAL = 4,
00073 DirRLE = 5,
00074 DirRLO = 6,
00075 DirPDF = 7,
00076 DirEN = 8,
00077 DirES = 9,
00078 DirET = 10,
00079 DirAN = 11,
00080 DirCS = 12,
00081 DirNSM = 13,
00082 DirBN = 14,
00083 DirB = 15,
00084 DirS = 16,
00085 DirWS = 17,
00086 DirON = 18
00087 };
00088
00089
00091 enum {
00092 JoinTypeNonJoining = 0,
00093 JoinTypeRightJoining = 1,
00094 JoinTypeDualJoining = 2,
00095 JoinTypeJoinCausing = 3,
00096 JoinTypeLeftJoining = 4,
00097 JoinTypeTransparent = 5
00098 };
00099
00100
00102 enum {
00103 JoinGroupNone = 0,
00104 JoinGroupAin = 1,
00105 JoinGroupAlaph = 2,
00106 JoinGroupAlef = 3,
00107 JoinGroupBeh = 4,
00108 JoinGroupBeth = 5,
00109 JoinGroupBurushaskiYehBarree = 6,
00110 JoinGroupDal = 7,
00111 JoinGroupDalathRish = 8,
00112 JoinGroupE = 9,
00113 JoinGroupFarsiYeh = 10,
00114 JoinGroupFe = 11,
00115 JoinGroupFeh = 12,
00116 JoinGroupFinalSemkath = 13,
00117 JoinGroupGaf = 14,
00118 JoinGroupGamal = 15,
00119 JoinGroupHah = 16,
00120 JoinGroupHamzaOnHehGoal = 17,
00121 JoinGroupHe = 18,
00122 JoinGroupHeh = 19,
00123 JoinGroupHehGoal = 20,
00124 JoinGroupHeth = 21,
00125 JoinGroupKaf = 22,
00126 JoinGroupKaph = 23,
00127 JoinGroupKhaph = 24,
00128 JoinGroupKnottedHeh = 25,
00129 JoinGroupLam = 26,
00130 JoinGroupLamadh = 27,
00131 JoinGroupMeem = 28,
00132 JoinGroupMim = 29,
00133 JoinGroupNoon = 30,
00134 JoinGroupNun = 31,
00135 JoinGroupNya = 32,
00136 JoinGroupPe = 33,
00137 JoinGroupQaf = 34,
00138 JoinGroupQaph = 35,
00139 JoinGroupReh = 36,
00140 JoinGroupReversedPe = 37,
00141 JoinGroupSad = 38,
00142 JoinGroupSadhe = 39,
00143 JoinGroupSeen = 40,
00144 JoinGroupSemkath = 41,
00145 JoinGroupShin = 42,
00146 JoinGroupSwashKaf = 43,
00147 JoinGroupSyriacWaw = 44,
00148 JoinGroupTah = 45,
00149 JoinGroupTaw = 46,
00150 JoinGroupTehMarbuta = 47,
00151 JoinGroupTehMarbutaGoal = 48,
00152 JoinGroupTeth = 49,
00153 JoinGroupWaw = 50,
00154 JoinGroupYeh = 51,
00155 JoinGroupYehBarree = 52,
00156 JoinGroupYehWithTail = 53,
00157 JoinGroupYudh = 54,
00158 JoinGroupYudhHe = 55,
00159 JoinGroupZain = 56,
00160 JoinGroupZhain = 57
00161 };
00162
00163
00165 enum {
00166 CombineOverlay = 1,
00167 CombineNukta = 7,
00168 CombineKanaVoicing = 8,
00169 CombineVirama = 9,
00170 CombineBelowLeftAtt = 200,
00171 CombineBelowAtt = 202,
00172 CombineBelowRightAtt = 204,
00173 CombineLeftAtt = 208,
00174 CombineRightAtt = 210,
00175 CombineAboveLeftAtt = 212,
00176 CombineAboveAtt = 214,
00177 CombineAboveRightAtt = 216,
00178 CombineBelowLeft = 218,
00179 CombineBelow = 220,
00180 CombineBelowRight = 222,
00181 CombineLeft = 224,
00182 CombineRight = 226,
00183 CombineAboveLeft = 228,
00184 CombineAbove = 230,
00185 CombineAboveRight = 232,
00186 CombineDoubleBelow = 233,
00187 CombineDoubleAbove = 234,
00188 CombineIotaSub = 240
00189 };
00190
00191
00193 enum {
00194 DecomposeNone = 0,
00195 DecomposeCanonical = 1,
00196 DecomposeCompat = 2,
00197 DecomposeFont = 3,
00198 DecomposeNoBreak = 4,
00199 DecomposeInitial = 5,
00200 DecomposeMedial = 6,
00201 DecomposeFinal = 7,
00202 DecomposeIsolated = 8,
00203 DecomposeCircle = 9,
00204 DecomposeSuper = 10,
00205 DecomposeSub = 11,
00206 DecomposeVertical = 12,
00207 DecomposeWide = 13,
00208 DecomposeNarrow = 14,
00209 DecomposeSmall = 15,
00210 DecomposeSquare = 16,
00211 DecomposeFraction = 17
00212 };
00213
00214
00216 enum {
00217 BreakUnknown = 0,
00218 BreakMandatory = 1,
00219 BreakReturn = 2,
00220 BreakLineFeed = 3,
00221 BreakCombMark = 4,
00222 BreakNextLine = 5,
00223 BreakSurrogate = 6,
00224 BreakWordJoiner = 7,
00225 BreakZWSpace = 8,
00226 BreakGlue = 9,
00227 BreakSpace = 10,
00228 BreakBoth = 11,
00229 BreakAfter = 12,
00230 BreakBefore = 13,
00231 BreakHyphen = 14,
00232 BreakContingent = 15,
00233 BreakClosePunct = 16,
00234 BreakCloseParen = 17,
00235 BreakExclaim = 18,
00236 BreakInsep = 19,
00237 BreakNonStart = 20,
00238 BreakOpenPunct = 21,
00239 BreakQuote = 22,
00240 BreakInfix = 23,
00241 BreakNumeric = 24,
00242 BreakPostfix = 25,
00243 BreakPrefix = 26,
00244 BreakSymbol = 27,
00245 BreakAmbiguous = 28,
00246 BreakAlphabetic = 29,
00247 BreakHangul2 = 30,
00248 BreakHangul3 = 31,
00249 BreakIdeograph = 32,
00250 BreakJamoL = 33,
00251 BreakJamoV = 34,
00252 BreakJamoT = 35,
00253 BreakComplex = 36
00254 };
00255
00256
00258 enum {
00259 ScriptUnknown = 0,
00260 ScriptCommon = 1,
00261 ScriptInherited = 2,
00262 ScriptLatin = 3,
00263 ScriptGreek = 4,
00264 ScriptCyrillic = 5,
00265 ScriptArmenian = 6,
00266 ScriptHebrew = 7,
00267 ScriptArabic = 8,
00268 ScriptSyriac = 9,
00269 ScriptThaana = 10,
00270 ScriptDevanagari = 11,
00271 ScriptBengali = 12,
00272 ScriptGurmukhi = 13,
00273 ScriptGujarati = 14,
00274 ScriptOriya = 15,
00275 ScriptTamil = 16,
00276 ScriptTelugu = 17,
00277 ScriptKannada = 18,
00278 ScriptMalayalam = 19,
00279 ScriptSinhala = 20,
00280 ScriptThai = 21,
00281 ScriptLao = 22,
00282 ScriptTibetan = 23,
00283 ScriptMyanmar = 24,
00284 ScriptGeorgian = 25,
00285 ScriptHangul = 26,
00286 ScriptEthiopic = 27,
00287 ScriptCherokee = 28,
00288 ScriptCanadianAboriginal = 29,
00289 ScriptOgham = 30,
00290 ScriptRunic = 31,
00291 ScriptKhmer = 32,
00292 ScriptMongolian = 33,
00293 ScriptHiragana = 34,
00294 ScriptKatakana = 35,
00295 ScriptBopomofo = 36,
00296 ScriptHan = 37,
00297 ScriptYi = 38,
00298 ScriptOldItalic = 39,
00299 ScriptGothic = 40,
00300 ScriptDeseret = 41,
00301 ScriptTagalog = 42,
00302 ScriptHanunoo = 43,
00303 ScriptBuhid = 44,
00304 ScriptTagbanwa = 45,
00305 ScriptLimbu = 46,
00306 ScriptTaiLe = 47,
00307 ScriptLinearB = 48,
00308 ScriptUgaritic = 49,
00309 ScriptShavian = 50,
00310 ScriptOsmanya = 51,
00311 ScriptCypriot = 52,
00312 ScriptBraille = 53,
00313 ScriptBuginese = 54,
00314 ScriptCoptic = 55,
00315 ScriptNewTaiLue = 56,
00316 ScriptGlagolitic = 57,
00317 ScriptTifinagh = 58,
00318 ScriptSylotiNagri = 59,
00319 ScriptOldPersian = 60,
00320 ScriptKharoshthi = 61,
00321 ScriptBalinese = 62,
00322 ScriptCuneiform = 63,
00323 ScriptPhoenician = 64,
00324 ScriptPhagsPa = 65,
00325 ScriptNKo = 66,
00326 ScriptSundanese = 67,
00327 ScriptLepcha = 68,
00328 ScriptOlChiki = 69,
00329 ScriptVai = 70,
00330 ScriptSaurashtra = 71,
00331 ScriptKayahLi = 72,
00332 ScriptRejang = 73,
00333 ScriptLycian = 74,
00334 ScriptCarian = 75,
00335 ScriptLydian = 76,
00336 ScriptCham = 77,
00337 ScriptTaiTham = 78,
00338 ScriptTaiViet = 79,
00339 ScriptAvestan = 80,
00340 ScriptEgyptianHieroglyphs = 81,
00341 ScriptSamaritan = 82,
00342 ScriptLisu = 83,
00343 ScriptBamum = 84,
00344 ScriptJavanese = 85,
00345 ScriptMeiteiMayek = 86,
00346 ScriptImperialAramaic = 87,
00347 ScriptOldSouthArabian = 88,
00348 ScriptInscriptionalParthian = 89,
00349 ScriptInscriptionalPahlavi = 90,
00350 ScriptOldTurkic = 91,
00351 ScriptKaithi = 92,
00352 ScriptBatak = 93,
00353 ScriptBrahmi = 94,
00354 ScriptMandaic = 95
00355 };
00356
00357
00358 namespace Unicode {
00359
00361 extern FXAPI FXuint charCategory(FXwchar ucs);
00362
00364 extern FXAPI FXuint charDirection(FXwchar ucs);
00365
00367 extern FXAPI FXuint isSymmetric(FXwchar ucs);
00368
00370 extern FXAPI FXuint decomposeType(FXwchar ucs);
00371
00373 extern FXAPI FXuint charNumDecompose(FXwchar ucs);
00374
00376 extern FXAPI const FXwchar* charDecompose(FXwchar ucs);
00377
00379 extern FXAPI FXwchar charCompose(FXwchar ucsa,FXwchar ucsb);
00380
00382 extern FXAPI FXuint charCombining(FXwchar ucs);
00383
00385 extern FXAPI FXint digitValue(FXwchar ucs);
00386
00388 extern FXAPI FXuint lineBreakType(FXwchar ucs);
00389
00391 extern FXAPI FXwchar mirrorImage(FXwchar ucs);
00392
00394 extern FXAPI FXuint joiningType(FXwchar ucs);
00395
00397 extern FXAPI FXuint joiningGroup(FXwchar ucs);
00398
00400 extern FXAPI FXuint scriptType(FXwchar ucs);
00401
00403 extern FXAPI FXbool hasCase(FXwchar ucs);
00404 extern FXAPI FXbool isUpper(FXwchar ucs);
00405 extern FXAPI FXbool isLower(FXwchar ucs);
00406 extern FXAPI FXbool isTitle(FXwchar ucs);
00407 extern FXAPI FXbool isAscii(FXwchar ucs);
00408 extern FXAPI FXbool isLetter(FXwchar ucs);
00409 extern FXAPI FXbool isDigit(FXwchar ucs);
00410 extern FXAPI FXbool isAlphaNumeric(FXwchar ucs);
00411 extern FXAPI FXbool isControl(FXwchar ucs);
00412 extern FXAPI FXbool isSpace(FXwchar ucs);
00413 extern FXAPI FXbool isBlank(FXwchar ucs);
00414 extern FXAPI FXbool isPunct(FXwchar ucs);
00415 extern FXAPI FXbool isGraph(FXwchar ucs);
00416 extern FXAPI FXbool isPrint(FXwchar ucs);
00417 extern FXAPI FXbool isHexDigit(FXwchar ucs);
00418 extern FXAPI FXbool isSymbol(FXwchar ucs);
00419 extern FXAPI FXbool isMark(FXwchar ucs);
00420 extern FXAPI FXbool isSep(FXwchar ucs);
00421
00423 extern FXAPI FXwchar toUpper(FXwchar ucs);
00424 extern FXAPI FXwchar toLower(FXwchar ucs);
00425 extern FXAPI FXwchar toTitle(FXwchar ucs);
00426
00427 }
00428
00429 }
00430
00431 #endif