symbian-qemu-0.9.1-12/python-2.6.1/Doc/library/miniaeframe.rst
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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 
       
    15 The module :mod:`MiniAEFrame` provides a framework for an application that can
       
    16 function as an Open Scripting Architecture  (OSA) server, i.e. receive and
       
    17 process AppleEvents. It can be used in conjunction with :mod:`FrameWork` or
       
    18 standalone. As an example, it is used in :program:`PythonCGISlave`.
       
    19 
       
    20 The :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 
       
    42 AEServer 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 
       
    64 Note that there are some serious problems with the current design. AppleEvents
       
    65 which have non-identifier 4-character designators for arguments are not
       
    66 implementable, and it is not possible to return an error to the originator. This
       
    67 will be addressed in a future release.
       
    68