blogFirst preview of the new EiffelVision2 for the Mac

dfurrer's picture

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 have touched almost all widgets and many basic things work. The controls show up and are positioned correctly (Much of the layout code has been taken from the windows implementation), buttons can be clicked, trees populated, images drawn, etc...

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 set_action (an_action: PROCEDURE [ANY, TUPLE]) instead of using Cocoa's Action/Target pattern.

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.

Screenshots widgets-example.png

The widgets example: buttons, labels, pixmaps, windows, menus, drawing area, spin button, scrollable area, ...

es.png

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.

Comments

Excellent!

bayt's picture

Great work, Daniel!

Let me know if you need help testing EiffelStudio once you have the Grid.

Till


http://comerge.net : adequate professional software

Can't see widgets example

peter_gummer's picture

I'll try to find time to look at what you've committed so far, Daniel. The EiffelStudio start-up dialog looks great, but I can't see the widgets example in Safari, Firefox or IE. Firefox says the png contains errors.

- Peter

Great work ~

larryliuming's picture

Really cool! Thumb up!

I will try what you

ted_eiffel's picture

I will try what you committed recently when I have time. Well done!

uploading the images again

dfurrer's picture

I hope this helped:

Syndicate content