Gwydion Dylan Cocoa Library.

Version 0.1 

Copyright  2002 Rob Myers: robmyers@mac.com . 
This release is not open source. The moral right of the author has been asserted.
This software is provided without guarantee or warranty. Use at your own risk. 


System Requirements.

MacOS X 10.2 "Jaguar" with the Developer Tools installed.
Gwydion Dylan and make-exports from /src/tools installed.


Overview.

The Gwydion Dylan Cocoa Library wraps Apple's Foundation and AppKit for use in Dylan programs. 


Using The Library.

To use the library with your code, you must import the cocoa library and module, and add the linker option -framework Foundation -framewwork AppKit to your .lid file. See cocoa-test for an example.


Design Notes.

Class names have been translated directly to Dylan, so:
	NSObject *
becomes
	<NSObject>
	
Protocol names have had "Protocol" appended to them, so:
	NSObject
becomes
	<NSObjectProtocol>
This is neccessary as it is not uncommon for Cocoa to define a protocol and a class (that implements the protocol) with the same name. In Objective-C, classes and protocols are in different namespaces. In Dylan, all bindings live in the same namespace, so a class and protocol cannot have the same name.	
	
Methods have been named by running all the argument names of the Objective-C method together, removing any colons.
So
	performSelector:
becomes
	performSelector
and
	performSelector:withObject:
becomes
	performSelectorwithObject
or, more readably (using Dylan's case-insensitivity)
	performSelectorWithObject
and
	performSelector:withObject:withObject:
becomes
	performSelectorwithObjectwithObject
or, more readably (using Dylan's case-insensitivity)
	performSelectorWithObjectWithObject
Methods have not been implemented using keywords: Dylan does not use keywords when discriminating method congruity, so methods with the same first argument name on the same object type count as multiple definitions.
If anyone wants to work around this with macros, they are welcome to. :-)

Due to limitations in the script used to wrap the Cocoa headers, methods that use pointers to primitive types are not supported. This excludes void* and char*, which are supported.


Planned Features.

0.5 - Wrapping Dylan classes and methods as Objective-C classes and methods.
1.0 - Project Builder integration.


Releases.

0.1 : 10/02/03	- Initial release. 