I am no C pro but I do have a GTK project in distribution by debian (google
seetxt at sourceforge for the homepage, for some reason ozzu is telling me I can't post links right now), which is pretty much the highlight of my programming career thus far

.
Anyway, you may want to leave others a note about how to compile this, since I'm sure that there are actually real C pros around who simply have not worked with GTK and so will be unaware of the necessary linkage:
/* to compile: gcc picksel.c pkg-config --cflags --libs gtk+-2.0 */
at least that is how I did it. Unfortunately, it seg faults right away. There are some warnings I imagine you are aware of:
warning: incompatible implicit declaration of built-in function...many more of which will show up with -Wall. These are usually for GNU extensions, that is, non-standard functions that are part of GNU. You can get rid of the warnings by including the prototypes, eg:
char * strrchr (const char *string, int c);
The reason for this may be simply to draw the programmer's attention to the fact that these functions are GNU specific; I don't know if it has any further significance (but it may, so you might as well include them).
Also, I'd say use strtol() and not atoi(), atoi() is borderline depreciated for safety reasons.
The seg fault seems to stem from this:
Gtk-CRITICAL **: gtk_tree_view_set_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failedWhich looks to me like a simple (lack of?) casting error, maybe in the next few days I will have more of a look thru to get it to work on my system (fedora core 10-64). From working on seetxt and testing it on various computers and having the debian people do the same, I know that C stuff can easily contain simple errors that slide by in one place (which is why you didn't notice and have to fix them) that then show up on system number two, or three, etc.
C programming is also definitely a real forearm work-out

Makes you understand why they invented scripting languages. Anyway, it's probably a useful little project. Right now I use gcolorsel for this, which is slightly painful because I don't run gnome, and there is a crazy open file dialog that always pops up when it starts, and of course it doesn't magnify! So your alternative would be nice. Along those lines, one thing I would do differently is DON'T BILL IT AS UBUNTU GNOME. It seems to me this will work the same on *any* system with GTK. So call it a GTK app, most linux users understand that. For the ones that don't, you can add "compatible with Ubuntu/Gnome" since all gnome systems have gtk.
But most "gnome apps" (such as gcolorsel) also integrate themselves in a number of ridiculous and unnecessary ways with gnome (I intensely dislike "integrated desktop environments" for this and other reasons) meaning you actually have to hack the system and/or source code if you want to use a gnome app in a non-gnome environment. So for people like me, when I see a phrase like "gnome application" or "written for gnome", unless I have absolutely no other choice, I just turn the page and forget it because it isn't worth the headache.
Anyway, my point there is that your app is portable beyond Ubuntu and gnome, so you might as well keep that clear for other linux users.