Introduction
This is the &Evolution; Developer's Guide or programming guide
for the &Evolution; groupware suite. If you are a programmer
and you wish to use &Evolution;'s functionality from your own
applications or if you wish to modify the &Evolution; core code,
you should read this guide.
If you are an end-user of &Evolution; you do not need to read
this guide; please read the &Evolution; User's Guide instead.
This guide contains the information you need to know to do the
following:
Write applications that use &Evolution;'s data
repositories via the &Wombat; personal information server.
Examples of this would be a GNOME
Panel applet that displays today's
appointments, or a telephone dialer application that uses
the contents of the &Evolution; Addressbook.
Write applications that use the &Camel; mail library.
This includes extending &Evolution;'s own mail component
to perform additional functions.
Write new components for the &Evolution; Shell. Instead
of writing a stand-alone application, you can provide your
users with the benefit of having integrated views of their
data from within Evolution.
Write new modules for the &Evolution; Executive Summary.
This allows you to present commonly-accessed information
in a convenient fashion directly in the &Evolution; Shell.
Modify the core &Evolution; code to add new features or
change its architecture.
Organization of this Guide
This guide is organized in two big sections. The first is a
programming guide, which consists of one part for each one of
&Evolution;'s components: there are separate parts for the
calendar, the addressbook, the mailer, the executive summary,
and the shell. Each part gives a description of the
architecture of its corresponding component, and also gives
information about the component's internal architecture and
some implementation details.
The second section of this guide is a reference guide for
&Evolution;'s programming interfaces. We have separated these
into public and private interfaces. The public ones are those
that most people will need to use when writing extensions or
third-party components; the private interfaces are those used
internally in &Evolution;. Even if you do not intend to
modify the &Evolution; core code, it may be useful to know a
bit about the way it is organized internally.
&Evolution; is free software, and we want you as a programmer
to make the most of it. We have provided many useful
interfaces that you can use in your own applications. Still,
we want you to view &Evolution; as a framework for building
groupware applications, and this may occasionally involve
making changes to its core code. We want you to learn from
&Evolution;'s design because we think it marks an important
milestone in the development of large-scale free software
applications. We want you to modify it as you see fit. Free
software gives you this freedom, and we want the whole world
to benefit from it.