Home | History | Annotate | Download | only in tables
      1 from __future__ import print_function, division, absolute_import
      2 from fontTools.misc.py23 import *
      3 from fontTools.misc.textTools import safeEval
      4 from . import DefaultTable
      5 import sys
      6 import array
      7 
      8 
      9 class table_T_S_I__5(DefaultTable.DefaultTable):
     10 	
     11 	def decompile(self, data, ttFont):
     12 		numGlyphs = ttFont['maxp'].numGlyphs
     13 		assert len(data) == 2 * numGlyphs
     14 		a = array.array("H")
     15 		a.fromstring(data)
     16 		if sys.byteorder != "big":
     17 			a.byteswap()
     18 		self.glyphGrouping = {}
     19 		for i in range(numGlyphs):
     20 			self.glyphGrouping[ttFont.getGlyphName(i)] = a[i]
     21 	
     22 	def compile(self, ttFont):
     23 		glyphNames = ttFont.getGlyphOrder()
     24 		a = array.array("H")
     25 		for i in range(len(glyphNames)):
     26 			a.append(self.glyphGrouping[glyphNames[i]])
     27 		if sys.byteorder != "big":
     28 			a.byteswap()
     29 		return a.tostring()
     30 	
     31 	def toXML(self, writer, ttFont):
     32 		names = sorted(self.glyphGrouping.keys())
     33 		for glyphName in names:
     34 			writer.simpletag("glyphgroup", name=glyphName, value=self.glyphGrouping[glyphName])
     35 			writer.newline()
     36 	
     37 	def fromXML(self, name, attrs, content, ttFont):
     38 		if not hasattr(self, "glyphGrouping"):
     39 			self.glyphGrouping = {}
     40 		if name != "glyphgroup":
     41 			return
     42 		self.glyphGrouping[attrs["name"]] = safeEval(attrs["value"])
     43 
     44