summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1996-09-19 10:49:53 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1996-09-19 10:49:53 (GMT)
commit35bfd3f9d7fb85db454f29c90eade210adfa392c (patch)
tree5f0b2148627ed05b5d26032127483f26563e3e4e
parent6244867e56df54c38ab92cfa47d6b6bf62bab8d5 (diff)
downloadcpython-35bfd3f9d7fb85db454f29c90eade210adfa392c.zip
cpython-35bfd3f9d7fb85db454f29c90eade210adfa392c.tar.gz
cpython-35bfd3f9d7fb85db454f29c90eade210adfa392c.tar.bz2
Created Finder 7.0 AE interface and a test program that uses the
finder to launch an application.
-rw-r--r--Mac/Lib/test/testfinderopen.py33
-rw-r--r--Mac/Lib/toolbox/Finder_7_0_Suite.py310
2 files changed, 343 insertions, 0 deletions
diff --git a/Mac/Lib/test/testfinderopen.py b/Mac/Lib/test/testfinderopen.py
new file mode 100644
index 0000000..8ecf424
--- /dev/null
+++ b/Mac/Lib/test/testfinderopen.py
@@ -0,0 +1,33 @@
+"""Make the finder open an application, file or folder"""
+
+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
+
+def open_in_finder(file):
+ """Open a file thru the finder. Specify file by name or fsspec"""
+ finder = Finder(SIGNATURE)
+ 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(file_alias, items=[file_alias])
+
+def main():
+ fss, ok = macfs.PromptGetFile('File to launch:')
+ if not ok: sys.exit(0)
+ result = open_in_finder(fss)
+ if result:
+ print 'Result: ', result
+
+if __name__ == '__main__':
+ main()
+
diff --git a/Mac/Lib/toolbox/Finder_7_0_Suite.py b/Mac/Lib/toolbox/Finder_7_0_Suite.py
new file mode 100644
index 0000000..1155795
--- /dev/null
+++ b/Mac/Lib/toolbox/Finder_7_0_Suite.py
@@ -0,0 +1,310 @@
+"""Suite 7.0 Finder Suite: This is the original Finder suite. These events will be supported in the future, but the syntax may be changed in a future Finder release.
+Level 1, version 1
+
+Generated from flap:Systeemmap:Finder
+AETE/AEUT resource version 0/149, language 0, script 0
+"""
+
+import aetools
+import MacOS
+
+_code = 'FNDR'
+
+class Finder_7_0_Suite:
+
+ def open_about_box(self, _no_object=None, _attributes={}, **_arguments):
+ """open about box: Open the 'About This Mac' window
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'aevt'
+ _subcode = 'abou'
+
+ if _arguments: raise TypeError, 'No optional args expected'
+ if _no_object != None: raise TypeError, 'No direct arg expected'
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_copy_to = {
+ '_from' : 'fsel',
+ }
+
+ def copy_to(self, _object, _attributes={}, **_arguments):
+ """copy to: Copies one or more items into a folder
+ Required argument: Alias for folder into which the items are copied
+ Keyword argument _from: List of aliases for items to be copied
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'drag'
+
+ aetools.keysubst(_arguments, self._argmap_copy_to)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_duplicate = {
+ 'items' : 'fsel',
+ }
+
+ def duplicate(self, _object, _attributes={}, **_arguments):
+ """duplicate: Duplicate a set of items in a folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases for items in the folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'sdup'
+
+ aetools.keysubst(_arguments, self._argmap_duplicate)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ def empty_trash(self, _no_object=None, _attributes={}, **_arguments):
+ """empty trash: Empties the trash
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'empt'
+
+ if _arguments: raise TypeError, 'No optional args expected'
+ if _no_object != None: raise TypeError, 'No direct arg expected'
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_make_aliases_for = {
+ 'items' : 'fsel',
+ }
+
+ def make_aliases_for(self, _object, _attributes={}, **_arguments):
+ """make aliases for: Make aliases to items from a single folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases for items in folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'sali'
+
+ aetools.keysubst(_arguments, self._argmap_make_aliases_for)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_move_to = {
+ '_from' : 'fsel',
+ }
+
+ def move_to(self, _object, _attributes={}, **_arguments):
+ """move to: Move one or more items into a folder
+ Required argument: Alias for destination folder
+ Keyword argument _from: List of aliases for items to be moved
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'move'
+
+ aetools.keysubst(_arguments, self._argmap_move_to)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ def sleep(self, _no_object=None, _attributes={}, **_arguments):
+ """sleep: Put portable into sleep mode
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'slep'
+
+ if _arguments: raise TypeError, 'No optional args expected'
+ if _no_object != None: raise TypeError, 'No direct arg expected'
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ def shut_down(self, _no_object=None, _attributes={}, **_arguments):
+ """shut down: Shuts down the Macintosh if all applications can quit
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'shut'
+
+ if _arguments: raise TypeError, 'No optional args expected'
+ if _no_object != None: raise TypeError, 'No direct arg expected'
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_open = {
+ 'items' : 'fsel',
+ }
+
+ def open(self, _object, _attributes={}, **_arguments):
+ """open: Open folders, files, or applications from a given folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases for items in the folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'sope'
+
+ aetools.keysubst(_arguments, self._argmap_open)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap__print = {
+ 'items' : 'fsel',
+ }
+
+ def _print(self, _object, _attributes={}, **_arguments):
+ """print: Print items from a given folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases for items in folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'spri'
+
+ aetools.keysubst(_arguments, self._argmap__print)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_put_away = {
+ 'items' : 'fsel',
+ }
+
+ def put_away(self, _object, _attributes={}, **_arguments):
+ """put away: Put away items from a given folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases to items in folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ Returns: undocumented, typecode 'alis'
+ """
+ _code = 'FNDR'
+ _subcode = 'sput'
+
+ aetools.keysubst(_arguments, self._argmap_put_away)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ def restart(self, _no_object=None, _attributes={}, **_arguments):
+ """restart: Restart the Macintosh
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'rest'
+
+ if _arguments: raise TypeError, 'No optional args expected'
+ if _no_object != None: raise TypeError, 'No direct arg expected'
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+
+ _argmap_select = {
+ 'items' : 'fsel',
+ }
+
+ def select(self, _object, _attributes={}, **_arguments):
+ """select: Select items in a folder
+ Required argument: Alias for folder containing the items
+ Keyword argument items: List of aliases for items in folder
+ Keyword argument _attributes: AppleEvent attribute dictionary
+ """
+ _code = 'FNDR'
+ _subcode = 'srev'
+
+ aetools.keysubst(_arguments, self._argmap_select)
+ _arguments['----'] = _object
+
+
+ _reply, _arguments, _attributes = self.send(_code, _subcode,
+ _arguments, _attributes)
+ if _arguments.has_key('errn'):
+ raise MacOS.Error, aetools.decodeerror(_arguments)
+ # XXXX Optionally decode result
+ if _arguments.has_key('----'):
+ return _arguments['----']
+