Hi, I'm writing a gtk interface for my Sega Saturn emulator. It's using a GtkDrawingArea and GtkGlExt to display an OpenGL window. I want the drawing area size to respect some constraint to match the Saturn resolution. It looks like gtk_window_set_geometry_hints does what I need but I have some issues when using it : my drawing area is packed in a vbox with the menu and when I ask a size for the drawing area, I got that size + the size of the menu. For instance, if I want a drawing area size of 320 and the size of the menu is 65, I got a size of 385 for the drawing area.
What am I doing wrong? I'm including some example code: #include <gtk/gtk.h> gboolean resize (GtkWidget * w, GdkEventConfigure * e, gpointer d) { g_print("got: %d x %d\n", e->width, e->height); } int main(int argc, char ** argv) { GtkWidget * window, * box, * menu, * area; GdkGeometry hints; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); box = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), box); menu = gtk_menu_bar_new(); gtk_container_add(GTK_CONTAINER(menu), gtk_menu_item_new_with_mnemonic("Dummy")); gtk_box_pack_start(GTK_BOX(box), menu, FALSE, FALSE, 0); area = gtk_drawing_area_new(); gtk_box_pack_start(GTK_BOX(box), area, TRUE, TRUE, 0); g_signal_connect(GTK_OBJECT(area), "configure_event", GTK_SIGNAL_FUNC(resize), 0); hints.min_width = 320; hints.min_height = 200; g_print("asking: %d x %d\n", hints.min_width, hints.min_height); gtk_window_set_geometry_hints(GTK_WINDOW(window), area, &hints, GDK_HINT_MIN_SIZE); gtk_widget_show_all(window); gtk_main(); } Guillaume _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list