def need(restype, resid, filename = None, modname = None): """Open a resource file, if needed. restype and resid are required parameters, and identify the resource for which to test. If it is available we are done. If it is not available we look for a file filename (default: modname with .rsrc appended) either in the same folder as where modname was loaded from, or otherwise across sys.path. Returns the refno of the resource file opened (or None)""" if modname is None and filename is None: raise ArgumentError, 'Either filename or modname argument (or both) must be given' if type(resid) is type(1): try: h = Res.GetResource(restype, resid) except Res.Error: pass else: return else: try: h = Res.GetNamedResource(restype, resid) except Res.Error: pass else: return if not filename: if '.' in modname: filename = modname.split('.')[-1] + '.rsrc' else: filename = modname + '.rsrc' searchdirs = [] if modname == '__main__': searchdirs = [os.curdir] if modname in sys.modules: mod = sys.modules[modname] if hasattr(mod, '__file__'): searchdirs = [os.path.dirname(mod.__file__)] searchdirs.extend(sys.path) for dir in searchdirs: pathname = os.path.join(dir, filename) if os.path.exists(pathname): break else: raise ResourceFileNotFoundError, filename refno = open_pathname(pathname) if type(resid) is type(1): h = Res.GetResource(restype, resid) else: h = Res.GetNamedResource(restype, resid) return refno
def need(restype, resid, filename=None, modname=None): if modname is None: if filename is None: raise ArgumentError, 'Either filename or modname argument (or both) must be given' if type(resid) is type(1): try: h = Res.GetResource(restype, resid) except Res.Error: pass else: return else: try: h = Res.GetNamedResource(restype, resid) except Res.Error: pass else: return if not filename: if '.' in modname: filename = modname.split('.')[-1] + '.rsrc' else: filename = modname + '.rsrc' searchdirs = [] if modname == '__main__': searchdirs = [os.curdir] if modname in sys.modules: mod = sys.modules[modname] if hasattr(mod, '__file__'): searchdirs = [os.path.dirname(mod.__file__)] searchdirs.extend(sys.path) for dir in searchdirs: pathname = os.path.join(dir, filename) if os.path.exists(pathname): break else: raise ResourceFileNotFoundError, filename refno = open_pathname(pathname) h = type(resid) is type(1) and Res.GetResource(restype, resid) else: h = Res.GetNamedResource(restype, resid) return refno
def set(self, fontsettings): font, style, size, color = fontsettings if type(font) <> types.StringType: from Carbon import Res res = Res.GetResource('FOND', font) font = res.GetResInfo()[2] self.w.fontname.set(font) self.w.sizeedit.set(str(size)) if style: for i in range(1, len(_stylenames)): self.w[i].set(style & 0x01) style = style >> 1 else: self.w[0].set(1)
if len(sys.path) == 2: del sys.path[0] print 'sys.path', sys.path print 'sys.argv[0]', sys.argv[0] # Workaround for a strange KeyboardInterrupt bug under Carbon import MacOS if MacOS.runtimemodel == 'carbon': MacOS.SchedParams(0) ID_SPLASH_DIALOG=513 # XXXX Debugging code: assure the resource file is available from Carbon import Res try: Res.GetResource('DLOG', ID_SPLASH_DIALOG) except: Res.FSpOpenResFile(':player.rsrc', 0) Res.FSpOpenResFile(':playercontrols.rsrc', 0) Res.FSpOpenResFile(':common.rsrc', 0) Res.FSpOpenResFile(':playerballoons.rsrc', 0) Res.GetResource('DLOG', ID_SPLASH_DIALOG) # Now time for real work. import os import string import macfs # # Set variable for standalone cmif: #
#
# This python script creates Finder aliases for all the
"""macresource - Locate and open the resources needed for a script."""