Introduction
************

This document contains information about the functionalities and the
architecture of a Model-View-Controller and Observer Infrastructure
(*MVC-O* from here on) for *PyGTK* version 2. The aim is to supply the
essential information in order to make developers able to effectively
use, modify and extend the infrastructure, for easily creating
new applications based on it.


Section :doc:`install` gives information about the required
dependencies, the installation, the distribution and the license of
*gtkmvc*.

Section :doc:`motiv` tries to motivate the usage of *gtkmvc*, by
discussing the context which the framework is thought to operate, and
its main goals.

Section :doc:`arch` briefly gives an overview of the general
architecture for a *GUI* application based on Python and the GTK
toolkit, showing all major parts, and how these depend on each other.
In this general picture, the proposed *MVC-O* framework is also
collocated, to provide an initial idea of how an hypothetical
application based on it should be organized.

Section :doc:`mvco` describes the basement of a *GUI* application, the
*MVC-O* Infrastructure.

Sections :doc:`impl` and :doc:`exam` supply some further details
about implementation, via many examples. The examples aim to make more
concrete the ideas described in all previous sections.

Section :doc:`adapt` presents a new important feature provided since
version 1.2.0, *Adapters* that make easier exploit the
framework when a default behaviour is expected. 

Finally, section :doc:`progen` briefly discusses how a project based on
*MVC-O* can be easily created from scratch by using a little application
that is provided with version 1.2 and later.
