]> granicus.if.org Git - python/commitdiff
Convenience routines: wrappers around some of the scriptable finder
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 20 Sep 1996 15:26:20 +0000 (15:26 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 20 Sep 1996 15:26:20 +0000 (15:26 +0000)
functionality.

Mac/Lib/findertools.py [new file with mode: 0644]

diff --git a/Mac/Lib/findertools.py b/Mac/Lib/findertools.py
new file mode 100644 (file)
index 0000000..ffc75f5
--- /dev/null
@@ -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()
+