Ejemplo n.º 1
0
 def __init__(self, path, res_name_or_index):
     resref = MyOpenResFile(path)
     Res.UseResFile(resref)
     if isinstance(res_name_or_index, basestring):
         res = Res.Get1NamedResource('sfnt', res_name_or_index)
     else:
         res = Res.Get1IndResource('sfnt', res_name_or_index)
     self.file = StringIO(res.data)
     Res.CloseResFile(resref)
     self.name = path
Ejemplo n.º 2
0
 def __init__(self, path, res_name_or_index):
     resref = MyOpenResFile(path)
     Res.UseResFile(resref)
     if type(res_name_or_index) == type(""):
         res = Res.Get1NamedResource('sfnt', res_name_or_index)
     else:
         res = Res.Get1IndResource('sfnt', res_name_or_index)
     self.file = cStringIO.StringIO(res.data)
     Res.CloseResFile(resref)
     self.name = path
Ejemplo n.º 3
0
def list1resources():
    ntypes = Res.Count1Types()
    for itype in range(1, 1+ntypes):
        type = Res.Get1IndType(itype)
        print "Type:", repr(type)
        nresources = Res.Count1Resources(type)
        for i in range(1, 1 + nresources):
            Res.SetResLoad(0)
            res = Res.Get1IndResource(type, i)
            Res.SetResLoad(1)
            info(res)
Ejemplo n.º 4
0
def copyres(input, output, skiptypes, skipowner, progress=None):
    ctor = None
    alltypes = []
    Res.UseResFile(input)
    ntypes = Res.Count1Types()
    progress_type_inc = 50 / ntypes
    for itype in range(1, 1 + ntypes):
        type = Res.Get1IndType(itype)
        if type in skiptypes:
            continue
        alltypes.append(type)
        nresources = Res.Count1Resources(type)
        progress_cur_inc = progress_type_inc / nresources
        for ires in range(1, 1 + nresources):
            res = Res.Get1IndResource(type, ires)
            id, type, name = res.GetResInfo()
            lcname = string.lower(name)
            if lcname == OWNERNAME and id == 0:
                if skipowner:
                    continue
                else:
                    ctor = type
            size = res.size
            attrs = res.GetResAttrs()
            if progress:
                progress.label('Copy %s %d %s' % (type, id, name))
                progress.inc(progress_cur_inc)
            res.LoadResource()
            res.DetachResource()
            Res.UseResFile(output)
            try:
                res2 = Res.Get1Resource(type, id)
            except MacOS.Error:
                res2 = None

            if res2:
                if progress:
                    progress.label('Overwrite %s %d %s' % (type, id, name))
                    progress.inc(0)
                res2.RemoveResource()
            res.AddResource(type, id, name)
            res.WriteResource()
            attrs = attrs | res.GetResAttrs()
            res.SetResAttrs(attrs)
            Res.UseResFile(input)

    return (alltypes, ctor)
Ejemplo n.º 5
0
def dataFromFile(pathOrFSSpec, nameOrID="", resType='NFNT'):
	from Carbon import Res
	resref = Res.FSOpenResFile(pathOrFSSpec, 1)	# readonly
	try:
		Res.UseResFile(resref)
		if not nameOrID:
			# just take the first in the file
			res = Res.Get1IndResource(resType, 1)
		elif type(nameOrID) == types.IntType:
			res = Res.Get1Resource(resType, nameOrID)
		else:
			res = Res.Get1NamedResource(resType, nameOrID)
		theID, theType, name = res.GetResInfo()
		data = res.data
	finally:
		Res.CloseResFile(resref)
	return data
Ejemplo n.º 6
0
 def getFONDs(self):
     FONDcount = Res.Count1Resources('FOND')
     for i in range(FONDcount):
         fond = FontFamily(Res.Get1IndResource('FOND', i + 1), self.mode)
         self.fonds.append(fond)
Ejemplo n.º 7
0
# List all resources
Ejemplo n.º 8
0
"""tools for BuildApplet and BuildApplication"""
Ejemplo n.º 9
0
"""Creation of PYC resources"""