From ddc8a56649bd28bb8c02bd90beb1c023d8801788 Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 16 Aug 2012 02:50:32 +0000 Subject: added tooltips of header labels. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3150 ee746299-78ed-0310-b773-934348b2243d --- src/headerview.c | 28 +++++++++++++++++++++++++++- src/headerview.h | 5 ++++- 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/headerview.c b/src/headerview.c index 5156099f..1b60454e 100644 --- a/src/headerview.c +++ b/src/headerview.c @@ -1,6 +1,6 @@ /* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2006 Hiroyuki Yamamoto + * Copyright (C) 1999-2012 Hiroyuki Yamamoto * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -86,6 +87,7 @@ HeaderView *headerview_create(void) GtkWidget *ng_body_label; GtkWidget *subject_header_label; GtkWidget *subject_body_label; + GtkTooltips *tip; debug_print(_("Creating header view...\n")); headerview = g_new0(HeaderView, 1); @@ -123,6 +125,9 @@ HeaderView *headerview_create(void) GTK_WIDGET_UNSET_FLAGS(ng_body_label, GTK_CAN_FOCUS); GTK_WIDGET_UNSET_FLAGS(subject_body_label, GTK_CAN_FOCUS); + tip = gtk_tooltips_new(); + g_object_ref_sink(tip); + gtk_box_pack_start(GTK_BOX(hbox1), from_header_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox1), from_body_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox1), to_header_label, FALSE, FALSE, 0); @@ -145,8 +150,11 @@ HeaderView *headerview_create(void) headerview->ng_body_label = ng_body_label; headerview->subject_header_label = subject_header_label; headerview->subject_body_label = subject_body_label; + headerview->image = NULL; + headerview->tip = tip; + gtk_widget_show_all(hbox); return headerview; @@ -208,29 +216,44 @@ void headerview_show(HeaderView *headerview, MsgInfo *msginfo) { headerview_clear(headerview); + gtk_tooltips_enable(headerview->tip); + gtk_label_set_text(GTK_LABEL(headerview->from_body_label), msginfo->from ? msginfo->from : _("(No From)")); + if (msginfo->from) { + gtk_tooltips_set_tip(headerview->tip, headerview->from_body_label, msginfo->from, NULL); + } + if (msginfo->to) { gtk_label_set_text(GTK_LABEL(headerview->to_body_label), msginfo->to); gtk_widget_show(headerview->to_header_label); gtk_widget_show(headerview->to_body_label); + gtk_tooltips_set_tip(headerview->tip, headerview->to_body_label, msginfo->to, NULL); } + if (msginfo->cc) { gtk_label_set_text(GTK_LABEL(headerview->cc_body_label), msginfo->cc); gtk_widget_show(headerview->cc_header_label); gtk_widget_show(headerview->cc_body_label); + gtk_tooltips_set_tip(headerview->tip, headerview->cc_body_label, msginfo->cc, NULL); } + if (msginfo->newsgroups) { gtk_label_set_text(GTK_LABEL(headerview->ng_body_label), msginfo->newsgroups); gtk_widget_show(headerview->ng_header_label); gtk_widget_show(headerview->ng_body_label); + gtk_tooltips_set_tip(headerview->tip, headerview->ng_body_label, msginfo->newsgroups, NULL); } + gtk_label_set_text(GTK_LABEL(headerview->subject_body_label), msginfo->subject ? msginfo->subject : _("(No Subject)")); + if (msginfo->subject) { + gtk_tooltips_set_tip(headerview->tip, headerview->subject_body_label, msginfo->subject, NULL); + } #if HAVE_LIBCOMPFACE headerview_show_xface(headerview, msginfo); @@ -300,6 +323,8 @@ void headerview_clear(HeaderView *headerview) gtk_widget_hide(headerview->ng_header_label); gtk_widget_hide(headerview->ng_body_label); + gtk_tooltips_disable(headerview->tip); + if (headerview->image && GTK_WIDGET_VISIBLE(headerview->image)) { gtk_widget_hide(headerview->image); gtk_widget_queue_resize(headerview->hbox); @@ -316,6 +341,7 @@ void headerview_set_visibility(HeaderView *headerview, gboolean visibility) void headerview_destroy(HeaderView *headerview) { + g_object_unref(headerview->tip); g_free(headerview); } diff --git a/src/headerview.h b/src/headerview.h index bf1e4db4..dea52b23 100644 --- a/src/headerview.h +++ b/src/headerview.h @@ -1,6 +1,6 @@ /* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2006 Hiroyuki Yamamoto + * Copyright (C) 1999-2012 Hiroyuki Yamamoto * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include #include +#include #include "procmsg.h" @@ -43,6 +44,8 @@ struct _HeaderView GtkWidget *subject_body_label; GtkWidget *image; + + GtkTooltips *tip; }; HeaderView *headerview_create (void); -- cgit v1.2.3