/* $Id: menus.c,v 1.1.1.1 2000/01/30 16:39:07 benediktroth Exp $ */ #include #include #include "yamt.h" #include "menus.h" #include "properties.h" #include "edit.h" #include "clist_items.h" static GnomeUIInfo file_menu [] = { GNOMEUIINFO_MENU_OPEN_ITEM (edit_file_select, NULL), GNOMEUIINFO_MENU_SAVE_ITEM (edit_file_save, NULL), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_CLOSE_ITEM (edit_file_close, NULL), GNOMEUIINFO_SEPARATOR, { GNOME_APP_UI_ITEM, N_("MP3 Player"), N_("Opens the default mp3 player"), play_file, NULL, NULL, GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_NEW, 0, 0, NULL }, GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_EXIT_ITEM (yamt_exit, NULL), GNOMEUIINFO_END }; static GnomeUIInfo edit_menu [] = { GNOMEUIINFO_MENU_PROPERTIES_ITEM(properties, NULL), GNOMEUIINFO_END }; static GnomeUIInfo help_menu[] = { GNOMEUIINFO_HELP("yamt"), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_ABOUT_ITEM(about_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo menu[] = { GNOMEUIINFO_MENU_FILE_TREE(file_menu), GNOMEUIINFO_MENU_EDIT_TREE(edit_menu), GNOMEUIINFO_MENU_HELP_TREE(help_menu), GNOMEUIINFO_END }; void install_statusbar(GtkWidget *app) { GtkWidget *progress; appbar = gnome_appbar_new( TRUE, TRUE, GNOME_PREFERENCES_USER ); gnome_app_set_statusbar( GNOME_APP(app), appbar ); progress = gnome_appbar_get_progress( appbar ); gtk_progress_configure( progress, 0 , 0 , 100 ); /* The progress bar should just show if there */ /* is some activity, no detailed progress */ gtk_progress_set_activity_mode( progress , TRUE ); } void install_menus(GtkWidget *app) { gnome_app_create_menus_with_data(GNOME_APP(app), menu, app); gnome_app_install_menu_hints(GNOME_APP(app), menu); } GtkWidget *popup_menu_new( GtkCList *clist, short bfield ) { GtkWidget *popup; GtkWidget *popup_play; GtkWidget *popup_file; GtkWidget *popup_file_menu; GtkWidget *popup_file_copy; GtkWidget *popup_file_move; GtkWidget *popup_file_delete; GtkWidget *popup_edit; GtkWidget *popup_rename; GtkWidget *popup_mass; GtkWidget *popup_auto; GtkWidget *popup_fix; GtkWidget *popup_save; GtkWidget *popup_all; GtkWidget *popup_none; if( !bfield ) return(NULL); /* The popup menu */ popup = gtk_menu_new(); gtk_menu_set_title( GTK_MENU(popup), _("Task") ); /* Root entries */ if( bfield & PLAY_ITEM ) { popup_play = gtk_menu_item_new_with_label( _("Play") ); gtk_signal_connect( GTK_OBJECT(popup_play), "activate", GTK_SIGNAL_FUNC(clist_items_play), clist ); gtk_menu_append( GTK_MENU(popup), popup_play); gtk_widget_show( popup_play ); } /* File submenu */ if( bfield & FILE_ITEM ) { popup_file = gtk_menu_item_new_with_label( _("File") ); gtk_menu_append( GTK_MENU(popup), popup_file); gtk_widget_show( popup_file ); popup_file_menu = gtk_menu_new(); popup_file_copy = gtk_menu_item_new_with_label( _("Copy") ); gtk_signal_connect( GTK_OBJECT(popup_file_copy), "activate", GTK_SIGNAL_FUNC(clist_items_copy_dialog), clist ); gtk_menu_append( GTK_MENU(popup_file_menu), popup_file_copy ); gtk_widget_show( popup_file_copy ); popup_file_move = gtk_menu_item_new_with_label( _("Move") ); gtk_signal_connect( GTK_OBJECT(popup_file_move), "activate", GTK_SIGNAL_FUNC(clist_items_move_dialog), clist ); gtk_menu_append( GTK_MENU(popup_file_menu), popup_file_move ); gtk_widget_show( popup_file_move ); popup_file_delete = gtk_menu_item_new_with_label( _("Delete") ); gtk_signal_connect( GTK_OBJECT(popup_file_delete), "activate", GTK_SIGNAL_FUNC(clist_items_delete_dialog), clist ); gtk_menu_append( GTK_MENU(popup_file_menu), popup_file_delete ); gtk_widget_show( popup_file_delete ); gtk_menu_item_set_submenu( GTK_MENU_ITEM(popup_file), popup_file_menu ); } /* More root entries */ if( bfield & EDIT_ITEM ) { popup_edit = gtk_menu_item_new_with_label( _("Edit") ); gtk_signal_connect( GTK_OBJECT(popup_edit), "activate", GTK_SIGNAL_FUNC(clist_items_edit), clist ); gtk_menu_append( GTK_MENU(popup), popup_edit ); gtk_widget_show( popup_edit ); } if( bfield & RENAME_ITEM ) { popup_rename = gtk_menu_item_new_with_label( _("Rename") ); gtk_signal_connect( GTK_OBJECT(popup_rename), "activate", GTK_SIGNAL_FUNC(clist_items_rename), clist ); gtk_menu_append( GTK_MENU(popup), popup_rename ); gtk_widget_show( popup_rename ); } if( bfield & MASS_ITEM ) { popup_mass = gtk_menu_item_new_with_label( _("Mass tag") ); gtk_signal_connect( GTK_OBJECT(popup_mass), "activate", GTK_SIGNAL_FUNC(clist_items_mass), clist ); gtk_menu_append( GTK_MENU(popup), popup_mass ); gtk_widget_show( popup_mass ); } if( bfield & AUTO_ITEM ) { popup_auto = gtk_menu_item_new_with_label( _("Auto tag") ); gtk_signal_connect( GTK_OBJECT(popup_auto), "activate", GTK_SIGNAL_FUNC(clist_items_auto), clist ); gtk_menu_append( GTK_MENU(popup), popup_auto ); gtk_widget_show( popup_auto ); } /* if( bfield & FIX_ITEM ) */ /* { */ /* popup_fix = gtk_menu_item_new_with_label( _("Fix filename") ); */ /* gtk_signal_connect( GTK_OBJECT (popup_fix), "activate", */ /* GTK_SIGNAL_FUNC(clist_items_fix), clist ); */ /* gtk_menu_append( GTK_MENU(popup), popup_fix ); */ /* gtk_widget_show( popup_fix ); */ /* } */ if( bfield & SAVE_ITEM ) { popup_save = gtk_menu_item_new_with_label( _("Save") ); gtk_signal_connect( GTK_OBJECT(popup_save), "activate", GTK_SIGNAL_FUNC(clist_items_select_filename), clist ); gtk_menu_append( GTK_MENU(popup), popup_save ); gtk_widget_show( popup_save ); } if( bfield & ALL_ITEM ) { popup_all = gtk_menu_item_new_with_label( _("Select All") ); gtk_signal_connect( GTK_OBJECT(popup_all), "activate", GTK_SIGNAL_FUNC(clist_items_select_all), clist ); gtk_menu_append( GTK_MENU(popup), popup_all ); gtk_widget_show( popup_all ); } if( bfield & NONE_ITEM ) { popup_none = gtk_menu_item_new_with_label( _("Unselect All") ); gtk_signal_connect( GTK_OBJECT (popup_none), "activate", GTK_SIGNAL_FUNC(clist_items_unselect_all), clist ); gtk_menu_append( GTK_MENU(popup), popup_none ); gtk_widget_show( popup_none ); } return( popup ); } static void nothing_cb (GtkWidget* widget, gpointer data) { GtkWidget* dialog; GtkWidget* app; app = (GtkWidget*) data; dialog = gnome_ok_dialog_parented( _("Function is not implemented!"), GTK_WINDOW(app)); } static void about_cb (GtkWidget* widget, gpointer data) { static GtkWidget* dialog = NULL; GtkWidget* app; gchar* logo; app = (GtkWidget*) data; if (dialog != NULL) { g_assert(GTK_WIDGET_REALIZED(dialog)); gdk_window_show(dialog->window); gdk_window_raise(dialog->window); } else { const gchar* authors[] = { "Benedikt Roth ", "Sean Atkinson <96sca@eng.cam.ac.uk>", NULL }; logo = gnome_pixmap_file(YAMT_LOGO); dialog = gnome_about_new( _("Yet Another MP3 Tool"), VERSION, "(C) 2000 Benedikt Roth", authors, _("A program to organize your MP3s."), "yamt/yamt-logo.png"); g_free(logo); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &dialog); gnome_dialog_set_parent(GNOME_DIALOG(dialog), GTK_WINDOW(app)); gtk_widget_show(dialog); } }