The code I started with (which was not mine) used a table widget to put all the control widgets in, so you would have nice alignment: the option's name goes into the first column as a label, then follows a text entry in the second, and finally a browse button in the third. If there is no browse button, the text edit (or spin) occupies both 2nd and 3rd column; if there also is no name, it extends over all 3 columns.
So far so good, and the results are really nice. Until you start to vertically resize the window. Then everything gets proportionally taller. Now there are many dialogs in XBoard that consist of a big text edit or listbox, with just one or two rows of buttons or labels below or above it. (E.g. the Engine Output window, the Game List.) In general the user would want to resize those over a very large range, and all vertical size change should go into the large textview or listbox. But in stead it makes the labels or buttons next to it ridiculously high as well if you originally created the window with a small height, and if you created them with a large height (using gtk_widget_set_size_request) it completely prevents you from sizing it smaller.
What would be the recommended way in GTK to solve this problem? All my attempts to fix the height of a widget or table row have come up with nothing, and I am at a complete loss. I found you can do this with hbox and vbox widges, but if I make every row a hbox and pack them inside a vbox, I don't know any method to align the contents of different hboxes with each other.
Any help is welcome!





