Here is what you can currently do with tabular menus. Note that I do not really want to advocate this as a desirable feature, just showing what can already be done. Matthias
Attachment:
tablemenu.png
Description: PNG image
#include <gtk/gtk.h> static gboolean popup_menu (GtkWidget *widget, gpointer data) { GtkWidget *menu, *item, *image; menu = gtk_menu_new (); item = gtk_menu_item_new_with_label ("First item"); gtk_menu_attach (GTK_MENU (menu), item, 0, 4, 0, 1); item = gtk_menu_item_new_with_label ("Second Item"); gtk_menu_attach (GTK_MENU (menu), item, 0, 3, 1, 2); item = gtk_menu_item_new (); image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (item), image); gtk_menu_attach (GTK_MENU (menu), item, 3, 4, 1, 2); item = gtk_menu_item_new_with_label ("Third Item"); gtk_menu_attach (GTK_MENU (menu), item, 0, 4, 2, 3); gtk_widget_show_all (menu); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time()); } int main (int argc, char *argv[]) { GtkWidget *window, *button; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); button = gtk_button_new_with_label ("Pop"); gtk_container_add (GTK_CONTAINER (window), button); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (popup_menu), NULL); gtk_widget_show_all (window); gtk_main (); return 0; }