In this chapter we'll take a look at Koo architecture show the developer how to add plugins, views, widgets in forms and lists and how to develop new applications using the Koo components. So yes, we want Koo to become, more than an application, an extensible development platform.
We're trying to add more comments to the source code, mainly in widgets and view interfaces and abstract classes, but also in other places. As always the source code is the most up to date documentation, and if you have any doubts you're encouraged to subscribe to the hackets mailing list at http://sf.net/projects/koo
First of all we'll introduce you the directory tree so you know where to look for things in the Koo distribution.
doc. This directory contains the documentation in docbook format and the corresponding compiled html files.
man. Contains the man pages source files for Koo
bin. Here is where the application code resides. Look a the next subsection for an in-depth explanation.
bin/options.py. Handles command line parameters and information stored on user .terprc file.
bin/rpc/rpc.py. Responsible for rpc communication.
bin/koo.py. Main application. This is where the program starts. Tryies to start up the DBUS sservice and shows the first dialogs.
bin/common. Contains utility classes and functions used in many places in the application.
bin/plugins. Contains the plugin mechanism and plugins are stored in subdirectories.
bin/l10n. Translation files.
bin/printer. Handles all printing related code, including opening the appropiate PDF viewers for each platform, etc.
bin/ui. Contains all (.ui files) used in the application and the common resource (common.rcc) file.
bin/ui/images. Contains all images that are included in the resource file.
bin/modules.
bin/modules/action. An action can be show a report, wizard or opening a new model screen (tab).