Mercurial > projects > dstep
view dstep/coreservices/carboncore/TextCommon.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 |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 21, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.carboncore.TextCommon; //import dstep.AvailabilityMacros; import dstep.coreservices.carboncore.MacTypes; alias uint TextEncodingBase; alias uint TextEncodingVariant; alias uint TextEncodingFormat; alias uint TextEncoding; alias uint TextEncodingNameSelector; alias TextEncodingRun* TextEncodingRunPtr; alias TextEncodingRun* ConstTextEncodingRunPtr; alias ScriptCodeRun* ScriptCodeRunPtr; alias ScriptCodeRun* ConstScriptCodeRunPtr; alias char* TextPtr; alias char* ConstTextPtr; alias wchar* UniCharArrayPtr; alias wchar* ConstUniCharArrayPtr; alias UniCharArrayPtr* UniCharArrayHandle; alias uint UniCharArrayOffset; alias TECInfo*[][][][] TECInfoPtr; alias TECInfoPtr* TECInfoHandle; alias int UCCharPropertyType; alias uint UCCharPropertyValue; enum { kTextFlushDefault = 0, kTextCenter = 1, kTextFlushRight = -1, kTextFlushLeft = -2 } enum { kTextEncodingMacRoman = 0L, kTextEncodingMacJapanese = 1, kTextEncodingMacChineseTrad = 2, kTextEncodingMacKorean = 3, kTextEncodingMacArabic = 4, kTextEncodingMacHebrew = 5, kTextEncodingMacGreek = 6, kTextEncodingMacCyrillic = 7, kTextEncodingMacDevanagari = 9, kTextEncodingMacGurmukhi = 10, kTextEncodingMacGujarati = 11, kTextEncodingMacOriya = 12, kTextEncodingMacBengali = 13, kTextEncodingMacTamil = 14, kTextEncodingMacTelugu = 15, kTextEncodingMacKannada = 16, kTextEncodingMacMalayalam = 17, kTextEncodingMacSinhalese = 18, kTextEncodingMacBurmese = 19, kTextEncodingMacKhmer = 20, kTextEncodingMacThai = 21, kTextEncodingMacLaotian = 22, kTextEncodingMacGeorgian = 23, kTextEncodingMacArmenian = 24, kTextEncodingMacChineseSimp = 25, kTextEncodingMacTibetan = 26, kTextEncodingMacMongolian = 27, kTextEncodingMacEthiopic = 28, kTextEncodingMacCentralEurRoman = 29, kTextEncodingMacVietnamese = 30, kTextEncodingMacExtArabic = 31, kTextEncodingMacSymbol = 33, kTextEncodingMacDingbats = 34, kTextEncodingMacTurkish = 35, kTextEncodingMacCroatian = 36, kTextEncodingMacIcelandic = 37, kTextEncodingMacRomanian = 38, kTextEncodingMacCeltic = 39, kTextEncodingMacGaelic = 40, kTextEncodingMacKeyboardGlyphs = 41 } enum { kTextEncodingMacTradChinese = kTextEncodingMacChineseTrad, kTextEncodingMacRSymbol = 8, kTextEncodingMacSimpChinese = kTextEncodingMacChineseSimp, kTextEncodingMacGeez = kTextEncodingMacEthiopic, kTextEncodingMacEastEurRoman = kTextEncodingMacCentralEurRoman, kTextEncodingMacUninterp = 32 } enum { kTextEncodingMacUnicode = 0x7E } enum { kTextEncodingMacFarsi = 0x8C, kTextEncodingMacUkrainian = 0x98, kTextEncodingMacInuit = 0xEC, kTextEncodingMacVT100 = 0xFC } enum { kTextEncodingMacHFS = 0xFF } enum { kTextEncodingUnicodeDefault = 0x0100, kTextEncodingUnicodeV1_1 = 0x0101, kTextEncodingISO10646_1993 = 0x0101, kTextEncodingUnicodeV2_0 = 0x0103, kTextEncodingUnicodeV2_1 = 0x0103, kTextEncodingUnicodeV3_0 = 0x0104, kTextEncodingUnicodeV3_1 = 0x0105, kTextEncodingUnicodeV3_2 = 0x0106, kTextEncodingUnicodeV4_0 = 0x0108, kTextEncodingUnicodeV5_0 = 0x010A } enum { kTextEncodingISOLatin1 = 0x0201, kTextEncodingISOLatin2 = 0x0202, kTextEncodingISOLatin3 = 0x0203, kTextEncodingISOLatin4 = 0x0204, kTextEncodingISOLatinCyrillic = 0x0205, kTextEncodingISOLatinArabic = 0x0206, kTextEncodingISOLatinGreek = 0x0207, kTextEncodingISOLatinHebrew = 0x0208, kTextEncodingISOLatin5 = 0x0209, kTextEncodingISOLatin6 = 0x020A, kTextEncodingISOLatin7 = 0x020D, kTextEncodingISOLatin8 = 0x020E, kTextEncodingISOLatin9 = 0x020F, kTextEncodingISOLatin10 = 0x0210 } enum { kTextEncodingDOSLatinUS = 0x0400, kTextEncodingDOSGreek = 0x0405, kTextEncodingDOSBalticRim = 0x0406, kTextEncodingDOSLatin1 = 0x0410, kTextEncodingDOSGreek1 = 0x0411, kTextEncodingDOSLatin2 = 0x0412, kTextEncodingDOSCyrillic = 0x0413, kTextEncodingDOSTurkish = 0x0414, kTextEncodingDOSPortuguese = 0x0415, kTextEncodingDOSIcelandic = 0x0416, kTextEncodingDOSHebrew = 0x0417, kTextEncodingDOSCanadianFrench = 0x0418, kTextEncodingDOSArabic = 0x0419, kTextEncodingDOSNordic = 0x041A, kTextEncodingDOSRussian = 0x041B, kTextEncodingDOSGreek2 = 0x041C, kTextEncodingDOSThai = 0x041D, kTextEncodingDOSJapanese = 0x0420, kTextEncodingDOSChineseSimplif = 0x0421, kTextEncodingDOSKorean = 0x0422, kTextEncodingDOSChineseTrad = 0x0423, kTextEncodingWindowsLatin1 = 0x0500, kTextEncodingWindowsANSI = 0x0500, kTextEncodingWindowsLatin2 = 0x0501, kTextEncodingWindowsCyrillic = 0x0502, kTextEncodingWindowsGreek = 0x0503, kTextEncodingWindowsLatin5 = 0x0504, kTextEncodingWindowsHebrew = 0x0505, kTextEncodingWindowsArabic = 0x0506, kTextEncodingWindowsBalticRim = 0x0507, kTextEncodingWindowsVietnamese = 0x0508, kTextEncodingWindowsKoreanJohab = 0x0510 } enum { kTextEncodingUS_ASCII = 0x0600, kTextEncodingANSEL = 0x0601, kTextEncodingJIS_X0201_76 = 0x0620, kTextEncodingJIS_X0208_83 = 0x0621, kTextEncodingJIS_X0208_90 = 0x0622, kTextEncodingJIS_X0212_90 = 0x0623, kTextEncodingJIS_C6226_78 = 0x0624, kTextEncodingShiftJIS_X0213 = 0x0628, kTextEncodingJIS_X0213_MenKuTen = 0x0629, kTextEncodingGB_2312_80 = 0x0630, kTextEncodingGBK_95 = 0x0631, kTextEncodingGB_18030_2000 = 0x0632, kTextEncodingKSC_5601_87 = 0x0640, kTextEncodingKSC_5601_92_Johab = 0x0641, kTextEncodingCNS_11643_92_P1 = 0x0651, kTextEncodingCNS_11643_92_P2 = 0x0652, kTextEncodingCNS_11643_92_P3 = 0x0653 } enum { kTextEncodingISO_2022_JP = 0x0820, kTextEncodingISO_2022_JP_2 = 0x0821, kTextEncodingISO_2022_JP_1 = 0x0822, kTextEncodingISO_2022_JP_3 = 0x0823, kTextEncodingISO_2022_CN = 0x0830, kTextEncodingISO_2022_CN_EXT = 0x0831, kTextEncodingISO_2022_KR = 0x0840 } enum { kTextEncodingEUC_JP = 0x0920, kTextEncodingEUC_CN = 0x0930, kTextEncodingEUC_TW = 0x0931, kTextEncodingEUC_KR = 0x0940 } enum { kTextEncodingShiftJIS = 0x0A01, kTextEncodingKOI8_R = 0x0A02, kTextEncodingBig5 = 0x0A03, kTextEncodingMacRomanLatin1 = 0x0A04, kTextEncodingHZ_GB_2312 = 0x0A05, kTextEncodingBig5_HKSCS_1999 = 0x0A06, kTextEncodingVISCII = 0x0A07, kTextEncodingKOI8_U = 0x0A08, kTextEncodingBig5_E = 0x0A09 } enum { kTextEncodingNextStepLatin = 0x0B01, kTextEncodingNextStepJapanese = 0x0B02 } enum { kTextEncodingEBCDIC_US = 0x0C01, kTextEncodingEBCDIC_CP037 = 0x0C02 } enum { kTextEncodingMultiRun = 0x0FFF, kTextEncodingUnknown = 0xFFFF } enum { kTextEncodingDefaultVariant = 0 } enum { kMacRomanDefaultVariant = 0, kMacRomanCurrencySignVariant = 1, kMacRomanEuroSignVariant = 2 } enum { kMacCyrillicDefaultVariant = 0, kMacCyrillicCurrSignStdVariant = 1, kMacCyrillicCurrSignUkrVariant = 2, kMacCyrillicEuroSignVariant = 3 } enum { kMacIcelandicStdDefaultVariant = 0, kMacIcelandicTTDefaultVariant = 1, kMacIcelandicStdCurrSignVariant = 2, kMacIcelandicTTCurrSignVariant = 3, kMacIcelandicStdEuroSignVariant = 4, kMacIcelandicTTEuroSignVariant = 5 } enum { kMacCroatianDefaultVariant = 0, kMacCroatianCurrencySignVariant = 1, kMacCroatianEuroSignVariant = 2 } enum { kMacRomanianDefaultVariant = 0, kMacRomanianCurrencySignVariant = 1, kMacRomanianEuroSignVariant = 2 } enum { kMacJapaneseStandardVariant = 0, kMacJapaneseStdNoVerticalsVariant = 1, kMacJapaneseBasicVariant = 2, kMacJapanesePostScriptScrnVariant = 3, kMacJapanesePostScriptPrintVariant = 4, kMacJapaneseVertAtKuPlusTenVariant = 5 } enum { kMacArabicStandardVariant = 0, kMacArabicTrueTypeVariant = 1, kMacArabicThuluthVariant = 2, kMacArabicAlBayanVariant = 3 } enum { kMacFarsiStandardVariant = 0, kMacFarsiTrueTypeVariant = 1 } enum { kMacHebrewStandardVariant = 0, kMacHebrewFigureSpaceVariant = 1 } enum { kMacGreekDefaultVariant = 0, kMacGreekNoEuroSignVariant = 1, kMacGreekEuroSignVariant = 2 } enum { kMacVT100DefaultVariant = 0, kMacVT100CurrencySignVariant = 1, kMacVT100EuroSignVariant = 2 } enum { kUnicodeNoSubset = 0, kUnicodeNormalizationFormD = 5, kUnicodeNormalizationFormC = 3, kUnicodeHFSPlusDecompVariant = 8, kUnicodeHFSPlusCompVariant = 9 } enum { kISOLatin1StandardVariant = 0, kISOLatin1MusicCDVariant = 1 } enum { kISOLatinArabicImplicitOrderVariant = 0, kISOLatinArabicVisualOrderVariant = 1, kISOLatinArabicExplicitOrderVariant = 2 } enum { kISOLatinHebrewImplicitOrderVariant = 0, kISOLatinHebrewVisualOrderVariant = 1, kISOLatinHebrewExplicitOrderVariant = 2 } enum { kWindowsLatin1StandardVariant = 0, kWindowsLatin1PalmVariant = 1 } enum { kDOSJapaneseStandardVariant = 0, kDOSJapanesePalmVariant = 1 } enum { kEUC_CN_BasicVariant = 0, kEUC_CN_DOSVariant = 1 } enum { kEUC_KR_BasicVariant = 0, kEUC_KR_DOSVariant = 1 } enum { kShiftJIS_BasicVariant = 0, kShiftJIS_DOSVariant = 1, kShiftJIS_MusicCDVariant = 2 } enum { kBig5_BasicVariant = 0, kBig5_StandardVariant = 1, kBig5_ETenVariant = 2, kBig5_DOSVariant = 3 } enum { kMacRomanLatin1DefaultVariant = 0, kMacRomanLatin1StandardVariant = 2, kMacRomanLatin1TurkishVariant = 6, kMacRomanLatin1CroatianVariant = 8, kMacRomanLatin1IcelandicVariant = 11, kMacRomanLatin1RomanianVariant = 14 } enum { kUnicodeNoCompatibilityVariant = 1, kUnicodeNoCorporateVariant = 4 } enum { kMacRomanStandardVariant = 0, kMacIcelandicStandardVariant = 0, kMacIcelandicTrueTypeVariant = 1, kJapaneseStandardVariant = 0, kJapaneseStdNoVerticalsVariant = 1, kJapaneseBasicVariant = 2, kJapanesePostScriptScrnVariant = 3, kJapanesePostScriptPrintVariant = 4, kJapaneseVertAtKuPlusTenVariant = 5, kTextEncodingShiftJIS_X0213_00 = 0x0628, kHebrewStandardVariant = 0, kHebrewFigureSpaceVariant = 1, kUnicodeCanonicalDecompVariant = 2, kUnicodeMaxDecomposedVariant = 2, kUnicodeCanonicalCompVariant = 3, kUnicodeNoComposedVariant = 3 } enum { kTextEncodingDefaultFormat = 0, kUnicodeUTF16Format = 0, kUnicodeUTF7Format = 1, kUnicodeUTF8Format = 2, kUnicodeUTF32Format = 3, kUnicodeUTF16BEFormat = 4, kUnicodeUTF16LEFormat = 5, kUnicodeUTF32BEFormat = 6, kUnicodeUTF32LEFormat = 7, kUnicodeSCSUFormat = 8, kUnicode16BitFormat = 0, kUnicode32BitFormat = 3 } enum { kTextEncodingFullName = 0, kTextEncodingBaseName = 1, kTextEncodingVariantName = 2, kTextEncodingFormatName = 3 } enum { kTextScriptDontCare = -128, kTextLanguageDontCare = -128, kTextRegionDontCare = -128 } enum { kTECInfoCurrentFormat = 2 } enum { kTECKeepInfoFixBit = 0, kTECFallbackTextLengthFixBit = 1, kTECTextRunBitClearFixBit = 2, kTECTextToUnicodeScanFixBit = 3, kTECAddForceASCIIChangesBit = 4, kTECPreferredEncodingFixBit = 5, kTECAddTextRunHeuristicsBit = 6, kTECAddFallbackInterruptBit = 7 } enum { kTECKeepInfoFixMask = 1L << kTECKeepInfoFixBit, kTECFallbackTextLengthFixMask = 1L << kTECFallbackTextLengthFixBit, kTECTextRunBitClearFixMask = 1L << kTECTextRunBitClearFixBit, kTECTextToUnicodeScanFixMask = 1L << kTECTextToUnicodeScanFixBit, kTECAddForceASCIIChangesMask = 1L << kTECAddForceASCIIChangesBit, kTECPreferredEncodingFixMask = 1L << kTECPreferredEncodingFixBit, kTECAddTextRunHeuristicsMask = 1L << kTECAddTextRunHeuristicsBit, kTECAddFallbackInterruptMask = 1L << kTECAddFallbackInterruptBit } enum { kUnicodeByteOrderMark = 0xFEFF, kUnicodeObjectReplacement = 0xFFFC, kUnicodeReplacementChar = 0xFFFD, kUnicodeSwappedByteOrderMark = 0xFFFE, kUnicodeNotAChar = 0xFFFF } enum { kUCCharPropTypeGenlCategory = 1, kUCCharPropTypeCombiningClass = 2, kUCCharPropTypeBidiCategory = 3, kUCCharPropTypeDecimalDigitValue = 4 } enum { kUCGenlCatOtherNotAssigned = 0, kUCGenlCatOtherControl = 1, kUCGenlCatOtherFormat = 2, kUCGenlCatOtherSurrogate = 3, kUCGenlCatOtherPrivateUse = 4, kUCGenlCatMarkNonSpacing = 5, kUCGenlCatMarkSpacingCombining = 6, kUCGenlCatMarkEnclosing = 7, kUCGenlCatNumberDecimalDigit = 8, kUCGenlCatNumberLetter = 9, kUCGenlCatNumberOther = 10, kUCGenlCatSeparatorSpace = 11, kUCGenlCatSeparatorLine = 12, kUCGenlCatSeparatorParagraph = 13, kUCGenlCatLetterUppercase = 14, kUCGenlCatLetterLowercase = 15, kUCGenlCatLetterTitlecase = 16, kUCGenlCatLetterModifier = 17, kUCGenlCatLetterOther = 18, kUCGenlCatPunctConnector = 20, kUCGenlCatPunctDash = 21, kUCGenlCatPunctOpen = 22, kUCGenlCatPunctClose = 23, kUCGenlCatPunctInitialQuote = 24, kUCGenlCatPunctFinalQuote = 25, kUCGenlCatPunctOther = 26, kUCGenlCatSymbolMath = 28, kUCGenlCatSymbolCurrency = 29, kUCGenlCatSymbolModifier = 30, kUCGenlCatSymbolOther = 31 } enum { kUCBidiCatNotApplicable = 0, kUCBidiCatLeftRight = 1, kUCBidiCatRightLeft = 2, kUCBidiCatEuroNumber = 3, kUCBidiCatEuroNumberSeparator = 4, kUCBidiCatEuroNumberTerminator = 5, kUCBidiCatArabicNumber = 6, kUCBidiCatCommonNumberSeparator = 7, kUCBidiCatBlockSeparator = 8, kUCBidiCatSegmentSeparator = 9, kUCBidiCatWhitespace = 10, kUCBidiCatOtherNeutral = 11, kUCBidiCatRightLeftArabic = 12, kUCBidiCatLeftRightEmbedding = 13, kUCBidiCatRightLeftEmbedding = 14, kUCBidiCatLeftRightOverride = 15, kUCBidiCatRightLeftOverride = 16, kUCBidiCatPopDirectionalFormat = 17, kUCBidiCatNonSpacingMark = 18, kUCBidiCatBoundaryNeutral = 19 } enum { kUCHighSurrogateRangeStart = 0xD800, kUCHighSurrogateRangeEnd = 0xDBFF, kUCLowSurrogateRangeStart = 0xDC00, kUCLowSurrogateRangeEnd = 0xDFFF } struct TextEncodingRun { uint offset; uint textEncoding; } struct ScriptCodeRun { uint offset; short script; } struct TECInfo { ushort format; ushort tecVersion; uint tecTextConverterFeatures; uint tecUnicodeConverterFeatures; uint tecTextCommonFeatures; ubyte[32] tecTextEncodingsFolderName; ubyte[32] tecExtensionFileName; ushort tecLowestTEFileVersion; ushort tecHighestTEFileVersion; } extern (C) { uint CreateTextEncoding (uint encodingBase, uint encodingVariant, uint encodingFormat); uint GetTextEncodingBase (uint encoding); uint GetTextEncodingVariant (uint encoding); uint GetTextEncodingFormat (uint encoding); uint ResolveDefaultTextEncoding (uint encoding); int GetTextEncodingName (uint iEncoding, uint iNamePartSelector, short iPreferredRegion, uint iPreferredEncoding, uint iOutputBufLen, ByteCount* oNameLength, RegionCode* oActualRegion, TextEncoding* oActualEncoding, char* oEncodingName); int TECGetInfo (TECInfoHandle* tecInfo); int UpgradeScriptInfoToTextEncoding (short iTextScriptID, short iTextLanguageID, short iRegionID, char* iTextFontname, TextEncoding* oEncoding); int RevertTextEncodingToScriptInfo (uint iEncoding, ScriptCode* oTextScriptID, LangCode* oTextLanguageID, ubyte[256] oTextFontname); int GetTextEncodingFromScriptInfo (short iTextScriptID, short iTextLanguageID, short iTextRegionID, TextEncoding* oEncoding); int GetScriptInfoFromTextEncoding (uint iEncoding, ScriptCode* oTextScriptID, LangCode* oTextLanguageID); int NearestMacTextEncodings (uint generalEncoding, TextEncoding* bestMacEncoding, TextEncoding* alternateMacEncoding); int UCGetCharProperty (wchar* charPtr, uint textLength, int propType, UCCharPropertyValue* propValue); }