Mercurial > projects > dstep
diff dstep/coreservices/carboncore/UnicodeConverter.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/carboncore/UnicodeConverter.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,165 @@ +/** + * 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.UnicodeConverter; + +//import dstep.AvailabilityMacros; +import dstep.coreservices.carboncore.MacTypes; +import dstep.coreservices.carboncore.MixedMode; +import dstep.coreservices.carboncore.TextCommon; + +struct OpaqueTextToUnicodeInfo; +struct OpaqueUnicodeToTextInfo; +struct OpaqueUnicodeToTextRunInfo; + +alias OpaqueTextToUnicodeInfo* TextToUnicodeInfo; +alias OpaqueUnicodeToTextInfo* UnicodeToTextInfo; +alias OpaqueUnicodeToTextRunInfo* UnicodeToTextRunInfo; +alias TextToUnicodeInfo ConstTextToUnicodeInfo; +alias UnicodeToTextInfo ConstUnicodeToTextInfo; +alias int UnicodeMapVersion; +alias UnicodeMapping* UnicodeMappingPtr; +alias UnicodeMapping* ConstUnicodeMappingPtr; +alias UnicodeToTextFallbackProcPtr UnicodeToTextFallbackUPP; + +extern (C) +{ + alias int function (wchar*, uint, ByteCount*, char*, uint, ByteCount*, LogicalAddress, ConstUnicodeMappingPtr) UnicodeToTextFallbackProcPtr; +} + +enum +{ + kUnicodeUseLatestMapping = -1, + kUnicodeUseHFSPlusMapping = 4 +} + +enum +{ + kUnicodeUseFallbacksBit = 0, + kUnicodeKeepInfoBit = 1, + kUnicodeDirectionalityBits = 2, + kUnicodeVerticalFormBit = 4, + kUnicodeLooseMappingsBit = 5, + kUnicodeStringUnterminatedBit = 6, + kUnicodeTextRunBit = 7, + kUnicodeKeepSameEncodingBit = 8, + kUnicodeForceASCIIRangeBit = 9, + kUnicodeNoHalfwidthCharsBit = 10, + kUnicodeTextRunHeuristicsBit = 11, + kUnicodeMapLineFeedToReturnBit = 12, + kUnicodeUseExternalEncodingFormBit = 13 +} + +enum +{ + kUnicodeUseFallbacksMask = 1L << kUnicodeUseFallbacksBit, + kUnicodeKeepInfoMask = 1L << kUnicodeKeepInfoBit, + kUnicodeDirectionalityMask = 3L << kUnicodeDirectionalityBits, + kUnicodeVerticalFormMask = 1L << kUnicodeVerticalFormBit, + kUnicodeLooseMappingsMask = 1L << kUnicodeLooseMappingsBit, + kUnicodeStringUnterminatedMask = 1L << kUnicodeStringUnterminatedBit, + kUnicodeTextRunMask = 1L << kUnicodeTextRunBit, + kUnicodeKeepSameEncodingMask = 1L << kUnicodeKeepSameEncodingBit, + kUnicodeForceASCIIRangeMask = 1L << kUnicodeForceASCIIRangeBit, + kUnicodeNoHalfwidthCharsMask = 1L << kUnicodeNoHalfwidthCharsBit, + kUnicodeTextRunHeuristicsMask = 1L << kUnicodeTextRunHeuristicsBit, + kUnicodeMapLineFeedToReturnMask = 1L << kUnicodeMapLineFeedToReturnBit, + kUnicodeUseExternalEncodingFormMask = 1L << kUnicodeUseExternalEncodingFormBit +} + +enum +{ + kUnicodeDefaultDirection = 0, + kUnicodeLeftToRight = 1, + kUnicodeRightToLeft = 2 +} + +enum +{ + kUnicodeDefaultDirectionMask = kUnicodeDefaultDirection << kUnicodeDirectionalityBits, + kUnicodeLeftToRightMask = kUnicodeLeftToRight << kUnicodeDirectionalityBits, + kUnicodeRightToLeftMask = kUnicodeRightToLeft << kUnicodeDirectionalityBits +} + +enum +{ + kUnicodeMatchUnicodeBaseBit = 0, + kUnicodeMatchUnicodeVariantBit = 1, + kUnicodeMatchUnicodeFormatBit = 2, + kUnicodeMatchOtherBaseBit = 3, + kUnicodeMatchOtherVariantBit = 4, + kUnicodeMatchOtherFormatBit = 5 +} + +enum +{ + kUnicodeMatchUnicodeBaseMask = 1L << kUnicodeMatchUnicodeBaseBit, + kUnicodeMatchUnicodeVariantMask = 1L << kUnicodeMatchUnicodeVariantBit, + kUnicodeMatchUnicodeFormatMask = 1L << kUnicodeMatchUnicodeFormatBit, + kUnicodeMatchOtherBaseMask = 1L << kUnicodeMatchOtherBaseBit, + kUnicodeMatchOtherVariantMask = 1L << kUnicodeMatchOtherVariantBit, + kUnicodeMatchOtherFormatMask = 1L << kUnicodeMatchOtherFormatBit +} + +enum +{ + kUnicodeFallbackSequencingBits = 0 +} + +enum +{ + kUnicodeFallbackSequencingMask = 3L << kUnicodeFallbackSequencingBits, + kUnicodeFallbackInterruptSafeMask = 1L << 2 +} + +enum +{ + kUnicodeFallbackDefaultOnly = 0L, + kUnicodeFallbackCustomOnly = 1L, + kUnicodeFallbackDefaultFirst = 2L, + kUnicodeFallbackCustomFirst = 3L +} + +struct UnicodeMapping +{ + uint unicodeEncoding; + uint otherEncoding; + int mappingVersion; +} + +extern (C) +{ + UnicodeToTextFallbackUPP NewUnicodeToTextFallbackUPP (UnicodeToTextFallbackProcPtr userRoutine); + void DisposeUnicodeToTextFallbackUPP (UnicodeToTextFallbackUPP userUPP); + int InvokeUnicodeToTextFallbackUPP (wchar* iSrcUniStr, uint iSrcUniStrLen, ByteCount* oSrcConvLen, char* oDestStr, uint iDestStrLen, ByteCount* oDestConvLen, LogicalAddress iInfoPtr, ConstUnicodeMappingPtr iUnicodeMappingPtr, UnicodeToTextFallbackUPP userUPP); + int CreateTextToUnicodeInfo (ConstUnicodeMappingPtr iUnicodeMapping, TextToUnicodeInfo* oTextToUnicodeInfo); + int CreateTextToUnicodeInfoByEncoding (uint iEncoding, TextToUnicodeInfo* oTextToUnicodeInfo); + int CreateUnicodeToTextInfo (ConstUnicodeMappingPtr iUnicodeMapping, UnicodeToTextInfo* oUnicodeToTextInfo); + int CreateUnicodeToTextInfoByEncoding (uint iEncoding, UnicodeToTextInfo* oUnicodeToTextInfo); + int CreateUnicodeToTextRunInfo (uint iNumberOfMappings, UnicodeMapping* iUnicodeMappings, UnicodeToTextRunInfo* oUnicodeToTextInfo); + int CreateUnicodeToTextRunInfoByEncoding (uint iNumberOfEncodings, TextEncoding* iEncodings, UnicodeToTextRunInfo* oUnicodeToTextInfo); + int CreateUnicodeToTextRunInfoByScriptCode (uint iNumberOfScriptCodes, ScriptCode* iScripts, UnicodeToTextRunInfo* oUnicodeToTextInfo); + int ChangeTextToUnicodeInfo (TextToUnicodeInfo ioTextToUnicodeInfo, ConstUnicodeMappingPtr iUnicodeMapping); + int ChangeUnicodeToTextInfo (UnicodeToTextInfo ioUnicodeToTextInfo, ConstUnicodeMappingPtr iUnicodeMapping); + int DisposeTextToUnicodeInfo (TextToUnicodeInfo* ioTextToUnicodeInfo); + int DisposeUnicodeToTextInfo (UnicodeToTextInfo* ioUnicodeToTextInfo); + int DisposeUnicodeToTextRunInfo (UnicodeToTextRunInfo* ioUnicodeToTextRunInfo); + int ConvertFromTextToUnicode (TextToUnicodeInfo iTextToUnicodeInfo, uint iSourceLen, ConstLogicalAddress iSourceStr, uint iControlFlags, uint iOffsetCount, ByteOffset* iOffsetArray, ItemCount* oOffsetCount, ByteOffset* oOffsetArray, uint iOutputBufLen, ByteCount* oSourceRead, ByteCount* oUnicodeLen, wchar* oUnicodeStr); + int ConvertFromUnicodeToText (UnicodeToTextInfo iUnicodeToTextInfo, uint iUnicodeLen, wchar* iUnicodeStr, uint iControlFlags, uint iOffsetCount, ByteOffset* iOffsetArray, ItemCount* oOffsetCount, ByteOffset* oOffsetArray, uint iOutputBufLen, ByteCount* oInputRead, ByteCount* oOutputLen, LogicalAddress oOutputStr); + int ConvertFromUnicodeToTextRun (UnicodeToTextRunInfo iUnicodeToTextInfo, uint iUnicodeLen, wchar* iUnicodeStr, uint iControlFlags, uint iOffsetCount, ByteOffset* iOffsetArray, ItemCount* oOffsetCount, ByteOffset* oOffsetArray, uint iOutputBufLen, ByteCount* oInputRead, ByteCount* oOutputLen, LogicalAddress oOutputStr, uint iEncodingRunBufLen, ItemCount* oEncodingRunOutLen, TextEncodingRun* oEncodingRuns); + int ConvertFromUnicodeToScriptCodeRun (UnicodeToTextRunInfo iUnicodeToTextInfo, uint iUnicodeLen, wchar* iUnicodeStr, uint iControlFlags, uint iOffsetCount, ByteOffset* iOffsetArray, ItemCount* oOffsetCount, ByteOffset* oOffsetArray, uint iOutputBufLen, ByteCount* oInputRead, ByteCount* oOutputLen, LogicalAddress oOutputStr, uint iScriptRunBufLen, ItemCount* oScriptRunOutLen, ScriptCodeRun* oScriptCodeRuns); + int TruncateForTextToUnicode (ConstTextToUnicodeInfo iTextToUnicodeInfo, uint iSourceLen, ConstLogicalAddress iSourceStr, uint iMaxLen, ByteCount* oTruncatedLen); + int TruncateForUnicodeToText (ConstUnicodeToTextInfo iUnicodeToTextInfo, uint iSourceLen, wchar* iSourceStr, uint iControlFlags, uint iMaxLen, ByteCount* oTruncatedLen); + int ConvertFromPStringToUnicode (TextToUnicodeInfo iTextToUnicodeInfo, char* iPascalStr, uint iOutputBufLen, ByteCount* oUnicodeLen, wchar* oUnicodeStr); + int ConvertFromUnicodeToPString (UnicodeToTextInfo iUnicodeToTextInfo, uint iUnicodeLen, wchar* iUnicodeStr, ubyte[256] oPascalStr); + int CountUnicodeMappings (uint iFilter, ConstUnicodeMappingPtr iFindMapping, ItemCount* oActualCount); + int QueryUnicodeMappings (uint iFilter, ConstUnicodeMappingPtr iFindMapping, uint iMaxCount, ItemCount* oActualCount, UnicodeMapping* oReturnedMappings); + int SetFallbackUnicodeToText (UnicodeToTextInfo iUnicodeToTextInfo, UnicodeToTextFallbackUPP iFallback, uint iControlFlags, LogicalAddress iInfoPtr); + int SetFallbackUnicodeToTextRun (UnicodeToTextRunInfo iUnicodeToTextRunInfo, UnicodeToTextFallbackUPP iFallback, uint iControlFlags, LogicalAddress iInfoPtr); + int ResetTextToUnicodeInfo (TextToUnicodeInfo ioTextToUnicodeInfo); + int ResetUnicodeToTextInfo (UnicodeToTextInfo ioUnicodeToTextInfo); + int ResetUnicodeToTextRunInfo (UnicodeToTextRunInfo ioUnicodeToTextRunInfo); +} \ No newline at end of file