diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-08-24 05:45:07 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-08-24 05:45:07 +0000 |
commit | d99c5a9b8032f5290c640bcea7f406326c325c04 (patch) | |
tree | df9554fb5f98a8f609da336905861f5bbc6dca47 | |
parent | d501e68c2df3979e02f8674364dc0f43f7dc438f (diff) |
use GtkFontButton for font setting.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@504 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.ja | 6 | ||||
-rw-r--r-- | src/prefs.c | 40 | ||||
-rw-r--r-- | src/prefs.h | 2 | ||||
-rw-r--r-- | src/prefs_common.c | 97 |
5 files changed, 65 insertions, 86 deletions
@@ -1,5 +1,11 @@ 2005-08-24 + * src/prefs.[ch] + src/prefs_common.c: use GtkFontButton for font setting (thanks to + Alfons). + +2005-08-24 + * src/stock_pixmap.[ch] src/summaryview.c src/prefs_filter_edit.c: removed stock_pixmap_widget() (instead diff --git a/ChangeLog.ja b/ChangeLog.ja index a2643217..e4a50297 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,11 @@ 2005-08-24 + * src/prefs.[ch] + src/prefs_common.c: フォントの設定に GtkFontButton を使用(Alfons + さん thanks)。 + +2005-08-24 + * src/stock_pixmap.[ch] src/summaryview.c src/prefs_filter_edit.c: stock_pixmap_widget() を削除(代わりに diff --git a/src/prefs.c b/src/prefs.c index 759a1564..444d3ae8 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -836,3 +836,43 @@ void prefs_set_spinbtn(PrefParam *pparam) pparam->type); } } + +void prefs_set_data_from_fontbtn(PrefParam *pparam) +{ + gchar **str; + const gchar *font_str; + + g_return_if_fail(*pparam->widget != NULL); + + font_str = gtk_font_button_get_font_name + (GTK_FONT_BUTTON(*pparam->widget)); + + switch (pparam->type) { + case P_STRING: + str = (gchar **)pparam->data; + g_free(*str); + *str = font_str[0] ? g_strdup(font_str) : NULL; + break; + default: + g_warning("Invalid PrefType for GtkFontButton widget: %d\n", + pparam->type); + } +} + +void prefs_set_fontbtn(PrefParam *pparam) +{ + gchar **str; + + g_return_if_fail(*pparam->widget != NULL); + + switch (pparam->type) { + case P_STRING: + str = (gchar **)pparam->data; + gtk_font_button_set_font_name(GTK_FONT_BUTTON(*pparam->widget), + *str ? *str : ""); + break; + default: + g_warning("Invalid PrefType for GtkFontButton widget: %d\n", + pparam->type); + } +} diff --git a/src/prefs.h b/src/prefs.h index 015dd002..b81bea68 100644 --- a/src/prefs.h +++ b/src/prefs.h @@ -186,5 +186,7 @@ void prefs_set_data_from_toggle (PrefParam *pparam); void prefs_set_toggle (PrefParam *pparam); void prefs_set_data_from_spinbtn(PrefParam *pparam); void prefs_set_spinbtn (PrefParam *pparam); +void prefs_set_data_from_fontbtn(PrefParam *pparam); +void prefs_set_fontbtn (PrefParam *pparam); #endif /* __PREFS_H__ */ diff --git a/src/prefs_common.c b/src/prefs_common.c index 9c9b8c88..305d1892 100644 --- a/src/prefs_common.c +++ b/src/prefs_common.c @@ -117,8 +117,7 @@ static struct Quote { } quote; static struct Display { - GtkWidget *entry_textfont; - GtkWidget *button_textfont; + GtkWidget *fontbtn_textfont; GtkWidget *chkbtn_folder_unread; GtkWidget *entry_ng_abbrev_len; @@ -217,7 +216,6 @@ static struct KeybindDialog { } keybind; static GtkWidget *quote_desc_win; -static GtkWidget *font_sel_win; static GtkWidget *quote_color_win; static GtkWidget *color_dialog; @@ -360,8 +358,10 @@ static PrefParam param[] = { prefs_set_data_from_text, prefs_set_text}, /* Display */ - {"message_font_name", DEFAULT_MESSAGE_FONT, &prefs_common.textfont, P_STRING, - &display.entry_textfont, prefs_set_data_from_entry, prefs_set_entry}, + {"message_font_name", DEFAULT_MESSAGE_FONT, + &prefs_common.textfont, P_STRING, + &display.fontbtn_textfont, + prefs_set_data_from_fontbtn, prefs_set_fontbtn}, {"display_folder_unread_num", "TRUE", &prefs_common.display_folder_unread, P_BOOL, @@ -779,12 +779,6 @@ static void set_button_bg_color (GtkWidget *widget, static void prefs_enable_message_color_toggled (void); static void prefs_recycle_colors_toggled (GtkWidget *widget); -static void prefs_font_select (GtkButton *button); -static gboolean prefs_font_selection_key_pressed(GtkWidget *widget, - GdkEventKey *event, - gpointer data); -static void prefs_font_selection_ok (GtkButton *button); - static void prefs_keybind_select (void); static gint prefs_keybind_deleted (GtkWidget *widget, GdkEventAny *event, @@ -1610,8 +1604,7 @@ static void prefs_display_create(void) GtkWidget *frame_font; GtkWidget *table1; GtkWidget *label_textfont; - GtkWidget *entry_textfont; - GtkWidget *button_textfont; + GtkWidget *fontbtn_textfont; GtkWidget *chkbtn_transhdr; GtkWidget *chkbtn_folder_unread; GtkWidget *hbox1; @@ -1635,7 +1628,7 @@ static void prefs_display_create(void) PACK_FRAME(vbox1, frame_font, _("Font")); - table1 = gtk_table_new (1, 3, FALSE); + table1 = gtk_table_new (1, 2, FALSE); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (frame_font), table1); gtk_container_set_border_width (GTK_CONTAINER (table1), 8); @@ -1647,18 +1640,11 @@ static void prefs_display_create(void) gtk_table_attach (GTK_TABLE (table1), label_textfont, 0, 1, 0, 1, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0); - entry_textfont = gtk_entry_new (); - gtk_widget_show (entry_textfont); - gtk_table_attach (GTK_TABLE (table1), entry_textfont, 1, 2, 0, 1, + fontbtn_textfont = gtk_font_button_new (); + gtk_widget_show (fontbtn_textfont); + gtk_table_attach (GTK_TABLE (table1), fontbtn_textfont, 1, 2, 0, 1, (GTK_EXPAND | GTK_FILL), 0, 0, 0); - button_textfont = gtk_button_new_with_label ("... "); - gtk_widget_show (button_textfont); - gtk_table_attach (GTK_TABLE (table1), button_textfont, 2, 3, 0, 1, - 0, 0, 0, 0); - g_signal_connect (G_OBJECT (button_textfont), "clicked", - G_CALLBACK (prefs_font_select), NULL); - vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, TRUE, 0); @@ -1744,8 +1730,7 @@ static void prefs_display_create(void) g_signal_connect (G_OBJECT (button_dispitem), "clicked", G_CALLBACK (prefs_summary_column_open), NULL); - display.entry_textfont = entry_textfont; - display.button_textfont = button_textfont; + display.fontbtn_textfont = fontbtn_textfont; display.chkbtn_transhdr = chkbtn_transhdr; display.chkbtn_folder_unread = chkbtn_folder_unread; @@ -3214,66 +3199,6 @@ static gboolean prefs_quote_description_key_pressed(GtkWidget *widget, return FALSE; } -static void prefs_font_select(GtkButton *button) -{ - if (!font_sel_win) { - font_sel_win = gtk_font_selection_dialog_new - (_("Font selection")); - gtk_window_set_position(GTK_WINDOW(font_sel_win), - GTK_WIN_POS_CENTER); - g_signal_connect(G_OBJECT(font_sel_win), "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), NULL); - g_signal_connect - (G_OBJECT(font_sel_win), "key_press_event", - G_CALLBACK(prefs_font_selection_key_pressed), NULL); - g_signal_connect - (G_OBJECT(GTK_FONT_SELECTION_DIALOG(font_sel_win)->ok_button), - "clicked", - G_CALLBACK(prefs_font_selection_ok), NULL); - g_signal_connect_closure - (G_OBJECT(GTK_FONT_SELECTION_DIALOG(font_sel_win)->cancel_button), - "clicked", - g_cclosure_new_swap(G_CALLBACK(gtk_widget_hide_on_delete), - font_sel_win, NULL), - FALSE); - } - - if (prefs_common.textfont) - gtk_font_selection_dialog_set_font_name - (GTK_FONT_SELECTION_DIALOG(font_sel_win), - prefs_common.textfont); - - manage_window_set_transient(GTK_WINDOW(font_sel_win)); - gtk_window_set_modal(GTK_WINDOW(font_sel_win), TRUE); - gtk_widget_grab_focus - (GTK_FONT_SELECTION_DIALOG(font_sel_win)->ok_button); - gtk_widget_show(font_sel_win); -} - -static gboolean prefs_font_selection_key_pressed(GtkWidget *widget, - GdkEventKey *event, - gpointer data) -{ - if (event && event->keyval == GDK_Escape) - gtk_widget_hide(font_sel_win); - return FALSE; -} - -static void prefs_font_selection_ok(GtkButton *button) -{ - gchar *fontname; - - fontname = gtk_font_selection_dialog_get_font_name - (GTK_FONT_SELECTION_DIALOG(font_sel_win)); - - if (fontname) { - gtk_entry_set_text(GTK_ENTRY(display.entry_textfont), fontname); - g_free(fontname); - } - - gtk_widget_hide(font_sel_win); -} - static void prefs_keybind_select(void) { GtkWidget *window; |