#include "defs.h"
#include <glib.h>
+#include <glib/gi18n.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkstyle.h>
#include <gtk/gtkscrolledwindow.h>
#include <gtk/gtkhbox.h>
#include <gtk/gtkvbox.h>
#include <gtk/gtklabel.h>
-#include <gtk/gtkpixmap.h>
+#include <gtk/gtkimage.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
# include <compface.h>
#endif
-#include "intl.h"
#include "headerview.h"
#include "prefs_common.h"
#include "codeconv.h"
#include "gtkutils.h"
#include "utils.h"
-static GdkFont *boldfont;
-
#define TR(str) (prefs_common.trans_hdr ? gettext(str) : str)
#if 0
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);
- gtk_box_pack_start(GTK_BOX(hbox1), to_body_label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox1), to_body_label, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox1), ng_header_label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox1), ng_body_label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox1), ng_body_label, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox2), subject_header_label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox2), subject_body_label, FALSE, FALSE, 0);
-
+ gtk_box_pack_start(GTK_BOX(hbox2), subject_body_label, TRUE, TRUE, 0);
+
+ gtk_misc_set_alignment(GTK_MISC(to_body_label), 0, 0.5);
+ gtk_misc_set_alignment(GTK_MISC(ng_body_label), 0, 0.5);
+ gtk_misc_set_alignment(GTK_MISC(subject_body_label), 0, 0.5);
+#if (GTK_MAJOR_VERSION > 2 || (GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION >= 6))
+ gtk_label_set_ellipsize(GTK_LABEL(to_body_label), PANGO_ELLIPSIZE_END);
+ gtk_label_set_ellipsize(GTK_LABEL(ng_body_label), PANGO_ELLIPSIZE_END);
+ gtk_label_set_ellipsize(GTK_LABEL(subject_body_label), PANGO_ELLIPSIZE_END);
+#endif
headerview->hbox = hbox;
headerview->from_header_label = from_header_label;
headerview->from_body_label = from_body_label;
void headerview_init(HeaderView *headerview)
{
- if (!boldfont)
- boldfont = gtkut_font_load(BOLD_FONT);
-
-#define SET_FONT_STYLE(wid) \
-{ \
- GtkStyle *style; \
- \
- style = gtk_style_copy(gtk_widget_get_style(headerview->wid)); \
- if (boldfont) \
- style->font = boldfont; \
- gtk_widget_set_style(headerview->wid, style); \
-}
+ static PangoFontDescription *boldfont = NULL;
- SET_FONT_STYLE(from_header_label);
- SET_FONT_STYLE(to_header_label);
- SET_FONT_STYLE(ng_header_label);
- SET_FONT_STYLE(subject_header_label);
+ if (!boldfont) {
+ boldfont = pango_font_description_from_string(BOLD_FONT);
+ pango_font_description_set_weight(boldfont, PANGO_WEIGHT_BOLD);
+ }
+
+ if (boldfont) {
+ gtk_widget_modify_font(headerview->from_header_label, boldfont);
+ gtk_widget_modify_font(headerview->to_header_label, boldfont);
+ gtk_widget_modify_font(headerview->ng_header_label, boldfont);
+ gtk_widget_modify_font(headerview->subject_header_label, boldfont);
+ }
headerview_clear(headerview);
headerview_set_visibility(headerview, prefs_common.display_header_pane);
void headerview_show(HeaderView *headerview, MsgInfo *msginfo)
{
- gchar *str;
-
headerview_clear(headerview);
- if (msginfo->from) {
- Xstrdup_a(str, msginfo->from, return);
- conv_unreadable_locale(str);
- } else
- str = NULL;
gtk_label_set_text(GTK_LABEL(headerview->from_body_label),
- str ? str : _("(No From)"));
+ msginfo->from ? msginfo->from : _("(No From)"));
if (msginfo->to) {
- Xstrdup_a(str, msginfo->to, return);
- conv_unreadable_locale(str);
- gtk_label_set_text(GTK_LABEL(headerview->to_body_label), str);
+ 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);
}
if (msginfo->newsgroups) {
- Xstrdup_a(str, msginfo->newsgroups, return);
- conv_unreadable_locale(str);
- gtk_label_set_text(GTK_LABEL(headerview->ng_body_label), str);
+ 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);
}
- if (msginfo->subject) {
- Xstrdup_a(str, msginfo->subject, return);
- conv_unreadable_locale(str);
- } else
- str = NULL;
gtk_label_set_text(GTK_LABEL(headerview->subject_body_label),
- str ? str : _("(No Subject)"));
+ msginfo->subject ? msginfo->subject :
+ _("(No Subject)"));
#if HAVE_LIBCOMPFACE
headerview_show_xface(headerview, msginfo);
if (!headerview->image) {
GtkWidget *image;
- image = gtk_pixmap_new(pixmap, mask);
+ image = gtk_image_new_from_pixmap(pixmap, mask);
gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
gtk_widget_show(image);
headerview->image = image;
} else {
- gtk_pixmap_set(GTK_PIXMAP(headerview->image), pixmap, mask);
+ gtk_image_set_from_pixmap(GTK_IMAGE(headerview->image), pixmap, mask);
gtk_widget_show(headerview->image);
}
- gdk_pixmap_unref(pixmap);
+ g_object_unref(pixmap);
}
#endif