]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/tools/misc/src/com/ibm/icu/dev/tool/layout/GDEFWriter.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / tools / misc / src / com / ibm / icu / dev / tool / layout / GDEFWriter.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 1998-2005, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  *\r
7  * Created on Dec 3, 2003\r
8  *\r
9  *******************************************************************************\r
10  */\r
11 package com.ibm.icu.dev.tool.layout;\r
12 \r
13 import java.io.PrintStream;\r
14 \r
15 \r
16 \r
17 class GDEFWriter extends OpenTypeTableWriter\r
18 {\r
19     ClassTable classTable;\r
20     ClassTable markClassTable;\r
21     String scriptName;\r
22     \r
23     public GDEFWriter(String scriptName, ClassTable classTable, ClassTable markClassTable)\r
24     {\r
25         super(1024);\r
26         this.classTable     = classTable;\r
27         this.markClassTable = markClassTable;\r
28         this.scriptName     = scriptName;\r
29     }\r
30     \r
31     public void writeTable(PrintStream output)\r
32     {\r
33         System.out.println("Writing " + scriptName + " GDEF table...");\r
34         \r
35         // 0x0001000 (fixed1) version number\r
36         writeData(0x0001);\r
37         writeData(0x0000);\r
38         \r
39         int classDefOffset = getOutputIndex();\r
40         writeData(0); // glyphClassDefOffset (will fix later);\r
41         writeData(0); // attachListOffset\r
42         writeData(0); // ligCaretListOffset\r
43         writeData(0); // markAttachClassDefOffset\r
44         \r
45         fixOffset(classDefOffset++, 0);\r
46         \r
47         System.out.println("Writing glyph class definition table...");\r
48         classTable.writeClassTable(this);\r
49         \r
50         // skip over attachListOffset, ligCaretListOffset\r
51         classDefOffset += 2;\r
52         \r
53         if (markClassTable != null) {\r
54             fixOffset(classDefOffset, 0);\r
55             \r
56             System.out.println("Writing mark attach class definition table...");\r
57             markClassTable.writeClassTable(this);\r
58         }\r
59 \r
60         output.print("const le_uint8 ");\r
61         output.print(scriptName);\r
62         output.println("Shaping::glyphDefinitionTable[] = {");\r
63         \r
64         dumpTable(output, 8);\r
65         output.println("};\n");\r
66     }\r
67 }\r