/** gnomepopup.c **/ #include static void dummyCallback(GtkObject *,gpointer); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); GnomeUIInfo showMenu[] = { GNOMEUIINFO_ITEM("Next",NULL,dummyCallback,NULL), GNOMEUIINFO_ITEM("Previous",NULL,dummyCallback,NULL), GNOMEUIINFO_ITEM("Zoom In",NULL,dummyCallback,NULL), GNOMEUIINFO_ITEM("Zoom Out",NULL,dummyCallback,NULL), GNOMEUIINFO_END }; GnomeUIInfo editMenu[] = { GNOMEUIINFO_MENU_CUT_ITEM(dummyCallback,NULL), GNOMEUIINFO_MENU_COPY_ITEM(dummyCallback,NULL), GNOMEUIINFO_MENU_PASTE_ITEM(dummyCallback,NULL), GNOMEUIINFO_ITEM("Delete",NULL,dummyCallback,NULL), GNOMEUIINFO_END }; GnomeUIInfo mainMenu[] = { GNOMEUIINFO_SUBTREE("Show",showMenu), GNOMEUIINFO_ITEM("Reduce",NULL, dummyCallback,NULL), GNOMEUIINFO_ITEM("Expand",NULL, dummyCallback,NULL), GNOMEUIINFO_SUBTREE("Edit",editMenu), GNOMEUIINFO_END }; int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *menu; gnome_init("gnomepopup","1.0",argc,argv); window = gnome_app_new("gnomepopup","Popup"); gtk_container_set_border_width(GTK_CONTAINER(window), 80); gtk_signal_connect(GTK_OBJECT(window),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(window),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); menu = gnome_popup_menu_new(mainMenu); gnome_popup_menu_attach(menu,window,NULL); gtk_widget_show_all(window); gtk_main(); exit(0); } static void dummyCallback(GtkObject *object,gpointer data) { gnome_ok_dialog("Not implemented"); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }