/* $Id: properties.c,v 1.1.1.1 2000/01/30 16:39:14 benediktroth Exp $ */ #include #include #include "yamt.h" #include "properties.h" void properties( void ) { GtkWidget *properties_window; GtkWidget *properties_box; GtkWidget *properties_table; GtkWidget *properties_label; static GnomeHelpMenuEntry help_entry = { "yamt", "properties" }; properties_window = gnome_property_box_new(); gtk_window_set_title( GTK_WINDOW (properties_window),_("YAMT Properties")); gtk_container_border_width( GTK_CONTAINER (properties_window), 5); /* Main box */ properties_box = gtk_vbox_new( FALSE, 0); gtk_container_border_width( GTK_CONTAINER (properties_box), 1); gtk_widget_show( properties_box ); properties_table = gtk_table_new( 2, 2, FALSE); gtk_container_set_border_width( GTK_CONTAINER (properties_table), 2); /* gtk_table_set_row_spacings( GTK_TABLE (properties_table), 5 ); */ /* gtk_table_set_col_spacings( GTK_TABLE (properties_table), 10 ); */ gtk_box_pack_start( GTK_BOX (properties_box), properties_table, TRUE, TRUE, 0 ); gtk_widget_show(properties_table); /* MP3 directory */ properties_label = gtk_label_new( _("Default directory for MP3s:") ); gtk_table_attach_defaults( GTK_TABLE (properties_table), properties_label, 0, 1, 0, 1); gtk_widget_show( properties_label ); properties_dir = gnome_file_entry_new( NULL, _("Select a Directory") ); gtk_signal_connect( GTK_OBJECT(gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY(properties_dir))),"changed", GTK_SIGNAL_FUNC (properties_changed), properties_window ); gtk_entry_set_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_dir))), getenv("HOME") ); gtk_table_attach_defaults( GTK_TABLE (properties_table), properties_dir, 1, 2, 0, 1); gtk_widget_show( properties_dir ); /* MP3 player */ properties_label = gtk_label_new( _("Default MP3 Player:") ); gtk_table_attach_defaults( GTK_TABLE (properties_table), properties_label, 0, 1, 1, 2); gtk_widget_show( properties_label ); properties_player = gnome_file_entry_new( NULL, "Select a MP3 Player"); gtk_signal_connect( GTK_OBJECT(gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY(properties_player))),"changed", GTK_SIGNAL_FUNC (properties_changed), properties_window ); gtk_entry_set_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_player))), "xmms" ); gtk_table_attach_defaults( GTK_TABLE (properties_table), properties_player, 1, 2, 1, 2); gtk_widget_show( properties_player ); gnome_property_box_append_page( GNOME_PROPERTY_BOX (properties_window), properties_box, gtk_label_new( _("Main-Settings") )); /* Connect the signals to the buttons in the property box */ gtk_signal_connect(GTK_OBJECT (properties_window), "apply", GTK_SIGNAL_FUNC (properties_save), NULL ); gtk_signal_connect(GTK_OBJECT (properties_window), "help", GTK_SIGNAL_FUNC (gnome_help_pbox_display), &help_entry ); gtk_signal_connect(GTK_OBJECT (properties_window), "destroy", GTK_SIGNAL_FUNC (destroy), properties_window ); /* If a yamt config file exists use it to overide the default settings */ properties_get(); /* So that the new stettings take effect directly */ properties_load(); gtk_widget_show( properties_window ); } void properties_changed( GtkWidget *widget, gpointer *data) { gnome_property_box_changed(GNOME_PROPERTY_BOX (data)); } void properties_get( void ) { gchar *buffer; gchar buffer2[80]; /* MP3 directory */ buffer = gnome_config_get_string("yamt/main/dir"); if( buffer == NULL ) buffer = getenv("HOME"); /* To be sure the last character is a slash */ /* Needed eg. for the file selection box, */ /* so if we use gtk_file_selection_set_text we are directly in this directory */ strcpy( buffer2, buffer ); if( buffer2[strlen(buffer2)-1] != '/' ) strcat( buffer2, "/" ); yamtlog("%s %s", "Default mp3 directory: ", buffer2); /* will be freed in main() */ prop_mp3_dir = g_strdup( buffer2 ); if( properties_dir != NULL ) gtk_entry_set_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_dir))), buffer2 ); /* MP3 player */ buffer = gnome_config_get_string("yamt/main/player=xmms "); yamtlog("%s %s", "Default mp3 player: ", buffer); /* will be freed in main() */ prop_mp3_player = g_strdup( buffer ); if( properties_player != NULL ) gtk_entry_set_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_player))), buffer ); } void properties_load( void ) { extern void edit_load_properties( ); extern void rename_load_properties( ); extern void rename_load_properties( ); extern void mass_load_properties( ); extern void xchange_load_properties( ); extern void auto_load_properties( ); extern void sort_load_properties( ); extern void explore_load_properties( ); extern void playlists_load_properties( ); extern void misc_load_properties( ); /* Load the properties of each feature */ edit_load_properties( ); rename_load_properties( ); mass_load_properties( ); xchange_load_properties( ); auto_load_properties( ); sort_load_properties( ); explore_load_properties( ); playlists_load_properties( ); misc_load_properties( ); } void properties_ok( GtkWidget *widget, gpointer *data) { properties_save( ); gtk_widget_destroy( GTK_WIDGET (data) ); } void properties_save( void ) { gchar *buffer; gchar buffer2[80]; /* MP3 directory */ buffer = gtk_entry_get_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_dir))) ); strcpy( buffer2, buffer ); /* To be sure the last character is a slash */ if( buffer2[strlen(buffer2)-1] != '/' ) strcat( buffer2, "/" ); gnome_config_set_string("yamt/main/dir", buffer2 ); /* MP3 player */ buffer = gtk_entry_get_text( GTK_ENTRY(gnome_file_entry_gtk_entry( GNOME_FILE_ENTRY(properties_player))) ); gnome_config_set_string("yamt/main/player", buffer ); /* Write the config file */ gnome_config_sync(); /* Apply the changes */ properties_get(); properties_load(); }