talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 66ed085a534ab527a6c6a3e189b822b57b42229a
parent c1078e183e89cc60ea8966e6f66816e1ae508cab
Author: Colin Leroy <colin@colino.net>
Date:   Mon, 16 Mar 2009 18:05:53 +0000

2009-03-16 [colin]	3.7.1cvs15

	* src/prefs_customheader.c
		Add a (X-)Face preview. Patch by iwkse.

Diffstat:
MChangeLog | 5+++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/prefs_customheader.c | 39++++++++++++++++++++++++++++++++++++++-
4 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,8 @@ +2009-03-16 [colin] 3.7.1cvs15 + + * src/prefs_customheader.c + Add a (X-)Face preview. Patch by iwkse. + 2009-03-16 [colin] 3.7.1cvs14 * src/compose.c diff --git a/PATCHSETS b/PATCHSETS @@ -3754,3 +3754,4 @@ ( cvs diff -u -r 1.36.2.166 -r 1.36.2.167 src/common/utils.c; ) > 3.7.1cvs12.patchset ( cvs diff -u -r 1.9.2.67 -r 1.9.2.68 src/gtk/gtkaspell.c; ) > 3.7.1cvs13.patchset ( cvs diff -u -r 1.382.2.503 -r 1.382.2.504 src/compose.c; cvs diff -u -r 1.213.2.190 -r 1.213.2.191 src/folder.c; cvs diff -u -r 1.87.2.58 -r 1.87.2.59 src/folder.h; cvs diff -u -r 1.16.2.65 -r 1.16.2.66 src/msgcache.c; cvs diff -u -r 1.5.2.15 -r 1.5.2.16 src/common/prefs.c; ) > 3.7.1cvs14.patchset +( cvs diff -u -r 1.16.2.34 -r 1.16.2.35 src/prefs_customheader.c; ) > 3.7.1cvs15.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=7 MICRO_VERSION=1 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=14 +EXTRA_VERSION=15 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/prefs_customheader.c b/src/prefs_customheader.c @@ -64,6 +64,7 @@ static struct CustomHdr { GtkWidget *hdr_combo; GtkWidget *hdr_entry; GtkWidget *val_entry; + GtkWidget *preview; GtkWidget *list_view; } customhdr; @@ -150,6 +151,7 @@ static void prefs_custom_header_create(void) GtkWidget *arrow; GtkWidget *add_btn; GtkWidget *del_btn; + GtkWidget *preview; GtkWidget *ch_hbox; GtkWidget *ch_scrolledwin; @@ -290,6 +292,10 @@ static void prefs_custom_header_create(void) gtk_widget_show (btn_vbox); gtk_box_pack_start (GTK_BOX (ch_hbox), btn_vbox, FALSE, FALSE, 0); + preview = gtk_image_new (); + gtk_widget_show (preview); + gtk_box_pack_start (GTK_BOX (btn_vbox), preview, FALSE, FALSE, 0); + up_btn = gtk_button_new_from_stock (GTK_STOCK_GO_UP); gtk_widget_show (up_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), up_btn, FALSE, FALSE, 0); @@ -307,6 +313,7 @@ static void prefs_custom_header_create(void) customhdr.window = window; customhdr.ok_btn = ok_btn; customhdr.cancel_btn = cancel_btn; + customhdr.preview = preview; customhdr.hdr_combo = hdr_combo; customhdr.hdr_entry = gtk_bin_get_child(GTK_BIN((hdr_combo))); @@ -884,6 +891,8 @@ static gboolean prefs_custom_header_selected(GtkTreeSelection *selector, { GtkTreeIter iter; CustomHeader *ch; + GtkImage *preview; + GdkPixbuf *pixbuf; CustomHeader default_ch = { 0, "", NULL }; if (currently_selected) @@ -900,7 +909,35 @@ static gboolean prefs_custom_header_selected(GtkTreeSelection *selector, ENTRY_SET_TEXT(customhdr.hdr_entry, ch->name); ENTRY_SET_TEXT(customhdr.val_entry, ch->value); - + if (!g_strcmp0("Face",ch->name)) { + preview = GTK_IMAGE(face_get_from_header (ch->value)); + pixbuf = gtk_image_get_pixbuf(preview); + gtk_image_set_from_pixbuf (GTK_IMAGE(customhdr.preview), pixbuf); + gtk_widget_show(customhdr.preview); +#if GLIB_CHECK_VERSION(2,10,0) + g_object_ref_sink (G_OBJECT(preview)); +#else + gtk_object_ref (G_OBJECT(preview)); + gtk_object_sink (G_OBJECT(preview)); +#endif + } else if (!g_strcmp0("X-Face", ch->name)) { + GdkColor color; + color.pixel = 0; + preview = GTK_IMAGE(xface_get_from_header(ch->value, + &color, + mainwindow_get_mainwindow()->window->window)); + pixbuf = gtk_image_get_pixbuf(preview); + gtk_image_set_from_pixbuf (GTK_IMAGE(customhdr.preview), pixbuf); + gtk_widget_show(customhdr.preview); +#if GLIB_CHECK_VERSION(2,10,0) + g_object_ref_sink (G_OBJECT(preview)); +#else + gtk_object_ref (G_OBJECT(preview)); + gtk_object_sink (G_OBJECT(preview)); +#endif + } else { + gtk_widget_hide(customhdr.preview); + } return TRUE; }