| \section{\module{MiniAEFrame} --- |
| Open Scripting Architecture server support} |
| |
| \declaremodule{standard}{MiniAEFrame} |
| \platform{Mac} |
| \modulesynopsis{Support to act as an Open Scripting Architecture (OSA) server |
| (``Apple Events'').} |
| |
| |
| The module \module{MiniAEFrame} provides a framework for an application |
| that can function as an Open Scripting Architecture |
| \index{Open Scripting Architecture} |
| (OSA) server, i.e. receive and process |
| AppleEvents\index{AppleEvents}. It can be used in conjunction with |
| \refmodule{FrameWork}\refstmodindex{FrameWork} or standalone. |
| |
| This module is temporary, it will eventually be replaced by a module |
| that handles argument names better and possibly automates making your |
| application scriptable. |
| |
| The \module{MiniAEFrame} module defines the following classes: |
| |
| |
| \begin{classdesc}{AEServer}{} |
| A class that handles AppleEvent dispatch. Your application should |
| subclass this class together with either |
| \class{MiniApplication} or |
| \class{FrameWork.Application}. Your \method{__init__()} method should |
| call the \method{__init__()} method for both classes. |
| \end{classdesc} |
| |
| \begin{classdesc}{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. |
| \end{classdesc} |
| |
| |
| \subsection{AEServer Objects \label{aeserver-objects}} |
| |
| \begin{methoddesc}[AEServer]{installaehandler}{classe, type, callback} |
| Installs an AppleEvent handler. \var{classe} and \var{type} are the |
| four-character OSA Class and Type designators, \code{'****'} wildcards |
| are allowed. When a matching AppleEvent is received the parameters are |
| decoded and your callback is invoked. |
| \end{methoddesc} |
| |
| \begin{methoddesc}[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: \code{_class} and \code{_type} are the Class and Type |
| designators and \code{_attributes} is a dictionary with the AppleEvent |
| attributes. |
| |
| The return value of your method is packed with |
| \function{aetools.packevent()} and sent as reply. |
| \end{methoddesc} |
| |
| 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. |