sl@0: /* sl@0: * sl@0: * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved sl@0: * sl@0: */ sl@0: sl@0: #ifndef __SCRIPTANDLANGUAGE_H sl@0: #define __SCRIPTANDLANGUAGE_H sl@0: sl@0: /** sl@0: * \file sl@0: * \internal sl@0: */ sl@0: sl@0: #include "LETypes.h" sl@0: #include "OpenTypeTables.h" sl@0: sl@0: U_NAMESPACE_BEGIN sl@0: sl@0: typedef TagAndOffsetRecord LangSysRecord; sl@0: sl@0: struct LangSysTable sl@0: { sl@0: Offset lookupOrderOffset; sl@0: le_uint16 reqFeatureIndex; sl@0: le_uint16 featureCount; sl@0: le_uint16 featureIndexArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: struct ScriptTable sl@0: { sl@0: Offset defaultLangSysTableOffset; sl@0: le_uint16 langSysCount; sl@0: LangSysRecord langSysRecordArray[ANY_NUMBER]; sl@0: sl@0: const LangSysTable *findLanguage(LETag languageTag, le_bool exactMatch = FALSE) const; sl@0: }; sl@0: sl@0: typedef TagAndOffsetRecord ScriptRecord; sl@0: sl@0: struct ScriptListTable sl@0: { sl@0: le_uint16 scriptCount; sl@0: ScriptRecord scriptRecordArray[ANY_NUMBER]; sl@0: sl@0: const ScriptTable *findScript(LETag scriptTag) const; sl@0: const LangSysTable *findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const; sl@0: }; sl@0: sl@0: U_NAMESPACE_END sl@0: #endif sl@0: