diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2002-01-22 23:20:12 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2002-01-22 23:20:12 (GMT) |
commit | d50c66b1e595e0b594d99a0c0d4919a3b6a85569 (patch) | |
tree | d44e1f7a857dbd0ffd5c062b0fcbeb1791d680ea /Mac/Lib | |
parent | bbf5ef552f8485f6cb41ef4491c8172d3c543498 (diff) | |
download | cpython-d50c66b1e595e0b594d99a0c0d4919a3b6a85569.zip cpython-d50c66b1e595e0b594d99a0c0d4919a3b6a85569.tar.gz cpython-d50c66b1e595e0b594d99a0c0d4919a3b6a85569.tar.bz2 |
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.
Diffstat (limited to 'Mac/Lib')
-rw-r--r-- | Mac/Lib/lib-scriptpackages/_builtinSuites/__init__.py | 28 | ||||
-rw-r--r-- | Mac/Lib/lib-scriptpackages/_builtinSuites/builtin_Suite.py | 140 |
2 files changed, 168 insertions, 0 deletions
diff --git a/Mac/Lib/lib-scriptpackages/_builtinSuites/__init__.py b/Mac/Lib/lib-scriptpackages/_builtinSuites/__init__.py new file mode 100644 index 0000000..ac3c0ba --- /dev/null +++ b/Mac/Lib/lib-scriptpackages/_builtinSuites/__init__.py @@ -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' + diff --git a/Mac/Lib/lib-scriptpackages/_builtinSuites/builtin_Suite.py b/Mac/Lib/lib-scriptpackages/_builtinSuites/builtin_Suite.py new file mode 100644 index 0000000..237dc15 --- /dev/null +++ b/Mac/Lib/lib-scriptpackages/_builtinSuites/builtin_Suite.py @@ -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, +} |