Cocoa for EiffelVision2

Revision as of 15:54, 11 August 2006 by Spooky (Talk | contribs) (bugtracker)

Vision2 Carbon IMP

Overview

The goal of this project is to provide Vision with a Carbon backend to make it truly native on the mac. We have some basic controls working at the moment and we hope to be able get a full native build of EiffelStudio in the coming months. For more information please refer to the discussion page. See also OSX_release_infrastructure.

Screenshots

A Simple Vision2 Application running with the Carbon Imp

A state of the art OS X Window


Latest Updates

11.08: After a short break due to the exam session (and a few weeks of holidays ;)) we have started to work on the project again as part of our semester thesis supervised by Till G. Bay. We also have a Task / Bug tracker now.

24.06: We have now a simple Vision2 App (two buttons to set the language of the Window Title) running with the Carbon implementation. Have a look to the screenshot on top of the page. or get the vision2 project from here [1] and the carbon implementation from svn.

23.06: In the current SVN Version of the Vision2 Library (Carbon Implemetation), a few functions (including show, resizing...) of the window, the button and the EV_FIXED are working. Another important Milstone is, that we managed to handle events and to run an Event Loop.

10.06: We have now striped down a copy of the gtk vision implementation and started to implement the first few features. The code is still ugly, but you can get it here. [2]. A screen shot is at the top of this page :)

02.06: You can get the simple Carbon example Application, which we try to build in vision, here [3]

09.05: We have now delegated some tasks:

  • Eiffel Media Package for Mac (Roland)
  • GTK based .app package, probably universal (Dani & Maeli)
  • Look into Carbon application development (Ueli)
  • Look into wrapping Carbon headers with EWG (Jann)

It also seems that using Carbon instead of Cocoa is more realistic for this project, so we'll primarily look into Carbon now.

06.05: We now have a graphical version of ES 5.7 running on OS X (both ppc and intel). The problem was with the fontconfig libraray: The 2.3.2 version seems to crash where the 2.2.3 works fine. There are still a few problems with fonts sizes though... From what Jann tells me self compilation is also no problem anymore so we can really start hacking the beast now.

30.4: We have EiffelStudio compiled for ppc and running on ppc and intel macs. The Gtk+ GUI works more or less but some things (like wizards) are missing atm. It required a lot of hacking and we're now trying to get newer builds, and streamline the process for getting a build on the mac. I think the next goal should be to get a self-compiling version of ec so that we can skip building the f_code on linux and then adopt the build-script.

Documents

I collected a few Documents with introductions to carbon widgets and the carbon event Loop and also a part of the API Refference [4].

The whole vision toolkit makes heavy use of the bridge pattern. Be sure you understand it well and especially take a look at EV_ANY.

Task / Bug Tracker

Our Task tracker is available here (powered by flyspray).

Build instructions

Requirements

  • EWG (with EWG environment variable set)
  • GOBO

Build infrastructure

You need a folder x with a subfolder "library". cd into the library folder and checkout the code with the following command

svn co https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src/library/vision2

Now point the environment variable ISE_LIBRARY_CARBON to the folder x.

Before you can compile a project you need to compile the EWG glue library. You can do this by running

geant c_build_library_ise
in the $ISE_LIBRARY_CARBON/library/vision2/implementation/carbon/wrapper directory.

You should then be able to compile and run a simple EV application like our example project which you can get here: http://n.ethz.ch/student/dfurrer/files/vision4mac/simple_demo_app.zip

Team

Everyone intrested in this project is welcome to join our mailinglist es-mac@origo.ethz.ch