diff options
author | 2009-11-11 20:33:51 +0100 | |
---|---|---|
committer | 2009-11-11 20:33:51 +0100 | |
commit | 526cbb98cf3f38657afc75ba9e468e3d9dd5232f (patch) | |
tree | 970e3bb1394379805758d3da6bc02369306eaa42 /plugins/gtkui/interface.c | |
parent | 69e0ddb79f353cbf67cbf8db9517e2e71ed87d5c (diff) |
created gtkui plugin, started moving stuff out
Diffstat (limited to 'plugins/gtkui/interface.c')
-rw-r--r-- | plugins/gtkui/interface.c | 1737 |
1 files changed, 1737 insertions, 0 deletions
diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c new file mode 100644 index 00000000..88acb8d0 --- /dev/null +++ b/plugins/gtkui/interface.c @@ -0,0 +1,1737 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> +#include <stdio.h> + +#include <gdk/gdkkeysyms.h> +#include <gtk/gtk.h> + +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +#define GLADE_HOOKUP_OBJECT(component,widget,name) \ + g_object_set_data_full (G_OBJECT (component), name, \ + gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) + +#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ + g_object_set_data (G_OBJECT (component), name, widget) + +GtkWidget* +create_mainwin (void) +{ + GtkWidget *mainwin; + GtkWidget *vbox1; + GtkWidget *menubar1; + GtkWidget *menuitem1; + GtkWidget *menuitem1_menu; + GtkWidget *open; + GtkWidget *image120; + GtkWidget *separator2; + GtkWidget *add_files; + GtkWidget *image121; + GtkWidget *add_folders; + GtkWidget *image122; + GtkWidget *add_audio_cd; + GtkWidget *image123; + GtkWidget *add_location1; + GtkWidget *separatormenuitem1; + GtkWidget *quit; + GtkWidget *image124; + GtkWidget *edit1; + GtkWidget *edit1_menu; + GtkWidget *clear1; + GtkWidget *image125; + GtkWidget *select_all1; + GtkWidget *selection1; + GtkWidget *selection1_menu; + GtkWidget *remove1; + GtkWidget *image126; + GtkWidget *crop1; + GtkWidget *find1; + GtkWidget *separator5; + GtkWidget *preferences; + GtkWidget *playlist1; + GtkWidget *playlist1_menu; + GtkWidget *playlist_load; + GtkWidget *playlist_save; + GtkWidget *playlist_save_as; + GtkWidget *order1; + GtkWidget *order1_menu; + GSList *order_linear_group = NULL; + GtkWidget *order_linear; + GtkWidget *order_shuffle; + GtkWidget *order_random; + GtkWidget *looping1; + GtkWidget *looping1_menu; + GSList *loop_all_group = NULL; + GtkWidget *loop_all; + GtkWidget *loop_single; + GtkWidget *loop_disable; + GtkWidget *scroll_follows_playback; + GtkWidget *menuitem4; + GtkWidget *menuitem4_menu; + GtkWidget *about1; + GtkWidget *help1; + GtkWidget *image127; + GtkWidget *hbox2; + GtkWidget *hbox3; + GtkWidget *stopbtn; + GtkWidget *image7; + GtkWidget *playbtn; + GtkWidget *image2; + GtkWidget *pausebtn; + GtkWidget *image3; + GtkWidget *prevbtn; + GtkWidget *image4; + GtkWidget *nextbtn; + GtkWidget *image5; + GtkWidget *playrand; + GtkWidget *image6; + GtkWidget *volumebar; + GtkWidget *seekbar; + GtkWidget *table1; + GtkWidget *_; + GtkWidget *vbox3; + GtkWidget *header; + GtkWidget *playlist; + GtkWidget *playscroll; + GtkWidget *playhscroll; + GtkWidget *statusbar; + GtkAccelGroup *accel_group; + + accel_group = gtk_accel_group_new (); + + mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_events (mainwin, GDK_KEY_PRESS_MASK); + gtk_window_set_title (GTK_WINDOW (mainwin), "DeaDBeeF"); + gtk_window_set_default_size (GTK_WINDOW (mainwin), 500, 300); + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox1); + gtk_container_add (GTK_CONTAINER (mainwin), vbox1); + + menubar1 = gtk_menu_bar_new (); + gtk_widget_show (menubar1); + gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0); + + menuitem1 = gtk_menu_item_new_with_mnemonic ("_File"); + gtk_widget_show (menuitem1); + gtk_container_add (GTK_CONTAINER (menubar1), menuitem1); + + menuitem1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu); + + open = gtk_image_menu_item_new_with_mnemonic ("_Open file(s)"); + gtk_widget_show (open); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), open); + gtk_widget_add_accelerator (open, "activate", accel_group, + GDK_O, (GdkModifierType) GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + + image120 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); + gtk_widget_show (image120); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (open), image120); + + separator2 = gtk_separator_menu_item_new (); + gtk_widget_show (separator2); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator2); + gtk_widget_set_sensitive (separator2, FALSE); + + add_files = gtk_image_menu_item_new_with_mnemonic ("Add file(s)"); + gtk_widget_show (add_files); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), add_files); + + image121 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image121); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_files), image121); + + add_folders = gtk_image_menu_item_new_with_mnemonic ("Add folder(s)"); + gtk_widget_show (add_folders); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), add_folders); + + image122 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image122); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_folders), image122); + + add_audio_cd = gtk_image_menu_item_new_with_mnemonic ("Add Audio CD"); + gtk_widget_show (add_audio_cd); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), add_audio_cd); + + image123 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); + gtk_widget_show (image123); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_audio_cd), image123); + + add_location1 = gtk_menu_item_new_with_mnemonic ("Add location"); + gtk_widget_show (add_location1); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), add_location1); + + separatormenuitem1 = gtk_separator_menu_item_new (); + gtk_widget_show (separatormenuitem1); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), separatormenuitem1); + gtk_widget_set_sensitive (separatormenuitem1, FALSE); + + quit = gtk_image_menu_item_new_with_mnemonic ("_Quit"); + gtk_widget_show (quit); + gtk_container_add (GTK_CONTAINER (menuitem1_menu), quit); + gtk_widget_add_accelerator (quit, "activate", accel_group, + GDK_Q, (GdkModifierType) GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + + image124 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU); + gtk_widget_show (image124); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit), image124); + + edit1 = gtk_menu_item_new_with_mnemonic ("Edit"); + gtk_widget_show (edit1); + gtk_container_add (GTK_CONTAINER (menubar1), edit1); + + edit1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (edit1), edit1_menu); + + clear1 = gtk_image_menu_item_new_with_mnemonic ("_Clear"); + gtk_widget_show (clear1); + gtk_container_add (GTK_CONTAINER (edit1_menu), clear1); + + image125 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU); + gtk_widget_show (image125); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (clear1), image125); + + select_all1 = gtk_menu_item_new_with_mnemonic ("Select all"); + gtk_widget_show (select_all1); + gtk_container_add (GTK_CONTAINER (edit1_menu), select_all1); + gtk_widget_add_accelerator (select_all1, "activate", accel_group, + GDK_A, (GdkModifierType) GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + + selection1 = gtk_menu_item_new_with_mnemonic ("Selection"); + gtk_widget_show (selection1); + gtk_container_add (GTK_CONTAINER (edit1_menu), selection1); + + selection1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (selection1), selection1_menu); + + remove1 = gtk_image_menu_item_new_with_mnemonic ("Remove"); + gtk_widget_show (remove1); + gtk_container_add (GTK_CONTAINER (selection1_menu), remove1); + gtk_widget_add_accelerator (remove1, "activate", accel_group, + GDK_Delete, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + + image126 = gtk_image_new_from_stock ("gtk-remove", GTK_ICON_SIZE_MENU); + gtk_widget_show (image126); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (remove1), image126); + + crop1 = gtk_menu_item_new_with_mnemonic ("Crop"); + gtk_widget_show (crop1); + gtk_container_add (GTK_CONTAINER (selection1_menu), crop1); + + find1 = gtk_menu_item_new_with_mnemonic ("_Find"); + gtk_widget_show (find1); + gtk_container_add (GTK_CONTAINER (edit1_menu), find1); + gtk_widget_add_accelerator (find1, "activate", accel_group, + GDK_F, (GdkModifierType) GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + + separator5 = gtk_separator_menu_item_new (); + gtk_widget_show (separator5); + gtk_container_add (GTK_CONTAINER (edit1_menu), separator5); + gtk_widget_set_sensitive (separator5, FALSE); + + preferences = gtk_menu_item_new_with_mnemonic ("Preferences"); + gtk_widget_show (preferences); + gtk_container_add (GTK_CONTAINER (edit1_menu), preferences); + + playlist1 = gtk_menu_item_new_with_mnemonic ("Playlist"); + gtk_widget_show (playlist1); + gtk_container_add (GTK_CONTAINER (menubar1), playlist1); + + playlist1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (playlist1), playlist1_menu); + + playlist_load = gtk_menu_item_new_with_mnemonic ("Load"); + gtk_widget_show (playlist_load); + gtk_container_add (GTK_CONTAINER (playlist1_menu), playlist_load); + + playlist_save = gtk_menu_item_new_with_mnemonic ("Save"); + gtk_widget_show (playlist_save); + gtk_container_add (GTK_CONTAINER (playlist1_menu), playlist_save); + + playlist_save_as = gtk_menu_item_new_with_mnemonic ("Save As"); + gtk_widget_show (playlist_save_as); + gtk_container_add (GTK_CONTAINER (playlist1_menu), playlist_save_as); + + order1 = gtk_menu_item_new_with_mnemonic ("Order"); + gtk_widget_show (order1); + gtk_container_add (GTK_CONTAINER (playlist1_menu), order1); + + order1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (order1), order1_menu); + + order_linear = gtk_radio_menu_item_new_with_mnemonic (order_linear_group, "Linear"); + order_linear_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (order_linear)); + gtk_widget_show (order_linear); + gtk_container_add (GTK_CONTAINER (order1_menu), order_linear); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (order_linear), TRUE); + + order_shuffle = gtk_radio_menu_item_new_with_mnemonic (order_linear_group, "Shuffle"); + order_linear_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (order_shuffle)); + gtk_widget_show (order_shuffle); + gtk_container_add (GTK_CONTAINER (order1_menu), order_shuffle); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (order_shuffle), TRUE); + + order_random = gtk_radio_menu_item_new_with_mnemonic (order_linear_group, "Random"); + order_linear_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (order_random)); + gtk_widget_show (order_random); + gtk_container_add (GTK_CONTAINER (order1_menu), order_random); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (order_random), TRUE); + + looping1 = gtk_menu_item_new_with_mnemonic ("Looping"); + gtk_widget_show (looping1); + gtk_container_add (GTK_CONTAINER (playlist1_menu), looping1); + + looping1_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (looping1), looping1_menu); + + loop_all = gtk_radio_menu_item_new_with_mnemonic (loop_all_group, "Loop All"); + loop_all_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (loop_all)); + gtk_widget_show (loop_all); + gtk_container_add (GTK_CONTAINER (looping1_menu), loop_all); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (loop_all), TRUE); + + loop_single = gtk_radio_menu_item_new_with_mnemonic (loop_all_group, "Loop Single Song"); + loop_all_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (loop_single)); + gtk_widget_show (loop_single); + gtk_container_add (GTK_CONTAINER (looping1_menu), loop_single); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (loop_single), TRUE); + + loop_disable = gtk_radio_menu_item_new_with_mnemonic (loop_all_group, "Don't Loop"); + loop_all_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (loop_disable)); + gtk_widget_show (loop_disable); + gtk_container_add (GTK_CONTAINER (looping1_menu), loop_disable); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (loop_disable), TRUE); + + scroll_follows_playback = gtk_check_menu_item_new_with_mnemonic ("Scroll follows playback"); + gtk_widget_show (scroll_follows_playback); + gtk_container_add (GTK_CONTAINER (playlist1_menu), scroll_follows_playback); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (scroll_follows_playback), TRUE); + + menuitem4 = gtk_menu_item_new_with_mnemonic ("_Help"); + gtk_widget_show (menuitem4); + gtk_container_add (GTK_CONTAINER (menubar1), menuitem4); + + menuitem4_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem4), menuitem4_menu); + + about1 = gtk_menu_item_new_with_mnemonic ("_About"); + gtk_widget_show (about1); + gtk_container_add (GTK_CONTAINER (menuitem4_menu), about1); + + help1 = gtk_image_menu_item_new_with_mnemonic ("Help"); + gtk_widget_show (help1); + gtk_container_add (GTK_CONTAINER (menuitem4_menu), help1); + + image127 = gtk_image_new_from_stock ("gtk-help", GTK_ICON_SIZE_MENU); + gtk_widget_show (image127); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (help1), image127); + + hbox2 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox2); + gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0); + + hbox3 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox3); + gtk_box_pack_start (GTK_BOX (hbox2), hbox3, TRUE, TRUE, 0); + + stopbtn = gtk_button_new (); + gtk_widget_show (stopbtn); + gtk_box_pack_start (GTK_BOX (hbox3), stopbtn, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (stopbtn, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (stopbtn, "activate", accel_group, + GDK_v, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (stopbtn), GTK_RELIEF_NONE); + + image7 = create_pixmap (mainwin, "stop_24.png"); + gtk_widget_show (image7); + gtk_container_add (GTK_CONTAINER (stopbtn), image7); + + playbtn = gtk_button_new (); + gtk_widget_show (playbtn); + gtk_box_pack_start (GTK_BOX (hbox3), playbtn, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (playbtn, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (playbtn, "activate", accel_group, + GDK_x, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (playbtn, "activate", accel_group, + GDK_Return, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (playbtn), GTK_RELIEF_NONE); + + image2 = create_pixmap (mainwin, "play_24.png"); + gtk_widget_show (image2); + gtk_container_add (GTK_CONTAINER (playbtn), image2); + + pausebtn = gtk_button_new (); + gtk_widget_show (pausebtn); + gtk_box_pack_start (GTK_BOX (hbox3), pausebtn, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (pausebtn, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (pausebtn, "activate", accel_group, + GDK_c, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (pausebtn, "activate", accel_group, + GDK_p, (GdkModifierType) GDK_CONTROL_MASK, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (pausebtn), GTK_RELIEF_NONE); + + image3 = create_pixmap (mainwin, "pause_24.png"); + gtk_widget_show (image3); + gtk_container_add (GTK_CONTAINER (pausebtn), image3); + + prevbtn = gtk_button_new (); + gtk_widget_show (prevbtn); + gtk_box_pack_start (GTK_BOX (hbox3), prevbtn, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (prevbtn, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (prevbtn, "activate", accel_group, + GDK_z, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (prevbtn), GTK_RELIEF_NONE); + + image4 = create_pixmap (mainwin, "prev_24.png"); + gtk_widget_show (image4); + gtk_container_add (GTK_CONTAINER (prevbtn), image4); + + nextbtn = gtk_button_new (); + gtk_widget_show (nextbtn); + gtk_box_pack_start (GTK_BOX (hbox3), nextbtn, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (nextbtn, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (nextbtn, "activate", accel_group, + GDK_b, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (nextbtn), GTK_RELIEF_NONE); + + image5 = create_pixmap (mainwin, "next_24.png"); + gtk_widget_show (image5); + gtk_container_add (GTK_CONTAINER (nextbtn), image5); + + playrand = gtk_button_new (); + gtk_widget_show (playrand); + gtk_box_pack_start (GTK_BOX (hbox3), playrand, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (playrand, GTK_CAN_FOCUS); + gtk_widget_add_accelerator (playrand, "activate", accel_group, + GDK_n, (GdkModifierType) 0, + GTK_ACCEL_VISIBLE); + gtk_button_set_relief (GTK_BUTTON (playrand), GTK_RELIEF_NONE); + + image6 = create_pixmap (mainwin, "random_24.png"); + gtk_widget_show (image6); + gtk_container_add (GTK_CONTAINER (playrand), image6); + + volumebar = gtk_drawing_area_new (); + gtk_widget_show (volumebar); + gtk_box_pack_start (GTK_BOX (hbox2), volumebar, FALSE, TRUE, 2); + gtk_widget_set_size_request (volumebar, 70, -1); + gtk_widget_set_events (volumebar, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); + + seekbar = gtk_drawing_area_new (); + gtk_widget_show (seekbar); + gtk_box_pack_start (GTK_BOX (hbox2), seekbar, FALSE, TRUE, 2); + gtk_widget_set_size_request (seekbar, 200, -1); + gtk_widget_set_events (seekbar, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); + + table1 = gtk_table_new (2, 2, FALSE); + gtk_widget_show (table1); + gtk_box_pack_start (GTK_BOX (vbox1), table1, TRUE, TRUE, 0); + + _ = gtk_hbox_new (FALSE, 0); + gtk_widget_show (_); + gtk_table_attach (GTK_TABLE (table1), _, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); + gtk_container_set_border_width (GTK_CONTAINER (_), 3); + + vbox3 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox3); + gtk_box_pack_start (GTK_BOX (_), vbox3, TRUE, TRUE, 0); + + header = gtk_drawing_area_new (); + gtk_widget_show (header); + gtk_box_pack_start (GTK_BOX (vbox3), header, FALSE, TRUE, 0); + gtk_widget_set_size_request (header, -1, 24); + gtk_widget_set_events (header, GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); + + playlist = gtk_drawing_area_new (); + gtk_widget_show (playlist); + gtk_box_pack_start (GTK_BOX (vbox3), playlist, TRUE, TRUE, 0); + gtk_widget_set_events (playlist, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); + + playscroll = gtk_vscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1, 1, 0, 0))); + gtk_widget_show (playscroll); + gtk_table_attach (GTK_TABLE (table1), playscroll, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + playhscroll = gtk_hscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0))); + gtk_widget_show (playhscroll); + gtk_table_attach (GTK_TABLE (table1), playhscroll, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + statusbar = gtk_statusbar_new (); + gtk_widget_show (statusbar); + gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0); + + g_signal_connect ((gpointer) mainwin, "key_press_event", + G_CALLBACK (on_mainwin_key_press_event), + NULL); + g_signal_connect ((gpointer) mainwin, "delete_event", + G_CALLBACK (on_mainwin_delete_event), + NULL); + g_signal_connect ((gpointer) mainwin, "configure_event", + G_CALLBACK (on_mainwin_configure_event), + NULL); + g_signal_connect ((gpointer) open, "activate", + G_CALLBACK (on_open_activate), + NULL); + g_signal_connect ((gpointer) add_files, "activate", + G_CALLBACK (on_add_files_activate), + NULL); + g_signal_connect ((gpointer) add_folders, "activate", + G_CALLBACK (on_add_folders_activate), + NULL); + g_signal_connect ((gpointer) add_audio_cd, "activate", + G_CALLBACK (on_add_audio_cd_activate), + NULL); + g_signal_connect ((gpointer) add_location1, "activate", + G_CALLBACK (on_add_location_activate), + NULL); + g_signal_connect ((gpointer) quit, "activate", + G_CALLBACK (on_quit_activate), + NULL); + g_signal_connect ((gpointer) clear1, "activate", + G_CALLBACK (on_clear1_activate), + NULL); + g_signal_connect ((gpointer) select_all1, "activate", + G_CALLBACK (on_select_all1_activate), + NULL); + g_signal_connect ((gpointer) remove1, "activate", + G_CALLBACK (on_remove1_activate), + NULL); + g_signal_connect ((gpointer) crop1, "activate", + G_CALLBACK (on_crop1_activate), + NULL); + g_signal_connect ((gpointer) find1, "activate", + G_CALLBACK (on_find_activate), + NULL); + g_signal_connect ((gpointer) preferences, "activate", + G_CALLBACK (on_preferences_activate), + NULL); + g_signal_connect ((gpointer) playlist_load, "activate", + G_CALLBACK (on_playlist_load_activate), + NULL); + g_signal_connect ((gpointer) playlist_save, "activate", + G_CALLBACK (on_playlist_save_activate), + NULL); + g_signal_connect ((gpointer) playlist_save_as, "activate", + G_CALLBACK (on_playlist_save_as_activate), + NULL); + g_signal_connect ((gpointer) order_linear, "activate", + G_CALLBACK (on_order_linear_activate), + NULL); + g_signal_connect ((gpointer) order_shuffle, "activate", + G_CALLBACK (on_order_shuffle_activate), + NULL); + g_signal_connect ((gpointer) order_random, "activate", + G_CALLBACK (on_order_random_activate), + NULL); + g_signal_connect ((gpointer) loop_all, "activate", + G_CALLBACK (on_loop_all_activate), + NULL); + g_signal_connect ((gpointer) loop_single, "activate", + G_CALLBACK (on_loop_single_activate), + NULL); + g_signal_connect ((gpointer) loop_disable, "activate", + G_CALLBACK (on_loop_disable_activate), + NULL); + g_signal_connect ((gpointer) scroll_follows_playback, "activate", + G_CALLBACK (on_scroll_follows_playback_activate), + NULL); + g_signal_connect ((gpointer) about1, "activate", + G_CALLBACK (on_about1_activate), + NULL); + g_signal_connect ((gpointer) help1, "activate", + G_CALLBACK (on_help1_activate), + NULL); + g_signal_connect ((gpointer) stopbtn, "clicked", + G_CALLBACK (on_stopbtn_clicked), + NULL); + g_signal_connect ((gpointer) playbtn, "clicked", + G_CALLBACK (on_playbtn_clicked), + NULL); + g_signal_connect ((gpointer) pausebtn, "clicked", + G_CALLBACK (on_pausebtn_clicked), + NULL); + g_signal_connect ((gpointer) prevbtn, "clicked", + G_CALLBACK (on_prevbtn_clicked), + NULL); + g_signal_connect ((gpointer) nextbtn, "clicked", + G_CALLBACK (on_nextbtn_clicked), + NULL); + g_signal_connect ((gpointer) playrand, "clicked", + G_CALLBACK (on_playrand_clicked), + NULL); + g_signal_connect ((gpointer) volumebar, "button_press_event", + G_CALLBACK (on_volumebar_button_press_event), + NULL); + g_signal_connect ((gpointer) volumebar, "button_release_event", + G_CALLBACK (on_volumebar_button_release_event), + NULL); + g_signal_connect ((gpointer) volumebar, "configure_event", + G_CALLBACK (on_volumebar_configure_event), + NULL); + g_signal_connect ((gpointer) volumebar, "expose_event", + G_CALLBACK (on_volumebar_expose_event), + NULL); + g_signal_connect ((gpointer) volumebar, "motion_notify_event", + G_CALLBACK (on_volumebar_motion_notify_event), + NULL); + g_signal_connect ((gpointer) volumebar, "scroll_event", + G_CALLBACK (on_volumebar_scroll_event), + NULL); + g_signal_connect ((gpointer) seekbar, "button_press_event", + G_CALLBACK (on_seekbar_button_press_event), + NULL); + g_signal_connect ((gpointer) seekbar, "button_release_event", + G_CALLBACK (on_seekbar_button_release_event), + NULL); + g_signal_connect ((gpointer) seekbar, "configure_event", + G_CALLBACK (on_seekbar_configure_event), + NULL); + g_signal_connect ((gpointer) seekbar, "expose_event", + G_CALLBACK (on_seekbar_expose_event), + NULL); + g_signal_connect ((gpointer) seekbar, "motion_notify_event", + G_CALLBACK (on_seekbar_motion_notify_event), + NULL); + g_signal_connect ((gpointer) header, "expose_event", + G_CALLBACK (on_header_expose_event), + NULL); + g_signal_connect ((gpointer) header, "configure_event", + G_CALLBACK (on_header_configure_event), + NULL); + g_signal_connect ((gpointer) header, "realize", + G_CALLBACK (on_header_realize), + NULL); + g_signal_connect ((gpointer) header, "motion_notify_event", + G_CALLBACK (on_header_motion_notify_event), + NULL); + g_signal_connect ((gpointer) header, "button_press_event", + G_CALLBACK (on_header_button_press_event), + NULL); + g_signal_connect ((gpointer) header, "button_release_event", + G_CALLBACK (on_header_button_release_event), + NULL); + g_signal_connect ((gpointer) playlist, "configure_event", + G_CALLBACK (on_playlist_configure_event), + NULL); + g_signal_connect ((gpointer) playlist, "expose_event", + G_CALLBACK (on_playlist_expose_event), + NULL); + g_signal_connect ((gpointer) playlist, "realize", + G_CALLBACK (on_playlist_realize), + NULL); + g_signal_connect ((gpointer) playlist, "button_press_event", + G_CALLBACK (on_playlist_button_press_event), + NULL); + g_signal_connect ((gpointer) playlist, "scroll_event", + G_CALLBACK (on_playlist_scroll_event), + NULL); + g_signal_connect ((gpointer) playlist, "drag_begin", + G_CALLBACK (on_playlist_drag_begin), + NULL); + g_signal_connect ((gpointer) playlist, "drag_motion", + G_CALLBACK (on_playlist_drag_motion), + NULL); + g_signal_connect ((gpointer) playlist, "drag_drop", + G_CALLBACK (on_playlist_drag_drop), + NULL); + g_signal_connect ((gpointer) playlist, "drag_data_get", + G_CALLBACK (on_playlist_drag_data_get), + NULL); + g_signal_connect ((gpointer) playlist, "drag_end", + G_CALLBACK (on_playlist_drag_end), + NULL); + g_signal_connect ((gpointer) playlist, "drag_failed", + G_CALLBACK (on_playlist_drag_failed), + NULL); + g_signal_connect ((gpointer) playlist, "drag_leave", + G_CALLBACK (on_playlist_drag_leave), + NULL); + g_signal_connect ((gpointer) playlist, "button_release_event", + G_CALLBACK (on_playlist_button_release_event), + NULL); + g_signal_connect ((gpointer) playlist, "motion_notify_event", + G_CALLBACK (on_playlist_motion_notify_event), + NULL); + g_signal_connect ((gpointer) playlist, "drag_data_received", + G_CALLBACK (on_playlist_drag_data_received), + NULL); + g_signal_connect ((gpointer) playlist, "drag_data_delete", + G_CALLBACK (on_playlist_drag_data_delete), + NULL); + g_signal_connect ((gpointer) playscroll, "value_changed", + G_CALLBACK (on_playscroll_value_changed), + NULL); + g_signal_connect ((gpointer) playhscroll, "value_changed", + G_CALLBACK (on_playhscroll_value_changed), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (mainwin, mainwin, "mainwin"); + GLADE_HOOKUP_OBJECT (mainwin, vbox1, "vbox1"); + GLADE_HOOKUP_OBJECT (mainwin, menubar1, "menubar1"); + GLADE_HOOKUP_OBJECT (mainwin, menuitem1, "menuitem1"); + GLADE_HOOKUP_OBJECT (mainwin, menuitem1_menu, "menuitem1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, open, "open"); + GLADE_HOOKUP_OBJECT (mainwin, image120, "image120"); + GLADE_HOOKUP_OBJECT (mainwin, separator2, "separator2"); + GLADE_HOOKUP_OBJECT (mainwin, add_files, "add_files"); + GLADE_HOOKUP_OBJECT (mainwin, image121, "image121"); + GLADE_HOOKUP_OBJECT (mainwin, add_folders, "add_folders"); + GLADE_HOOKUP_OBJECT (mainwin, image122, "image122"); + GLADE_HOOKUP_OBJECT (mainwin, add_audio_cd, "add_audio_cd"); + GLADE_HOOKUP_OBJECT (mainwin, image123, "image123"); + GLADE_HOOKUP_OBJECT (mainwin, add_location1, "add_location1"); + GLADE_HOOKUP_OBJECT (mainwin, separatormenuitem1, "separatormenuitem1"); + GLADE_HOOKUP_OBJECT (mainwin, quit, "quit"); + GLADE_HOOKUP_OBJECT (mainwin, image124, "image124"); + GLADE_HOOKUP_OBJECT (mainwin, edit1, "edit1"); + GLADE_HOOKUP_OBJECT (mainwin, edit1_menu, "edit1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, clear1, "clear1"); + GLADE_HOOKUP_OBJECT (mainwin, image125, "image125"); + GLADE_HOOKUP_OBJECT (mainwin, select_all1, "select_all1"); + GLADE_HOOKUP_OBJECT (mainwin, selection1, "selection1"); + GLADE_HOOKUP_OBJECT (mainwin, selection1_menu, "selection1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, remove1, "remove1"); + GLADE_HOOKUP_OBJECT (mainwin, image126, "image126"); + GLADE_HOOKUP_OBJECT (mainwin, crop1, "crop1"); + GLADE_HOOKUP_OBJECT (mainwin, find1, "find1"); + GLADE_HOOKUP_OBJECT (mainwin, separator5, "separator5"); + GLADE_HOOKUP_OBJECT (mainwin, preferences, "preferences"); + GLADE_HOOKUP_OBJECT (mainwin, playlist1, "playlist1"); + GLADE_HOOKUP_OBJECT (mainwin, playlist1_menu, "playlist1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, playlist_load, "playlist_load"); + GLADE_HOOKUP_OBJECT (mainwin, playlist_save, "playlist_save"); + GLADE_HOOKUP_OBJECT (mainwin, playlist_save_as, "playlist_save_as"); + GLADE_HOOKUP_OBJECT (mainwin, order1, "order1"); + GLADE_HOOKUP_OBJECT (mainwin, order1_menu, "order1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, order_linear, "order_linear"); + GLADE_HOOKUP_OBJECT (mainwin, order_shuffle, "order_shuffle"); + GLADE_HOOKUP_OBJECT (mainwin, order_random, "order_random"); + GLADE_HOOKUP_OBJECT (mainwin, looping1, "looping1"); + GLADE_HOOKUP_OBJECT (mainwin, looping1_menu, "looping1_menu"); + GLADE_HOOKUP_OBJECT (mainwin, loop_all, "loop_all"); + GLADE_HOOKUP_OBJECT (mainwin, loop_single, "loop_single"); + GLADE_HOOKUP_OBJECT (mainwin, loop_disable, "loop_disable"); + GLADE_HOOKUP_OBJECT (mainwin, scroll_follows_playback, "scroll_follows_playback"); + GLADE_HOOKUP_OBJECT (mainwin, menuitem4, "menuitem4"); + GLADE_HOOKUP_OBJECT (mainwin, menuitem4_menu, "menuitem4_menu"); + GLADE_HOOKUP_OBJECT (mainwin, about1, "about1"); + GLADE_HOOKUP_OBJECT (mainwin, help1, "help1"); + GLADE_HOOKUP_OBJECT (mainwin, image127, "image127"); + GLADE_HOOKUP_OBJECT (mainwin, hbox2, "hbox2"); + GLADE_HOOKUP_OBJECT (mainwin, hbox3, "hbox3"); + GLADE_HOOKUP_OBJECT (mainwin, stopbtn, "stopbtn"); + GLADE_HOOKUP_OBJECT (mainwin, image7, "image7"); + GLADE_HOOKUP_OBJECT (mainwin, playbtn, "playbtn"); + GLADE_HOOKUP_OBJECT (mainwin, image2, "image2"); + GLADE_HOOKUP_OBJECT (mainwin, pausebtn, "pausebtn"); + GLADE_HOOKUP_OBJECT (mainwin, image3, "image3"); + GLADE_HOOKUP_OBJECT (mainwin, prevbtn, "prevbtn"); + GLADE_HOOKUP_OBJECT (mainwin, image4, "image4"); + GLADE_HOOKUP_OBJECT (mainwin, nextbtn, "nextbtn"); + GLADE_HOOKUP_OBJECT (mainwin, image5, "image5"); + GLADE_HOOKUP_OBJECT (mainwin, playrand, "playrand"); + GLADE_HOOKUP_OBJECT (mainwin, image6, "image6"); + GLADE_HOOKUP_OBJECT (mainwin, volumebar, "volumebar"); + GLADE_HOOKUP_OBJECT (mainwin, seekbar, "seekbar"); + GLADE_HOOKUP_OBJECT (mainwin, table1, "table1"); + GLADE_HOOKUP_OBJECT (mainwin, _, "_"); + GLADE_HOOKUP_OBJECT (mainwin, vbox3, "vbox3"); + GLADE_HOOKUP_OBJECT (mainwin, header, "header"); + GLADE_HOOKUP_OBJECT (mainwin, playlist, "playlist"); + GLADE_HOOKUP_OBJECT (mainwin, playscroll, "playscroll"); + GLADE_HOOKUP_OBJECT (mainwin, playhscroll, "playhscroll"); + GLADE_HOOKUP_OBJECT (mainwin, statusbar, "statusbar"); + + gtk_window_add_accel_group (GTK_WINDOW (mainwin), accel_group); + + return mainwin; +} + +GtkWidget* +create_searchwin (void) +{ + GtkWidget *searchwin; + GtkWidget *vbox4; + GtkWidget *searchentry; + GtkWidget *table2; + GtkWidget *searchscroll; + GtkWidget *vbox5; + GtkWidget *searchheader; + GtkWidget *searchlist; + GtkWidget *searchhscroll; + + searchwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request (searchwin, 600, 150); + gtk_widget_set_events (searchwin, GDK_KEY_PRESS_MASK); + gtk_window_set_title (GTK_WINDOW (searchwin), "Search"); + gtk_window_set_position (GTK_WINDOW (searchwin), GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (searchwin), TRUE); + gtk_window_set_skip_pager_hint (GTK_WINDOW (searchwin), TRUE); + + vbox4 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox4); + gtk_container_add (GTK_CONTAINER (searchwin), vbox4); + gtk_container_set_border_width (GTK_CONTAINER (vbox4), 4); + + searchentry = gtk_entry_new (); + gtk_widget_show (searchentry); + gtk_box_pack_start (GTK_BOX (vbox4), searchentry, FALSE, FALSE, 0); + gtk_entry_set_invisible_char (GTK_ENTRY (searchentry), 8226); + gtk_entry_set_activates_default (GTK_ENTRY (searchentry), TRUE); + + table2 = gtk_table_new (2, 2, FALSE); + gtk_widget_show (table2); + gtk_box_pack_start (GTK_BOX (vbox4), table2, TRUE, TRUE, 0); + + searchscroll = gtk_vscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1, 1, 0, 0))); + gtk_widget_show (searchscroll); + gtk_table_attach (GTK_TABLE (table2), searchscroll, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + vbox5 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox5); + gtk_table_attach (GTK_TABLE (table2), vbox5, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); + + searchheader = gtk_drawing_area_new (); + gtk_widget_show (searchheader); + gtk_box_pack_start (GTK_BOX (vbox5), searchheader, FALSE, TRUE, 0); + gtk_widget_set_size_request (searchheader, -1, 24); + gtk_widget_set_events (searchheader, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); + + searchlist = gtk_drawing_area_new (); + gtk_widget_show (searchlist); + gtk_box_pack_start (GTK_BOX (vbox5), searchlist, TRUE, TRUE, 0); + GTK_WIDGET_SET_FLAGS (searchlist, GTK_CAN_DEFAULT); + gtk_widget_set_events (searchlist, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); + + searchhscroll = gtk_hscrollbar_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0))); + gtk_widget_show (searchhscroll); + gtk_table_attach (GTK_TABLE (table2), searchhscroll, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + g_signal_connect ((gpointer) searchwin, "key_press_event", + G_CALLBACK (on_searchwin_key_press_event), + NULL); + g_signal_connect ((gpointer) searchwin, "delete_event", + G_CALLBACK (gtk_widget_hide_on_delete), + NULL); + g_signal_connect ((gpointer) searchentry, "changed", + G_CALLBACK (on_searchentry_changed), + NULL); + g_signal_connect ((gpointer) searchscroll, "value_changed", + G_CALLBACK (on_playscroll_value_changed), + NULL); + g_signal_connect ((gpointer) searchheader, "button_press_event", + G_CALLBACK (on_header_button_press_event), + NULL); + g_signal_connect ((gpointer) searchheader, "button_release_event", + G_CALLBACK (on_header_button_release_event), + NULL); + g_signal_connect ((gpointer) searchheader, "configure_event", + G_CALLBACK (on_header_configure_event), + NULL); + g_signal_connect ((gpointer) searchheader, "expose_event", + G_CALLBACK (on_header_expose_event), + NULL); + g_signal_connect ((gpointer) searchheader, "motion_notify_event", + G_CALLBACK (on_header_motion_notify_event), + NULL); + g_signal_connect ((gpointer) searchlist, "button_press_event", + G_CALLBACK (on_playlist_button_press_event), + NULL); + g_signal_connect ((gpointer) searchlist, "configure_event", + G_CALLBACK (on_searchlist_configure_event), + NULL); + g_signal_connect ((gpointer) searchlist, "expose_event", + G_CALLBACK (on_playlist_expose_event), + NULL); + g_signal_connect ((gpointer) searchlist, "scroll_event", + G_CALLBACK (on_playlist_scroll_event), + NULL); + g_signal_connect ((gpointer) searchlist, "realize", + G_CALLBACK (on_searchlist_realize), + NULL); + g_signal_connect ((gpointer) searchlist, "button_release_event", + G_CALLBACK (on_playlist_button_release_event), + NULL); + g_signal_connect ((gpointer) searchlist, "motion_notify_event", + G_CALLBACK (on_playlist_motion_notify_event), + NULL); + g_signal_connect ((gpointer) searchhscroll, "value_changed", + G_CALLBACK (on_searchhscroll_value_changed), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (searchwin, searchwin, "searchwin"); + GLADE_HOOKUP_OBJECT (searchwin, vbox4, "vbox4"); + GLADE_HOOKUP_OBJECT (searchwin, searchentry, "searchentry"); + GLADE_HOOKUP_OBJECT (searchwin, table2, "table2"); + GLADE_HOOKUP_OBJECT (searchwin, searchscroll, "searchscroll"); + GLADE_HOOKUP_OBJECT (searchwin, vbox5, "vbox5"); + GLADE_HOOKUP_OBJECT (searchwin, searchheader, "searchheader"); + GLADE_HOOKUP_OBJECT (searchwin, searchlist, "searchlist"); + GLADE_HOOKUP_OBJECT (searchwin, searchhscroll, "searchhscroll"); + + gtk_widget_grab_default (searchlist); + return searchwin; +} + +GtkWidget* +create_traymenu (void) +{ + GtkWidget *traymenu; + GtkWidget *stop2; + GtkWidget *image59; + GtkWidget *play2; + GtkWidget *image60; + GtkWidget *pause2; + GtkWidget *image61; + GtkWidget *previous2; + GtkWidget *image62; + GtkWidget *next2; + GtkWidget *image63; + GtkWidget *play_random1; + GtkWidget *separator4; + GtkWidget *about3; + GtkWidget *image64; + GtkWidget *separator3; + GtkWidget *quit; + GtkWidget *image65; + + traymenu = gtk_menu_new (); + + stop2 = gtk_image_menu_item_new_with_mnemonic ("Stop"); + gtk_widget_show (stop2); + gtk_container_add (GTK_CONTAINER (traymenu), stop2); + + image59 = gtk_image_new_from_stock ("gtk-media-stop", GTK_ICON_SIZE_MENU); + gtk_widget_show (image59); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (stop2), image59); + + play2 = gtk_image_menu_item_new_with_mnemonic ("Play"); + gtk_widget_show (play2); + gtk_container_add (GTK_CONTAINER (traymenu), play2); + + image60 = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_MENU); + gtk_widget_show (image60); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (play2), image60); + + pause2 = gtk_image_menu_item_new_with_mnemonic ("Pause"); + gtk_widget_show (pause2); + gtk_container_add (GTK_CONTAINER (traymenu), pause2); + + image61 = gtk_image_new_from_stock ("gtk-media-pause", GTK_ICON_SIZE_MENU); + gtk_widget_show (image61); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (pause2), image61); + + previous2 = gtk_image_menu_item_new_with_mnemonic ("Previous"); + gtk_widget_show (previous2); + gtk_container_add (GTK_CONTAINER (traymenu), previous2); + + image62 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_MENU); + gtk_widget_show (image62); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (previous2), image62); + + next2 = gtk_image_menu_item_new_with_mnemonic ("Next"); + gtk_widget_show (next2); + gtk_container_add (GTK_CONTAINER (traymenu), next2); + + image63 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_MENU); + gtk_widget_show (image63); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (next2), image63); + + play_random1 = gtk_menu_item_new_with_mnemonic ("Play Random"); + gtk_widget_show (play_random1); + gtk_container_add (GTK_CONTAINER (traymenu), play_random1); + + separator4 = gtk_separator_menu_item_new (); + gtk_widget_show (separator4); + gtk_container_add (GTK_CONTAINER (traymenu), separator4); + gtk_widget_set_sensitive (separator4, FALSE); + + about3 = gtk_image_menu_item_new_with_mnemonic ("About"); + gtk_widget_show (about3); + gtk_container_add (GTK_CONTAINER (traymenu), about3); + + image64 = gtk_image_new_from_stock ("gtk-about", GTK_ICON_SIZE_MENU); + gtk_widget_show (image64); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about3), image64); + + separator3 = gtk_separator_menu_item_new (); + gtk_widget_show (separator3); + gtk_container_add (GTK_CONTAINER (traymenu), separator3); + gtk_widget_set_sensitive (separator3, FALSE); + + quit = gtk_image_menu_item_new_with_mnemonic ("Quit"); + gtk_widget_show (quit); + gtk_container_add (GTK_CONTAINER (traymenu), quit); + + image65 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU); + gtk_widget_show (image65); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit), image65); + + g_signal_connect ((gpointer) stop2, "activate", + G_CALLBACK (on_stopbtn_clicked), + NULL); + g_signal_connect ((gpointer) play2, "activate", + G_CALLBACK (on_playbtn_clicked), + NULL); + g_signal_connect ((gpointer) pause2, "activate", + G_CALLBACK (on_pausebtn_clicked), + NULL); + g_signal_connect ((gpointer) previous2, "activate", + G_CALLBACK (on_prevbtn_clicked), + NULL); + g_signal_connect ((gpointer) next2, "activate", + G_CALLBACK (on_nextbtn_clicked), + NULL); + g_signal_connect ((gpointer) play_random1, "activate", + G_CALLBACK (on_playrand_clicked), + NULL); + g_signal_connect ((gpointer) about3, "activate", + G_CALLBACK (on_about1_activate), + NULL); + g_signal_connect ((gpointer) quit, "activate", + G_CALLBACK (on_quit_activate), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (traymenu, traymenu, "traymenu"); + GLADE_HOOKUP_OBJECT (traymenu, stop2, "stop2"); + GLADE_HOOKUP_OBJECT (traymenu, image59, "image59"); + GLADE_HOOKUP_OBJECT (traymenu, play2, "play2"); + GLADE_HOOKUP_OBJECT (traymenu, image60, "image60"); + GLADE_HOOKUP_OBJECT (traymenu, pause2, "pause2"); + GLADE_HOOKUP_OBJECT (traymenu, image61, "image61"); + GLADE_HOOKUP_OBJECT (traymenu, previous2, "previous2"); + GLADE_HOOKUP_OBJECT (traymenu, image62, "image62"); + GLADE_HOOKUP_OBJECT (traymenu, next2, "next2"); + GLADE_HOOKUP_OBJECT (traymenu, image63, "image63"); + GLADE_HOOKUP_OBJECT (traymenu, play_random1, "play_random1"); + GLADE_HOOKUP_OBJECT (traymenu, separator4, "separator4"); + GLADE_HOOKUP_OBJECT (traymenu, about3, "about3"); + GLADE_HOOKUP_OBJECT (traymenu, image64, "image64"); + GLADE_HOOKUP_OBJECT (traymenu, separator3, "separator3"); + GLADE_HOOKUP_OBJECT (traymenu, quit, "quit"); + GLADE_HOOKUP_OBJECT (traymenu, image65, "image65"); + + return traymenu; +} + +GtkWidget* +create_addprogress (void) +{ + GtkWidget *addprogress; + GtkWidget *vbox6; + GtkWidget *progresstitle; + GtkWidget *hbox7; + GtkWidget *label22; + GtkWidget *button1; + + addprogress = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (addprogress), "Adding files..."); + gtk_window_set_position (GTK_WINDOW (addprogress), GTK_WIN_POS_CENTER_ON_PARENT); + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (addprogress), TRUE); + gtk_window_set_skip_pager_hint (GTK_WINDOW (addprogress), TRUE); + + vbox6 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox6); + gtk_container_add (GTK_CONTAINER (addprogress), vbox6); + gtk_container_set_border_width (GTK_CONTAINER (vbox6), 4); + + progresstitle = gtk_entry_new (); + gtk_widget_show (progresstitle); + gtk_box_pack_start (GTK_BOX (vbox6), progresstitle, TRUE, FALSE, 0); + gtk_widget_set_size_request (progresstitle, 500, -1); + GTK_WIDGET_UNSET_FLAGS (progresstitle, GTK_CAN_FOCUS); + gtk_editable_set_editable (GTK_EDITABLE (progresstitle), FALSE); + gtk_entry_set_invisible_char (GTK_ENTRY (progresstitle), 8226); + + hbox7 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox7); + gtk_box_pack_start (GTK_BOX (vbox6), hbox7, FALSE, TRUE, 2); + + label22 = gtk_label_new (""); + gtk_widget_show (label22); + gtk_box_pack_start (GTK_BOX (hbox7), label22, TRUE, FALSE, 0); + + button1 = gtk_button_new_with_mnemonic ("Abort"); + gtk_widget_show (button1); + gtk_box_pack_start (GTK_BOX (hbox7), button1, FALSE, FALSE, 0); + gtk_widget_set_size_request (button1, 83, -1); + GTK_WIDGET_UNSET_FLAGS (button1, GTK_CAN_FOCUS); + + g_signal_connect ((gpointer) addprogress, "delete_event", + G_CALLBACK (on_addprogress_delete_event), + NULL); + g_signal_connect ((gpointer) button1, "clicked", + G_CALLBACK (on_progress_abort), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (addprogress, addprogress, "addprogress"); + GLADE_HOOKUP_OBJECT (addprogress, vbox6, "vbox6"); + GLADE_HOOKUP_OBJECT (addprogress, progresstitle, "progresstitle"); + GLADE_HOOKUP_OBJECT (addprogress, hbox7, "hbox7"); + GLADE_HOOKUP_OBJECT (addprogress, label22, "label22"); + GLADE_HOOKUP_OBJECT (addprogress, button1, "button1"); + + return addprogress; +} + +GtkWidget* +create_helpwindow (void) +{ + GtkWidget *helpwindow; + GtkWidget *scrolledwindow1; + GtkWidget *helptext; + + helpwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request (helpwindow, 600, 400); + gtk_widget_set_events (helpwindow, GDK_KEY_PRESS_MASK); + gtk_window_set_title (GTK_WINDOW (helpwindow), "Help"); + gtk_window_set_modal (GTK_WINDOW (helpwindow), TRUE); + gtk_window_set_destroy_with_parent (GTK_WINDOW (helpwindow), TRUE); + + scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show (scrolledwindow1); + gtk_container_add (GTK_CONTAINER (helpwindow), scrolledwindow1); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + + helptext = gtk_text_view_new (); + gtk_widget_show (helptext); + gtk_container_add (GTK_CONTAINER (scrolledwindow1), helptext); + gtk_text_view_set_editable (GTK_TEXT_VIEW (helptext), FALSE); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (helptext), GTK_WRAP_WORD); + gtk_text_view_set_left_margin (GTK_TEXT_VIEW (helptext), 10); + gtk_text_view_set_right_margin (GTK_TEXT_VIEW (helptext), 10); + + g_signal_connect ((gpointer) helpwindow, "key_press_event", + G_CALLBACK (on_helpwindow_key_press_event), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (helpwindow, helpwindow, "helpwindow"); + GLADE_HOOKUP_OBJECT (helpwindow, scrolledwindow1, "scrolledwindow1"); + GLADE_HOOKUP_OBJECT (helpwindow, helptext, "helptext"); + + return helpwindow; +} + +GtkWidget* +create_prefwin (void) +{ + GtkWidget *prefwin; + GtkWidget *notebook2; + GtkWidget *table3; + GtkWidget *label4; + GtkWidget *label5; + GtkWidget *label6; + GtkWidget *label8; + GtkWidget *label9; + GtkWidget *label15; + GtkWidget *pref_alsa_resampling; + GtkWidget *pref_replaygain_scale; + GtkWidget *pref_alsa_freewhenstopped; + GtkWidget *pref_soundcard; + GtkWidget *pref_src_quality; + GtkWidget *pref_replaygain_mode; + GtkWidget *Sound; + GtkWidget *table4; + GtkWidget *label7; + GtkWidget *pref_close_send_to_tray; + GtkWidget *label2; + GtkWidget *table6; + GtkWidget *label17; + GtkWidget *label18; + GtkWidget *pref_network_proxyaddress; + GtkWidget *pref_network_enableproxy; + GtkWidget *label19; + GtkWidget *pref_network_proxyport; + GtkWidget *label20; + GtkWidget *pref_network_proxytype; + GtkWidget *label16; + GtkWidget *hpaned1; + GtkWidget *scrolledwindow2; + GtkWidget *pref_pluginlist; + GtkWidget *table5; + GtkWidget *label11; + GtkWidget *label12; + GtkWidget *label13; + GtkWidget *label14; + GtkWidget *pref_plugin_descr; + GtkWidget *pref_plugin_author; + GtkWidget *pref_plugin_email; + GtkWidget *pref_plugin_website; + GtkWidget *label3; + + prefwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request (prefwin, 642, 372); + gtk_window_set_title (GTK_WINDOW (prefwin), "Preferences"); + gtk_window_set_modal (GTK_WINDOW (prefwin), TRUE); + + notebook2 = gtk_notebook_new (); + gtk_widget_show (notebook2); + gtk_container_add (GTK_CONTAINER (prefwin), notebook2); + + table3 = gtk_table_new (6, 2, FALSE); + gtk_widget_show (table3); + gtk_container_add (GTK_CONTAINER (notebook2), table3); + gtk_container_set_border_width (GTK_CONTAINER (table3), 3); + gtk_table_set_col_spacings (GTK_TABLE (table3), 3); + + label4 = gtk_label_new ("Output device"); + gtk_widget_show (label4); + gtk_table_attach (GTK_TABLE (table3), label4, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5); + + label5 = gtk_label_new ("Software ALSA resampling"); + gtk_widget_show (label5); + gtk_table_attach (GTK_TABLE (table3), label5, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5); + + label6 = gtk_label_new ("SRC quality (libsamplerate)"); + gtk_widget_show (label6); + gtk_table_attach (GTK_TABLE (table3), label6, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); + + label8 = gtk_label_new ("Replaygain mode"); + gtk_widget_show (label8); + gtk_table_attach (GTK_TABLE (table3), label8, 0, 1, 3, 4, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); + + label9 = gtk_label_new ("Replaygain peak scale"); + gtk_widget_show (label9); + gtk_table_attach (GTK_TABLE (table3), label9, 0, 1, 4, 5, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); + + label15 = gtk_label_new ("Release ALSA while stopped"); + gtk_widget_show (label15); + gtk_table_attach (GTK_TABLE (table3), label15, 0, 1, 5, 6, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5); + + pref_alsa_resampling = gtk_check_button_new_with_mnemonic (""); + gtk_widget_show (pref_alsa_resampling); + gtk_table_attach (GTK_TABLE (table3), pref_alsa_resampling, 1, 2, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + pref_replaygain_scale = gtk_check_button_new_with_mnemonic (""); + gtk_widget_show (pref_replaygain_scale); + gtk_table_attach (GTK_TABLE (table3), pref_replaygain_scale, 1, 2, 4, 5, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + pref_alsa_freewhenstopped = gtk_check_button_new_with_mnemonic (""); + gtk_widget_show (pref_alsa_freewhenstopped); + gtk_table_attach (GTK_TABLE (table3), pref_alsa_freewhenstopped, 1, 2, 5, 6, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + pref_soundcard = gtk_combo_box_new_text (); + gtk_widget_show (pref_soundcard); + gtk_table_attach (GTK_TABLE (table3), pref_soundcard, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + pref_src_quality = gtk_combo_box_new_text (); + gtk_widget_show (pref_src_quality); + gtk_table_attach (GTK_TABLE (table3), pref_src_quality, 1, 2, 2, 3, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_src_quality), "sinc_best_quality"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_src_quality), "sinc_medium_quality"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_src_quality), "sinc_fastest"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_src_quality), "sinc_zero_order_hold"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_src_quality), "linear"); + + pref_replaygain_mode = gtk_combo_box_new_text (); + gtk_widget_show (pref_replaygain_mode); + gtk_table_attach (GTK_TABLE (table3), pref_replaygain_mode, 1, 2, 3, 4, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_replaygain_mode), "Disable"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_replaygain_mode), "Track"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_replaygain_mode), "Album"); + + Sound = gtk_label_new ("Sound"); + gtk_widget_show (Sound); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 0), Sound); + + table4 = gtk_table_new (1, 2, FALSE); + gtk_widget_show (table4); + gtk_container_add (GTK_CONTAINER (notebook2), table4); + gtk_container_set_border_width (GTK_CONTAINER (table4), 3); + gtk_table_set_col_spacings (GTK_TABLE (table4), 3); + + label7 = gtk_label_new ("Close minimizes to tray"); + gtk_widget_show (label7); + gtk_table_attach (GTK_TABLE (table4), label7, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5); + + pref_close_send_to_tray = gtk_check_button_new_with_mnemonic (""); + gtk_widget_show (pref_close_send_to_tray); + gtk_table_attach (GTK_TABLE (table4), pref_close_send_to_tray, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + label2 = gtk_label_new ("GUI"); + gtk_widget_show (label2); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 1), label2); + + table6 = gtk_table_new (4, 2, FALSE); + gtk_widget_show (table6); + gtk_container_add (GTK_CONTAINER (notebook2), table6); + gtk_container_set_border_width (GTK_CONTAINER (table6), 3); + gtk_table_set_col_spacings (GTK_TABLE (table6), 3); + + label17 = gtk_label_new ("Enable proxy server"); + gtk_widget_show (label17); + gtk_table_attach (GTK_TABLE (table6), label17, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5); + + label18 = gtk_label_new ("Proxy server address"); + gtk_widget_show (label18); + gtk_table_attach (GTK_TABLE (table6), label18, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5); + + pref_network_proxyaddress = gtk_entry_new (); + gtk_widget_show (pref_network_proxyaddress); + gtk_table_attach (GTK_TABLE (table6), pref_network_proxyaddress, 1, 2, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_network_proxyaddress), 8226); + + pref_network_enableproxy = gtk_check_button_new_with_mnemonic (""); + gtk_widget_show (pref_network_enableproxy); + gtk_table_attach (GTK_TABLE (table6), pref_network_enableproxy, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + label19 = gtk_label_new ("Proxy server port"); + gtk_widget_show (label19); + gtk_table_attach (GTK_TABLE (table6), label19, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label19), 0, 0.5); + + pref_network_proxyport = gtk_entry_new (); + gtk_widget_show (pref_network_proxyport); + gtk_table_attach (GTK_TABLE (table6), pref_network_proxyport, 1, 2, 2, 3, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_network_proxyport), 8226); + + label20 = gtk_label_new ("Proxy type"); + gtk_widget_show (label20); + gtk_table_attach (GTK_TABLE (table6), label20, 0, 1, 3, 4, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label20), 0, 0.5); + + pref_network_proxytype = gtk_combo_box_new_text (); + gtk_widget_show (pref_network_proxytype); + gtk_table_attach (GTK_TABLE (table6), pref_network_proxytype, 1, 2, 3, 4, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "HTTP"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "HTTP_1_0"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "SOCKS4"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "SOCKS5"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "SOCKS4A"); + gtk_combo_box_append_text (GTK_COMBO_BOX (pref_network_proxytype), "SOCKS5_HOSTNAME"); + + label16 = gtk_label_new ("Network"); + gtk_widget_show (label16); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 2), label16); + + hpaned1 = gtk_hpaned_new (); + gtk_widget_show (hpaned1); + gtk_container_add (GTK_CONTAINER (notebook2), hpaned1); + + scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show (scrolledwindow2); + gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow2, FALSE, TRUE); + gtk_widget_set_size_request (scrolledwindow2, 280, -1); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN); + + pref_pluginlist = gtk_tree_view_new (); + gtk_widget_show (pref_pluginlist); + gtk_container_add (GTK_CONTAINER (scrolledwindow2), pref_pluginlist); + + table5 = gtk_table_new (4, 2, FALSE); + gtk_widget_show (table5); + gtk_paned_pack2 (GTK_PANED (hpaned1), table5, TRUE, TRUE); + gtk_widget_set_size_request (table5, 400, -1); + + label11 = gtk_label_new ("Description"); + gtk_widget_show (label11); + gtk_table_attach (GTK_TABLE (table5), label11, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.5); + + label12 = gtk_label_new ("Author(s)"); + gtk_widget_show (label12); + gtk_table_attach (GTK_TABLE (table5), label12, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); + + label13 = gtk_label_new ("Email"); + gtk_widget_show (label13); + gtk_table_attach (GTK_TABLE (table5), label13, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5); + + label14 = gtk_label_new ("Website"); + gtk_widget_show (label14); + gtk_table_attach (GTK_TABLE (table5), label14, 0, 1, 3, 4, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5); + + pref_plugin_descr = gtk_entry_new (); + gtk_widget_show (pref_plugin_descr); + gtk_table_attach (GTK_TABLE (table5), pref_plugin_descr, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_descr), FALSE); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_descr), 9679); + + pref_plugin_author = gtk_entry_new (); + gtk_widget_show (pref_plugin_author); + gtk_table_attach (GTK_TABLE (table5), pref_plugin_author, 1, 2, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_author), FALSE); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_author), 9679); + + pref_plugin_email = gtk_entry_new (); + gtk_widget_show (pref_plugin_email); + gtk_table_attach (GTK_TABLE (table5), pref_plugin_email, 1, 2, 2, 3, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_email), FALSE); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_email), 9679); + + pref_plugin_website = gtk_entry_new (); + gtk_widget_show (pref_plugin_website); + gtk_table_attach (GTK_TABLE (table5), pref_plugin_website, 1, 2, 3, 4, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_editable_set_editable (GTK_EDITABLE (pref_plugin_website), FALSE); + gtk_entry_set_invisible_char (GTK_ENTRY (pref_plugin_website), 9679); + + label3 = gtk_label_new ("Plugins"); + gtk_widget_show (label3); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 3), label3); + + g_signal_connect ((gpointer) prefwin, "key_press_event", + G_CALLBACK (on_prefwin_key_press_event), + NULL); + g_signal_connect ((gpointer) pref_alsa_resampling, "clicked", + G_CALLBACK (on_pref_alsa_resampling_clicked), + NULL); + g_signal_connect ((gpointer) pref_replaygain_scale, "clicked", + G_CALLBACK (on_pref_replaygain_scale_clicked), + NULL); + g_signal_connect ((gpointer) pref_alsa_freewhenstopped, "clicked", + G_CALLBACK (on_pref_alsa_freewhenstopped_clicked), + NULL); + g_signal_connect ((gpointer) pref_soundcard, "changed", + G_CALLBACK (on_pref_soundcard_changed), + NULL); + g_signal_connect ((gpointer) pref_src_quality, "changed", + G_CALLBACK (on_pref_src_quality_changed), + NULL); + g_signal_connect ((gpointer) pref_replaygain_mode, "changed", + G_CALLBACK (on_pref_replaygain_mode_changed), + NULL); + g_signal_connect ((gpointer) pref_close_send_to_tray, "clicked", + G_CALLBACK (on_pref_close_send_to_tray_clicked), + NULL); + g_signal_connect ((gpointer) pref_network_proxyaddress, "changed", + G_CALLBACK (on_pref_network_proxyaddress_changed), + NULL); + g_signal_connect ((gpointer) pref_network_enableproxy, "clicked", + G_CALLBACK (on_pref_network_enableproxy_clicked), + NULL); + g_signal_connect ((gpointer) pref_network_proxyport, "changed", + G_CALLBACK (on_pref_network_proxyport_changed), + NULL); + g_signal_connect ((gpointer) pref_network_proxytype, "changed", + G_CALLBACK (on_pref_network_proxytype_changed), + NULL); + g_signal_connect ((gpointer) pref_pluginlist, "cursor_changed", + G_CALLBACK (on_pref_pluginlist_cursor_changed), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (prefwin, prefwin, "prefwin"); + GLADE_HOOKUP_OBJECT (prefwin, notebook2, "notebook2"); + GLADE_HOOKUP_OBJECT (prefwin, table3, "table3"); + GLADE_HOOKUP_OBJECT (prefwin, label4, "label4"); + GLADE_HOOKUP_OBJECT (prefwin, label5, "label5"); + GLADE_HOOKUP_OBJECT (prefwin, label6, "label6"); + GLADE_HOOKUP_OBJECT (prefwin, label8, "label8"); + GLADE_HOOKUP_OBJECT (prefwin, label9, "label9"); + GLADE_HOOKUP_OBJECT (prefwin, label15, "label15"); + GLADE_HOOKUP_OBJECT (prefwin, pref_alsa_resampling, "pref_alsa_resampling"); + GLADE_HOOKUP_OBJECT (prefwin, pref_replaygain_scale, "pref_replaygain_scale"); + GLADE_HOOKUP_OBJECT (prefwin, pref_alsa_freewhenstopped, "pref_alsa_freewhenstopped"); + GLADE_HOOKUP_OBJECT (prefwin, pref_soundcard, "pref_soundcard"); + GLADE_HOOKUP_OBJECT (prefwin, pref_src_quality, "pref_src_quality"); + GLADE_HOOKUP_OBJECT (prefwin, pref_replaygain_mode, "pref_replaygain_mode"); + GLADE_HOOKUP_OBJECT (prefwin, Sound, "Sound"); + GLADE_HOOKUP_OBJECT (prefwin, table4, "table4"); + GLADE_HOOKUP_OBJECT (prefwin, label7, "label7"); + GLADE_HOOKUP_OBJECT (prefwin, pref_close_send_to_tray, "pref_close_send_to_tray"); + GLADE_HOOKUP_OBJECT (prefwin, label2, "label2"); + GLADE_HOOKUP_OBJECT (prefwin, table6, "table6"); + GLADE_HOOKUP_OBJECT (prefwin, label17, "label17"); + GLADE_HOOKUP_OBJECT (prefwin, label18, "label18"); + GLADE_HOOKUP_OBJECT (prefwin, pref_network_proxyaddress, "pref_network_proxyaddress"); + GLADE_HOOKUP_OBJECT (prefwin, pref_network_enableproxy, "pref_network_enableproxy"); + GLADE_HOOKUP_OBJECT (prefwin, label19, "label19"); + GLADE_HOOKUP_OBJECT (prefwin, pref_network_proxyport, "pref_network_proxyport"); + GLADE_HOOKUP_OBJECT (prefwin, label20, "label20"); + GLADE_HOOKUP_OBJECT (prefwin, pref_network_proxytype, "pref_network_proxytype"); + GLADE_HOOKUP_OBJECT (prefwin, label16, "label16"); + GLADE_HOOKUP_OBJECT (prefwin, hpaned1, "hpaned1"); + GLADE_HOOKUP_OBJECT (prefwin, scrolledwindow2, "scrolledwindow2"); + GLADE_HOOKUP_OBJECT (prefwin, pref_pluginlist, "pref_pluginlist"); + GLADE_HOOKUP_OBJECT (prefwin, table5, "table5"); + GLADE_HOOKUP_OBJECT (prefwin, label11, "label11"); + GLADE_HOOKUP_OBJECT (prefwin, label12, "label12"); + GLADE_HOOKUP_OBJECT (prefwin, label13, "label13"); + GLADE_HOOKUP_OBJECT (prefwin, label14, "label14"); + GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_descr, "pref_plugin_descr"); + GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_author, "pref_plugin_author"); + GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_email, "pref_plugin_email"); + GLADE_HOOKUP_OBJECT (prefwin, pref_plugin_website, "pref_plugin_website"); + GLADE_HOOKUP_OBJECT (prefwin, label3, "label3"); + + return prefwin; +} + +GtkWidget* +create_headermenu (void) +{ + GtkWidget *headermenu; + GtkWidget *add_column; + GtkWidget *add_column_menu; + GtkWidget *artist; + GtkWidget *album; + GtkWidget *tracknum; + GtkWidget *duration; + GtkWidget *playing; + GtkWidget *title; + GtkWidget *separator7; + GtkWidget *custom; + GtkWidget *remove_column; + + headermenu = gtk_menu_new (); + + add_column = gtk_menu_item_new_with_mnemonic ("Add column"); + gtk_widget_show (add_column); + gtk_container_add (GTK_CONTAINER (headermenu), add_column); + + add_column_menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (add_column), add_column_menu); + + artist = gtk_menu_item_new_with_mnemonic ("Artist"); + gtk_widget_show (artist); + gtk_container_add (GTK_CONTAINER (add_column_menu), artist); + + album = gtk_menu_item_new_with_mnemonic ("Album"); + gtk_widget_show (album); + gtk_container_add (GTK_CONTAINER (add_column_menu), album); + + tracknum = gtk_menu_item_new_with_mnemonic ("Track number"); + gtk_widget_show (tracknum); + gtk_container_add (GTK_CONTAINER (add_column_menu), tracknum); + + duration = gtk_menu_item_new_with_mnemonic ("Duration"); + gtk_widget_show (duration); + gtk_container_add (GTK_CONTAINER (add_column_menu), duration); + + playing = gtk_menu_item_new_with_mnemonic ("Playing status"); + gtk_widget_show (playing); + gtk_container_add (GTK_CONTAINER (add_column_menu), playing); + + title = gtk_menu_item_new_with_mnemonic ("Title"); + gtk_widget_show (title); + gtk_container_add (GTK_CONTAINER (add_column_menu), title); + + separator7 = gtk_separator_menu_item_new (); + gtk_widget_show (separator7); + gtk_container_add (GTK_CONTAINER (add_column_menu), separator7); + gtk_widget_set_sensitive (separator7, FALSE); + + custom = gtk_menu_item_new_with_mnemonic ("Custom"); + gtk_widget_show (custom); + gtk_container_add (GTK_CONTAINER (add_column_menu), custom); + + remove_column = gtk_menu_item_new_with_mnemonic ("Remove this column"); + gtk_widget_show (remove_column); + gtk_container_add (GTK_CONTAINER (headermenu), remove_column); + + g_signal_connect ((gpointer) artist, "activate", + G_CALLBACK (on_artist_activate), + NULL); + g_signal_connect ((gpointer) album, "activate", + G_CALLBACK (on_album_activate), + NULL); + g_signal_connect ((gpointer) tracknum, "activate", + G_CALLBACK (on_tracknum_activate), + NULL); + g_signal_connect ((gpointer) duration, "activate", + G_CALLBACK (on_duration_activate), + NULL); + g_signal_connect ((gpointer) playing, "activate", + G_CALLBACK (on_playing_activate), + NULL); + g_signal_connect ((gpointer) title, "activate", + G_CALLBACK (on_title_activate), + NULL); + g_signal_connect ((gpointer) custom, "activate", + G_CALLBACK (on_custom_activate), + NULL); + g_signal_connect ((gpointer) remove_column, "activate", + G_CALLBACK (on_remove_column_activate), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (headermenu, headermenu, "headermenu"); + GLADE_HOOKUP_OBJECT (headermenu, add_column, "add_column"); + GLADE_HOOKUP_OBJECT (headermenu, add_column_menu, "add_column_menu"); + GLADE_HOOKUP_OBJECT (headermenu, artist, "artist"); + GLADE_HOOKUP_OBJECT (headermenu, album, "album"); + GLADE_HOOKUP_OBJECT (headermenu, tracknum, "tracknum"); + GLADE_HOOKUP_OBJECT (headermenu, duration, "duration"); + GLADE_HOOKUP_OBJECT (headermenu, playing, "playing"); + GLADE_HOOKUP_OBJECT (headermenu, title, "title"); + GLADE_HOOKUP_OBJECT (headermenu, separator7, "separator7"); + GLADE_HOOKUP_OBJECT (headermenu, custom, "custom"); + GLADE_HOOKUP_OBJECT (headermenu, remove_column, "remove_column"); + + return headermenu; +} + +GtkWidget* +create_addlocation (void) +{ + GtkWidget *addlocation; + GtkWidget *vbox7; + GtkWidget *addlocation_entry; + GtkWidget *hbox8; + GtkWidget *label21; + GtkWidget *addlocation_ok; + + addlocation = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (addlocation), "Add Location"); + gtk_window_set_modal (GTK_WINDOW (addlocation), TRUE); + gtk_window_set_destroy_with_parent (GTK_WINDOW (addlocation), TRUE); + + vbox7 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox7); + gtk_container_add (GTK_CONTAINER (addlocation), vbox7); + gtk_container_set_border_width (GTK_CONTAINER (vbox7), 4); + + addlocation_entry = gtk_entry_new (); + gtk_widget_show (addlocation_entry); + gtk_box_pack_start (GTK_BOX (vbox7), addlocation_entry, FALSE, FALSE, 0); + gtk_widget_set_size_request (addlocation_entry, 346, -1); + gtk_entry_set_invisible_char (GTK_ENTRY (addlocation_entry), 8226); + + hbox8 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox8); + gtk_box_pack_start (GTK_BOX (vbox7), hbox8, FALSE, TRUE, 2); + + label21 = gtk_label_new (""); + gtk_widget_show (label21); + gtk_box_pack_start (GTK_BOX (hbox8), label21, TRUE, FALSE, 0); + + addlocation_ok = gtk_button_new_with_mnemonic ("OK"); + gtk_widget_show (addlocation_ok); + gtk_box_pack_start (GTK_BOX (hbox8), addlocation_ok, FALSE, FALSE, 0); + gtk_widget_set_size_request (addlocation_ok, 83, -1); + GTK_WIDGET_UNSET_FLAGS (addlocation_ok, GTK_CAN_FOCUS); + + g_signal_connect ((gpointer) addlocation, "key_press_event", + G_CALLBACK (on_addlocation_key_press_event), + NULL); + g_signal_connect ((gpointer) addlocation_entry, "activate", + G_CALLBACK (on_addlocation_entry_activate), + NULL); + g_signal_connect ((gpointer) addlocation_ok, "clicked", + G_CALLBACK (on_addlocation_ok_clicked), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (addlocation, addlocation, "addlocation"); + GLADE_HOOKUP_OBJECT (addlocation, vbox7, "vbox7"); + GLADE_HOOKUP_OBJECT (addlocation, addlocation_entry, "addlocation_entry"); + GLADE_HOOKUP_OBJECT (addlocation, hbox8, "hbox8"); + GLADE_HOOKUP_OBJECT (addlocation, label21, "label21"); + GLADE_HOOKUP_OBJECT (addlocation, addlocation_ok, "addlocation_ok"); + + return addlocation; +} + |