comparison dstep/coreservices/carboncore/Script.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
comparison
equal deleted inserted replaced
10:27e00625790b 11:07194b026fa4
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Jul 21, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.coreservices.carboncore.Script;
8
9 //import dstep.AvailabilityMacros;
10 import dstep.coreservices.carboncore.IntlResources;
11 import dstep.coreservices.carboncore.MacTypes;
12 import dstep.internal.Types;
13
14 alias byte TokenResults;
15 alias short ScriptTokenType;
16 alias TokenRec* TokenRecPtr;
17 alias TokenBlock* TokenBlockPtr;
18
19 enum
20 {
21 smSystemScript = -1,
22 smCurrentScript = -2,
23 smAllScripts = -3
24 }
25
26 enum
27 {
28 smRoman = 0,
29 smJapanese = 1,
30 smTradChinese = 2,
31 smKorean = 3,
32 smArabic = 4,
33 smHebrew = 5,
34 smGreek = 6,
35 smCyrillic = 7,
36 smRSymbol = 8,
37 smDevanagari = 9,
38 smGurmukhi = 10,
39 smGujarati = 11,
40 smOriya = 12,
41 smBengali = 13,
42 smTamil = 14,
43 smTelugu = 15,
44 smKannada = 16,
45 smMalayalam = 17,
46 smSinhalese = 18,
47 smBurmese = 19,
48 smKhmer = 20,
49 smThai = 21,
50 smLao = 22,
51 smGeorgian = 23,
52 smArmenian = 24,
53 smSimpChinese = 25,
54 smTibetan = 26,
55 smMongolian = 27,
56 smEthiopic = 28,
57 smGeez = 28,
58 smCentralEuroRoman = 29,
59 smVietnamese = 30,
60 smExtArabic = 31,
61 smUninterp = 32
62 }
63
64 enum
65 {
66 smUnicodeScript = 0x7E
67 }
68
69 enum
70 {
71 smChinese = 2,
72 smRussian = 7,
73 smLaotian = 22,
74 smAmharic = 28,
75 smSlavic = 29,
76 smEastEurRoman = 29,
77 smSindhi = 31,
78 smKlingon = 32
79 }
80
81 enum
82 {
83 langEnglish = 0,
84 langFrench = 1,
85 langGerman = 2,
86 langItalian = 3,
87 langDutch = 4,
88 langSwedish = 5,
89 langSpanish = 6,
90 langDanish = 7,
91 langPortuguese = 8,
92 langNorwegian = 9,
93 langHebrew = 10,
94 langJapanese = 11,
95 langArabic = 12,
96 langFinnish = 13,
97 langGreek = 14,
98 langIcelandic = 15,
99 langMaltese = 16,
100 langTurkish = 17,
101 langCroatian = 18,
102 langTradChinese = 19,
103 langUrdu = 20,
104 langHindi = 21,
105 langThai = 22,
106 langKorean = 23
107 }
108
109 enum
110 {
111 langLithuanian = 24,
112 langPolish = 25,
113 langHungarian = 26,
114 langEstonian = 27,
115 langLatvian = 28,
116 langSami = 29,
117 langFaroese = 30,
118 langFarsi = 31,
119 langPersian = 31,
120 langRussian = 32,
121 langSimpChinese = 33,
122 langFlemish = 34,
123 langIrishGaelic = 35,
124 langAlbanian = 36,
125 langRomanian = 37,
126 langCzech = 38,
127 langSlovak = 39,
128 langSlovenian = 40,
129 langYiddish = 41,
130 langSerbian = 42,
131 langMacedonian = 43,
132 langBulgarian = 44,
133 langUkrainian = 45,
134 langByelorussian = 46,
135 langBelorussian = 46
136 }
137
138 enum
139 {
140 langUzbek = 47,
141 langKazakh = 48,
142 langAzerbaijani = 49,
143 langAzerbaijanAr = 50,
144 langArmenian = 51,
145 langGeorgian = 52,
146 langMoldavian = 53,
147 langKirghiz = 54,
148 langTajiki = 55,
149 langTurkmen = 56,
150 langMongolian = 57,
151 langMongolianCyr = 58,
152 langPashto = 59,
153 langKurdish = 60,
154 langKashmiri = 61,
155 langSindhi = 62,
156 langTibetan = 63,
157 langNepali = 64,
158 langSanskrit = 65,
159 langMarathi = 66,
160 langBengali = 67,
161 langAssamese = 68,
162 langGujarati = 69,
163 langPunjabi = 70
164 }
165
166 enum
167 {
168 langOriya = 71,
169 langMalayalam = 72,
170 langKannada = 73,
171 langTamil = 74,
172 langTelugu = 75,
173 langSinhalese = 76,
174 langBurmese = 77,
175 langKhmer = 78,
176 langLao = 79,
177 langVietnamese = 80,
178 langIndonesian = 81,
179 langTagalog = 82,
180 langMalayRoman = 83,
181 langMalayArabic = 84,
182 langAmharic = 85,
183 langTigrinya = 86,
184 langOromo = 87,
185 langSomali = 88,
186 langSwahili = 89,
187 langKinyarwanda = 90,
188 langRuanda = 90,
189 langRundi = 91,
190 langNyanja = 92,
191 langChewa = 92,
192 langMalagasy = 93,
193 langEsperanto = 94
194 }
195
196 enum
197 {
198 langWelsh = 128,
199 langBasque = 129,
200 langCatalan = 130,
201 langLatin = 131,
202 langQuechua = 132,
203 langGuarani = 133,
204 langAymara = 134,
205 langTatar = 135,
206 langUighur = 136,
207 langDzongkha = 137,
208 langJavaneseRom = 138,
209 langSundaneseRom = 139,
210 langGalician = 140,
211 langAfrikaans = 141
212 }
213
214 enum
215 {
216 langBreton = 142,
217 langInuktitut = 143,
218 langScottishGaelic = 144,
219 langManxGaelic = 145,
220 langIrishGaelicScript = 146,
221 langTongan = 147,
222 langGreekAncient = 148,
223 langGreenlandic = 149,
224 langAzerbaijanRoman = 150,
225 langNynorsk = 151
226 }
227
228 enum
229 {
230 langUnspecified = 32767
231 }
232
233 enum
234 {
235 langPortugese = 8,
236 langMalta = 16,
237 langYugoslavian = 18,
238 langChinese = 19,
239 langLettish = 28,
240 langLapponian = 29,
241 langLappish = 29,
242 langSaamisk = 29,
243 langFaeroese = 30,
244 langIrish = 35,
245 langGalla = 87,
246 langAfricaans = 141,
247 langGreekPoly = 148
248 }
249
250 enum
251 {
252 verUS = 0,
253 verFrance = 1,
254 verBritain = 2,
255 verGermany = 3,
256 verItaly = 4,
257 verNetherlands = 5,
258 verFlemish = 6,
259 verSweden = 7,
260 verSpain = 8,
261 verDenmark = 9,
262 verPortugal = 10,
263 verFrCanada = 11,
264 verNorway = 12,
265 verIsrael = 13,
266 verJapan = 14,
267 verAustralia = 15,
268 verArabic = 16,
269 verFinland = 17,
270 verFrSwiss = 18,
271 verGrSwiss = 19,
272 verGreece = 20,
273 verIceland = 21,
274 verMalta = 22,
275 verCyprus = 23,
276 verTurkey = 24,
277 verYugoCroatian = 25
278 }
279
280 enum
281 {
282 verNetherlandsComma = 26,
283 verFlemishPoint = 27,
284 verCanadaComma = 28,
285 verCanadaPoint = 29,
286 vervariantPortugal = 30,
287 vervariantNorway = 31,
288 vervariantDenmark = 32
289 }
290
291 enum
292 {
293 verIndiaHindi = 33,
294 verPakistanUrdu = 34,
295 verTurkishModified = 35,
296 verItalianSwiss = 36,
297 verInternational = 37,
298 verRomania = 39,
299 verGreekAncient = 40,
300 verLithuania = 41,
301 verPoland = 42,
302 verHungary = 43,
303 verEstonia = 44,
304 verLatvia = 45,
305 verSami = 46,
306 verFaroeIsl = 47,
307 verIran = 48,
308 verRussia = 49,
309 verIreland = 50,
310 verKorea = 51,
311 verChina = 52,
312 verTaiwan = 53,
313 verThailand = 54,
314 verScriptGeneric = 55,
315 verCzech = 56,
316 verSlovak = 57,
317 verEastAsiaGeneric = 58,
318 verMagyar = 59,
319 verBengali = 60,
320 verBelarus = 61
321 }
322
323 enum
324 {
325 verUkraine = 62,
326 verGreeceAlt = 64,
327 verSerbian = 65,
328 verSlovenian = 66,
329 verMacedonian = 67,
330 verCroatia = 68,
331 verGermanReformed = 70,
332 verBrazil = 71,
333 verBulgaria = 72,
334 verCatalonia = 73,
335 verMultilingual = 74,
336 verScottishGaelic = 75,
337 verManxGaelic = 76,
338 verBreton = 77,
339 verNunavut = 78,
340 verWelsh = 79,
341 verIrishGaelicScript = 81,
342 verEngCanada = 82,
343 verBhutan = 83,
344 verArmenian = 84,
345 verGeorgian = 85,
346 verSpLatinAmerica = 86,
347 verTonga = 88,
348 verFrenchUniversal = 91,
349 verAustria = 92,
350 verGujarati = 94,
351 verPunjabi = 95,
352 verIndiaUrdu = 96,
353 verVietnam = 97
354 }
355
356 enum
357 {
358 verFrBelgium = 98,
359 verUzbek = 99,
360 verSingapore = 100,
361 verNynorsk = 101,
362 verAfrikaans = 102,
363 verEsperanto = 103,
364 verMarathi = 104,
365 verTibetan = 105,
366 verNepal = 106,
367 verGreenland = 107,
368 verIrelandEnglish = 108
369 }
370
371 enum
372 {
373 verFrBelgiumLux = 6,
374 verBelgiumLux = 6,
375 verArabia = 16,
376 verYugoslavia = 25,
377 verBelgiumLuxPoint = 27,
378 verIndia = 33,
379 verPakistan = 34,
380 verRumania = 39,
381 verGreecePoly = 40,
382 verLapland = 46,
383 verFaeroeIsl = 47,
384 verGenericFE = 58,
385 verFarEastGeneric = 58,
386 verByeloRussian = 61,
387 verUkrania = 62,
388 verAlternateGr = 64,
389 verSerbia = 65,
390 verSlovenia = 66,
391 verMacedonia = 67,
392 verBrittany = 77,
393 verWales = 79,
394 verArmenia = 84,
395 verGeorgia = 85,
396 verAustriaGerman = 92,
397 verTibet = 105
398 }
399
400 enum
401 {
402 minCountry = verUS,
403 maxCountry = verIrelandEnglish
404 }
405
406 enum
407 {
408 calGregorian = 0,
409 calArabicCivil = 1,
410 calArabicLunar = 2,
411 calJapanese = 3,
412 calJewish = 4,
413 calCoptic = 5,
414 calPersian = 6
415 }
416
417 enum
418 {
419 intWestern = 0,
420 intArabic = 1,
421 intRoman = 2,
422 intJapanese = 3,
423 intEuropean = 4,
424 intOutputMask = 0x8000
425 }
426
427 enum
428 {
429 smSingleByte = 0,
430 smFirstByte = -1,
431 smLastByte = 1,
432 smMiddleByte = 2
433 }
434
435 enum
436 {
437 smcTypeMask = 0x000F,
438 smcReserved = 0x00F0,
439 smcClassMask = 0x0F00,
440 smcOrientationMask = 0x1000,
441 smcRightMask = 0x2000,
442 smcUpperMask = 0x4000,
443 smcDoubleMask = 0x8000
444 }
445
446 enum
447 {
448 smCharPunct = 0x0000,
449 smCharAscii = 0x0001,
450 smCharEuro = 0x0007,
451 smCharExtAscii = 0x0007,
452 smCharKatakana = 0x0002,
453 smCharHiragana = 0x0003,
454 smCharIdeographic = 0x0004,
455 smCharTwoByteGreek = 0x0005,
456 smCharTwoByteRussian = 0x0006,
457 smCharBidirect = 0x0008,
458 smCharContextualLR = 0x0009,
459 smCharNonContextualLR = 0x000A,
460 smCharHangul = 0x000C,
461 smCharJamo = 0x000D,
462 smCharBopomofo = 0x000E,
463 smCharGanaKana = 0x000F,
464 smCharFISKana = 0x0002,
465 smCharFISGana = 0x0003,
466 smCharFISIdeo = 0x0004
467 }
468
469 enum
470 {
471 smCharFISGreek = 0x0005,
472 smCharFISRussian = 0x0006,
473 smPunctNormal = 0x0000,
474 smPunctNumber = 0x0100,
475 smPunctSymbol = 0x0200,
476 smPunctBlank = 0x0300,
477 smPunctRepeat = 0x0400,
478 smPunctGraphic = 0x0500,
479 smKanaSmall = 0x0100,
480 smKanaHardOK = 0x0200,
481 smKanaSoftOK = 0x0300,
482 smIdeographicLevel1 = 0x0000,
483 smIdeographicLevel2 = 0x0100,
484 smIdeographicUser = 0x0200,
485 smFISClassLvl1 = 0x0000,
486 smFISClassLvl2 = 0x0100,
487 smFISClassUser = 0x0200,
488 smJamoJaeum = 0x0000,
489 smJamoBogJaeum = 0x0100,
490 smJamoMoeum = 0x0200,
491 smJamoBogMoeum = 0x0300
492 }
493
494 enum
495 {
496 smCharHorizontal = 0x0000,
497 smCharVertical = 0x1000,
498 smCharLeft = 0x0000,
499 smCharRight = 0x2000,
500 smCharLower = 0x0000,
501 smCharUpper = 0x4000,
502 smChar1byte = 0x0000,
503 smChar2byte = 0x8000
504 }
505
506 enum
507 {
508 smTransAscii = 0,
509 smTransNative = 1,
510 smTransCase = 0xFE,
511 smTransSystem = 0xFF,
512 smTransAscii1 = 2,
513 smTransAscii2 = 3,
514 smTransKana1 = 4,
515 smTransKana2 = 5
516 }
517
518 enum
519 {
520 smTransGana2 = 7,
521 smTransHangul2 = 8,
522 smTransJamo2 = 9,
523 smTransBopomofo2 = 10,
524 smTransLower = 0x4000,
525 smTransUpper = 0x8000,
526 smTransRuleBaseFormat = 1,
527 smTransHangulFormat = 2,
528 smTransPreDoubleByting = 1,
529 smTransPreLowerCasing = 2
530 }
531
532 enum
533 {
534 smMaskAll = cast(c_long)0xFFFFFFFF,
535 smMaskAscii = 0x00000001,
536 smMaskNative = 0x00000002,
537 smMaskAscii1 = 0x00000004,
538 smMaskAscii2 = 0x00000008,
539 smMaskKana1 = 0x00000010,
540 smMaskKana2 = 0x00000020,
541 smMaskGana2 = 0x00000080,
542 smMaskHangul2 = 0x00000100,
543 smMaskJamo2 = 0x00000200,
544 smMaskBopomofo2 = 0x00000400
545 }
546
547 enum
548 {
549 iuSystemScript = -1,
550 iuCurrentScript = -2
551 }
552
553 enum
554 {
555 smKeyNextScript = -1,
556 smKeySysScript = -2,
557 smKeySwapScript = -3,
558 smKeyNextKybd = -4,
559 smKeySwapKybd = -5,
560 smKeyDisableKybds = -6,
561 smKeyEnableKybds = -7,
562 smKeyToggleInline = -8,
563 smKeyToggleDirection = -9,
564 smKeyNextInputMethod = -10,
565 smKeySwapInputMethod = -11,
566 smKeyDisableKybdSwitch = -12,
567 smKeySetDirLeftRight = -15,
568 smKeySetDirRightLeft = -16,
569 smKeyRoman = -17
570 }
571
572 enum
573 {
574 smKeyForceKeyScriptBit = 7,
575 smKeyForceKeyScriptMask = 1 << smKeyForceKeyScriptBit
576 }
577
578 enum
579 {
580 romanSysFond = 0x3FFF,
581 romanAppFond = 3,
582 romanFlags = 0x0007,
583 smFondStart = 0x4000,
584 smFondEnd = 0xC000,
585 smUprHalfCharSet = 0x80
586 }
587
588 enum
589 {
590 diaeresisUprY = 0xD9,
591 fraction = 0xDA,
592 intlCurrency = 0xDB,
593 leftSingGuillemet = 0xDC,
594 rightSingGuillemet = 0xDD,
595 fiLigature = 0xDE,
596 flLigature = 0xDF,
597 dblDagger = 0xE0,
598 centeredDot = 0xE1,
599 baseSingQuote = 0xE2,
600 baseDblQuote = 0xE3,
601 perThousand = 0xE4,
602 circumflexUprA = 0xE5,
603 circumflexUprE = 0xE6,
604 acuteUprA = 0xE7,
605 diaeresisUprE = 0xE8,
606 graveUprE = 0xE9,
607 acuteUprI = 0xEA,
608 circumflexUprI = 0xEB,
609 diaeresisUprI = 0xEC,
610 graveUprI = 0xED,
611 acuteUprO = 0xEE,
612 circumflexUprO = 0xEF,
613 appleLogo = 0xF0,
614 graveUprO = 0xF1,
615 acuteUprU = 0xF2,
616 circumflexUprU = 0xF3,
617 graveUprU = 0xF4,
618 dotlessLwrI = 0xF5,
619 circumflex = 0xF6,
620 tilde = 0xF7,
621 macron = 0xF8,
622 breveMark = 0xF9,
623 overDot = 0xFA,
624 ringMark = 0xFB,
625 cedilla = 0xFC,
626 doubleAcute = 0xFD,
627 ogonek = 0xFE,
628 hachek = 0xFF
629 }
630
631 enum
632 {
633 tokenIntl = 4,
634 tokenEmpty = -1
635 }
636
637 enum
638 {
639 tokenUnknown = 0,
640 tokenWhite = 1,
641 tokenLeftLit = 2,
642 tokenRightLit = 3,
643 tokenAlpha = 4,
644 tokenNumeric = 5,
645 tokenNewLine = 6,
646 tokenLeftComment = 7,
647 tokenRightComment = 8,
648 tokenLiteral = 9,
649 tokenEscape = 10,
650 tokenAltNum = 11,
651 tokenRealNum = 12,
652 tokenAltReal = 13,
653 tokenReserve1 = 14,
654 tokenReserve2 = 15,
655 tokenLeftParen = 16,
656 tokenRightParen = 17,
657 tokenLeftBracket = 18,
658 tokenRightBracket = 19
659 }
660
661 enum
662 {
663 tokenLeftCurly = 20,
664 tokenRightCurly = 21,
665 tokenLeftEnclose = 22,
666 tokenRightEnclose = 23,
667 tokenPlus = 24,
668 tokenMinus = 25,
669 tokenAsterisk = 26,
670 tokenDivide = 27,
671 tokenPlusMinus = 28,
672 tokenSlash = 29,
673 tokenBackSlash = 30,
674 tokenLess = 31,
675 tokenGreat = 32,
676 tokenEqual = 33,
677 tokenLessEqual2 = 34,
678 tokenLessEqual1 = 35,
679 tokenGreatEqual2 = 36,
680 tokenGreatEqual1 = 37,
681 token2Equal = 38,
682 tokenColonEqual = 39
683 }
684
685 enum
686 {
687 tokenNotEqual = 40,
688 tokenLessGreat = 41,
689 tokenExclamEqual = 42,
690 tokenExclam = 43,
691 tokenTilde = 44,
692 tokenComma = 45,
693 tokenPeriod = 46,
694 tokenLeft2Quote = 47,
695 tokenRight2Quote = 48,
696 tokenLeft1Quote = 49,
697 tokenRight1Quote = 50,
698 token2Quote = 51,
699 token1Quote = 52,
700 tokenSemicolon = 53,
701 tokenPercent = 54,
702 tokenCaret = 55,
703 tokenUnderline = 56,
704 tokenAmpersand = 57,
705 tokenAtSign = 58,
706 tokenBar = 59
707 }
708
709 enum
710 {
711 tokenQuestion = 60,
712 tokenPi = 61,
713 tokenRoot = 62,
714 tokenSigma = 63,
715 tokenIntegral = 64,
716 tokenMicro = 65,
717 tokenCapPi = 66,
718 tokenInfinity = 67,
719 tokenColon = 68,
720 tokenHash = 69,
721 tokenDollar = 70,
722 tokenNoBreakSpace = 71,
723 tokenFraction = 72,
724 tokenIntlCurrency = 73,
725 tokenLeftSingGuillemet = 74,
726 tokenRightSingGuillemet = 75,
727 tokenPerThousand = 76,
728 tokenEllipsis = 77,
729 tokenCenterDot = 78,
730 tokenNil = 127
731 }
732
733 enum
734 {
735 delimPad = -2,
736 tokenTilda = 44,
737 tokenCarat = 55
738 }
739
740 enum
741 {
742 smWordSelectTable = 0,
743 smWordWrapTable = 1,
744 smNumberPartsTable = 2,
745 smUnTokenTable = 3,
746 smWhiteSpaceList = 4,
747 iuWordSelectTable = 0,
748 iuWordWrapTable = 1,
749 iuNumberPartsTable = 2,
750 iuUnTokenTable = 3,
751 iuWhiteSpaceList = 4
752 }
753
754 enum
755 {
756 tokenOK = 0,
757 tokenOverflow = 1,
758 stringOverflow = 2,
759 badDelim = 3,
760 badEnding = 4,
761 crash = 5
762 }
763
764 enum
765 {
766 smNotInstalled = 0,
767 smBadVerb = -1,
768 smBadScript = -2
769 }
770
771 enum
772 {
773 smfShowIcon = 31,
774 smfDualCaret = 30,
775 smfNameTagEnab = 29,
776 smfUseAssocFontInfo = 28,
777 smfDisableKeyScriptSync = 27
778 }
779
780 enum
781 {
782 smfDisableKeyScriptSyncMask = 1L << smfDisableKeyScriptSync
783 }
784
785 enum
786 {
787 smSysScript = 18,
788 smKeyScript = 22,
789 smKCHRCache = 38,
790 smRegionCode = 40
791 }
792
793 enum
794 {
795 smsfIntellCP = 0,
796 smsfSingByte = 1,
797 smsfNatCase = 2,
798 smsfContext = 3,
799 smsfNoForceFont = 4,
800 smsfB0Digits = 5,
801 smsfAutoInit = 6,
802 smsfUnivExt = 7,
803 smsfSynchUnstyledTE = 8,
804 smsfForms = 13,
805 smsfLigatures = 14,
806 smsfReverse = 15
807 }
808
809 struct TokenRec
810 {
811 short theToken;
812 char* position;
813 int length;
814 char* stringPosition;
815 }
816
817
818 struct TokenBlock
819 {
820 char* source;
821 int sourceLength;
822 char* tokenList;
823 int tokenLength;
824 int tokenCount;
825 char* stringList;
826 int stringLength;
827 int stringCount;
828 ubyte doString;
829 ubyte doAppend;
830 ubyte doAlphanumeric;
831 ubyte doNest;
832 ScriptTokenType* leftDelims;
833 ScriptTokenType* rightDelims;
834 ScriptTokenType* leftComment;
835 ScriptTokenType* rightComment;
836 short escapeCode;
837 short decimalCode;
838 Handle itlResource;
839 long* reserved;
840 }
841
842 extern (C)
843 {
844 int GetScriptManagerVariable (short selector);
845 short SetScriptManagerVariable (short selector, int param);
846 }