/** gnomeappmenu.c **/ #include static void fileOpen(GtkObject *,gpointer); static void fileClose(GtkObject *,gpointer); static void fileExit(GtkObject *,gpointer); static void editCut(GtkObject *,gpointer); static void editPaste(GtkObject *,gpointer); static void editCopy(GtkObject *,gpointer); static void editDelete(GtkObject *,gpointer); static void editMoveUp(GtkObject *,gpointer); static void editMoveDown(GtkObject *,gpointer); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); GnomeUIInfo fileMenu[] = { { GNOME_APP_UI_ITEM,"_Open", "Open an existing file", fileOpen,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, { GNOME_APP_UI_ITEM,"_Close", "Close the current file", fileClose,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, GNOMEUIINFO_SEPARATOR, { GNOME_APP_UI_ITEM,"E_xit", "Close the window and cease", fileExit,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, GNOMEUIINFO_END }; GnomeUIInfo editMoveMenu[] = { { GNOME_APP_UI_ITEM,"_Up", "Move selection up", editMoveUp,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, { GNOME_APP_UI_ITEM,"D_own", "Move selection down", editMoveDown,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, GNOMEUIINFO_END }; GnomeUIInfo editMenu[] = { { GNOME_APP_UI_ITEM,"_Cut", "Delete and copy selection to clipboard", editCut,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, { GNOME_APP_UI_ITEM,"Cop_y", "Copy selection to clipboard", editCopy,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, { GNOME_APP_UI_ITEM,"_Paste", "Paste selection from clipboard", editPaste,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, GNOMEUIINFO_SUBTREE("_Move",editMoveMenu), { GNOME_APP_UI_ITEM,"_Delete", "Delete the current selection", editDelete,NULL,NULL, GNOME_APP_PIXMAP_NONE, NULL,0,0,NULL }, GNOMEUIINFO_END }; GnomeUIInfo mainMenu[] = { GNOMEUIINFO_SUBTREE("_File",fileMenu), GNOMEUIINFO_SUBTREE("_Edit",editMenu), GNOMEUIINFO_END }; int main(int argc,char *argv[]) { GtkWidget *app; GtkWidget *statusbar; gnome_init("gnomeappmenu","1.0",argc,argv); app = gnome_app_new("gnomebase","Gnome App Menu"); gtk_window_set_default_size(GTK_WINDOW(app),200,200); gtk_signal_connect(GTK_OBJECT(app),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(app),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); gnome_app_create_menus(GNOME_APP(app),mainMenu); statusbar = gtk_statusbar_new(); gnome_app_install_statusbar_menu_hints( GTK_STATUSBAR(statusbar),mainMenu); gnome_app_set_statusbar(GNOME_APP(app),statusbar); gtk_widget_show_all(app); gtk_main(); exit(0); } static void fileOpen(GtkObject *object,gpointer data) { gnome_ok_dialog("\"File/Open\" selected."); } static void fileClose(GtkObject *object,gpointer data) { gnome_ok_dialog("\"File/Close\" selected."); } static void fileExit(GtkObject *object,gpointer data) { gtk_main_quit(); } static void editCut(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Cut\" selected."); } static void editCopy(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Copy\" selected."); } static void editPaste(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Paste\" selected."); } static void editDelete(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Delete\" selected."); } static void editMoveUp(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Move/Up\" selected."); } static void editMoveDown(GtkObject *object,gpointer data) { gnome_ok_dialog("\"Edit/Move/Down\" selected."); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }