diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1996-09-20 15:26:20 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1996-09-20 15:26:20 (GMT) |
commit | 0585d41198047d8961b5d774efe3c7d9eea62e86 (patch) | |
tree | 7c244efc3f670c9c9e41960cb289493c8c004a32 /Mac/Lib/findertools.py | |
parent | 924ca855da687484ba8ac1a81913777b5204797f (diff) | |
download | cpython-0585d41198047d8961b5d774efe3c7d9eea62e86.zip cpython-0585d41198047d8961b5d774efe3c7d9eea62e86.tar.gz cpython-0585d41198047d8961b5d774efe3c7d9eea62e86.tar.bz2 |
Convenience routines: wrappers around some of the scriptable finder
functionality.
Diffstat (limited to 'Mac/Lib/findertools.py')
-rw-r--r-- | Mac/Lib/findertools.py | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/Mac/Lib/findertools.py b/Mac/Lib/findertools.py new file mode 100644 index 0000000..ffc75f5 --- /dev/null +++ b/Mac/Lib/findertools.py @@ -0,0 +1,138 @@ +"""Utility routines depending on the finder.""" + +import Finder_7_0_Suite +import aetools +import MacOS +import sys +import macfs + +SIGNATURE='MACS' + +class Finder(aetools.TalkTo, Finder_7_0_Suite.Finder_7_0_Suite): + pass + +_finder_talker = None + +def _getfinder(): + global _finder_talker + if not _finder_talker: + _finder_talker = Finder(SIGNATURE) + return _finder_talker + +def launch(file): + """Open a file thru the finder. Specify file by name or fsspec""" + finder = _getfinder() + fss = macfs.FSSpec(file) + vRefNum, parID, name = fss.as_tuple() + dir_fss = macfs.FSSpec((vRefNum, parID, '')) + file_alias = fss.NewAlias() + dir_alias = dir_fss.NewAlias() + return finder.open(dir_alias, items=[file_alias]) + +def Print(file): + """Print a file thru the finder. Specify file by name or fsspec""" + finder = _getfinder() + fss = macfs.FSSpec(file) + vRefNum, parID, name = fss.as_tuple() + dir_fss = macfs.FSSpec((vRefNum, parID, '')) + file_alias = fss.NewAlias() + dir_alias = dir_fss.NewAlias() + return finder._print(dir_alias, items=[file_alias]) + +def copy(src, dstdir): + """Copy a file to a folder""" + finder = _getfinder() + src_fss = macfs.FSSpec(src) + dst_fss = macfs.FSSpec(dstdir) + src_alias = src_fss.NewAlias() + dst_alias = dst_fss.NewAlias() + return finder.copy_to(dst_alias, _from=[src_alias]) + +def move(src, dstdir): + """Move a file to a folder""" + finder = _getfinder() + src_fss = macfs.FSSpec(src) + dst_fss = macfs.FSSpec(dstdir) + src_alias = src_fss.NewAlias() + dst_alias = dst_fss.NewAlias() + return finder.move_to(dst_alias, _from=[src_alias]) + +def sleep(): + """Put the mac to sleep""" + finder = _getfinder() + finder.sleep() + +def shutdown(): + """Shut the mac down""" + finder = _getfinder() + finder.shut_down() + +def restart(): + """Restart the mac""" + finder = _getfinder() + finder.restart() + + +def main(): + print 'Testing launch...' + fss, ok = macfs.PromptGetFile('File to launch:') + if ok: + result = launch(fss) + if result: + print 'Result: ', result + print 'Press return-', + sys.stdin.readline() + print 'Testing print...' + fss, ok = macfs.PromptGetFile('File to print:') + if ok: + result = Print(fss) + if result: + print 'Result: ', result + print 'Press return-', + sys.stdin.readline() + print 'Testing copy...' + fss, ok = macfs.PromptGetFile('File to copy:') + if ok: + dfss, ok = macfs.GetDirectory() + if ok: + result = copy(fss, dfss) + if result: + print 'Result:', result + print 'Press return-', + sys.stdin.readline() + print 'Testing move...' + fss, ok = macfs.PromptGetFile('File to move:') + if ok: + dfss, ok = macfs.GetDirectory() + if ok: + result = move(fss, dfss) + if result: + print 'Result:', result + print 'Press return-', + sys.stdin.readline() + import EasyDialogs + print 'Testing sleep...' + if EasyDialogs.AskYesNoCancel('Sleep?') > 0: + result = sleep() + if result: + print 'Result:', result + print 'Press return-', + sys.stdin.readline() + print 'Testing shutdown...' + if EasyDialogs.AskYesNoCancel('Shut down?') > 0: + result = shutdown() + if result: + print 'Result:', result + print 'Press return-', + sys.stdin.readline() + print 'Testing restart...' + if EasyDialogs.AskYesNoCancel('Restart?') > 0: + result = restart() + if result: + print 'Result:', result + print 'Press return-', + sys.stdin.readline() + +if __name__ == '__main__': + main() + |