Mercurial > audlegacy
changeset 4080:1e754514065d
introduce WIDGET_FONT_BTN
author | Tomasz Mon <desowin@gmail.com> |
---|---|
date | Sun, 09 Dec 2007 13:56:34 +0100 |
parents | acb28b9494b2 |
children | 05140463a43e |
files | src/audacious/main.c src/audacious/main.h src/audacious/ui_main.c src/audacious/ui_playlist.c src/audacious/ui_preferences.c |
diffstat | 5 files changed, 81 insertions(+), 152 deletions(-) [+] |
line wrap: on
line diff
--- a/src/audacious/main.c Sat Dec 08 20:56:13 2007 +0300 +++ b/src/audacious/main.c Sun Dec 09 13:56:34 2007 +0100 @@ -307,7 +307,7 @@ {"playlist_shaded", &cfg.playlist_shaded, TRUE}, {"playlist_visible", &cfg.playlist_visible, TRUE}, {"use_fontsets", &cfg.use_fontsets, TRUE}, - {"mainwin_use_xfont", &cfg.mainwin_use_xfont, FALSE}, + {"mainwin_use_bitmapfont", &cfg.mainwin_use_bitmapfont, FALSE}, {"equalizer_visible", &cfg.equalizer_visible, TRUE}, {"equalizer_active", &cfg.equalizer_active, TRUE}, {"equalizer_shaded", &cfg.equalizer_shaded, TRUE}, @@ -857,8 +857,8 @@ SKINNED_WINDOW(equalizerwin)->y); } - cfg_db_set_bool(db, NULL, "mainwin_use_xfont", - cfg.mainwin_use_xfont); + cfg_db_set_bool(db, NULL, "mainwin_use_bitmapfont", + cfg.mainwin_use_bitmapfont); for (i = 0; i < ncfgsent; ++i) { if (bmp_strents[i].se_wrt)
--- a/src/audacious/main.h Sat Dec 08 20:56:13 2007 +0300 +++ b/src/audacious/main.h Sun Dec 09 13:56:34 2007 +0100 @@ -82,7 +82,7 @@ gboolean use_backslash_as_dir_delimiter; gboolean random_skin_on_play; gboolean use_fontsets; - gboolean mainwin_use_xfont; + gboolean mainwin_use_bitmapfont; gboolean custom_cursors; gboolean close_dialog_open; gboolean close_dialog_add;
--- a/src/audacious/ui_main.c Sat Dec 08 20:56:13 2007 +0300 +++ b/src/audacious/ui_main.c Sun Dec 09 13:56:34 2007 +0100 @@ -2428,7 +2428,7 @@ mainwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 112, 27, 153, 1, SKIN_TEXT); ui_skinned_textbox_set_scroll(mainwin_info, cfg.autoscroll); - ui_skinned_textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); + ui_skinned_textbox_set_xfont(mainwin_info, !cfg.mainwin_use_bitmapfont, cfg.mainwin_font); g_signal_connect(mainwin_info, "double-clicked", mainwin_info_double_clicked_cb, NULL); g_signal_connect(mainwin_info, "right-clicked", mainwin_info_right_clicked_cb, NULL);
--- a/src/audacious/ui_playlist.c Sat Dec 08 20:56:13 2007 +0300 +++ b/src/audacious/ui_playlist.c Sun Dec 09 13:56:34 2007 +0100 @@ -340,7 +340,7 @@ tmp2 = g_strdup_printf("%s 8", tmp); g_return_if_fail(tmp2); - ui_skinned_textbox_set_xfont(playlistwin_sinfo, cfg.mainwin_use_xfont, tmp2); + ui_skinned_textbox_set_xfont(playlistwin_sinfo, !cfg.mainwin_use_bitmapfont, tmp2); g_free(tmp); g_free(tmp2);
--- a/src/audacious/ui_preferences.c Sat Dec 08 20:56:13 2007 +0300 +++ b/src/audacious/ui_preferences.c Sun Dec 09 13:56:34 2007 +0100 @@ -167,6 +167,7 @@ WIDGET_RADIO_BTN, WIDGET_SPIN_BTN, WIDGET_CUSTOM, /* 'custom' widget, you hand back the widget you want to add --nenolod */ + WIDGET_FONT_BTN, } WidgetType; typedef struct { @@ -181,9 +182,16 @@ static void playlist_show_pl_separator_numbers_cb(); static void show_wm_decorations_cb(); +static void bitmap_fonts_cb(); +static void mainwin_font_set_cb(); +static void playlist_font_set_cb(); GtkWidget *ui_preferences_chardet_table_populate(void); static PreferencesWidget appearance_misc_widgets[] = { + {WIDGET_LABEL, N_("<b>_Fonts</b>"), NULL, NULL, NULL, FALSE}, + {WIDGET_FONT_BTN, N_("_Player:"), &cfg.mainwin_font, G_CALLBACK(mainwin_font_set_cb), N_("Select main player window font:"), FALSE}, + {WIDGET_FONT_BTN, N_("_Playlist:"), &cfg.playlist_font, G_CALLBACK(playlist_font_set_cb), N_("Select playlist font:"), FALSE}, + {WIDGET_CHK_BTN, N_("Use Bitmap fonts if available"), &cfg.mainwin_use_bitmapfont, G_CALLBACK(bitmap_fonts_cb), N_("Use bitmap fonts if they are available. Bitmap fonts do not support Unicode strings."), FALSE}, {WIDGET_LABEL, N_("<b>_Miscellaneous</b>"), NULL, NULL, NULL, FALSE}, {WIDGET_CHK_BTN, N_("Show track numbers in playlist"), &cfg.show_numbers_in_pl, G_CALLBACK(playlist_show_pl_separator_numbers_cb), NULL, FALSE}, @@ -578,52 +586,29 @@ } static void -on_mainwin_font_button_font_set(GtkFontButton * button, - gpointer data) +on_font_btn_realize(GtkFontButton * button, gchar *cfg) { - g_free(cfg.mainwin_font); - cfg.mainwin_font = g_strdup(gtk_font_button_get_font_name(button)); - - ui_skinned_textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); -} - -static void -on_use_bitmap_fonts_realize(GtkToggleButton * button, - gpointer data) -{ - gtk_toggle_button_set_active(button, - cfg.mainwin_use_xfont != FALSE ? FALSE : TRUE); + gtk_font_button_set_font_name(button, cfg); } static void -on_use_bitmap_fonts_toggled(GtkToggleButton * button, - gpointer data) +on_font_btn_font_set(GtkFontButton * button, gchar *cfg) { - gboolean useit = gtk_toggle_button_get_active(button); - cfg.mainwin_use_xfont = useit != FALSE ? FALSE : TRUE; - ui_skinned_textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); - playlistwin_set_sinfo_font(cfg.playlist_font); - - if (cfg.playlist_shaded) { - playlistwin_update_list(playlist_get_active()); - ui_skinned_window_draw_all(playlistwin); - } + g_free(cfg); + cfg = g_strdup(gtk_font_button_get_font_name(button)); + void (*callback) (void) = g_object_get_data(G_OBJECT(button), "callback"); + if (callback) callback(); } static void -on_mainwin_font_button_realize(GtkFontButton * button, - gpointer data) +mainwin_font_set_cb() { - gtk_font_button_set_font_name(button, cfg.mainwin_font); + ui_skinned_textbox_set_xfont(mainwin_info, !cfg.mainwin_use_bitmapfont, cfg.mainwin_font); } static void -on_playlist_font_button_font_set(GtkFontButton * button, - gpointer data) +playlist_font_set_cb() { - g_free(cfg.playlist_font); - cfg.playlist_font = g_strdup(gtk_font_button_get_font_name(button)); - ui_skinned_playlist_set_font(cfg.playlist_font); playlistwin_set_sinfo_font(cfg.playlist_font); /* propagate font setting to playlistwin_sinfo */ playlistwin_update_list(playlist_get_active()); @@ -631,13 +616,6 @@ } static void -on_playlist_font_button_realize(GtkFontButton * button, - gpointer data) -{ - gtk_font_button_set_font_name(button, cfg.playlist_font); -} - -static void playlist_show_pl_separator_numbers_cb() { playlistwin_update_list(playlist_get_active()); @@ -1296,6 +1274,18 @@ } static void +bitmap_fonts_cb() +{ + ui_skinned_textbox_set_xfont(mainwin_info, !cfg.mainwin_use_bitmapfont, cfg.mainwin_font); + playlistwin_set_sinfo_font(cfg.playlist_font); + + if (cfg.playlist_shaded) { + playlistwin_update_list(playlist_get_active()); + ui_skinned_window_draw_all(playlistwin); + } +} + +static void show_wm_decorations_cb() { gtk_window_set_decorated(GTK_WINDOW(mainwin), cfg.show_wm_decorations); @@ -1739,6 +1729,50 @@ widget = NULL; break; + case WIDGET_FONT_BTN: + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0); + + if (x > 1 && widgets[x-1].type == WIDGET_FONT_BTN) { + table_line++; + } else { + /* check how many WIDGET_FONT_BTNs are there */ + gint lines = 0, i; + for (i=x; i<amt && widgets[i].type == WIDGET_FONT_BTN; i++) + lines++; + + widget = gtk_table_new(lines, 2, FALSE); + gtk_table_set_row_spacings(GTK_TABLE(widget), 8); + gtk_table_set_col_spacings(GTK_TABLE(widget), 2); + table_line=0; + } + + GtkWidget *label = gtk_label_new_with_mnemonic(_(widgets[x].label)); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_RIGHT); + gtk_table_attach(GTK_TABLE (widget), label, 0, 1, table_line, table_line+1, + (GtkAttachOptions) (0), + (GtkAttachOptions) (0), 0, 0); + + GtkWidget *font_btn = gtk_font_button_new(); + gtk_table_attach(GTK_TABLE(widget), font_btn, 1, 2, table_line, table_line+1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + gtk_font_button_set_use_font(GTK_FONT_BUTTON(font_btn), TRUE); + gtk_font_button_set_use_size(GTK_FONT_BUTTON(font_btn), TRUE); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), font_btn); + if (widgets[x].tooltip) + gtk_font_button_set_title (GTK_FONT_BUTTON (font_btn), _(widgets[x].tooltip)); + g_object_set_data(G_OBJECT(font_btn), "callback", widgets[x].callback); + + g_signal_connect(G_OBJECT(font_btn), "font_set", + G_CALLBACK(on_font_btn_font_set), + *(char**)widgets[x].cfg); + g_signal_connect(G_OBJECT(font_btn), "realize", + G_CALLBACK(on_font_btn_realize), + *(char**)widgets[x].cfg); + break; default: /* shouldn't ever happen - expect things to break */ continue; @@ -1814,19 +1848,6 @@ GtkWidget *image12; GtkWidget *alignment95; GtkWidget *skin_view_scrolled_window; - GtkWidget *vbox39; - GtkWidget *alignment96; - GtkWidget *label104; - GtkWidget *table14; - GtkWidget *alignment97; - GtkWidget *label105; - GtkWidget *alignment98; - GtkWidget *label106; - GtkWidget *fontbutton1; - GtkWidget *fontbutton2; - GtkWidget *alignment99; - GtkWidget *checkbutton11; - GtkWidget *vbox40; GtkWidget *appearance_label; GtkWidget *mouse_page_vbox; GtkWidget *vbox20; @@ -2200,74 +2221,7 @@ gtk_container_add (GTK_CONTAINER (skin_view_scrolled_window), skin_view); gtk_widget_set_size_request (skin_view, -1, 100); - vbox39 = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (vbox37), vbox39, FALSE, TRUE, 0); - - alignment96 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_box_pack_start (GTK_BOX (vbox39), alignment96, TRUE, TRUE, 0); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment96), 12, 6, 0, 0); - - label104 = gtk_label_new_with_mnemonic (_("<b>_Fonts</b>")); - gtk_container_add (GTK_CONTAINER (alignment96), label104); - gtk_label_set_use_markup (GTK_LABEL (label104), TRUE); - gtk_misc_set_alignment (GTK_MISC (label104), 0, 0.5); - - table14 = gtk_table_new (2, 2, FALSE); - gtk_box_pack_start (GTK_BOX (vbox39), table14, TRUE, TRUE, 0); - gtk_table_set_row_spacings (GTK_TABLE (table14), 8); - gtk_table_set_col_spacings (GTK_TABLE (table14), 2); - - alignment97 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_table_attach (GTK_TABLE (table14), alignment97, 0, 1, 0, 1, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment97), 0, 0, 12, 6); - - label105 = gtk_label_new_with_mnemonic (_("_Player:")); - gtk_container_add (GTK_CONTAINER (alignment97), label105); - gtk_label_set_use_markup (GTK_LABEL (label105), TRUE); - gtk_misc_set_alignment (GTK_MISC (label105), 1, 0.5); - - alignment98 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_table_attach (GTK_TABLE (table14), alignment98, 0, 1, 1, 2, - (GtkAttachOptions) (0), - (GtkAttachOptions) (0), 0, 0); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment98), 0, 0, 12, 6); - - label106 = gtk_label_new_with_mnemonic (_("_Playlist:")); - gtk_container_add (GTK_CONTAINER (alignment98), label106); - gtk_label_set_use_markup (GTK_LABEL (label106), TRUE); - gtk_label_set_justify (GTK_LABEL (label106), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (label106), 1, 0.5); - - fontbutton1 = gtk_font_button_new (); - gtk_table_attach (GTK_TABLE (table14), fontbutton1, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_font_button_set_title (GTK_FONT_BUTTON (fontbutton1), _("Select main player window font:")); - gtk_font_button_set_use_font (GTK_FONT_BUTTON (fontbutton1), TRUE); - gtk_font_button_set_use_size (GTK_FONT_BUTTON (fontbutton1), TRUE); - - fontbutton2 = gtk_font_button_new (); - gtk_table_attach (GTK_TABLE (table14), fontbutton2, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_font_button_set_title (GTK_FONT_BUTTON (fontbutton2), _("Select playlist font:")); - gtk_font_button_set_use_font (GTK_FONT_BUTTON (fontbutton2), TRUE); - gtk_font_button_set_use_size (GTK_FONT_BUTTON (fontbutton2), TRUE); - - alignment99 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_box_pack_start (GTK_BOX (vbox39), alignment99, TRUE, TRUE, 0); - gtk_alignment_set_padding (GTK_ALIGNMENT (alignment99), 4, 0, 12, 0); - - checkbutton11 = gtk_check_button_new_with_mnemonic (_("Use Bitmap fonts if available")); - gtk_container_add (GTK_CONTAINER (alignment99), checkbutton11); - gtk_tooltips_set_tip (tooltips, checkbutton11, _("Use bitmap fonts if they are available. Bitmap fonts do not support Unicode strings."), NULL); - - vbox40 = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (vbox37), vbox40, FALSE, TRUE, 0); - - create_widgets(GTK_BOX(vbox40), appearance_misc_widgets, G_N_ELEMENTS(appearance_misc_widgets)); + create_widgets(GTK_BOX(vbox37), appearance_misc_widgets, G_N_ELEMENTS(appearance_misc_widgets)); appearance_label = gtk_label_new (_("Appearance")); gtk_notebook_set_tab_label (GTK_NOTEBOOK (category_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (category_notebook), 1), appearance_label); @@ -2754,9 +2708,6 @@ gtk_label_set_mnemonic_widget (GTK_LABEL (label53), category_notebook); gtk_label_set_mnemonic_widget (GTK_LABEL (label64), category_notebook); gtk_label_set_mnemonic_widget (GTK_LABEL (label103), category_notebook); - gtk_label_set_mnemonic_widget (GTK_LABEL (label104), category_notebook); - gtk_label_set_mnemonic_widget (GTK_LABEL (label105), fontbutton1); - gtk_label_set_mnemonic_widget (GTK_LABEL (label106), fontbutton2); gtk_window_add_accel_group (GTK_WINDOW (prefswin), accel_group); @@ -2785,24 +2736,6 @@ g_signal_connect_after(G_OBJECT(skin_view), "realize", G_CALLBACK(on_skin_view_realize), NULL); - g_signal_connect_after(G_OBJECT(fontbutton1), "realize", - G_CALLBACK(on_mainwin_font_button_realize), - NULL); - g_signal_connect(G_OBJECT(fontbutton1), "font_set", - G_CALLBACK(on_mainwin_font_button_font_set), - NULL); - g_signal_connect_after(G_OBJECT(fontbutton2), "realize", - G_CALLBACK(on_playlist_font_button_realize), - NULL); - g_signal_connect(G_OBJECT(fontbutton2), "font_set", - G_CALLBACK(on_playlist_font_button_font_set), - NULL); - g_signal_connect(G_OBJECT(checkbutton11), "toggled", - G_CALLBACK(on_use_bitmap_fonts_toggled), - NULL); - g_signal_connect_after(G_OBJECT(checkbutton11), "realize", - G_CALLBACK(on_use_bitmap_fonts_realize), - NULL); g_signal_connect(G_OBJECT(titlestring_entry), "changed", G_CALLBACK(on_titlestring_entry_changed), NULL); @@ -3010,10 +2943,6 @@ G_CALLBACK(on_skin_refresh_button_clicked), NULL); - g_signal_connect(mainwin, "drag-data-received", - G_CALLBACK(mainwin_drag_data_received), - fontbutton2); - g_signal_connect(titlestring_cbox, "realize", G_CALLBACK(on_titlestring_cbox_realize), titlestring_entry);