1 2:mod:`MiniAEFrame` --- Open Scripting Architecture server support 3================================================================= 4 5.. module:: MiniAEFrame 6 :platform: Mac 7 :synopsis: Support to act as an Open Scripting Architecture (OSA) server ("Apple Events"). 8 9 10.. index:: 11 single: Open Scripting Architecture 12 single: AppleEvents 13 module: FrameWork 14 15The module :mod:`MiniAEFrame` provides a framework for an application that can 16function as an Open Scripting Architecture (OSA) server, i.e. receive and 17process AppleEvents. It can be used in conjunction with :mod:`FrameWork` or 18standalone. As an example, it is used in :program:`PythonCGISlave`. 19 20The :mod:`MiniAEFrame` module defines the following classes: 21 22 23.. class:: AEServer() 24 25 A class that handles AppleEvent dispatch. Your application should subclass this 26 class together with either :class:`MiniApplication` or 27 :class:`FrameWork.Application`. Your :meth:`__init__` method should call the 28 :meth:`__init__` method for both classes. 29 30 31.. class:: MiniApplication() 32 33 A class that is more or less compatible with :class:`FrameWork.Application` but 34 with less functionality. Its event loop supports the apple menu, command-dot and 35 AppleEvents; other events are passed on to the Python interpreter and/or Sioux. 36 Useful if your application wants to use :class:`AEServer` but does not provide 37 its own windows, etc. 38 39 40.. _aeserver-objects: 41 42AEServer Objects 43---------------- 44 45 46.. method:: AEServer.installaehandler(classe, type, callback) 47 48 Installs an AppleEvent handler. *classe* and *type* are the four-character OSA 49 Class and Type designators, ``'****'`` wildcards are allowed. When a matching 50 AppleEvent is received the parameters are decoded and your callback is invoked. 51 52 53.. method:: AEServer.callback(_object, **kwargs) 54 55 Your callback is called with the OSA Direct Object as first positional 56 parameter. The other parameters are passed as keyword arguments, with the 57 4-character designator as name. Three extra keyword parameters are passed: 58 ``_class`` and ``_type`` are the Class and Type designators and ``_attributes`` 59 is a dictionary with the AppleEvent attributes. 60 61 The return value of your method is packed with :func:`aetools.packevent` and 62 sent as reply. 63 64Note that there are some serious problems with the current design. AppleEvents 65which have non-identifier 4-character designators for arguments are not 66implementable, and it is not possible to return an error to the originator. This 67will be addressed in a future release. 68 69