I wrote a patch to add editable cells to the tree-view widgets. It adds editing to the existing treebox/listbox, and moreover it provides the new cells-tree-view, which keeps a tree-view in sync with a cells family tree. Thanks go to Kenny Tilton for his suggestions.
Since my previous patch (adding threading to cells-gtk) is still pending (Peter?), I created threee flavors:
(1) cummulative: cgtk-all-071220.patch adds both the cells-tree-view and threading to a current CVS checkout. http://www.washbear-network.de/peterblog/wp-content/uploads/2007/12/cgtk-all...
(2) differential: cgtk-tree-view-from-threading-071220.patch adds the cells-tree-view to a cells-gtk already patched with my threading functionality. http://www.washbear-network.de/peterblog/wp-content/uploads/2007/12/cgtk-tre...
(3) stand alone: cgtk-tree-view-only-071220.patch adds the cells-tree-view only to a current CVS checkout, in case you don’t want threading. http://www.washbear-network.de/peterblog/wp-content/uploads/2007/12/cgtk-tre...
The patch adds a new tab Cells-Tree-View to the Tree-view page in cells-gtk, which demonstrates the functionality. The code is in test-gtk/test-tree-view.lisp
Details about the implementation and application can be found here: http://www.washbear-network.de/peterblog/2007/12/20/a-cells-tree-view-for-ce...
I have done a fair amount of testing, but bug reports are very welcome.
Peter
Peter Hildebrandt wrote:
I wrote a patch to add editable cells to the tree-view widgets. It adds editing to the existing treebox/listbox, and moreover it provides the new cells-tree-view, which keeps a tree-view in sync with a cells family tree.
Wow, you have been busy. Congrats on pulling this off.
kt
On Thu, 20 Dec 2007 21:53:58 +0100, Ken Tilton kennytilton@optonline.net wrote:
Peter Hildebrandt wrote:
I wrote a patch to add editable cells to the tree-view widgets. It adds editing to the existing treebox/listbox, and moreover it provides the new cells-tree-view, which keeps a tree-view in sync with a cells family tree.
Wow, you have been busy. Congrats on pulling this off.
Thanks :-) Your suggestions definitely got me on the right track there.
The hairy part in the end was to get the hooks into the right places so that gtk is called at the right moment. It turned out :default-initargs is the best place to construct gtk objects, and the latter part of an :around method for not-to-be is where it should be destroyed.
I did quite a bit of stress testing (the threading part helps here, I can just run a few loops from the repl, consing family trees together and ripping them apart and watch gtk trying to catch up), and could not manage to break it.
This makes me wonder once more what GUI toolkits people really use. Since it's so easy, does everyone just roll their own (like you, for that matter)? Or is there some good standard library out there that I have missed in my search? Or do Franz and Allegro offer superior toolkits with their products? Or is it just that most people use lisp for stuff that does not require GUIs (i.e. (academic) command line tools/web apps)? Maybe I'll kick off another one of these threads on cll (the last one is almost two years old, I think).
Anyway, Happy Holidays everyone,
Peter
kt