mirror of https://github.com/python/cpython
A "magic" suite that is the base suite for StdSuites. This solves a problem with the required events open/openapp/reopen/print/quit officially being part of Required but being defined (by Apple) in Standard.
Most of the code and ideas contributed by Michael j. Barber.
This commit is contained in:
parent
bbf5ef552f
commit
d50c66b1e5
|
@ -0,0 +1,28 @@
|
|||
"""
|
||||
Manually generated suite used as base class for StdSuites Required and Standard
|
||||
suites. This is needed because the events and enums in this suite belong
|
||||
in the Required suite according to the Apple docs, but they often seem to be
|
||||
in the Standard suite.
|
||||
"""
|
||||
import aetools
|
||||
import builtin_Suite
|
||||
|
||||
|
||||
_code_to_module = {
|
||||
'reqd' : builtin_Suite,
|
||||
'core' : builtin_Suite,
|
||||
}
|
||||
|
||||
|
||||
|
||||
_code_to_fullname = {
|
||||
'reqd' : ('_builtinSuites.builtin_Suite', 'builtin_Suite'),
|
||||
'core' : ('_builtinSuites.builtin_Suite', 'builtin_Suite'),
|
||||
}
|
||||
|
||||
from builtin_Suite import *
|
||||
|
||||
class _builtinSuites(builtin_Suite_Events,
|
||||
aetools.TalkTo):
|
||||
_signature = 'ascr'
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
"""Suite builtin_Suite: Every application supports open, reopen, print, run, and quit
|
||||
Level 1, version 1
|
||||
"""
|
||||
|
||||
import aetools
|
||||
import MacOS
|
||||
|
||||
_code = 'aevt'
|
||||
|
||||
class builtin_Suite_Events:
|
||||
|
||||
def open(self, _object, _attributes={}, **_arguments):
|
||||
"""open: Open the specified object(s)
|
||||
Required argument: list of objects to open
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'odoc'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.has_key('errn'):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def run(self, _no_object=None, _attributes={}, **_arguments):
|
||||
"""run: Run an application. Most applications will open an empty, untitled window.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'oapp'
|
||||
|
||||
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 aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def reopen(self, _no_object=None, _attributes={}, **_arguments):
|
||||
"""reopen: Reactivate a running application. Some applications will open a new untitled window if no window is open.
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'rapp'
|
||||
|
||||
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 aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
def _print(self, _object, _attributes={}, **_arguments):
|
||||
"""print: Print the specified object(s)
|
||||
Required argument: list of objects to print
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'pdoc'
|
||||
|
||||
if _arguments: raise TypeError, 'No optional args expected'
|
||||
_arguments['----'] = _object
|
||||
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.has_key('errn'):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_quit = {
|
||||
'saving' : 'savo',
|
||||
}
|
||||
|
||||
def quit(self, _no_object=None, _attributes={}, **_arguments):
|
||||
"""quit: Quit an application
|
||||
Keyword argument saving: specifies whether to save currently open documents
|
||||
Keyword argument _attributes: AppleEvent attribute dictionary
|
||||
"""
|
||||
_code = 'aevt'
|
||||
_subcode = 'quit'
|
||||
|
||||
aetools.keysubst(_arguments, self._argmap_quit)
|
||||
if _no_object != None: raise TypeError, 'No direct arg expected'
|
||||
|
||||
aetools.enumsubst(_arguments, 'savo', _Enum_savo)
|
||||
|
||||
_reply, _arguments, _attributes = self.send(_code, _subcode,
|
||||
_arguments, _attributes)
|
||||
if _arguments.has_key('errn'):
|
||||
raise aetools.Error, aetools.decodeerror(_arguments)
|
||||
# XXXX Optionally decode result
|
||||
if _arguments.has_key('----'):
|
||||
return _arguments['----']
|
||||
|
||||
_argmap_close = {
|
||||
'saving' : 'savo',
|
||||
'saving_in' : 'kfil',
|
||||
}
|
||||
|
||||
_Enum_savo = {
|
||||
'yes' : 'yes ', # Save objects now
|
||||
'no' : 'no ', # Do not save objects
|
||||
'ask' : 'ask ', # Ask the user whether to save
|
||||
}
|
||||
|
||||
#
|
||||
# Indices of types declared in this module
|
||||
#
|
||||
_classdeclarations = {
|
||||
}
|
||||
|
||||
_propdeclarations = {
|
||||
}
|
||||
|
||||
_compdeclarations = {
|
||||
}
|
||||
|
||||
_enumdeclarations = {
|
||||
'savo' : _Enum_savo,
|
||||
}
|
Loading…
Reference in New Issue