Re: [Evolution] Extending Evolution



 How much work has gone into enabeling Evolution to be used as a part of
 another app?  More importantly for me, how easy will it be?
 
 As a new to C programmer, I am about to emabark on a project that has a
 lot of overlap with Evolution.  Mostly  every thing Evolution does I
 will need in my app (a client/stock management system for my partners
 fledgling Naturopathic clinic)
 
 Obviously Things like a TODO list and Calendar will not need much
 customizing from my point of view, but I will need to be able to query
 the Contacts and Journal type functions of evolution through my app, and
 intergrate this with the Postgres database I am planning to use.  
 
 What I would like to do is have my app add a couple of Menu items and
 shortcut bar icons to evolution, and have tables in my postgres database
 link to Evolutions back end.  All windows of my app would idealy open
 inside of Evolution as the inbox and calendar do now.

Accessing the backends is pretty easy.  Evolution is done using a
model/view separation between the data and the GUI.  The calendar and
the addressbook data are handled by the Wombat server; mail handling
may be moved to the server in the future.  The GUI parts live in their
own processes and do not do any "smart" handling of the data; they
just present the user with whatever they get from the Wombat server.

You access the Wombat server with its CORBA interface.  The Evolution
GUI clients (i.e. the calendar and addressbook parts) communicate with
Wombat via its CORBA interface as well, so there is nothing different
between a stock component and your own code.

We have provided nice GTK+ object wrappers over the CORBA interface in
the form of libraries so that you do not have to worry about CORBA
issues.  You can look at <evolution/cal-client/cal-client.h> and
<evolution/ebook/e-book.h> to see what the GTK+ objects look like.

As for the GUI part of your project, you can plug new folder types and
views into the Evolution shell.  I'm sure Ettore can give you more
details about this.

We'll have programmer's documentation and complete API references at
some point; contributions are of course gladly accepted :-)

  Federico




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]