--------------------------
- Objective-C structs can now be wrapped using struct-like types. This has
been used to implement wrapper types for NSPoint, NSSize, NSRange and NSRect
in Foundation and NSAffineTransformStruct in AppKit.
This means you can now access the x-coordinate of a point as ``aPoint.x``,
accessing ``aPoint[0]`` is still supported for compatibility with older
versions of PyObjC.
It is still allowed to use tuples, or other sequences, to represent
Objective-C structs.
NOTE: This has two side-effects that may require changes in your programs:
the values of the types mentioned above are no longer immutable and cannot
be used as keys in dicts or elements in sets. Another side-effect is that
a pickle containing these values created using this version of PyObjC cannot
be unpickled on older versions of PyObjC.
- This version adds support for NSDecimal. This is a fixed-point type defined
in Cocoa.
- NSDecimalNumbers are no longer converted to floats, that would loose
information.
- If an Objective-C method name is a Python keyword you can now access it
by appending two underscores to its name, e.g. someObject.class__().
The same is true for defining methods, if you define a method ``raise__`` in
a subclass of NSObject it will registered with the runtime as ``raise``.
NOTE: Currently only ``class`` and ``raise`` are treated like this, because
those are the only Python keywords that are actually used as Objective-C
method names.
- Experimental support for ``instanceMethodForSelector:`` and
``methodForSelector:``.
This support is not 100% stable, and might change in the future.
- Backward incompatible change: class methods are no longer callable through
the instances.
- Integrates full support for MacOS X 10.3 (aka Panther)
- Adds a convenience/wrapper module for SecurityInterface
- It is now safe to call from Objective-C to Python in arbitrary threads, but
only when using Python 2.3 or later.
- Fixes some issues with passing structs between Python and Objective-C.
- Uses the Panther version of ``NSKeyValueCoding``, the Jaguar version is still
supported.
- method ``updateNSString`` of ``objc.pyobjc_unicode`` is deprecated, use
create a new unicode object using ``unicode(mutableStringInstance)`` instead.
- NSAppleEventDescriptor bridged to Carbon.AE
- LibFFI is used more aggressivly, this should have no user-visible effects
other than fixing a bug related to key-value observing.
- Adds a number of new Examples:
* OpenGLDemo
Shows how to use OpenGL with PyObjC
* SillyBallsSaver
Shows how to write a screensaver in Python. Requires a framework install
of Python (that is, MacOS X 10.3 or MacPython 2.3 on MacOS X 10.2).
* Twisted/WebServicesTool
Shows how to integrate Twisted (1.1 or later) with Cocoa, it is a
refactor of the WebServicesTool example that is made much simpler
by using Twisted.
* Twisted/WebServicesTool-ControllerLayer
Shows how to integrate Twisted (1.1 or later) with Cocoa, it is a
refactor of the WebServicesTool example that is made much simpler
by using Twisted as it does not need threads. This one also uses
NSController and therefore requires MacOS X 10.3.