diff -dPNur xmms-1.2.11/xmms/main.c xmms-1.2.11-new/xmms/main.c --- xmms-1.2.11/xmms/main.c 2007-11-25 01:10:52.000000000 +0100 +++ xmms-1.2.11-new/xmms/main.c 2007-11-25 01:11:13.000000000 +0100 @@ -382,6 +382,8 @@ cfg.gentitle_format = NULL; + cfg.shade_font = NULL; + filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL); cfgfile = xmms_cfg_open_file(filename); if (cfgfile) @@ -481,6 +483,8 @@ } xmms_cfg_read_string(cfgfile, "xmms", "generic_title_format", &cfg.gentitle_format); + xmms_cfg_read_string(cfgfile, "xmms", "shade_font", &cfg.shade_font); + xmms_cfg_free(cfgfile); } @@ -519,6 +523,13 @@ if (cfg.eqpreset_extension == NULL) cfg.eqpreset_extension = g_strdup("preset"); + if (cfg.shade_font && strlen(cfg.shade_font) == 0) { + g_free(cfg.shade_font); + cfg.shade_font = NULL; + } + if (!cfg.shade_font) + cfg.shade_font = g_strdup("-misc-fixed-medium-r-*-*-7-*"); + g_free(filename); } @@ -677,6 +688,8 @@ } xmms_cfg_write_string(cfgfile, "xmms", "generic_title_format", cfg.gentitle_format); + xmms_cfg_write_string(cfgfile, "xmms", "shade_font", cfg.shade_font); + xmms_cfg_write_file(cfgfile, filename); xmms_cfg_free(cfgfile); diff -dPNur xmms-1.2.11/xmms/main.h xmms-1.2.11-new/xmms/main.h --- xmms-1.2.11/xmms/main.h 2006-07-16 15:40:04.000000000 +0200 +++ xmms-1.2.11-new/xmms/main.h 2007-11-25 01:12:55.000000000 +0100 @@ -60,6 +60,7 @@ gint mouse_change; gboolean playlist_transparent; gchar *gentitle_format; + gchar *shade_font; } Config; diff -dPNur xmms-1.2.11/xmms/playlistwin.c xmms-1.2.11-new/xmms/playlistwin.c --- xmms-1.2.11/xmms/playlistwin.c 2007-11-16 22:51:30.000000000 +0100 +++ xmms-1.2.11-new/xmms/playlistwin.c 2007-11-25 01:11:13.000000000 +0100 @@ -39,7 +39,8 @@ PButton *playlistwin_shade, *playlistwin_close; static PlaylistSlider *playlistwin_slider = NULL; static TextBox *playlistwin_time_min, *playlistwin_time_sec; -static TextBox *playlistwin_info, *playlistwin_sinfo; +static TextBox *playlistwin_info; +TextBox *playlistwin_sinfo; static SButton *playlistwin_srew, *playlistwin_splay; static SButton *playlistwin_spause, *playlistwin_sstop; static SButton *playlistwin_sfwd, *playlistwin_seject; @@ -1882,6 +1883,7 @@ static void playlistwin_create_widgets(void) { playlistwin_sinfo = create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 4, 4, cfg.playlist_width - 35, FALSE, SKIN_TEXT); + textbox_set_xfont(playlistwin_sinfo, cfg.mainwin_use_xfont, cfg.shade_font); if (!cfg.playlist_shaded) hide_widget(playlistwin_sinfo); if (cfg.playlist_shaded) diff -dPNur xmms-1.2.11/xmms/prefswin.c xmms-1.2.11-new/xmms/prefswin.c --- xmms-1.2.11/xmms/prefswin.c 2007-11-25 01:10:52.000000000 +0100 +++ xmms-1.2.11-new/xmms/prefswin.c 2007-11-25 01:11:13.000000000 +0100 @@ -35,6 +35,7 @@ static GtkWidget *prefswin_options_sd_entry, *prefswin_options_pbs_entry; +static GtkWidget *prefswin_shade_font_entry, *prefswin_shade_font_browse; static GtkWidget *prefswin_options_font_entry, *prefswin_options_font_browse; static GtkWidget *prefswin_options_fontset, *prefswin_mainwin_font_entry; static GtkWidget *prefswin_mainwin_xfont, *prefswin_options_mouse_spin; @@ -48,6 +49,7 @@ extern PButton *playlistwin_shade, *playlistwin_close, *equalizerwin_close; extern PButton *mainwin_menubtn, *mainwin_minimize, *mainwin_shade, *mainwin_close; extern TextBox *mainwin_info; +extern TextBox *playlistwin_sinfo; extern gboolean mainwin_focus, equalizerwin_focus, playlistwin_focus; static gboolean is_opening = FALSE; @@ -343,11 +345,13 @@ gboolean show_wm_old = cfg.show_wm_decorations; g_free(cfg.playlist_font); g_free(cfg.mainwin_font); + g_free(cfg.shade_font); g_free(cfg.gentitle_format); prefswin_options_write_data(); cfg.snap_distance = CLAMP(atoi(gtk_entry_get_text(GTK_ENTRY(prefswin_options_sd_entry))), 0, 1000); cfg.playlist_font = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_options_font_entry))); cfg.mainwin_font = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_mainwin_font_entry))); + cfg.shade_font = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_shade_font_entry))); cfg.gentitle_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_title_entry))); cfg.pause_between_songs_time = CLAMP(atoi(gtk_entry_get_text(GTK_ENTRY(prefswin_options_pbs_entry))), 0, 1000); cfg.mouse_change = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefswin_options_mouse_spin)); @@ -390,6 +394,7 @@ prefswin_toggle_wm_decorations(); textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); + textbox_set_xfont(playlistwin_sinfo, cfg.mainwin_use_xfont, cfg.shade_font); playlist_list_set_font(cfg.playlist_font); playlistwin_update_list(); mainwin_set_info_text(); @@ -475,6 +480,34 @@ } } +void prefswin_shade_font_browse_ok(GtkWidget * w, gpointer data) +{ + GtkFontSelectionDialog *fontsel = GTK_FONT_SELECTION_DIALOG(data); + gchar *fontname; + + fontname = gtk_font_selection_dialog_get_font_name(fontsel); + + if (fontname) + gtk_entry_set_text(GTK_ENTRY(prefswin_shade_font_entry), fontname); + + gtk_widget_destroy(GTK_WIDGET(fontsel)); +} + +void prefswin_shade_font_browse_cb(GtkWidget * w, gpointer data) +{ + static GtkWidget *fontsel; + + if (fontsel != NULL) + return; + + fontsel = gtk_font_selection_dialog_new(_("Select playlist font:")); + gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontsel), gtk_entry_get_text(GTK_ENTRY(prefswin_shade_font_entry))); + gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->ok_button), "clicked", GTK_SIGNAL_FUNC(prefswin_shade_font_browse_ok), fontsel); + gtk_signal_connect_object(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->cancel_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(fontsel)); + gtk_signal_connect(GTK_OBJECT(fontsel), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &fontsel); + gtk_widget_show(fontsel); +} + void prefswin_gplugins_use_cb(GtkToggleButton * w, gpointer data) { gint sel; @@ -693,7 +726,10 @@ GtkWidget *prefswin_vplugins_box, *prefswin_vplugins_vbox; GtkWidget *prefswin_vplugins_frame, *prefswin_vplugins_hbox; GtkWidget *prefswin_vplugins_hbbox; - + + GtkWidget *prefswin_fonts_shade_frame; + GtkWidget *options_font_shade_hbox, *options_font_shade_vbox; + GtkWidget *prefswin_options_frame, *prefswin_options_vbox; GtkWidget *prefswin_mainwin_frame, *prefswin_mainwin_vbox; GtkWidget *prefswin_fonts_vbox, *prefswin_fonts_playlist_frame; @@ -1105,6 +1141,21 @@ gtk_widget_set_usize(prefswin_mainwin_font_browse, 85, 17); gtk_box_pack_start(GTK_BOX(prefswin_mainwin_font_hbox), prefswin_mainwin_font_browse, FALSE, TRUE, 0); + prefswin_fonts_shade_frame = gtk_frame_new(_("Shade")); + gtk_container_set_border_width(GTK_CONTAINER(prefswin_fonts_shade_frame), 5); + gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_fonts_shade_frame, FALSE, FALSE, 0); + options_font_shade_vbox = gtk_vbox_new(FALSE, 5); + gtk_container_border_width(GTK_CONTAINER(options_font_shade_vbox), 5); + gtk_container_add(GTK_CONTAINER(prefswin_fonts_shade_frame), options_font_shade_vbox); + options_font_shade_hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start_defaults(GTK_BOX(options_font_shade_vbox), options_font_shade_hbox); + prefswin_shade_font_entry = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_shade_font_entry, TRUE, TRUE, 0); + prefswin_shade_font_browse = gtk_button_new_with_label(_("Browse")); + gtk_signal_connect(GTK_OBJECT(prefswin_shade_font_browse), "clicked", GTK_SIGNAL_FUNC(prefswin_shade_font_browse_cb), NULL); + gtk_widget_set_usize(prefswin_shade_font_browse, 85, 17); + gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_shade_font_browse, FALSE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox, gtk_label_new(_("Fonts"))); /* @@ -1390,6 +1441,7 @@ gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_entry), cfg.playlist_font); gtk_entry_set_text(GTK_ENTRY(prefswin_mainwin_font_entry), cfg.mainwin_font); + gtk_entry_set_text(GTK_ENTRY(prefswin_shade_font_entry), cfg.shade_font); gtk_entry_set_text(GTK_ENTRY(prefswin_title_entry), cfg.gentitle_format); sprintf(temp, "%u", cfg.snap_distance); gtk_entry_set_text(GTK_ENTRY(prefswin_options_sd_entry), temp);