3
from fontTools.misc.textTools import safeEval
9
class table__g_a_s_p(DefaultTable.DefaultTable):
11
def decompile(self, data, ttFont):
12
self.version, numRanges = struct.unpack(">HH", data[:4])
13
assert self.version == 0, "unknown 'gasp' format: %s" % self.version
16
for i in range(numRanges):
17
rangeMaxPPEM, rangeGaspBehavior = struct.unpack(">HH", data[:4])
18
self.gaspRange[int(rangeMaxPPEM)] = int(rangeGaspBehavior)
20
assert not data, "too much data"
22
def compile(self, ttFont):
23
numRanges = len(self.gaspRange)
24
data = struct.pack(">HH", 0, numRanges)
25
items = self.gaspRange.items()
27
for rangeMaxPPEM, rangeGaspBehavior in items:
28
data = data + struct.pack(">HH", rangeMaxPPEM, rangeGaspBehavior)
31
def toXML(self, writer, ttFont):
32
items = self.gaspRange.items()
34
for rangeMaxPPEM, rangeGaspBehavior in items:
35
writer.simpletag("gaspRange", [
36
("rangeMaxPPEM", rangeMaxPPEM),
37
("rangeGaspBehavior", rangeGaspBehavior)])
40
def fromXML(self, (name, attrs, content), ttFont):
41
if name <> "gaspRange":
43
if not hasattr(self, "gaspRange"):
45
self.gaspRange[safeEval(attrs["rangeMaxPPEM"])] = safeEval(attrs["rangeGaspBehavior"])