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