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
Exemple #2
0
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
Exemple #3
0
 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)
Exemple #4
0
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:
#
Exemple #5
0
#
Exemple #6
0
# This python script creates Finder aliases for all the
Exemple #7
0
"""macresource - Locate and open the resources needed for a script."""