23 Feb 2004 kai   » (Journeyer)

Programming can be painful at times

I've decided to do some work on the Gtk widget for pebble treemaps before I jump on to learning Ruby and giving the Linux Interface Project file manager a try. I'm in trouble though and need some help:

Even though I've written a little Gtk widget in C before, have looked at quite some Gtk+ application and almost finished the Gtk 2.0 port of the TOM language bindings I'm still totally lost when I have to write a new class in Gtk. There are probably people who can type very fast and write all this stuff by hand, but given that it's almost intirely redundant code I guess most people use code generation or macros to do the job. I was thinking of using m4 and I looked at GOB but didn't quite like the approach, even though it's certainly better then doing everything by hand. Today it occured to me that it's probably better to use the built-in capability of the code editor to spit out the code, XEmacs in my case (though I've lately used Anjuta). I tried to find some information about using Emacs Lisp to write code for me (tutorial style since I'm new to Lisp) but didn't find anything, tried to find Lisp macros/functions to generate Gtk classes, inserte signals and methods and such, found non. Maybe I just tried the wrong queries?

If you're using (X)Emacs and have succesfully deployed Lisp to write Gtk code in C without typing it in manually I'd like to hear from your experiences, maybe you know of some sites where these things are explained or where I could download Lisp code that makes programming Gtk less of a burden. I'm grateful for any help!

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!