mirror of https://github.com/python/cpython
68 lines
2.6 KiB
TeX
68 lines
2.6 KiB
TeX
\section{\module{MiniAEFrame} ---
|
|
Support to act as an Open Scripting Architecture server.}
|
|
\declaremodule{standard}{MiniAEFrame}
|
|
|
|
\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
|
|
\module{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.
|