mirror of https://github.com/python/cpython.git
Created Finder 7.0 AE interface and a test program that uses the
finder to launch an application.
This commit is contained in:
parent
6244867e56
commit
35bfd3f9d7
|
@ -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()
|
||||
|
|
@ -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['----']
|
||||
|
Loading…
Reference in New Issue