]> git.saurik.com Git - apple/icu.git/blob - icuSources/layout/ScriptAndLanguage.h
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / layout / ScriptAndLanguage.h
1 /*
2 *
3 * (C) Copyright IBM Corp. 1998-2013 - 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 LE_VAR_ARRAY(LangSysTable, featureIndexArray)
30
31 struct ScriptTable
32 {
33 Offset defaultLangSysTableOffset;
34 le_uint16 langSysCount;
35 LangSysRecord langSysRecordArray[ANY_NUMBER];
36
37 LEReferenceTo<LangSysTable> findLanguage(const LETableReference &base, LETag languageTag, LEErrorCode &success, le_bool exactMatch = FALSE) const;
38 };
39 LE_VAR_ARRAY(ScriptTable, langSysRecordArray)
40
41 typedef TagAndOffsetRecord ScriptRecord;
42
43 struct ScriptListTable
44 {
45 le_uint16 scriptCount;
46 ScriptRecord scriptRecordArray[ANY_NUMBER];
47
48 LEReferenceTo<ScriptTable> findScript(const LETableReference &base, LETag scriptTag, LEErrorCode &success) const;
49 LEReferenceTo<LangSysTable> findLanguage(const LETableReference &base, LETag scriptTag, LETag languageTag, LEErrorCode &success, le_bool exactMatch = FALSE) const;
50 };
51 LE_VAR_ARRAY(ScriptListTable, scriptRecordArray)
52
53 U_NAMESPACE_END
54 #endif
55