/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2004 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2005 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
GtkItemFactory *popupfactory;
GtkWidget *popupmenu;
gint n_entries;
- PangoFontDescription *font_desc = NULL;
debug_print("Creating text view...\n");
textview = g_new0(TextView, 1);
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_widget_set_size_request(scrolledwin, prefs_common.mainview_width, -1);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_SHADOW_IN);
+ gtk_widget_set_size_request
+ (scrolledwin, prefs_common.mainview_width, -1);
/* create GtkSText widgets for single-byte and multi-byte character */
text = gtk_text_view_new();
gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD_CHAR);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text), FALSE);
+ gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text), 6);
+ gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text), 6);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
gtk_widget_ensure_style(text);
- if (prefs_common.normalfont)
- font_desc = pango_font_description_from_string
- (prefs_common.normalfont);
- if (font_desc) {
- gtk_widget_modify_font(text, font_desc);
- }
- pango_font_description_free(font_desc);
-
gtk_widget_ref(scrolledwin);
gtk_container_add(GTK_CONTAINER(scrolledwin), text);
static void textview_create_tags(GtkTextView *text, TextView *textview)
{
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
+ GtkTextBuffer *buffer;
GtkTextTag *tag;
+ static PangoFontDescription *font_desc, *bold_font_desc;
+
+ if (!font_desc)
+ font_desc = pango_font_description_from_string
+ (NORMAL_FONT);
+
+ if (!bold_font_desc) {
+ bold_font_desc = pango_font_description_from_string
+ (BOLD_FONT);
+ pango_font_description_set_weight
+ (bold_font_desc, PANGO_WEIGHT_BOLD);
+ }
+
+ buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_create_tag(buffer, "header",
"pixels-above-lines", 0,
"pixels-above-lines-set", TRUE,
"pixels-below-lines", 0,
"pixels-below-lines-set", TRUE,
+ "font-desc", font_desc,
"left-margin", 0,
"left-margin-set", TRUE,
NULL);
gtk_text_buffer_create_tag(buffer, "header_title",
- "font", prefs_common.boldfont,
+ "font-desc", bold_font_desc,
NULL);
gtk_text_buffer_create_tag(buffer, "quote0",
"foreground-gdk", "e_colors[0],
void textview_init(TextView *textview)
{
- gtkut_widget_disable_theme_engine(textview->text);
textview_update_message_colors();
textview_set_all_headers(textview, FALSE);
textview_set_font(textview, NULL);
-
textview_create_tags(GTK_TEXT_VIEW(textview->text), textview);
}
last->ep);
uri->start = gtk_text_iter_get_offset(&iter);
gtk_text_buffer_insert_with_tags_by_name
- (buffer, &iter,
- last->bp, last->ep - last->bp,
- uri_tag, NULL);
+ (buffer, &iter, last->bp, last->ep - last->bp,
+ uri_tag, fg_tag, NULL);
uri->end = gtk_text_iter_get_offset(&iter);
textview->uri_list =
g_slist_append(textview->uri_list, uri);
}
if (*normal_text)
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
- normal_text, -1,
- fg_tag, NULL);
+ gtk_text_buffer_insert_with_tags_by_name
+ (buffer, &iter, normal_text, -1, fg_tag, NULL);
} else {
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
- linebuf, -1,
- fg_tag, NULL);
+ gtk_text_buffer_insert_with_tags_by_name
+ (buffer, &iter, linebuf, -1, fg_tag, NULL);
}
}
buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_get_end_iter(buffer, &iter);
- if (!conv) {
+ if (!conv)
strncpy2(buf, str, sizeof(buf));
- } else if (conv_convert(conv, buf, sizeof(buf), str) < 0) {
- conv_localetodisp(buf, sizeof(buf), str);
- }
+ else if (conv_convert(conv, buf, sizeof(buf), str) < 0)
+ conv_utf8todisp(buf, sizeof(buf), str);
strcrchomp(buf);
- if (prefs_common.conv_mb_alnum) conv_mb_alnum(buf);
+ //if (prefs_common.conv_mb_alnum) conv_mb_alnum(buf);
fg_color = NULL;
/* change color of quotation
buffer = gtk_text_view_get_buffer(text);
gtk_text_buffer_get_end_iter(buffer, &iter);
-#warning FIXME_GTK2
-#if 0
- if (!conv) {
- if (textview->text_is_mb)
- conv_localetodisp(buf, sizeof(buf), str);
- else
- strncpy2(buf, str, sizeof(buf));
- } else if (conv_convert(conv, buf, sizeof(buf), str) < 0)
- conv_localetodisp(buf, sizeof(buf), str);
- else if (textview->text_is_mb)
- conv_unreadable_locale(buf);
-#else
if (!conv)
strncpy2(buf, str, sizeof(buf));
else if (conv_convert(conv, buf, sizeof(buf), str) < 0)
- conv_localetodisp(buf, sizeof(buf), str);
-#endif
+ conv_utf8todisp(buf, sizeof(buf), str);
strcrchomp(buf);
r_uri = g_new(RemoteURI, 1);
r_uri->uri = g_strdup(uri);
r_uri->start = gtk_text_iter_get_offset(&iter);
- gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, bufp, -1,
- "link", NULL);
+ gtk_text_buffer_insert_with_tags_by_name
+ (buffer, &iter, bufp, -1, "link", NULL);
r_uri->end = gtk_text_iter_get_offset(&iter);
textview->uri_list = g_slist_append(textview->uri_list, r_uri);
}
if (prefs_common.textfont) {
PangoFontDescription *font_desc = NULL;
- if (prefs_common.textfont)
- font_desc = pango_font_description_from_string
+ font_desc = pango_font_description_from_string
(prefs_common.textfont);
if (font_desc) {
gtk_widget_modify_font(textview->text, font_desc);
prefs_common.line_space / 2);
gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(textview->text),
prefs_common.line_space / 2);
- if (prefs_common.head_space) {
- gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview->text), 6);
- } else {
- gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview->text), 0);
- }
}
void textview_set_text(TextView *textview, const gchar *text)
if (!up) {
upper = vadj->upper - vadj->page_size;
if (vadj->value < upper) {
- vadj->value +=
- vadj->step_increment * 4;
- vadj->value =
- MIN(vadj->value, upper);
+ vadj->value += vadj->step_increment;
+ vadj->value = MIN(vadj->value, upper);
g_signal_emit_by_name(G_OBJECT(vadj),
"value_changed", 0);
}
} else {
if (vadj->value > 0.0) {
- vadj->value -=
- vadj->step_increment * 4;
- vadj->value =
- MAX(vadj->value, 0.0);
+ vadj->value -= vadj->step_increment;
+ vadj->value = MAX(vadj->value, 0.0);
g_signal_emit_by_name(G_OBJECT(vadj),
"value_changed", 0);
}
upper = vadj->upper - vadj->page_size;
if (vadj->value < upper) {
old_value = vadj->value;
- last_value = vadj->value +
- vadj->step_increment * 4;
+ last_value = vadj->value + vadj->step_increment;
last_value = MIN(last_value, upper);
textview_smooth_scroll_do(textview, old_value,
} else {
if (vadj->value > 0.0) {
old_value = vadj->value;
- last_value = vadj->value -
- vadj->step_increment * 4;
+ last_value = vadj->value - vadj->step_increment;
last_value = MAX(last_value, 0.0);
textview_smooth_scroll_do(textview, old_value,
case GDK_End:
case GDK_Control_L:
case GDK_Control_R:
- break;
+ return FALSE;
case GDK_space:
if (summaryview)
summary_pass_key_press_event(summaryview, event);
"the apparent URL (%s).\n"
"Open it anyway?"),
uri->uri, visible_str);
- aval = alertpanel_with_type(_("Warning"), msg, _("Yes"), _("No"), NULL,
- NULL, ALERT_WARNING);
+ aval = alertpanel_with_type(_("Warning"), msg,
+ GTK_STOCK_YES, GTK_STOCK_NO,
+ NULL, NULL, ALERT_WARNING);
g_free(msg);
if (aval == G_ALERTDEFAULT)
retval = TRUE;