Adobe.com
Contents Suites Classes Class Index Member Index

AICharacterEncoding.h

Go to the documentation of this file.
00001 #ifndef __AICharacterEncoding__
00002 #define __AICharacterEncoding__
00003 
00004 /*
00005  *        Name: AICharacterEncoding.h
00006  *              $Id $
00007  *      Author:
00008  *        Date:
00009  *     Purpose: Adobe Illustrator Character Encoding Suite.
00010  *
00011  * ADOBE SYSTEMS INCORPORATED
00012  * Copyright 2003-2007 Adobe Systems Incorporated.
00013  * All rights reserved.
00014  *
00015  * NOTICE:  Adobe permits you to use, modify, and distribute this file
00016  * in accordance with the terms of the Adobe license agreement
00017  * accompanying it. If you have received this file from a source other
00018  * than Adobe, then your use, modification, or distribution of it
00019  * requires the prior written permission of Adobe.
00020  *
00021  */
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
00027  **
00028  **/
00029 
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033 
00034 #include "AIHeaderBegin.h"
00035 
00039 /*******************************************************************************
00040  **
00041  **     Constants
00042  **
00043  **/
00044 
00045 #define kAICharacterEncodingSuite                                       "AI Character Encoding Suite"
00046 #define kAICharacterEncodingSuiteVersion5                       AIAPI_VERSION(5)
00047 #define kAICharacterEncodingSuiteVersion                        kAICharacterEncodingSuiteVersion5
00048 #define kAICharacterEncodingVersion                                     kAICharacterEncodingSuiteVersion
00049 
00050 
00056 typedef enum {
00057 
00059         kAIPlatformCharacterEncoding = 0,
00061         kAIUTF8CharacterEncoding,
00063         kAIUTF16CharacterEncoding,
00064         // The encodings below are new in Illustrator 11.0
00066         kAIRomanCharacterEncoding = 0x10,
00068         kAIJapaneseCharacterEncoding,
00070         kAITraditionalChineseCharacterEncoding,
00072         kAISimplifiedChineseCharacterEncoding,
00074         kAIKoreanCharacterEncoding,
00076         kAIArabicCharacterEncoding,
00078         kAIHebrewCharacterEncoding,
00080         kAIGreekCharacterEncoding,
00082         kAICyrillicCharacterEncoding,
00084         kAICentralEuroRomanCharacterEncoding,
00086         kAITurkishCharacterEncoding,
00088         kAIBalticCharacterEncoding,
00090         kAIRomanianCharacterEncoding,
00092         kAIUkrainianCharacterEncoding,
00093 
00094         //dsvoboda: let's add multiplatform encodings
00095         kAICentralEuropeanRomanCharacterEncoding = kAICentralEuroRomanCharacterEncoding, // for WR naming compatibility
00096         kAIIcelandicCharacterEncoding = 0x1C, // kAICentralEuroRomanCharacterEncoding + 2
00097         kAICroatianCharacterEncoding,
00098         kAIMacRomanCharacterEncoding,
00099         kAIWinRomanCharacterEncoding,
00100         kAIMacArabicCharacterEncoding,
00101         kAIWinArabicCharacterEncoding,
00102         kAIMacHebrewCharacterEncoding,
00103         kAIWinHebrewCharacterEncoding,
00104         kAIMacGreekCharacterEncoding,
00105         kAIWinGreekCharacterEncoding,
00106         kAIMacCyrillicCharacterEncoding,
00107         kAIWinCyrillicCharacterEncoding,
00108         kAIMacCentralEuroRomanCharacterEncoding,
00109         kAIMacCentralEuropeanRomanCharacterEncoding = kAIMacCentralEuroRomanCharacterEncoding, // for WR naming compatibility
00110         kAIWinCentralEuroRomanCharacterEncoding,
00111         kAIWinCentralEuropeanRomanCharacterEncoding = kAIWinCentralEuroRomanCharacterEncoding, // for WR naming compatibility
00112         kAIMacIcelandicCharacterEncoding,
00113         kAIWinIcelandicCharacterEncoding,
00114         kAIMacTurkishCharacterEncoding,
00115         kAIWinTurkishCharacterEncoding,
00116         kAIMacCroatianCharacterEncoding,
00117         kAIWinCroatianCharacterEncoding,
00118         kAIMacRomanianCharacterEncoding,
00119         kAIWinRomanianCharacterEncoding,
00120         kAIMacUkrainianCharacterEncoding,
00121         kAIWinUkrainianCharacterEncoding,
00122         kAIMacBalticCharacterEncoding,
00123         kAIWinBalticCharacterEncoding,
00124 
00125 
00126 
00127         // Platform-independent encodings - East Asian character standards
00129         kAIJapaneseX0213CharacterEncoding = 0x00000100,
00131         kAIChineseGB18030CharacterEncoding,
00133         kAIChineseHKSCSCharacterEncoding,
00135         kAISymbolCharacterEncoding,
00136 
00137         kAIDummyCharacterEncoding = 0xFFFFFFFF
00138 
00139 } AICharacterEncoding;
00140 
00141 
00144 typedef enum {
00146         kAISJISEncoding,
00148         kAIJISEncoding,
00150         kAIKutenEncoding,
00151 
00152         kAIDummyJapaneseEncoding = 0xFFFFFFFF
00153 
00154 } AIJapaneseEncoding;
00155 
00156 /* Error codes */
00157 
00162 #define kDstBufferTooShortErr 'Shrt'
00163 
00167 #define kSrcHasInvalidBytesErr 'InvB'
00168 
00172 #define kSrcCantMapBytesErr         '!Map'
00173 
00176 #define kSrcCantMapBytesExactlyErr  '~Map'
00177 
00178 /*******************************************************************************
00179  **
00180  **     Suite
00181  **
00182  **/
00183 
00193 typedef struct AICharacterEncodingSuite {
00194 
00216         AIAPI AIErr (*ConvertBuffer) (
00217                         const void* srcBuffer, size_t srcBytes, AICharacterEncoding srcEncoding,
00218                         void* dstBuffer, size_t dstBytes, AICharacterEncoding dstEncoding,
00219                         size_t* dstLength, AIBoolean errIfCantMap);
00220 
00221         /* New in Illustrator 11.0 */
00222 
00232         AIAPI AIErr (*ConvertJapaneseChar) (
00233                 AIJapaneseEncoding srcEncoding, AIJapaneseEncoding dstEncoding, ai::uint16* ch );
00234 
00235         // The following two functions provide limited cross-platform support for classifying
00236         // Unicode characters.
00237 
00244         AIAPI AIBool8 (*IsPunct)(ASUnicode inChar);
00245 
00252         AIAPI AIBool8 (*IsSpace)(ASUnicode inChar);
00253 
00259         AIAPI AIErr (*GetCheckedPreferredEncoding)(const ASUnicode* inUnicodeText, AICharacterEncoding inDefaultEncoding, AICharacterEncoding* outMBCSEncoding);
00260 
00261 } AICharacterEncodingSuite;
00262 
00263 
00264 #include "AIHeaderEnd.h"
00265 
00266 
00267 #endif


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2016 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks