GNOME 3590 Published by

Kiwi is a PyGTK framework for building graphical applications loosely based on MVC Model-View-Controller (MVC) and Allen Holub's Visual proxy [1]. Think of Kiwi as a high-level, object-oriented layer built on PyGTK.

Its design is based on real-world experience using PyGTK to develop large desktop applications, which use many concepts common to most graphical applications: multiple windows and dialogs, forms, data persistence, lists and high-level classes that support domain objects directly.



Features
=======

* An MVC-derived framework of classes:
* Views, which represent the graphical display
* Controllers, which handles user interaction with the widgets in a View.
* Delegates, combines a View and a Controller.
* Models, which are special mixins for your domain objects
* Proxies, special types of Delegate designed to implement forms

* Validation: Kiwi supports validation on different levels:
data type validation and verification on the Model/Proxy level,
View validation and hooks for displaying state user interface, and
Widget (Gtk/PyGTK) level support to provide user feedback of failed and
mandatory validation status.

* A List widget, which provides a higher level abstraction of GtkTreeView
and all its classes (GtkTreeModel, GtkTreeViewColumn, GtkCellRenderer).
with hooks to easily integrate into the Kiwi Framework.

* Gazpacho integration for most (non-deprecated) interactive widgets with
attributes for handling validation and proxy attributes.

* PyGTK utilities, to make it easier to add signals and properties to
your objects.

* i18n translation utilities, to help you translate PyGTK applications,
currently depends on gettext and intltool.

Kiwi is based on the real-world experience of using PyGTK to develop fairly
large applications, which uses many concepts common to most graphical
applications: multiple windows and dialogs, forms, data persistence, lists
and high-level classes that support domain objects directly.

Requirements
===========

Python 2.3 or higher http://www.python.org/
PyGTK 2.6.0 or higher http://www.pygtk.org/
gazpacho 0.6.1 (svn recommenced) http://gazpacho.sicem.biz/

Documentation
============
The current documentation, (eg howto, api reference) are currently
not updated to 1.9.x, they're still using the old API, so keep this in mind
when you're looking for information.
However, most ideas (Proxy, Views, Delegates) still apply to 1.9.x, it's
just that the API has changed a little bit, so the current, somewhat
outdated documentation is still useful.

Included in the tarball are also a number of examples, which serves as a
good starting point. Keep in mind that most of them require gazpacho to be
installed.


Thanks
=====
Christian Robottom Reis: Original author and design
Lorenzo Gil Sanchez: PyGTK 2.x port
Gustavo Rahal: Validation and Widget support, Wizard.

Also thanks to the following people which has contributed minor features
or bug reports:
Henrique Romano, Daniel Saran R. da Cunha, Evandro Vale Miquelito,
Gustavo Carneiro, Sidnei da Silva

Resources
========

homepage http://www.async.com.br/projects/kiwi/
download http://www.async.com.br/projects/kiwi/download/
repository http://svn.async.com.br/cgi-bin/viewcvs.cgi/kiwi/
report a bug http://bugs.async.com.br/enter_bug.cgi?product=Kiwi
open bugs http://tinyurl.com/cyrms
mail. list http://www.async.com.br/mailman/listinfo/kiwi/

[1] http://en.wikipedia.org/wiki/Model-view-controller
[2] http://tinyurl.com/2ccch