| :mod:`MiniAEFrame` --- Open Scripting Architecture server support | |
| ================================================================= | |
| .. module:: MiniAEFrame | |
| :platform: Mac | |
| :synopsis: Support to act as an Open Scripting Architecture (OSA) server ("Apple Events"). | |
| .. index:: | |
| single: Open Scripting Architecture | |
| single: AppleEvents | |
| module: FrameWork | |
| The module :mod:`MiniAEFrame` provides a framework for an application that can | |
| function as an Open Scripting Architecture (OSA) server, i.e. receive and | |
| process AppleEvents. It can be used in conjunction with :mod:`FrameWork` or | |
| standalone. As an example, it is used in :program:`PythonCGISlave`. | |
| The :mod:`MiniAEFrame` module defines the following classes: | |
| .. class:: AEServer() | |
| A class that handles AppleEvent dispatch. Your application should subclass this | |
| class together with either :class:`MiniApplication` or | |
| :class:`FrameWork.Application`. Your :meth:`__init__` method should call the | |
| :meth:`__init__` method for both classes. | |
| .. class:: MiniApplication() | |
| A class that is more or less compatible with :class:`FrameWork.Application` but | |
| with less functionality. Its event loop supports the apple menu, command-dot and | |
| AppleEvents; other events are passed on to the Python interpreter and/or Sioux. | |
| Useful if your application wants to use :class:`AEServer` but does not provide | |
| its own windows, etc. | |
| .. _aeserver-objects: | |
| AEServer Objects | |
| ---------------- | |
| .. method:: AEServer.installaehandler(classe, type, callback) | |
| Installs an AppleEvent handler. *classe* and *type* are the four-character OSA | |
| Class and Type designators, ``'****'`` wildcards are allowed. When a matching | |
| AppleEvent is received the parameters are decoded and your callback is invoked. | |
| .. method:: AEServer.callback(_object, **kwargs) | |
| Your callback is called with the OSA Direct Object as first positional | |
| parameter. The other parameters are passed as keyword arguments, with the | |
| 4-character designator as name. Three extra keyword parameters are passed: | |
| ``_class`` and ``_type`` are the Class and Type designators and ``_attributes`` | |
| is a dictionary with the AppleEvent attributes. | |
| The return value of your method is packed with :func:`aetools.packevent` and | |
| sent as reply. | |
| Note that there are some serious problems with the current design. AppleEvents | |
| which have non-identifier 4-character designators for arguments are not | |
| implementable, and it is not possible to return an error to the originator. This | |
| will be addressed in a future release. | |