Monday, January 04, 2010

New Year's Resolution

Well, everyone is supposed to have a new year's resolution and believe me I have a few. One of these is to bring the Gnocl project to a full 1.0.0 release this year! Needless to say, the project is growing as there are so many useful Gtk+/Gnome extensions to grab and divert one's attention when confronted with the need to resolve a nasty problem.
Putting that aside, the Yuletide break has provided me with almost a solid month of programming time to which has been devoted to a number of tasks:

1. Improving Gnocl support for Glade files.
2. Extending support to GtkBuilder xml files.
3. Modfying the code base to enable handle functions to be accessed from the builder module.
4. Implement gnocl support for all Gtk+ widgets.

The latter has been necessary because the early approach was to make Gtk+ programming as simple as possible. This meant, for instance, there was no scrollbar widget. The gnocl::text widget for instance, is in fact a megawidget placed inside a GtkScrolledWindow with matching GtkScrollBars. Boxes, too, needed extending. Ok, its a simple matter where Gnocl dermines wether or not to create a GtkHBox or GtkVBox. The properties being the same. Builder/Glade will create these unique objects and so gnocl needs to know how to handle these. At the moment, the implementation is about 80% complete. The most notable 'things to do' include sorting out the toolbar, the tree and listview. For the meantime the workaround would simply be to create the place holder and add these items from the Tcl side.
Other work undertaken over the Hols has been to reorganise the file structure of the project. Having all modules under one umbrella makefile was problematic to say the least. So, I bit the bullet and split away the various elements ie. canvas, sourceview etc into their own project directories. In one way this removes compilation and linkage depency problems although the makefiles needed reworking. The newer makefiles also enable the better managment of sub-project development as the handle compilation, installation of dependencies and upload to sourceforge.
A few bugs have been resolved too, especially the failure to close the gnocl::aboutDialog widget.
Today, I've just uploaded the latest update release of the gnocl::canvas widget.

No comments: