Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
      4  *
      5  */
      6 
      7 #ifndef __SCRIPTANDLANGUAGE_H
      8 #define __SCRIPTANDLANGUAGE_H
      9 
     10 /**
     11  * \file
     12  * \internal
     13  */
     14 
     15 #include "LETypes.h"
     16 #include "OpenTypeTables.h"
     17 
     18 U_NAMESPACE_BEGIN
     19 
     20 typedef TagAndOffsetRecord LangSysRecord;
     21 
     22 struct LangSysTable
     23 {
     24     Offset    lookupOrderOffset;
     25     le_uint16 reqFeatureIndex;
     26     le_uint16 featureCount;
     27     le_uint16 featureIndexArray[ANY_NUMBER];
     28 };
     29 
     30 struct ScriptTable
     31 {
     32     Offset              defaultLangSysTableOffset;
     33     le_uint16           langSysCount;
     34     LangSysRecord       langSysRecordArray[ANY_NUMBER];
     35 
     36     const LangSysTable  *findLanguage(LETag languageTag, le_bool exactMatch = FALSE) const;
     37 };
     38 
     39 typedef TagAndOffsetRecord ScriptRecord;
     40 
     41 struct ScriptListTable
     42 {
     43     le_uint16           scriptCount;
     44     ScriptRecord        scriptRecordArray[ANY_NUMBER];
     45 
     46     const ScriptTable   *findScript(LETag scriptTag) const;
     47     const LangSysTable  *findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
     48 };
     49 
     50 U_NAMESPACE_END
     51 #endif
     52 
     53