This is a very simple example that can be used to easily understand
this provided Model-View-Controller implementation.  

Note that the file 'gtkmvc.pdf' provides a more complete information
about this MCV implementation.


The application is constituted by 4 parts:
1. The main program
2. MVC framework (ex_model, ex_view, ex_ctrl)
3. MVC services (the module 'gtkmvc')
4. The xml representation of the view, generated by Glade


1 simply instantiates three classes (model, view, controller) provided
by 2, and then runs the gtk mainloop. 

2 provides three classes: Example{Model,View,Controller}. Each of them 
derives from the corresponding class provided by the 'gtkmvc' module 3

ExampleModule contains the application data: a set of messages, and an
observable property which represents the current message in the set.
By using metaclasses, it is extremely easy to add and use properties
within a model.  

ExampleView shows the current message in the model, as well as the
message length. It also provides a button. The GUI is built by using
Glade, and the generated xml representation (4) is dynamically loaded
by the view itself. All the GUI-related events are automatically
searched and linked by the view, and they are bound to the associated
controller.

ExampleController provides two services: 
- A method which is automatically linked to the ExampleView's button
  'clicked' event. The automatic binding is performed at runtime, when
  the view is being contructed. 

- A method to get the model's observable property change
  notifications. Since a controller generally is also an observer for
  the associated model, each controller tries to match as much as
  possible observable properties contained into its model. 





