[EMAIL PROTECTED] wrote: > I'd prefer not to have to move my app from C to > C++ just to implement the interface, so that's quite a few out of the > window.
I'm sure that I dislike C++ even more than you do and I can completely understand why you'd want to keep you app as C. However, GUIs is actually one of the few applications where IMHO C++ may actually have some benefits over C. It would definitely be possible to do a C++ GUI which communicates with a C backend but it would be necessay place a clothes peg over one's nose while doing the C++ stuff. That said, I have done GUIs in GTK+ (which is C) and it is doable, especially if you spend some time wrapping the the GTK+ trivialities into something more managable. So for instance, it you need 5 buttons that are basically the same bar button names etc, instead of doing button1 = gtk_new_button("button1 name") ; gtk_fiddle_with (button1) ; button2 = gtk_new_button("button1 name") ; gtk_fiddle_with (button2) ; ... button5 = gtk_new_button("button1 name") ; gtk_fiddle_with (button5) ; do something like: struct button_s { const char * name ; int xpos, ypos, xsize, ysize ; } ; static struct button_s deez_buttons [] = { { "button1_name", 0, 0, 20, 20 }, { "button2_name", 0, 0, 20, 20 }, { "button3_name", 0, 0, 20, 20 }, { "button4_name", 0, 0, 20, 20 }, { "button5_name", 0, 0, 20, 20 } } ; and then write a function that takes an array of button_s structs and does whatever is required to make them happen. I also like to have all button messages pass back through one callback. Each button will have a unique identifier so that in the callback I can just switch on the button identifier. This can easily be extended to have all GUI callbacks passing through the one callback function and them make the whole thing a model controller view thing. > I don't really want huge dependencies for a knob, text box and a > button, either. Most GUI widget toolkits have a huge set of dependancies regardless :-). GTK+ is no different in this regard. > And something that's installed as default in most distros would be > good, too. GTK+ is shipped with most distros. Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo +-----------------------------------------------------------+ "Perl as a language has less a design than a thousand special features flying in close formation." -- From the c2 wiki