symbian-qemu-0.9.1-12/python-2.6.1/Doc/library/miniaeframe.rst
author johnathan.white@2718R8BGH51.accenture.com
Mon, 08 Mar 2010 18:45:03 +0000
changeset 46 b6935a90ca64
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer Add example minigui application with hooks to profiler (which writes results to S:\). Modified NGA framebuffer to run its own dfc queue at high priority


: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.