First preview of the new EiffelVision2 for the Mac
It's been around 6 weeks now since I started writing the Cocoa implementation of EiffelVision. Many people told me that they are interested in the port and I'd like to give you a quick update.
I also compiled the "EiffelVison2 Demo" application and EiffelStudio. (see Screenshots)
Design & Architecture
Just in case you're wondering how everything works: The whole architecture of the implementation has been split in two parts.
1) For handling the lower-level abstraction there is a cocoa bridge which encapsulates the Objective-C objects. This bridge currently consists of 53 classes and it should handle everything that has to deal with C, e.g. pointers and structs and the Objective-C/Cocoa specific stuff such as Selectors and Delegates.
E.g. NSButton is wrapped in NS_BUTTON and it is possible to set its action via
2) The second part is the implementation of the Vision2 interface which maps a Vision control (or any other vision class) to its cocoa counterpart(s). This can sometimes be pretty straight forward, often it involves working around limitations or a different architecture/approach taken by Cocoa.
As of today the source code of my work can also be found in the official trunk and I will continue to commit my updates there. Feel free to play around with it. Of course I'm happy to hear your feedback and discuss any issues.
The widgets example: buttons, labels, pixmaps, windows, menus, drawing area, spin button, scrollable area, ...
EiffelStudio start dialog: The black areas stem from the fact that the GRID control (and the drawing area) are still very much work in progress.