~ubuntu-branches/ubuntu/feisty/fonttools/feisty

« back to all changes in this revision

Viewing changes to Lib/fontTools/ttLib/tables/_c_v_t.py

  • Committer: Bazaar Package Importer
  • Author(s): Anthony Fok
  • Date: 2003-11-18 00:53:59 UTC
  • Revision ID: james.westby@ubuntu.com-20031118005359-pqirsxbgdz0f0xmx
Tags: upstream-1.99+2.0b1+cvs20031014
ImportĀ upstreamĀ versionĀ 1.99+2.0b1+cvs20031014

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import DefaultTable
 
2
import array
 
3
from fontTools import ttLib
 
4
from fontTools.misc.textTools import safeEval
 
5
 
 
6
class table__c_v_t(DefaultTable.DefaultTable):
 
7
        
 
8
        def decompile(self, data, ttFont):
 
9
                values = array.array("h")
 
10
                values.fromstring(data)
 
11
                if ttLib.endian <> "big":
 
12
                        values.byteswap()
 
13
                self.values = values
 
14
        
 
15
        def compile(self, ttFont):
 
16
                values = self.values[:]
 
17
                if ttLib.endian <> "big":
 
18
                        values.byteswap()
 
19
                return values.tostring()
 
20
        
 
21
        def toXML(self, writer, ttFont):
 
22
                for i in range(len(self.values)):
 
23
                        value = self.values[i]
 
24
                        writer.simpletag("cv", value=value, index=i)
 
25
                        writer.newline()
 
26
        
 
27
        def fromXML(self, (name, attrs, content), ttFont):
 
28
                if not hasattr(self, "values"):
 
29
                        self.values = array.array("h")
 
30
                if name == "cv":
 
31
                        index = safeEval(attrs["index"])
 
32
                        value = safeEval(attrs["value"])
 
33
                        for i in range(1 + index - len(self.values)):
 
34
                                self.values.append(0)
 
35
                        self.values[index] = value
 
36
        
 
37
        def __len__(self):
 
38
                return len(self.values)
 
39
        
 
40
        def __getitem__(self, index):
 
41
                return self.values[index]
 
42
        
 
43
        def __setitem__(self, index, value):
 
44
                self.values[index] = value
 
45
        
 
46
        def __delitem__(self, index):
 
47
                del self.values[index]
 
48