New versus old Tree/List store
Dear fellow users,
We’re working on a new release of Gtk2Hs which is certainly overdue, not least due to the release of GHC 6.6. We have re-implemented the clumsy Tree- and ListStore objects in Haskell. These objects store the data of the TreeView, ComboBox, IconView and some other widgets which were previously as difficult to use as in C, i.e. setting up a List- or TreeStore and connecting it to the widgets was a nightmare. Duncan has bitten the bullet and re-implemented the ListStore and all it’s ugly interfacing to Gtk within Haskell, on top of which I’ve written a corresponding TreeStore implementation in Haskell. What gives us a bit of a headache is that the not-so-standard widgets like ComboBox often internally create the C variants and that there seem to be no hooks to drop in our own Haskell replacement. As a result, our Haskell List- and TreeStore is not quite working with all widgets.
Duncan therefore proposed to include both, the C-land List- and TreeStore and our new Haskell List- and TreeStore in the new release. While this seemed to be a good intermediate solution, one of our brave bleeding edge users (who use the darcs repository rather than the last release) rightfully complained that things do not work with the new Haskell models. He’s hardly to blame, as it is far from clear which functions are from the C model and which are from the Haskell model. Mixing them will give a compilable program, but one which complains at runtime about bad iterators, invalid indices and the like. I’m wondering wether we should release just the new model and try to fix as many widgets as possible, even if that means that not all widgets will be fully usable in the next release. Note that we really would like to release before Christmas!