GtkWidget *quote_level1_btn;
GtkWidget *quote_level2_btn;
GtkWidget *quote_level3_btn;
+ GtkWidget *quote_level1_bg_btn;
+ GtkWidget *quote_level2_bg_btn;
+ GtkWidget *quote_level3_bg_btn;
GtkWidget *uri_btn;
GtkWidget *tgt_folder_btn;
GtkWidget *signature_btn;
GtkWidget *window;
GtkWidget *chkbtn_enablecol;
+ GtkWidget *chkbtn_enablebgcol;
GtkWidget *chkbtn_recycle_colors;
/* custom colors */
GtkWidget *quotelevel1_label;
GtkWidget *quotelevel2_label;
GtkWidget *quotelevel3_label;
+ GtkWidget *chkbtn_enablebgcol;
+ GtkWidget *quotelevel1_bglabel;
+ GtkWidget *quotelevel2_bglabel;
+ GtkWidget *quotelevel3_bglabel;
GtkWidget *uri_label;
GtkWidget *signature_label;
GtkWidget *tgt_folder_label;
GtkWidget *color_new_label;
GtkWidget *msg_frame;
GtkWidget *folder_frame;
+ GtkWidget *hbox_quote;
+ GtkWidget *vbox_quotefg;
+ GtkWidget *vbox_quotebg;
/* custom colors */
GtkWidget *vbox_custom_colors;
GtkWidget *frame_custom_colors;
gtk_container_add (GTK_CONTAINER (msg_frame), vbox2);
gtk_container_set_border_width (GTK_CONTAINER (vbox2), VBOX_BORDER);
+
hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0);
+ hbox_quote = gtk_hbox_new(FALSE, 8);
+ gtk_widget_show (hbox_quote);
+ vbox_quotefg = gtk_vbox_new(FALSE, 8);
+ gtk_widget_show (vbox_quotefg);
+ vbox_quotebg = gtk_vbox_new(FALSE, 8);
+#if GTK_CHECK_VERSION(2, 8, 0)
+ gtk_widget_show (vbox_quotebg);
+#endif
+
+ gtk_box_pack_start (GTK_BOX (vbox2), hbox_quote, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox_quote), vbox_quotefg, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox_quote), vbox_quotebg, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0);
PACK_CHECK_BUTTON (hbox, chkbtn_enablecol,
_("Enable coloration of message text"));
hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0);
color_buttons.quote_level1_btn = gtk_button_new();
gtk_widget_show(color_buttons.quote_level1_btn);
hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0);
color_buttons.quote_level2_btn = gtk_button_new();
gtk_widget_show(color_buttons.quote_level2_btn);
hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0);
color_buttons.quote_level3_btn = gtk_button_new();
gtk_widget_show(color_buttons.quote_level3_btn);
FALSE, FALSE, 0);
SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, quotelevel3_label);
+
+ hbox = gtk_hbox_new(FALSE, 8);
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0);
+
+ PACK_CHECK_BUTTON (hbox, chkbtn_enablebgcol,
+ _("Enable coloration of background text"));
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, chkbtn_enablebgcol);
+
+ hbox = gtk_hbox_new(FALSE, 8);
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0);
+
+ color_buttons.quote_level1_bg_btn = gtk_button_new();
+ gtk_widget_show(color_buttons.quote_level1_bg_btn);
+ gtk_widget_set_size_request (color_buttons.quote_level1_bg_btn, 30, 20);
+ gtk_box_pack_start (GTK_BOX(hbox), color_buttons.quote_level1_bg_btn,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, color_buttons.quote_level1_bg_btn);
+
+ quotelevel1_bglabel = gtk_label_new (_(" Background"));
+ gtk_widget_show(quotelevel1_bglabel);
+ gtk_box_pack_start (GTK_BOX(hbox), quotelevel1_bglabel,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, quotelevel1_bglabel);
+
+ hbox = gtk_hbox_new(FALSE, 8);
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0);
+
+ color_buttons.quote_level2_bg_btn = gtk_button_new();
+ gtk_widget_show(color_buttons.quote_level2_bg_btn);
+ gtk_widget_set_size_request (color_buttons.quote_level2_bg_btn, 30, 20);
+ gtk_box_pack_start (GTK_BOX(hbox), color_buttons.quote_level2_bg_btn,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, color_buttons.quote_level2_bg_btn);
+
+ quotelevel2_bglabel = gtk_label_new (_(" Background"));
+ gtk_widget_show(quotelevel2_bglabel);
+ gtk_box_pack_start (GTK_BOX(hbox), quotelevel2_bglabel,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, quotelevel2_bglabel);
+
+ hbox = gtk_hbox_new(FALSE, 8);
+ gtk_widget_show (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0);
+
+ color_buttons.quote_level3_bg_btn = gtk_button_new();
+ gtk_widget_show(color_buttons.quote_level3_bg_btn);
+ gtk_widget_set_size_request (color_buttons.quote_level3_bg_btn, 30, 20);
+ gtk_box_pack_start (GTK_BOX(hbox), color_buttons.quote_level3_bg_btn,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, color_buttons.quote_level3_bg_btn);
+
+ quotelevel3_bglabel = gtk_label_new (_(" Background"));
+ gtk_widget_show(quotelevel3_bglabel);
+ gtk_box_pack_start (GTK_BOX(hbox), quotelevel3_bglabel,
+ FALSE, FALSE, 0);
+ SET_TOGGLE_SENSITIVITY(chkbtn_enablecol, quotelevel3_bglabel);
+
hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show (hbox);
gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0);
G_CALLBACK(quote_color_set_dialog), "LEVEL2");
g_signal_connect(G_OBJECT(color_buttons.quote_level3_btn), "clicked",
G_CALLBACK(quote_color_set_dialog), "LEVEL3");
+ g_signal_connect(G_OBJECT(color_buttons.quote_level1_bg_btn), "clicked",
+ G_CALLBACK(quote_color_set_dialog), "LEVEL1BG");
+ g_signal_connect(G_OBJECT(color_buttons.quote_level2_bg_btn), "clicked",
+ G_CALLBACK(quote_color_set_dialog), "LEVEL2BG");
+ g_signal_connect(G_OBJECT(color_buttons.quote_level3_bg_btn), "clicked",
+ G_CALLBACK(quote_color_set_dialog), "LEVEL3BG");
g_signal_connect(G_OBJECT(color_buttons.uri_btn), "clicked",
G_CALLBACK(quote_color_set_dialog), "URI");
g_signal_connect(G_OBJECT(color_buttons.tgt_folder_btn), "clicked",
prefs_common.quote_level2_col);
set_button_bg_color(color_buttons.quote_level3_btn,
prefs_common.quote_level3_col);
+ set_button_bg_color(color_buttons.quote_level1_bg_btn,
+ prefs_common.quote_level1_bgcol);
+ set_button_bg_color(color_buttons.quote_level2_bg_btn,
+ prefs_common.quote_level2_bgcol);
+ set_button_bg_color(color_buttons.quote_level3_bg_btn,
+ prefs_common.quote_level3_bgcol);
set_button_bg_color(color_buttons.uri_btn,
prefs_common.uri_col);
set_button_bg_color(color_buttons.tgt_folder_btn,
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_enablecol),
prefs_common.enable_color);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_enablebgcol),
+ prefs_common.enable_bgcolor);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_recycle_colors),
prefs_common.recycle_quote_colors);
prefs_msg_colors->chkbtn_enablecol = chkbtn_enablecol;
+ prefs_msg_colors->chkbtn_enablebgcol = chkbtn_enablebgcol;
prefs_msg_colors->chkbtn_recycle_colors = chkbtn_recycle_colors;
/* custom colors */
for (c = 0; c < COLORLABELS; c++) {
} else if(g_ascii_strcasecmp(type, "LEVEL3") == 0) {
title = g_strdup(_("Pick color for quotation level 3"));
rgbvalue = prefs_common.quote_level3_col;
+ } else if(g_ascii_strcasecmp(type, "LEVEL1BG") == 0) {
+ title = g_strdup(_("Pick color for quotation level 1 background"));
+ rgbvalue = prefs_common.quote_level1_bgcol;
+ } else if(g_ascii_strcasecmp(type, "LEVEL2BG") == 0) {
+ title = g_strdup(_("Pick color for quotation level 2 background"));
+ rgbvalue = prefs_common.quote_level2_bgcol;
+ } else if(g_ascii_strcasecmp(type, "LEVEL3BG") == 0) {
+ title = g_strdup(_("Pick color for quotation level 3 background"));
+ rgbvalue = prefs_common.quote_level3_bgcol;
} else if(g_ascii_strcasecmp(type, "URI") == 0) {
title = g_strdup(_("Pick color for URI"));
rgbvalue = prefs_common.uri_col;
} else if (g_ascii_strcasecmp(type, "LEVEL3") == 0) {
prefs_common.quote_level3_col = rgbvalue;
set_button_bg_color(color_buttons.quote_level3_btn, rgbvalue);
+ } else if (g_ascii_strcasecmp(type, "LEVEL1BG") == 0) {
+ prefs_common.quote_level1_bgcol = rgbvalue;
+ set_button_bg_color(color_buttons.quote_level1_bg_btn, rgbvalue);
+ } else if (g_ascii_strcasecmp(type, "LEVEL2BG") == 0) {
+ prefs_common.quote_level2_bgcol = rgbvalue;
+ set_button_bg_color(color_buttons.quote_level2_bg_btn, rgbvalue);
+ } else if (g_ascii_strcasecmp(type, "LEVEL3BG") == 0) {
+ prefs_common.quote_level3_bgcol = rgbvalue;
+ set_button_bg_color(color_buttons.quote_level3_bg_btn, rgbvalue);
} else if (g_ascii_strcasecmp(type, "URI") == 0) {
prefs_common.uri_col = rgbvalue;
set_button_bg_color(color_buttons.uri_btn, rgbvalue);
prefs_common.enable_color =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->chkbtn_enablecol));
+ prefs_common.enable_bgcolor =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->chkbtn_enablebgcol));
prefs_common.recycle_quote_colors =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->chkbtn_recycle_colors));
{(gulong)0, (gushort)0, (gushort)0, (gushort)0}
};
+static GdkColor quote_bgcolors[3] = {
+ {(gulong)0, (gushort)0, (gushort)0, (gushort)0},
+ {(gulong)0, (gushort)0, (gushort)0, (gushort)0},
+ {(gulong)0, (gushort)0, (gushort)0, (gushort)0}
+};
static GdkColor signature_color = {
(gulong)0,
(gushort)0x7fff,
gtk_text_buffer_create_tag(buffer, "header_title",
"font-desc", bold_font_desc,
NULL);
- gtk_text_buffer_create_tag(buffer, "quote0",
- "foreground-gdk", "e_colors[0],
- NULL);
- gtk_text_buffer_create_tag(buffer, "quote1",
- "foreground-gdk", "e_colors[1],
- NULL);
- gtk_text_buffer_create_tag(buffer, "quote2",
- "foreground-gdk", "e_colors[2],
- NULL);
+ if (prefs_common.enable_bgcolor) {
+ gtk_text_buffer_create_tag(buffer, "quote0",
+ "foreground-gdk", "e_colors[0],
+ "paragraph-background-gdk", "e_bgcolors[0],
+ NULL);
+ gtk_text_buffer_create_tag(buffer, "quote1",
+ "foreground-gdk", "e_colors[1],
+ "paragraph-background-gdk", "e_bgcolors[1],
+ NULL);
+ gtk_text_buffer_create_tag(buffer, "quote2",
+ "foreground-gdk", "e_colors[2],
+ "paragraph-background-gdk", "e_bgcolors[2],
+ NULL);
+ } else {
+ gtk_text_buffer_create_tag(buffer, "quote0",
+ "foreground-gdk", "e_colors[0],
+ NULL);
+ gtk_text_buffer_create_tag(buffer, "quote1",
+ "foreground-gdk", "e_colors[1],
+ NULL);
+ gtk_text_buffer_create_tag(buffer, "quote2",
+ "foreground-gdk", "e_colors[2],
+ NULL);
+ }
gtk_text_buffer_create_tag(buffer, "emphasis",
- "foreground-gdk", &emphasis_color,
- NULL);
- gtk_text_buffer_create_tag(buffer, "signature",
- "foreground-gdk", &signature_color,
- NULL);
- tag = gtk_text_buffer_create_tag(buffer, "link",
- "foreground-gdk", &uri_color,
- NULL);
+ "foreground-gdk", &emphasis_color,
+ NULL);
+ gtk_text_buffer_create_tag(buffer, "signature",
+ "foreground-gdk", &signature_color,
+ NULL);
+ tag = gtk_text_buffer_create_tag(buffer, "link",
+ "foreground-gdk", &uri_color,
+ NULL);
gtk_text_buffer_create_tag(buffer, "link-hover",
- "foreground-gdk", &uri_color,
- "underline", PANGO_UNDERLINE_SINGLE,
- NULL);
+ "foreground-gdk", &uri_color,
+ "underline", PANGO_UNDERLINE_SINGLE,
+ NULL);
g_signal_connect(G_OBJECT(tag), "event",
G_CALLBACK(textview_uri_button_pressed), textview);
}
textview_create_tags(GTK_TEXT_VIEW(textview->text), textview);
}
-#define CHANGE_TAG_COLOR(tagname, color) { \
+#define CHANGE_TAG_COLOR(tagname, colorfg, colorbg) { \
tag = gtk_text_tag_table_lookup(tags, tagname); \
if (tag) \
- g_object_set(G_OBJECT(tag), "foreground-gdk", color, NULL); \
+ g_object_set(G_OBJECT(tag), "foreground-gdk", colorfg, "paragraph-background-gdk", colorbg, NULL); \
}
static void textview_update_message_colors(TextView *textview)
GtkTextTagTable *tags = gtk_text_buffer_get_tag_table(buffer);
GtkTextTag *tag = NULL;
+ quote_bgcolors[0] = quote_bgcolors[1] = quote_bgcolors[2] = black;
+ quote_colors[0] = quote_colors[1] = quote_colors[2] =
+ uri_color = emphasis_color = signature_color = black;
+
if (prefs_common.enable_color) {
/* grab the quote colors, converting from an int to a GdkColor */
gtkut_convert_int_to_gdk_color(prefs_common.quote_level1_col,
gtkut_convert_int_to_gdk_color(prefs_common.signature_col,
&signature_color);
emphasis_color = colored_emphasis;
+ }
+ if (prefs_common.enable_color && prefs_common.enable_bgcolor) {
+ gtkut_convert_int_to_gdk_color(prefs_common.quote_level1_bgcol,
+ "e_bgcolors[0]);
+ gtkut_convert_int_to_gdk_color(prefs_common.quote_level2_bgcol,
+ "e_bgcolors[1]);
+ gtkut_convert_int_to_gdk_color(prefs_common.quote_level3_bgcol,
+ "e_bgcolors[2]);
+ CHANGE_TAG_COLOR("quote0", "e_colors[0], "e_bgcolors[0]);
+ CHANGE_TAG_COLOR("quote1", "e_colors[1], "e_bgcolors[1]);
+ CHANGE_TAG_COLOR("quote2", "e_colors[2], "e_bgcolors[2]);
} else {
- quote_colors[0] = quote_colors[1] = quote_colors[2] =
- uri_color = emphasis_color = signature_color = black;
+ CHANGE_TAG_COLOR("quote0", "e_colors[0], NULL);
+ CHANGE_TAG_COLOR("quote1", "e_colors[1], NULL);
+ CHANGE_TAG_COLOR("quote2", "e_colors[2], NULL);
}
- CHANGE_TAG_COLOR("quote0", "e_colors[0]);
- CHANGE_TAG_COLOR("quote1", "e_colors[1]);
- CHANGE_TAG_COLOR("quote2", "e_colors[2]);
- CHANGE_TAG_COLOR("emphasis", &emphasis_color);
- CHANGE_TAG_COLOR("signature", &signature_color);
- CHANGE_TAG_COLOR("link", &uri_color);
- CHANGE_TAG_COLOR("link-hover", &uri_color);
+ CHANGE_TAG_COLOR("emphasis", &emphasis_color, NULL);
+ CHANGE_TAG_COLOR("signature", &signature_color, NULL);
+ CHANGE_TAG_COLOR("link", &uri_color, NULL);
+ CHANGE_TAG_COLOR("link-hover", &uri_color, NULL);
}
#undef CHANGE_TAG_COLOR