talons

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

commit 97b8469a6a676e1a09d3e82c8bd88e109c56d8f3
parent dea802d0abee36c3985b2d3a9da90fa662e0186c
Author: Oliver Lowe <o@olowe.co>
Date:   Wed, 13 Aug 2025 18:16:49 +1000

Drop message colours

Doesn't sync with other clients or servers

Diffstat:
Msrc/Makefile.am | 2--
Msrc/advsearch.c | 1-
Msrc/common/file-utils.c | 1+
Msrc/gtk/Makefile.am | 2--
Dsrc/gtk/colorlabel.c | 561-------------------------------------------------------------------------------
Dsrc/gtk/colorlabel.h | 72------------------------------------------------------------------------
Msrc/main.c | 4----
Msrc/mainwindow.c | 170-------------------------------------------------------------------------------
Msrc/mainwindow.h | 1-
Msrc/matcher.c | 2--
Msrc/matcher_parser_parse.y | 73+++++++++++++++++++++++++------------------------------------------------
Msrc/prefs_account.c | 67-------------------------------------------------------------------
Msrc/prefs_common.c | 66------------------------------------------------------------------
Msrc/prefs_common.h | 5-----
Msrc/prefs_filtering_action.c | 39+--------------------------------------
Msrc/prefs_matcher.c | 32--------------------------------
Dsrc/prefs_msg_colors.c | 600-------------------------------------------------------------------------------
Dsrc/prefs_msg_colors.h | 44--------------------------------------------
Msrc/prefs_summaries.c | 11-----------
Msrc/ssl_manager.c | 2--
Msrc/summaryview.c | 309+------------------------------------------------------------------------------
Msrc/summaryview.h | 4----
22 files changed, 28 insertions(+), 2040 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am @@ -132,7 +132,6 @@ claws_mail_SOURCES = \ prefs_matcher.c \ prefs_message.c \ prefs_migration.c \ - prefs_msg_colors.c \ prefs_other.c \ prefs_proxy.c \ prefs_quote.c \ @@ -250,7 +249,6 @@ claws_mailinclude_HEADERS = \ prefs_matcher.h \ prefs_message.h \ prefs_migration.h \ - prefs_msg_colors.h \ prefs_other.h \ prefs_proxy.h \ prefs_quote.h \ diff --git a/src/advsearch.c b/src/advsearch.c @@ -224,7 +224,6 @@ gchar *advsearch_expand_search_string(const gchar *search_string) { "ha", "has_attachments", 0, FALSE, FALSE }, { "i", "messageid", 1, TRUE, TRUE }, { "I", "inreplyto", 1, TRUE, TRUE }, - { "k", "colorlabel", 1, FALSE, FALSE }, { "L", "locked", 0, FALSE, FALSE }, { "n", "newsgroups", 1, TRUE, TRUE }, { "N", "new", 0, FALSE, FALSE }, diff --git a/src/common/file-utils.c b/src/common/file-utils.c @@ -32,6 +32,7 @@ #include "defs.h" #include "codeconv.h" +#include "utils.h" #include "file-utils.h" gboolean prefs_common_get_flush_metadata(void); diff --git a/src/gtk/Makefile.am b/src/gtk/Makefile.am @@ -12,7 +12,6 @@ EXTRA_DIST = \ libclawsgtk_la_SOURCES = \ about.c \ - colorlabel.c \ combobox.c \ description_window.c \ filesel.c \ @@ -41,7 +40,6 @@ clawsgtkincludedir = $(pkgincludedir)/gtk clawsgtkinclude_HEADERS = \ about.h \ authors.h \ - colorlabel.h \ combobox.h \ description_window.h \ filesel.h \ diff --git a/src/gtk/colorlabel.c b/src/gtk/colorlabel.c @@ -1,561 +0,0 @@ -/* - * Claws Mail -- a GTK based, lightweight, and fast e-mail client - * Copyright (C) 2001-2018 Hiroyuki Yamamoto & The Claws Mail Team - * - * 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 - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/* (alfons) - based on a contribution by Satoshi Nagayasu; revised for colorful - * menu and more Sylpheed integration. The idea to put the code in a separate - * file is just that it make it easier to allow "user changeable" label colors. - */ - -#include "config.h" -#include "defs.h" - -#include <glib.h> -#include <glib/gi18n.h> -#include <gtk/gtk.h> -#include <gdk/gdkkeysyms.h> - -#include "colorlabel.h" -#include "utils.h" -#include "gtkutils.h" -#include "prefs_common.h" - -static gchar *labels[COLORLABELS] = { - N_("Orange"), - N_("Red") , - N_("Pink"), - N_("Sky blue"), - N_("Blue"), - N_("Green"), - N_("Brown"), - N_("Grey"), - N_("Light brown"), - N_("Dark red"), - N_("Dark pink"), - N_("Steel blue"), - N_("Gold"), - N_("Bright green"), - N_("Magenta") -}; - -#define CL(x) ((gdouble)x / 65535) -static GdkRGBA default_colors[COLORLABELS] = { - { CL(65535), CL(39168), CL(0), 1.0 }, - { CL(65535), CL(0), CL(0), 1.0 }, - { CL(65535), CL(26112), CL(65535), 1.0 }, - { CL(0), CL(52224), CL(65535), 1.0 }, - { CL(0), CL(0), CL(65535), 1.0 }, - { CL(0), CL(39168), CL(0), 1.0 }, - { CL(26112), CL(13056), CL(13056), 1.0 }, - { CL(43520), CL(43520), CL(43520), 1.0 }, - { CL(49152), CL(29184), CL(21504), 1.0 }, - { CL(49152), CL(0), CL(0), 1.0 }, - { CL(52224), CL(4096), CL(29696), 1.0 }, - { CL(20480), CL(37888), CL(52480), 1.0 }, - { CL(65535), CL(54528), CL(0), 1.0 }, - { CL(0), CL(55296), CL(0), 1.0 }, - { CL(49152), CL(24576), CL(49152), 1.0 } -}; - - -typedef enum LabelColorChangeFlags_ { - LCCF_COLOR = 1 << 0, - LCCF_LABEL = 1 << 1, - LCCF_ALL = LCCF_COLOR | LCCF_LABEL -} LabelColorChangeFlags; - -/* XXX: if you add colors, make sure you also check the procmsg.h. - * color indices are stored as 3 bits; that explains the max. of 7 colors */ -static struct -{ - LabelColorChangeFlags changed; - /* color here is initialized from default_colors[] at startup */ - GdkRGBA color; - - /* XXX: note that the label member is supposed to be dynamically - * allocated and freed */ - gchar *label; - GtkWidget *widget; -} label_colors[NUM_MENUS][COLORLABELS] = { - { - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }}, - { - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }, - { LCCF_ALL, { 0 }, NULL, NULL }} -}; - -#define LABEL_COLOR_WIDTH 28 -#define LABEL_COLOR_HEIGHT 16 - -#define LABEL_COLORS_ELEMS (sizeof label_colors[0] / sizeof label_colors[0][0]) - -#define G_RETURN_VAL_IF_INVALID_COLOR(color, val) \ - do if ((color) < 0 || (color) >= LABEL_COLORS_ELEMS) { \ - return val; \ - } while(0) - -static void colorlabel_recreate (gint); -static void colorlabel_recreate_label (gint); - -void colorlabel_update_colortable_from_prefs(void) -{ - gint i, c; - - for (i = 0; i < NUM_MENUS; i++) { - for (c = 0; c < COLORLABELS; c++) { - label_colors[i][c].color = prefs_common.custom_colorlabel[c].color; - g_free(label_colors[i][c].label); - label_colors[i][c].label = - g_strdup(prefs_common.custom_colorlabel[c].label); - } - } -} - - -gint colorlabel_get_color_count(void) -{ - return LABEL_COLORS_ELEMS; -} - -GdkRGBA colorlabel_get_color(gint color_index) -{ - GdkRGBA invalid = { 0 }; - - G_RETURN_VAL_IF_INVALID_COLOR(color_index, invalid); - - return label_colors[0][color_index].color; -} - -GdkRGBA colorlabel_get_default_color(gint color_index) -{ - GdkRGBA invalid = { 0 }; - - G_RETURN_VAL_IF_INVALID_COLOR(color_index, invalid); - - return default_colors[color_index]; -} - -gchar *colorlabel_get_color_default_text(gint color_index) -{ - G_RETURN_VAL_IF_INVALID_COLOR(color_index, NULL); - - return labels[color_index]; -} - -static gboolean colorlabel_drawing_area_expose_event_cb - (GtkWidget *widget, cairo_t *cr, gpointer data) -{ - GdkRGBA *color = (GdkRGBA *)data; - GtkAllocation allocation; - - gtk_widget_get_allocation(widget, &allocation); - - cairo_set_source_rgb(cr, 0., 0., 0.); - cairo_rectangle(cr, 0, 0, - allocation.width - 1, - allocation.height - 1); - cairo_stroke(cr); - - gdk_cairo_set_source_rgba(cr, color); - cairo_rectangle(cr, 1, 1, - allocation.width - 2, - allocation.height - 2); - cairo_fill(cr); - - return FALSE; -} - -static GtkWidget *colorlabel_create_color_widget(GdkRGBA *color) -{ - GtkWidget *widget; - - widget = gtk_drawing_area_new(); - gtk_widget_set_size_request(widget, LABEL_COLOR_WIDTH - 2, - LABEL_COLOR_HEIGHT - 4); - - g_signal_connect(G_OBJECT(widget), "draw", - G_CALLBACK(colorlabel_drawing_area_expose_event_cb), - color); - - return widget; -} - -static GdkPixbuf *colorlabel_create_colormenu_pixbuf(GdkRGBA *color) -{ - GdkPixbuf *pixbuf; - guint32 pixel = 0; - - cm_return_val_if_fail(color != NULL, NULL); - - pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, - LABEL_COLOR_WIDTH - 2, LABEL_COLOR_HEIGHT - 4); - - /* "pixel" needs to be set to 0xrrggbb00 */ - pixel += (guint32)(color->red * 255) << 24; - pixel += (guint32)(color->green * 255) << 16; - pixel += (guint32)(color->blue * 255) << 8; - gdk_pixbuf_fill(pixbuf, pixel); - - return pixbuf; -} - -/* XXX: colorlabel_recreate_XXX are there to make sure everything - * is initialized ok, without having to call a global _xxx_init_ - * function */ -static void colorlabel_recreate_color(gint color) -{ - GtkWidget *widget; - int i; - - for (i = 0; i < NUM_MENUS; i++) { - if (!(label_colors[i][color].changed & LCCF_COLOR)) - continue; - - widget = colorlabel_create_color_widget(&label_colors[i][color].color); - cm_return_if_fail(widget); - - if (label_colors[i][color].widget) - gtk_widget_destroy(label_colors[i][color].widget); - - label_colors[i][color].widget = widget; - label_colors[i][color].changed &= ~LCCF_COLOR; - } -} - -static void colorlabel_recreate_label(gint color) -{ - int i; - - for (i = 0; i < NUM_MENUS; i++) { - if (!(label_colors[i][color].changed & LCCF_LABEL)) - continue; - - if (label_colors[i][color].label == NULL) - label_colors[i][color].label = g_strdup(gettext(labels[color])); - - label_colors[i][color].changed &= ~LCCF_LABEL; - } -} - -/* XXX: call this function everytime when you're doing important - * stuff with the label_colors[] array */ -static void colorlabel_recreate(gint color) -{ - colorlabel_recreate_label(color); - colorlabel_recreate_color(color); -} - -static void colorlabel_recreate_all(void) -{ - gint n; - - for ( n = 0; n < LABEL_COLORS_ELEMS; n++) - colorlabel_recreate(n); -} - -/* colorlabel_create_check_color_menu_item() - creates a color - * menu item with a check box */ -GtkWidget *colorlabel_create_check_color_menu_item(gint color_index, gboolean force, gint menu_index) -{ - GtkWidget *label; - GtkWidget *hbox; - GtkWidget *vbox; - GtkWidget *item; - gchar *accel; - - G_RETURN_VAL_IF_INVALID_COLOR(color_index, NULL); - - item = gtk_check_menu_item_new(); - - if (force) { - label_colors[menu_index][color_index].changed |= LCCF_COLOR; - label_colors[menu_index][color_index].changed |= LCCF_LABEL; - } - colorlabel_recreate(color_index); - - /* XXX: gnome-core::panel::menu.c is a great example of - * how to create pixmap menus */ - label = gtk_label_new(label_colors[menu_index][color_index].label); - - gtk_widget_show(label); - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_widget_show(hbox); - gtk_container_add(GTK_CONTAINER(item), hbox); - - vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_widget_show(vbox); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 1); - - gtk_container_add(GTK_CONTAINER(vbox), - label_colors[menu_index][color_index].widget); - gtk_widget_show(label_colors[menu_index][color_index].widget); - - gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 4); - if (color_index < 9) { - accel = gtk_accelerator_get_label(GDK_KEY_1+color_index, GDK_CONTROL_MASK); - label = gtk_label_new(accel); - gtk_widget_show(label); - gtk_label_set_xalign(GTK_LABEL(label), 1.0); - g_free(accel); - gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 4); - g_object_set_data(G_OBJECT(item), "accel_label", label); - } else { - label = gtk_label_new(""); - gtk_widget_show(label); - gtk_label_set_xalign(GTK_LABEL(label), 1.0); - gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 4); - g_object_set_data(G_OBJECT(item), "accel_label", label); - } - return item; -} - -/* colorlabel_create_color_menu() - creates a color menu without - * checkitems, probably for use in combo items */ -GtkWidget *colorlabel_create_color_menu(void) -{ - GtkWidget *label; - GtkWidget *item; - GtkWidget *menu; - gint i; - - colorlabel_recreate_all(); - - /* create the menu items. each item has its color code attached */ - menu = gtk_menu_new(); - g_object_set_data(G_OBJECT(menu), "label_color_menu", menu); - - item = gtk_menu_item_new_with_label(_("None")); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_object_set_data(G_OBJECT(item), "color", GUINT_TO_POINTER(0)); - gtk_widget_show(item); - - item = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_widget_show(item); - - /* and the color items */ - for (i = 0; i < LABEL_COLORS_ELEMS; i++) { - GtkWidget *hbox; - GtkWidget *vbox; - GtkWidget *widget; - - item = gtk_menu_item_new(); - g_object_set_data(G_OBJECT(item), "color", - GUINT_TO_POINTER(i + 1)); - - label = gtk_label_new(label_colors[0][i].label); - - gtk_widget_show(label); - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_widget_show(hbox); - gtk_container_add(GTK_CONTAINER(item), hbox); - - vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_widget_show(vbox); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 1); - - widget = colorlabel_create_color_widget(&label_colors[0][i].color); - gtk_widget_show(widget); - gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, FALSE, 0); - - gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 4); - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_widget_show(item); - } - - gtk_widget_show(menu); - - return menu; -} - -guint colorlabel_get_color_menu_active_item(GtkWidget *menu) -{ - GtkWidget *menuitem; - guint color; - - menuitem = gtk_menu_get_active(GTK_MENU(menu)); - color = GPOINTER_TO_UINT - (g_object_get_data(G_OBJECT(menuitem), "color")); - return color; -} - -static gboolean colormenu_separator_func(GtkTreeModel *model, - GtkTreeIter *iter, gpointer data) -{ - gchar *txt; - - gtk_tree_model_get(model, iter, COLORMENU_COL_TEXT, &txt, -1); - - if (txt == NULL) - return TRUE; - - return FALSE; -} - -GtkWidget *colorlabel_create_combobox_colormenu() -{ - GtkWidget *combobox; - GtkListStore *store; - GtkCellRenderer *renderer; - - store = gtk_list_store_new(3, - GDK_TYPE_PIXBUF, - G_TYPE_STRING, - G_TYPE_INT); - combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); - - gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combobox), - (GtkTreeViewRowSeparatorFunc)colormenu_separator_func, - NULL, NULL); - - renderer = gtk_cell_renderer_pixbuf_new(); - gtk_cell_renderer_set_padding(renderer, 2, 0); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), - renderer, FALSE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combobox), - renderer, - "pixbuf", COLORMENU_COL_PIXBUF, - NULL); - - renderer = gtk_cell_renderer_text_new(); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), - renderer, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combobox), - renderer, - "text", COLORMENU_COL_TEXT, - NULL); - - colorlabel_refill_combobox_colormenu(GTK_COMBO_BOX(combobox)); - - return combobox; -} - -void colorlabel_refill_combobox_colormenu(GtkComboBox *combobox) -{ - GtkListStore *store; - GtkTreeIter iter; - gint i; - - cm_return_if_fail(combobox != NULL); - - store = GTK_LIST_STORE(gtk_combo_box_get_model(combobox)); - - cm_return_if_fail(store != NULL); - - gtk_list_store_clear(store); - - /* "None" */ - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, - COLORMENU_COL_PIXBUF, NULL, - COLORMENU_COL_TEXT, _("None"), - COLORMENU_COL_ID, -1, - -1); - /* Separator */ - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, - COLORMENU_COL_PIXBUF, NULL, - COLORMENU_COL_TEXT, NULL, - COLORMENU_COL_ID, -1, - -1); - - /* Menu items for individual colors */ - for (i = 0; i < LABEL_COLORS_ELEMS; i++) { - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, - COLORMENU_COL_PIXBUF, colorlabel_create_colormenu_pixbuf(&label_colors[0][i].color), - COLORMENU_COL_TEXT, label_colors[0][i].label, - COLORMENU_COL_ID, i, - -1); - } -} - -gint colorlabel_get_combobox_colormenu_active(GtkComboBox *combobox) -{ - gint value; - GtkTreeIter iter; - GtkTreeModel *model; - - cm_return_val_if_fail(combobox != NULL, 0); - - if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combobox), &iter)) - return 0; - - model = gtk_combo_box_get_model(GTK_COMBO_BOX(combobox)); - gtk_tree_model_get(model, &iter, - COLORMENU_COL_ID, &value, - -1); - - return value + 1; -} - -void colorlabel_set_combobox_colormenu_active(GtkComboBox *combobox, - gint color) -{ - GtkTreeModel *model; - GtkTreeIter iter; - gint id; - - cm_return_if_fail(combobox != NULL); - - model = gtk_combo_box_get_model(combobox); - cm_return_if_fail(model != NULL); - - if (!gtk_tree_model_get_iter_first(model, &iter)) - return; - - do { - gtk_tree_model_get(model, &iter, - COLORMENU_COL_ID, &id, - -1); - - if (id == color - 1) - break; - } while (gtk_tree_model_iter_next(model, &iter)); - - gtk_combo_box_set_active_iter(combobox, &iter); -} diff --git a/src/gtk/colorlabel.h b/src/gtk/colorlabel.h @@ -1,72 +0,0 @@ -/* - * Claws Mail -- a GTK based, lightweight, and fast e-mail client - * Copyright (C) 2001-2012 Hiroyuki Yamamoto & The Claws Mail Team - * - * 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 - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#if !defined(COLORLABEL_H__) -#define COLORLABEL_H__ - -#include <glib.h> -#include <gtk/gtk.h> - -/* max value of color label index (0..max) - see also procmsg.h */ -#define COLORLABELS 15 - -#define MAINWIN_COLORMENU 0 -#define SUMMARY_COLORMENU 1 -#define NUM_MENUS 2 - -/* Columns for model used in GtkComboBox color menu */ -typedef enum { - COLORMENU_COL_PIXBUF, - COLORMENU_COL_TEXT, - COLORMENU_COL_ID, - NUM_COLORMENU_COLS -} ColorMenuColumn; - -void colorlabel_update_colortable_from_prefs(void); -gint colorlabel_get_color_count (void); -GdkRGBA colorlabel_get_color (gint color_index); -GdkRGBA colorlabel_get_default_color (gint color_index); -gchar *colorlabel_get_color_default_text (gint color_index); -GtkImage *colorlabel_create_color_pixmap (GdkColor color); -GtkWidget *colorlabel_create_check_color_menu_item - (gint color_index, - gboolean force, - gint menu_index); -GtkWidget *colorlabel_create_color_menu (void); -guint colorlabel_get_color_menu_active_item (GtkWidget *menu); - -/* Creates a GtkComboBox with selection of configured colors */ -GtkWidget *colorlabel_create_combobox_colormenu(void); - -/* Resets contents of an existing combobox with matching - * model. Can be useful after prefs, and therefore configured - * colors, change. */ -void colorlabel_refill_combobox_colormenu(GtkComboBox *combobox); - -/* Returns index of selected color in the colormenu combobox. - * 0 if "none" is selected, and 1-16 for colors 0-15. */ -gint colorlabel_get_combobox_colormenu_active(GtkComboBox *combobox); - -/* Select specified color entry in the colormenu combobox. - * The color parameter corresponds to return value of - * colorlabel_get_combobox_colormenu_active(). */ -void colorlabel_set_combobox_colormenu_active(GtkComboBox *combobox, - gint color); - -#endif /* COLORLABEL_H__ */ diff --git a/src/main.c b/src/main.c @@ -77,7 +77,6 @@ #include "prefs_message.h" #include "prefs_migration.h" #include "prefs_receive.h" -#include "prefs_msg_colors.h" #include "prefs_quote.h" #include "prefs_spelling.h" #include "prefs_summaries.h" @@ -710,7 +709,6 @@ int main(int argc, char *argv[]) prefs_ext_prog_init(); prefs_wrapping_init(); prefs_compose_writing_init(); - prefs_msg_colors_init(); image_viewer_init(); prefs_image_viewer_init(); prefs_quote_init(); @@ -1062,8 +1060,6 @@ static void exit_claws(MainWindow *mainwin) prefs_ext_prog_done(); prefs_wrapping_done(); prefs_compose_writing_done(); - prefs_msg_colors_done(); - prefs_image_viewer_done(); image_viewer_done(); prefs_quote_done(); prefs_summaries_done(); diff --git a/src/mainwindow.c b/src/mainwindow.c @@ -80,7 +80,6 @@ #include "folderutils.h" #include "foldersort.h" #include "icon_legend.h" -#include "colorlabel.h" #include "tags.h" #include "textview.h" #include "imap.h" @@ -867,88 +866,6 @@ static GtkRadioActionEntry mainwin_radio_dec_entries[] = static gboolean offline_ask_sync = TRUE; static gboolean is_obscured = FALSE; -#define N_COLOR_LABELS colorlabel_get_color_count() - -static void mainwindow_colorlabel_menu_item_activate_item_cb(GtkMenuItem *menu_item, - gpointer data) -{ - MainWindow *mainwin; - GtkMenuShell *menu; - GtkCheckMenuItem **items; - gint n; - GList *children, *cur; - GSList *sel; - - mainwin = (MainWindow *)data; - cm_return_if_fail(mainwin != NULL); - - sel = summary_get_selection(mainwin->summaryview); - if (!sel) return; - - menu = GTK_MENU_SHELL(mainwin->colorlabel_menu); - cm_return_if_fail(menu != NULL); - - Xalloca(items, (N_COLOR_LABELS + 1) * sizeof(GtkWidget *), return); - - /* NOTE: don't return prematurely because we set the "dont_toggle" - * state for check menu items. This would be bad! */ - g_object_set_data(G_OBJECT(menu), "dont_toggle", - GINT_TO_POINTER(1)); - - /* clear items. get item pointers. */ - children = gtk_container_get_children(GTK_CONTAINER(menu)); - for (n = 0, cur = children; cur != NULL && cur->data != NULL; cur = cur->next) { - if (GTK_IS_CHECK_MENU_ITEM(cur->data)) { - gtk_check_menu_item_set_active - (GTK_CHECK_MENU_ITEM(cur->data), FALSE); - items[n] = GTK_CHECK_MENU_ITEM(cur->data); - n++; - } - } - - g_list_free(children); - - if (n == (N_COLOR_LABELS + 1)) { - /* iterate all messages and set the state of the appropriate - * items */ - for (; sel != NULL; sel = sel->next) { - MsgInfo *msginfo; - gint clabel; - - msginfo = (MsgInfo *)sel->data; - if (msginfo) { - clabel = MSG_GET_COLORLABEL_VALUE(msginfo->flags); - if (!gtk_check_menu_item_get_active(items[clabel])) - gtk_check_menu_item_set_active - (items[clabel], TRUE); - } - } - } else - g_warning("invalid number of color elements (%d)", n); - - g_slist_free(sel); - /* reset "dont_toggle" state */ - g_object_set_data(G_OBJECT(menu), "dont_toggle", - GINT_TO_POINTER(0)); -} - -static void mainwindow_colorlabel_menu_item_activate_cb(GtkWidget *widget, - gpointer data) -{ - guint color = GPOINTER_TO_UINT(data); - MainWindow *mainwin; - - mainwin = g_object_get_data(G_OBJECT(widget), "mainwin"); - cm_return_if_fail(mainwin != NULL); - - /* "dont_toggle" state set? */ - if (g_object_get_data(G_OBJECT(mainwin->colorlabel_menu), - "dont_toggle")) - return; - - summary_set_colorlabel(mainwin->summaryview, color, NULL); -} - static void mainwindow_tags_menu_item_activate_item_cb(GtkMenuItem *menu_item, gpointer data) { @@ -1087,68 +1004,6 @@ void mainwin_accel_changed_cb (GtkAccelGroup *accelgroup, guint keyval, GdkModif g_list_free(closures); } -static void mainwindow_colorlabel_menu_create(MainWindow *mainwin, gboolean refresh) -{ - GtkWidget *label_menuitem; - GtkWidget *menu; - GtkWidget *item; - gint i; - gchar *accel_path = NULL; - - label_menuitem = gtk_ui_manager_get_widget(mainwin->ui_manager, "/Menu/Message/ColorLabel"); - g_signal_connect(G_OBJECT(label_menuitem), "activate", - G_CALLBACK(mainwindow_colorlabel_menu_item_activate_item_cb), - mainwin); - gtk_widget_show(label_menuitem); - - menu = gtk_menu_new(); - gtk_menu_set_accel_group (GTK_MENU (menu), - gtk_ui_manager_get_accel_group(mainwin->ui_manager)); - - /* create sub items. for the menu item activation callback we pass the - * index of label_colors[] as data parameter. for the None color we - * pass an invalid (high) value. also we attach a data pointer so we - * can always get back the Mainwindow pointer. */ - - item = gtk_check_menu_item_new_with_label(_("None")); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_signal_connect(G_OBJECT(item), "activate", - G_CALLBACK(mainwindow_colorlabel_menu_item_activate_cb), - GUINT_TO_POINTER(0)); - g_object_set_data(G_OBJECT(item), "mainwin", mainwin); - gtk_widget_show(item); - - accel_path = g_strdup_printf("<ClawsColorLabels>/None"); - gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path); - g_free(accel_path); - gtk_accel_map_add_entry("<ClawsColorLabels>/None", GDK_KEY_0, GDK_CONTROL_MASK); - - /* create pixmap/label menu items */ - for (i = 0; i < N_COLOR_LABELS; i++) { - item = colorlabel_create_check_color_menu_item( - i, refresh, MAINWIN_COLORMENU); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_signal_connect(G_OBJECT(item), "activate", - G_CALLBACK(mainwindow_colorlabel_menu_item_activate_cb), - GUINT_TO_POINTER(i + 1)); - g_object_set_data(G_OBJECT(item), "mainwin", - mainwin); - gtk_widget_show(item); - accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i+1); - gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path); - if (i < 9) - gtk_accel_map_add_entry(accel_path, GDK_KEY_1+i, GDK_CONTROL_MASK); - g_free(accel_path); - g_signal_connect (gtk_ui_manager_get_accel_group(mainwin->ui_manager), - "accel-changed", G_CALLBACK (mainwin_accel_changed_cb), item); - - - } - gtk_widget_show(menu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(label_menuitem), menu); - mainwin->colorlabel_menu = menu; -} - static void mainwindow_tags_menu_item_apply_tags_activate_cb(GtkWidget *widget, gpointer data) { @@ -2073,7 +1928,6 @@ MainWindow *main_window_create() if (prefs_common.work_offline) online_switch_clicked (GTK_BUTTON(online_switch), mainwin); - mainwindow_colorlabel_menu_create(mainwin, FALSE); mainwindow_tags_menu_create(mainwin, FALSE); if (prefs_common.mainwin_fullscreen) { @@ -2229,30 +2083,6 @@ void main_window_reflect_prefs_all_now(void) reflect_prefs_timeout_cb(GINT_TO_POINTER(FALSE)); } -void main_window_reflect_prefs_custom_colors(MainWindow *mainwin) -{ - GtkMenuShell *menu; - GList *children, *cur; - - /* re-create colorlabel submenu */ - menu = GTK_MENU_SHELL(mainwin->colorlabel_menu); - cm_return_if_fail(menu != NULL); - - /* clear items. get item pointers. */ - children = gtk_container_get_children(GTK_CONTAINER(menu)); - for (cur = children; cur != NULL && cur->data != NULL; cur = cur->next) { - g_signal_handlers_disconnect_matched - (gtk_ui_manager_get_accel_group(mainwin->ui_manager), - G_SIGNAL_MATCH_DATA|G_SIGNAL_MATCH_FUNC, - 0, 0, NULL, mainwin_accel_changed_cb, cur->data); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(cur->data), NULL); - } - g_list_free(children); - mainwindow_colorlabel_menu_create(mainwin, TRUE); - summary_reflect_prefs_custom_colors(mainwin->summaryview); - folderview_reinit_fonts(mainwin->folderview); -} - static gint tags_tag = 0; static gboolean main_window_reflect_tags_changes_real(gpointer data) { diff --git a/src/mainwindow.h b/src/mainwindow.h @@ -142,7 +142,6 @@ struct _MainWindow gint progressindicator_hook; - GtkWidget *colorlabel_menu; GtkWidget *warning_btn; GtkWidget *tags_menu; diff --git a/src/matcher.c b/src/matcher.c @@ -76,8 +76,6 @@ static const MatchParser matchparser_tab[] = { {MATCHCRITERIA_NOT_FORWARDED, "~forwarded"}, {MATCHCRITERIA_LOCKED, "locked"}, {MATCHCRITERIA_NOT_LOCKED, "~locked"}, - {MATCHCRITERIA_COLORLABEL, "colorlabel"}, - {MATCHCRITERIA_NOT_COLORLABEL, "~colorlabel"}, {MATCHCRITERIA_IGNORE_THREAD, "ignore_thread"}, {MATCHCRITERIA_NOT_IGNORE_THREAD, "~ignore_thread"}, {MATCHCRITERIA_WATCH_THREAD, "watch_thread"}, diff --git a/src/matcher_parser_parse.y b/src/matcher_parser_parse.y @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * */ #include "defs.h" @@ -29,7 +29,6 @@ #include "matcher.h" #include "matcher_parser.h" #include "matcher_parser_lex.h" -#include "colorlabel.h" #include "folder_item_prefs.h" static gint error = 0; @@ -91,18 +90,18 @@ void matcher_parser_start_parsing(FILE *f) matcher_parserparse(); } - + void * matcher_parser_scan_string(const char * str); - + FilteringProp *matcher_parser_get_filtering(gchar *str) { void *bufstate; void *tmp_str = NULL; - + /* little hack to allow passing rules with no names */ if (!strncmp(str, "rulename ", 9)) tmp_str = g_strdup(str); - else + else tmp_str = g_strconcat("rulename \"\" ", str, NULL); /* bad coding to enable the sub-grammar matching @@ -131,7 +130,7 @@ static gboolean check_quote_symetry(gchar *str) { const gchar *walk; int ret = 0; - + if (str == NULL) return TRUE; /* heh, that's symetric */ if (*str == '\0') @@ -154,7 +153,7 @@ MatcherList *matcher_parser_get_name(gchar *str) cond = NULL; return cond; } - + /* bad coding to enable the sub-grammar matching in yacc */ matcher_parserlineno = 1; @@ -177,7 +176,7 @@ MatcherList *matcher_parser_get_enabled(gchar *str) cond = NULL; return cond; } - + /* bad coding to enable the sub-grammar matching in yacc */ matcher_parserlineno = 1; @@ -200,7 +199,7 @@ MatcherList *matcher_parser_get_account(gchar *str) cond = NULL; return cond; } - + /* bad coding to enable the sub-grammar matching in yacc */ matcher_parserlineno = 1; @@ -223,7 +222,7 @@ MatcherList *matcher_parser_get_cond(gchar *str, gboolean *is_fast) cond = NULL; return cond; } - + matcher_is_fast = TRUE; /* bad coding to enable the sub-grammar matching in yacc */ @@ -249,7 +248,7 @@ GSList *matcher_parser_get_action_list(gchar *str) action_list = NULL; return action_list; } - + /* bad coding to enable the sub-grammar matching in yacc */ matcher_parserlineno = 1; @@ -318,7 +317,7 @@ int matcher_parserwrap(void) char *str; int value; } -%token MATCHER_ALL MATCHER_UNREAD MATCHER_NOT_UNREAD +%token MATCHER_ALL MATCHER_UNREAD MATCHER_NOT_UNREAD %token MATCHER_NEW MATCHER_NOT_NEW MATCHER_MARKED %token MATCHER_NOT_MARKED MATCHER_DELETED MATCHER_NOT_DELETED %token MATCHER_REPLIED MATCHER_NOT_REPLIED MATCHER_FORWARDED @@ -344,8 +343,8 @@ int matcher_parserwrap(void) %token MATCHER_MARK_AS_READ MATCHER_MARK_AS_UNREAD MATCHER_FORWARD %token MATCHER_MARK_AS_SPAM MATCHER_MARK_AS_HAM %token MATCHER_FORWARD_AS_ATTACHMENT MATCHER_EOL -%token MATCHER_OR MATCHER_AND -%token MATCHER_COLOR MATCHER_SCORE_EQUAL MATCHER_REDIRECT +%token MATCHER_OR MATCHER_AND +%token MATCHER_COLOR MATCHER_SCORE_EQUAL MATCHER_REDIRECT %token MATCHER_SIZE_GREATER MATCHER_SIZE_SMALLER MATCHER_SIZE_EQUAL %token MATCHER_LOCKED MATCHER_NOT_LOCKED %token MATCHER_PARTIAL MATCHER_NOT_PARTIAL @@ -388,7 +387,7 @@ file_line_list file_line: section_notification -| +| { action_list = NULL; } instruction | error MATCHER_EOL @@ -529,17 +528,17 @@ filtering_action_list prefs_filtering = &filtering_rules; if (action_list != NULL) { FilteringAction * first_action; - + first_action = action_list->data; - + if (first_action->type == MATCHACTION_CHANGE_SCORE) prefs_filtering = &pre_global_processing; } } - + cond = NULL; action_list = NULL; - + if ((matcher_parse_op == MATCHER_PARSE_FILE) && (prefs_filtering != NULL)) { *prefs_filtering = g_slist_append(*prefs_filtering, @@ -636,7 +635,7 @@ MATCHER_ALL criteria = MATCHCRITERIA_UNREAD; prop = matcherprop_new(criteria, NULL, 0, NULL, 0); } -| MATCHER_NOT_UNREAD +| MATCHER_NOT_UNREAD { gint criteria = 0; @@ -734,7 +733,7 @@ MATCHER_ALL criteria = MATCHCRITERIA_SPAM; prop = matcherprop_new(criteria, NULL, 0, NULL, 0); } -| MATCHER_NOT_SPAM +| MATCHER_NOT_SPAM { gint criteria = 0; @@ -783,28 +782,6 @@ MATCHER_ALL criteria = MATCHCRITERIA_NOT_PARTIAL; prop = matcherprop_new(criteria, NULL, 0, NULL, 0); } -| MATCHER_COLORLABEL MATCHER_INTEGER -{ - gint criteria = 0; - gint value = 0; - - criteria = MATCHCRITERIA_COLORLABEL; - value = strtol($2, NULL, 10); - if (value < 0) value = 0; - else if (value > COLORLABELS) value = COLORLABELS; - prop = matcherprop_new(criteria, NULL, 0, NULL, value); -} -| MATCHER_NOT_COLORLABEL MATCHER_INTEGER -{ - gint criteria = 0; - gint value = 0; - - criteria = MATCHCRITERIA_NOT_COLORLABEL; - value = strtol($2, NULL, 0); - if (value < 0) value = 0; - else if (value > COLORLABELS) value = COLORLABELS; - prop = matcherprop_new(criteria, NULL, 0, NULL, value); -} | MATCHER_IGNORE_THREAD { gint criteria = 0; @@ -1112,7 +1089,7 @@ MATCHER_ALL value = strtol($2, NULL, 0); prop = matcherprop_new(criteria, NULL, 0, NULL, value); } -| MATCHER_SIZE_GREATER MATCHER_INTEGER +| MATCHER_SIZE_GREATER MATCHER_INTEGER { gint criteria = 0; gint value = 0; @@ -1444,7 +1421,7 @@ MATCHER_EXECUTE MATCHER_STRING | MATCHER_CHANGE_SCORE MATCHER_INTEGER { gint score = 0; - + score = strtol($2, NULL, 10); action = filteringaction_new(MATCHACTION_CHANGE_SCORE, 0, NULL, 0, score, NULL); @@ -1453,7 +1430,7 @@ MATCHER_EXECUTE MATCHER_STRING | MATCHER_SCORE MATCHER_INTEGER { gint score = 0; - + score = strtol($2, NULL, 10); action = filteringaction_new(MATCHACTION_CHANGE_SCORE, 0, NULL, 0, score, NULL); @@ -1461,7 +1438,7 @@ MATCHER_EXECUTE MATCHER_STRING | MATCHER_SET_SCORE MATCHER_INTEGER { gint score = 0; - + score = strtol($2, NULL, 10); action = filteringaction_new(MATCHACTION_SET_SCORE, 0, NULL, 0, score, NULL); diff --git a/src/prefs_account.c b/src/prefs_account.c @@ -53,7 +53,6 @@ #include "gtkutils.h" #include "utils.h" #include "alertpanel.h" -#include "colorlabel.h" #include "smtp.h" #include "imap.h" #include "pop.h" @@ -362,8 +361,6 @@ typedef struct AdvancedPage GtkWidget *nntpport_spinbtn; GtkWidget *domain_checkbtn; GtkWidget *domain_entry; - GtkWidget *crosspost_checkbtn; - GtkWidget *crosspost_colormenu; GtkWidget *tunnelcmd_checkbtn; GtkWidget *tunnelcmd_entry; @@ -448,10 +445,6 @@ static void prefs_account_set_autochk_interval_to_widgets(PrefParam *pparam); static void prefs_account_enum_set_data_from_radiobtn (PrefParam *pparam); static void prefs_account_enum_set_radiobtn (PrefParam *pparam); -static void crosspost_color_toggled(void); -static void prefs_account_crosspost_set_data_from_colormenu(PrefParam *pparam); -static void prefs_account_crosspost_set_colormenu(PrefParam *pparam); - static void prefs_account_nntpauth_toggled(GtkToggleButton *button, gpointer user_data); static void prefs_account_mailcmd_toggled(GtkToggleButton *button, gpointer user_data); static void prefs_account_showpwd_toggled(GtkEntry *entry, gpointer user_data); @@ -1024,14 +1017,6 @@ static PrefParam advanced_param[] = { {"tunnelcmd", NULL, &tmp_ac_prefs.tunnelcmd, P_STRING, &advanced_page.tunnelcmd_entry, prefs_set_data_from_entry, prefs_set_entry}, - {"mark_crosspost_read", "FALSE", &tmp_ac_prefs.mark_crosspost_read, P_BOOL, - &advanced_page.crosspost_checkbtn, - prefs_set_data_from_toggle, prefs_set_toggle}, - - {"crosspost_color", NULL, &tmp_ac_prefs.crosspost_col, P_ENUM, - &advanced_page.crosspost_colormenu, - prefs_account_crosspost_set_data_from_colormenu, - prefs_account_crosspost_set_colormenu}, {"set_sent_folder", "FALSE", &tmp_ac_prefs.set_sent_folder, P_BOOL, &advanced_page.sent_folder_checkbtn, @@ -3344,8 +3329,6 @@ static void advanced_create_widget_func(PrefsPage * _page, GtkWidget *checkbtn_domain; GtkWidget *entry_domain; gchar *tip_domain; - GtkWidget *checkbtn_crosspost; - GtkWidget *colormenu_crosspost; GtkWidget *checkbtn_tunnelcmd; GtkWidget *entry_tunnelcmd; GtkWidget *folder_frame; @@ -3433,18 +3416,6 @@ static void advanced_create_widget_func(PrefsPage * _page, gtk_box_pack_start (GTK_BOX (hbox1), entry_tunnelcmd, TRUE, TRUE, 0); SET_TOGGLE_SENSITIVITY (checkbtn_tunnelcmd, entry_tunnelcmd); - PACK_HBOX (hbox1); - PACK_CHECK_BUTTON (hbox1, checkbtn_crosspost, - _("Mark cross-posted messages as read and color:")); - g_signal_connect (G_OBJECT (checkbtn_crosspost), "toggled", - G_CALLBACK (crosspost_color_toggled), - NULL); - - colormenu_crosspost = colorlabel_create_combobox_colormenu(); - gtk_widget_show (colormenu_crosspost); - gtk_box_pack_start (GTK_BOX (hbox1), colormenu_crosspost, FALSE, FALSE, 0); - - SET_TOGGLE_SENSITIVITY(checkbtn_crosspost, colormenu_crosspost); #undef PACK_HBOX #undef PACK_PORT_SPINBTN @@ -3506,8 +3477,6 @@ static void advanced_create_widget_func(PrefsPage * _page, page->nntpport_spinbtn = spinbtn_nntpport; page->domain_checkbtn = checkbtn_domain; page->domain_entry = entry_domain; - page->crosspost_checkbtn = checkbtn_crosspost; - page->crosspost_colormenu = colormenu_crosspost; page->tunnelcmd_checkbtn = checkbtn_tunnelcmd; page->tunnelcmd_entry = entry_tunnelcmd; page->sent_folder_checkbtn = sent_folder_checkbtn; @@ -4709,32 +4678,6 @@ PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs, gboolean *dirty) } } -static void crosspost_color_toggled(void) -{ - gboolean is_active; - - is_active = gtk_toggle_button_get_active - (GTK_TOGGLE_BUTTON(advanced_page.crosspost_checkbtn)); - gtk_widget_set_sensitive(advanced_page.crosspost_colormenu, is_active); -} - -static void prefs_account_crosspost_set_data_from_colormenu(PrefParam *pparam) -{ - gint color; - GtkWidget *combobox = *pparam->widget; - - color = colorlabel_get_combobox_colormenu_active(GTK_COMBO_BOX(combobox)); - *((gint *)pparam->data) = color; -} - -static void prefs_account_crosspost_set_colormenu(PrefParam *pparam) -{ - gint color = *((gint *)pparam->data); - GtkWidget *combobox = *pparam->widget; - - colorlabel_set_combobox_colormenu_active(GTK_COMBO_BOX(combobox), color); -} - static void pop_bfr_smtp_tm_set_sens(GtkWidget *widget, gpointer data) { gtk_widget_set_sensitive(send_page.pop_bfr_smtp_tm_spinbtn, @@ -5458,8 +5401,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_hide(advanced_page.popport_hbox); gtk_widget_hide(advanced_page.imapport_hbox); gtk_widget_show(advanced_page.nntpport_hbox); - gtk_widget_show(advanced_page.crosspost_checkbtn); - gtk_widget_show(advanced_page.crosspost_colormenu); gtk_widget_hide(advanced_page.tunnelcmd_checkbtn); gtk_widget_hide(advanced_page.tunnelcmd_entry); gtk_widget_hide(receive_page.imapdir_label); @@ -5538,8 +5479,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_hide(advanced_page.popport_hbox); gtk_widget_hide(advanced_page.imapport_hbox); gtk_widget_hide(advanced_page.nntpport_hbox); - gtk_widget_hide(advanced_page.crosspost_checkbtn); - gtk_widget_hide(advanced_page.crosspost_colormenu); gtk_widget_hide(advanced_page.tunnelcmd_checkbtn); gtk_widget_hide(advanced_page.tunnelcmd_entry); gtk_widget_hide(receive_page.imapdir_label); @@ -5627,8 +5566,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_hide(advanced_page.popport_hbox); gtk_widget_show(advanced_page.imapport_hbox); gtk_widget_hide(advanced_page.nntpport_hbox); - gtk_widget_hide(advanced_page.crosspost_checkbtn); - gtk_widget_hide(advanced_page.crosspost_colormenu); gtk_widget_show(advanced_page.tunnelcmd_checkbtn); gtk_widget_show(advanced_page.tunnelcmd_entry); gtk_widget_show(receive_page.imapdir_label); @@ -5705,8 +5642,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_hide(advanced_page.popport_hbox); gtk_widget_hide(advanced_page.imapport_hbox); gtk_widget_hide(advanced_page.nntpport_hbox); - gtk_widget_hide(advanced_page.crosspost_checkbtn); - gtk_widget_hide(advanced_page.crosspost_colormenu); gtk_widget_hide(advanced_page.tunnelcmd_checkbtn); gtk_widget_hide(advanced_page.tunnelcmd_entry); gtk_widget_hide(receive_page.imapdir_label); @@ -5790,8 +5725,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_show(advanced_page.popport_hbox); gtk_widget_hide(advanced_page.imapport_hbox); gtk_widget_hide(advanced_page.nntpport_hbox); - gtk_widget_hide(advanced_page.crosspost_checkbtn); - gtk_widget_hide(advanced_page.crosspost_colormenu); gtk_widget_hide(advanced_page.tunnelcmd_checkbtn); gtk_widget_hide(advanced_page.tunnelcmd_entry); gtk_widget_hide(receive_page.imapdir_label); diff --git a/src/prefs_common.c b/src/prefs_common.c @@ -58,7 +58,6 @@ #include "filesel.h" #include "stock_pixmap.h" #include "prefswindow.h" -#include "colorlabel.h" #include "passwordstore.h" #include "file-utils.h" @@ -263,68 +262,6 @@ static PrefParam param[] = { {"derive_from_normal_font", "TRUE", &prefs_common.derive_from_normal_font, P_BOOL, NULL, NULL, NULL}, - /* custom colors */ - {"custom_color1", "#ff9900", &prefs_common.custom_colorlabel[0].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel1", N_("Orange"), &prefs_common.custom_colorlabel[0].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color2", "#ff0000", &prefs_common.custom_colorlabel[1].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel2", N_("Red"), &prefs_common.custom_colorlabel[1].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color3", "#ff66ff", &prefs_common.custom_colorlabel[2].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel3", N_("Pink"), &prefs_common.custom_colorlabel[2].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color4", "#00ccff", &prefs_common.custom_colorlabel[3].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel4", N_("Sky blue"), &prefs_common.custom_colorlabel[3].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color5", "#0000ff", &prefs_common.custom_colorlabel[4].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel5", N_("Blue"), &prefs_common.custom_colorlabel[4].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color6", "#009900", &prefs_common.custom_colorlabel[5].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel6", N_("Green"), &prefs_common.custom_colorlabel[5].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color7", "#663333", &prefs_common.custom_colorlabel[6].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel7", N_("Brown"), &prefs_common.custom_colorlabel[6].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color8", "#aaaaaa", &prefs_common.custom_colorlabel[7].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel8", N_("Grey"), &prefs_common.custom_colorlabel[7].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color9", "#c07254", &prefs_common.custom_colorlabel[8].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel9", N_("Light brown"), &prefs_common.custom_colorlabel[8].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color10", "#c00000", &prefs_common.custom_colorlabel[9].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel10", N_("Dark red"), &prefs_common.custom_colorlabel[9].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color11", "#cc1074", &prefs_common.custom_colorlabel[10].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel11", N_("Dark pink"), &prefs_common.custom_colorlabel[10].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color12", "#5094cd", &prefs_common.custom_colorlabel[11].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel12", N_("Steel blue"), &prefs_common.custom_colorlabel[11].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color13", "#ffd500", &prefs_common.custom_colorlabel[12].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel13", N_("Gold"), &prefs_common.custom_colorlabel[12].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color14", "#00d800", &prefs_common.custom_colorlabel[13].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel14", N_("Bright green"), &prefs_common.custom_colorlabel[13].label, P_STRING, - NULL, NULL, NULL}, - {"custom_color15", "#c060c0", &prefs_common.custom_colorlabel[14].color, P_COLOR, - NULL, NULL, NULL}, - {"custom_colorlabel15", N_("Magenta"), &prefs_common.custom_colorlabel[14].label, P_STRING, - NULL, NULL, NULL}, - /* image viewer */ {"display_image", "TRUE", &prefs_common.display_img, P_BOOL, NULL, NULL, NULL}, @@ -750,8 +687,6 @@ static PrefParam param[] = { NULL, NULL, NULL}, {"ask_mark_all_read", "TRUE", &prefs_common.ask_mark_all_read, P_BOOL, NULL, NULL, NULL}, - {"ask_override_colorlabel", "TRUE", &prefs_common.ask_override_colorlabel, P_BOOL, - NULL, NULL, NULL}, {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common.ask_apply_per_account_filtering_rules, P_BOOL, NULL, NULL, NULL}, @@ -1219,7 +1154,6 @@ void prefs_common_read_config(void) prefs_common.compose_save_to_history = prefs_common_read_history(COMPOSE_SAVE_TO_HISTORY); prefs_common.addressbook_custom_attributes = addressbook_update_custom_attr_from_prefs(); - colorlabel_update_colortable_from_prefs(); } #define TRY(func) \ diff --git a/src/prefs_common.h b/src/prefs_common.h @@ -31,7 +31,6 @@ #include "codeconv.h" #include "textview.h" #include "procmime.h" -#include "prefs_msg_colors.h" #include "prefs_summary_open.h" #define CLAWS_CONFIG_VERSION 5 @@ -235,9 +234,6 @@ struct _PrefsCommon gboolean use_different_print_font; gboolean derive_from_normal_font; - /* custom colors */ - ColorlabelPrefs custom_colorlabel[COLORLABELS]; - /* program colors */ GdkRGBA color[COL_LAST_COLOR_INDEX]; @@ -423,7 +419,6 @@ struct _PrefsCommon int hover_timeout; /* msecs mouse hover timeout */ gboolean ask_mark_all_read; gboolean run_processingrules_before_mark_all; - gboolean ask_override_colorlabel; gboolean ask_apply_per_account_filtering_rules; gint apply_per_account_filtering_rules; diff --git a/src/prefs_filtering_action.c b/src/prefs_filtering_action.c @@ -49,7 +49,6 @@ #include "addr_compl.h" #include "tags.h" #include "matcher_parser.h" -#include "colorlabel.h" #include "combobox.h" #include "account.h" #include "addressbook.h" @@ -114,7 +113,6 @@ static struct FilteringAction_ { GtkWidget *dest_entry; GtkWidget *dest_btn; GtkWidget *exec_btn; - GtkWidget *color_optmenu; GtkWidget *header_combo; GtkWidget *header_entry; GtkWidget *addressbook_btn; @@ -141,7 +139,6 @@ typedef enum Action_ { ACTION_FORWARD_AS_ATTACHMENT, ACTION_REDIRECT, ACTION_EXECUTE, - ACTION_COLOR, ACTION_CHANGE_SCORE, ACTION_SET_SCORE, ACTION_SET_TAG, @@ -173,7 +170,6 @@ static struct { { N_("Message flags"), N_("Mark as spam"), ACTION_MARK_AS_SPAM }, { N_("Message flags"), N_("Mark as ham"), ACTION_MARK_AS_HAM }, { NULL, N_("Execute"), ACTION_EXECUTE }, - { NULL, N_("Color label"), ACTION_COLOR }, { N_("Resend"), N_("Forward"), ACTION_FORWARD }, { N_("Resend"), N_("Forward as attachment"), ACTION_FORWARD_AS_ATTACHMENT }, { N_("Resend"), N_("Redirect"), ACTION_REDIRECT }, @@ -270,10 +266,6 @@ void prefs_filtering_action_open(GSList *action_list, if (!filtering_action.window) { prefs_filtering_action_create(); - } else { - /* update color label menu */ - colorlabel_refill_combobox_colormenu( - GTK_COMBO_BOX(filtering_action.color_optmenu)); } manage_window_set_transient(GTK_WINDOW(filtering_action.window)); @@ -357,8 +349,6 @@ static void prefs_filtering_action_create(void) GtkWidget *exec_btn; - GtkWidget *color_optmenu; - static GdkGeometry geometry; GList * accounts; @@ -508,11 +498,6 @@ static void prefs_filtering_action_create(void) score_entry = gtk_spin_button_new_with_range(-1000, 1000, 1); gtk_box_pack_start(GTK_BOX(hbox1), score_entry, FALSE, FALSE, 0); - color_optmenu = colorlabel_create_combobox_colormenu(); - gtk_size_group_add_widget(size_action, color_optmenu); - prefs_filtering_action_check_widget_width(color_optmenu); - gtk_box_pack_start(GTK_BOX(hbox1), color_optmenu, FALSE, FALSE, 0); - tags_combo = gtk_combo_box_text_new (); gtk_size_group_add_widget(size_action, tags_combo); @@ -635,7 +620,6 @@ static void prefs_filtering_action_create(void) filtering_action.dest_entry = dest_entry; filtering_action.dest_btn = dest_btn; filtering_action.exec_btn = exec_btn; - filtering_action.color_optmenu = color_optmenu; filtering_action.score_entry = score_entry; filtering_action.header_combo = header_combo; filtering_action.header_entry = header_entry; @@ -834,8 +818,6 @@ static gint prefs_filtering_action_get_matching_from_action(Action action_id) return MATCHACTION_REDIRECT; case ACTION_EXECUTE: return MATCHACTION_EXECUTE; - case ACTION_COLOR: - return MATCHACTION_COLOR; case ACTION_HIDE: return MATCHACTION_HIDE; case ACTION_IGNORE: @@ -907,11 +889,6 @@ static FilteringAction * prefs_filtering_action_dialog_to_action(gboolean alert) return NULL; } break; - case ACTION_COLOR: - labelcolor = colorlabel_get_combobox_colormenu_active( - GTK_COMBO_BOX(filtering_action.color_optmenu)); - destination = NULL; - break; case ACTION_CHANGE_SCORE: case ACTION_SET_SCORE: score = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON( @@ -1326,8 +1303,7 @@ static void prefs_filtering_action_type_selection_changed(GtkWidget *combo, prefs_filtering_action_enable_widget(filtering_action.label3, (ACTION_SEND(value) || ACTION_TAG(value) || ACTION_SCORE(value) || ACTION_FILEOP(value) || - value == ACTION_COLOR || value == ACTION_EXECUTE || - value == ACTION_ADD_TO_ADDRESSBOOK)); + value == ACTION_EXECUTE || value == ACTION_ADD_TO_ADDRESSBOOK)); prefs_filtering_action_enable_widget(filtering_action.account_combo, ACTION_SEND(value)); @@ -1345,9 +1321,6 @@ static void prefs_filtering_action_type_selection_changed(GtkWidget *combo, prefs_filtering_action_enable_widget(filtering_action.exec_btn, (value == ACTION_EXECUTE)); - prefs_filtering_action_enable_widget(filtering_action.color_optmenu, - (value == ACTION_COLOR)); - prefs_filtering_action_enable_widget(filtering_action.header_combo, (value == ACTION_ADD_TO_ADDRESSBOOK)); prefs_filtering_action_enable_widget(filtering_action.addressbook_btn, @@ -1370,9 +1343,6 @@ static void prefs_filtering_action_type_selection_changed(GtkWidget *combo, case ACTION_MOVE: gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Destination")); break; - case ACTION_COLOR: - gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Color")); - break; case ACTION_EXECUTE: gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Execute")); break; @@ -1574,13 +1544,6 @@ static gboolean prefs_filtering_actions_selected combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo), ACTION_EXECUTE); break; - case MATCHACTION_COLOR: - combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo), - ACTION_COLOR); - colorlabel_set_combobox_colormenu_active( - GTK_COMBO_BOX(filtering_action.color_optmenu), - action->labelcolor); - break; case MATCHACTION_CHANGE_SCORE: combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo), ACTION_CHANGE_SCORE); diff --git a/src/prefs_matcher.c b/src/prefs_matcher.c @@ -50,7 +50,6 @@ #include "combobox.h" #include "matcher_parser.h" -#include "colorlabel.h" #include "tags.h" #include "addressbook.h" @@ -92,7 +91,6 @@ static struct Matcher { GtkWidget *addressbook_folder_combo; GtkWidget *case_checkbtn; GtkWidget *regexp_checkbtn; - GtkWidget *color_optmenu; GtkWidget *calendar; GtkWidget *time_label; GtkWidget *time_entry; @@ -452,9 +450,6 @@ void prefs_matcher_open(MatcherList *matchers, PrefsMatcherSignal *cb) if (!matcher.window) { prefs_matcher_models_create(); prefs_matcher_create(); - } else { - /* update color label menu */ - colorlabel_refill_combobox_colormenu(GTK_COMBO_BOX(matcher.color_optmenu)); } manage_window_set_transient(GTK_WINDOW(matcher.window)); @@ -543,7 +538,6 @@ static void prefs_matcher_create(void) GtkWidget *test_btn; GtkWidget *addressbook_select_btn; - GtkWidget *color_optmenu; GtkWidget *calendar; GtkWidget *time_label; GtkWidget *time_entry; @@ -632,7 +626,6 @@ static void prefs_matcher_create(void) COMBOBOX_ADD(store, _("Age"), MATCH_AGE); COMBOBOX_ADD(store, _("Phrase"), MATCH_PHRASE); COMBOBOX_ADD(store, _("Flags"), MATCH_FLAG); - COMBOBOX_ADD(store, _("Color labels"), MATCH_LABEL); COMBOBOX_ADD(store, _("Thread"), MATCH_THREAD); COMBOBOX_ADD(store, _("Score"), MATCH_SCORE); COMBOBOX_ADD(store, _("Size"), MATCH_SIZE); @@ -700,10 +693,6 @@ static void prefs_matcher_create(void) match_combo = gtkut_sc_combobox_create(NULL, TRUE); gtk_box_pack_start(GTK_BOX(match_hbox), match_combo, TRUE, TRUE, 0); - /* color labels combo */ - color_optmenu = colorlabel_create_combobox_colormenu(); - gtk_box_pack_start(GTK_BOX(match_hbox), color_optmenu, FALSE, FALSE, 0); - /* address header name */ header_addr_combo = combobox_text_new(TRUE, C_("Filtering Matcher Menu", "All"), _("Any"), @@ -878,7 +867,6 @@ static void prefs_matcher_create(void) matcher.time_label = time_label; matcher.time_entry = time_entry; matcher.addressbook_select_btn = addressbook_select_btn; - matcher.color_optmenu = color_optmenu; matcher.match_label = match_label; matcher.criteria_label2 = criteria_label2; matcher.headers_combo = headers_combo; @@ -968,7 +956,6 @@ static void prefs_matcher_reset_condition(void) gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.match_combo), 0); if (match_combo2_model_set()) gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.match_combo2), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.color_optmenu), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(matcher.numeric_entry), 0); gtk_entry_set_text(GTK_ENTRY(matcher.header_entry), ""); gtk_entry_set_text(GTK_ENTRY(matcher.header_addr_entry), ""); @@ -1613,11 +1600,6 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void) value *= KB_SIZE; break; - case CRITERIA_COLORLABEL: - value = colorlabel_get_combobox_colormenu_active( - GTK_COMBO_BOX(matcher.color_optmenu)); - break; - case CRITERIA_HEADER: header = gtk_entry_get_text(GTK_ENTRY(matcher.header_entry)); expr = gtk_entry_get_text(GTK_ENTRY(matcher.string_entry)); @@ -1987,8 +1969,6 @@ static void prefs_matcher_criteria_select(GtkWidget *widget, (value == MATCH_TEST)); prefs_matcher_enable_widget(matcher.addressbook_select_btn, (value == MATCH_ABOOK)); - prefs_matcher_enable_widget(matcher.color_optmenu, - (value == MATCH_LABEL)); prefs_matcher_enable_widget(matcher.upper_filler, MATCH_CASE_REGEXP(value)); prefs_matcher_enable_widget(matcher.lower_filler, @@ -2035,12 +2015,6 @@ static void prefs_matcher_criteria_select(GtkWidget *widget, gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn), FALSE); break; - case MATCH_LABEL: - gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.color_optmenu), 0); - prefs_matcher_set_model(matcher.match_combo2, matcher.model_set); - gtk_label_set_text(GTK_LABEL(matcher.match_label), _("Label")); - gtk_label_set_text(GTK_LABEL(matcher.match_label2), _("is")); - break; case MATCH_PARTIAL: prefs_matcher_set_model(matcher.criteria_combo2, matcher.model_partial); gtk_label_set_text(GTK_LABEL(matcher.criteria_label2), _("Value:")); @@ -2636,12 +2610,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector, } break; - case MATCHCRITERIA_NOT_COLORLABEL: - case MATCHCRITERIA_COLORLABEL: - colorlabel_set_combobox_colormenu_active( - GTK_COMBO_BOX(matcher.color_optmenu), prop->value); - break; - case MATCHCRITERIA_NOT_HEADER: case MATCHCRITERIA_HEADER: gtk_entry_set_text(GTK_ENTRY(matcher.header_entry), prop->header); diff --git a/src/prefs_msg_colors.c b/src/prefs_msg_colors.c @@ -1,600 +0,0 @@ -/* - * Claws Mail -- a GTK based, lightweight, and fast e-mail client - * Copyright (C) 2004-2021 The Claws Mail Team - * - * 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 - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#include "claws-features.h" -#endif - -#include "defs.h" - -#include <stdio.h> -#include <stdlib.h> - -#include <glib.h> -#include <glib/gi18n.h> -#include <gtk/gtk.h> -#include <gdk/gdkkeysyms.h> - -#include "prefs_common.h" -#include "prefs_gtk.h" - -#include "gtk/gtkutils.h" -#include "gtk/prefswindow.h" - -#include "manage_window.h" -#include "mainwindow.h" -#include "colorlabel.h" - -#define SAFE_STRING(str) \ - (str) ? (str) : "" - -static struct MessageColorButtons { - /* program colors */ - GtkWidget *color[COL_LAST_COLOR_INDEX]; - /* custom colors */ - GtkWidget *custom_color[COLORLABELS]; -} color_buttons; - -typedef struct _MsgColorsPage -{ - PrefsPage page; - - GtkWidget *window; - - GtkWidget *checkbtn_enable_colors; - GtkWidget *checkbtn_enable_bgcolors; - GtkWidget *checkbtn_recycle_colors; - - /* custom colors */ - GtkWidget *entry_custom_colorlabel[COLORLABELS]; -} MsgColorsPage; - -static void prefs_msg_colors_reset_custom_colors(GtkWidget *widget, - gpointer data); - -#define COLOR_BUTTON_PACK_START(gtkbox, colorid, text) \ - color_buttons.color[colorid] = gtk_color_button_new_with_rgba( \ - &prefs_common.color[colorid]); \ - gtk_color_button_set_title(GTK_COLOR_BUTTON(color_buttons.color[colorid]), text); \ - gtk_widget_show(color_buttons.color[colorid]); \ - gtk_box_pack_start(GTK_BOX(gtkbox), color_buttons.color[colorid], FALSE, FALSE, 0); \ - gtk_widget_set_tooltip_text(GTK_WIDGET(color_buttons.color[colorid]), text) - -#define COLOR_BUTTON_PACK_END(gtkbox, colorid, text) \ - color_buttons.color[colorid] = gtk_color_button_new_with_rgba( \ - &prefs_common.color[colorid]); \ - gtk_color_button_set_title(GTK_COLOR_BUTTON(color_buttons.color[colorid]), text); \ - gtk_widget_show(color_buttons.color[colorid]); \ - gtk_box_pack_end(GTK_BOX(gtkbox), color_buttons.color[colorid], FALSE, FALSE, 0); \ - gtk_widget_set_tooltip_text(GTK_WIDGET(color_buttons.color[colorid]), text) - -#define COLOR_LABEL_PACK_START(gtkbox, colorid, labeltext) \ - label[colorid] = gtk_label_new (labeltext); \ - gtk_widget_show (label[colorid]); \ - gtk_box_pack_start (GTK_BOX(gtkbox), label[colorid], FALSE, FALSE, 0) - -#define COLOR_LABEL_PACK_END(gtkbox, colorid, labeltext) \ - label[colorid] = gtk_label_new (labeltext); \ - gtk_widget_show (label[colorid]); \ - gtk_box_pack_end (GTK_BOX(gtkbox), label[colorid], FALSE, FALSE, 0) - -static void prefs_msg_colors_create_widget(PrefsPage *_page, GtkWindow *window, - gpointer data) -{ - MsgColorsPage *prefs_msg_colors = (MsgColorsPage *) _page; - - GtkWidget *notebook; - GtkWidget *vbox1; - GtkWidget *vbox2; - GtkWidget *checkbtn_enable_colors; - GtkWidget *label_quote_level1; - GtkWidget *label_quote_level2; - GtkWidget *label_quote_level3; - GtkWidget *checkbtn_enable_bgcolors; - GtkWidget *checkbtn_recycle_colors; - GtkWidget *hbox; - GtkWidget *label[COL_LAST_COLOR_INDEX]; - GtkWidget *frame_msg; - GtkWidget *frame_folder; - GtkWidget *frame_quote; - GtkWidget *vbox3; - GtkWidget *hbox_quote; - GtkWidget *vbox_quotefg; - GtkWidget *vbox_quotebg; - GtkWidget *frame_diff; - GtkWidget *vbox4; - /* custom colors */ - GtkWidget *hbox_custom_colors; - GtkWidget *vbox_custom_colors; - GtkWidget *vbox_custom_colors1; - GtkWidget *vbox_custom_colors2; - GtkWidget *hbox_reset_custom_colors; - GtkWidget *btn_reset_custom_colors; - GtkWidget *hbox_custom_color[COLORLABELS]; - GtkWidget *entry_custom_colorlabel[COLORLABELS]; - gint c; - gchar *tooltip_btn_text = NULL; - gchar *tooltip_entry_text = NULL; - gchar *title = NULL; - - notebook = gtk_notebook_new(); - gtk_widget_show(notebook); - - vbox1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, VBOX_BORDER); - gtk_widget_show (vbox1); - gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1, - gtk_label_new(_("Other"))); - - vbox2 = gtkut_get_options_frame(vbox1, &frame_msg, _("Message view")); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0); - PACK_CHECK_BUTTON (hbox, checkbtn_enable_colors, - _("Enable coloration of message text")); - - hbox_quote = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox_quote); - vbox_quotefg = gtk_box_new(GTK_ORIENTATION_VERTICAL, VBOX_BORDER); - gtk_widget_show (vbox_quotefg); - vbox_quotebg = gtk_box_new(GTK_ORIENTATION_VERTICAL, VBOX_BORDER); - gtk_widget_show (vbox_quotebg); - vbox3 = gtkut_get_options_frame(vbox2, &frame_quote, _("Quote")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, frame_quote); - - gtk_box_pack_start (GTK_BOX (vbox3), 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); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0); - - PACK_CHECK_BUTTON (hbox, checkbtn_recycle_colors, - _("Cycle quote colors")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, checkbtn_recycle_colors); - - CLAWS_SET_TIP(checkbtn_recycle_colors, - _("If there are more than 3 quote levels, the colors will be reused")); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0); - - label_quote_level1 = gtk_label_new (_("1st Level")); - gtk_widget_show(label_quote_level1); - gtk_box_pack_start (GTK_BOX(hbox), label_quote_level1, - FALSE, FALSE, 0); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label_quote_level1); - - COLOR_LABEL_PACK_END(hbox, COL_QUOTE_LEVEL1, _("Text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label[COL_QUOTE_LEVEL1]); - - COLOR_BUTTON_PACK_END(hbox, COL_QUOTE_LEVEL1, - C_("Tooltip", "Pick color for 1st level text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, - color_buttons.color[COL_QUOTE_LEVEL1]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0); - - label_quote_level2 = gtk_label_new (_("2nd Level")); - gtk_widget_show(label_quote_level2); - gtk_box_pack_start (GTK_BOX(hbox), label_quote_level2, - FALSE, FALSE, 0); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label_quote_level2); - - COLOR_LABEL_PACK_END(hbox, COL_QUOTE_LEVEL2, _("Text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label[COL_QUOTE_LEVEL2]); - - COLOR_BUTTON_PACK_END(hbox, COL_QUOTE_LEVEL2, - C_("Tooltip", "Pick color for 2nd level text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, - color_buttons.color[COL_QUOTE_LEVEL2]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotefg), hbox, FALSE, TRUE, 0); - - label_quote_level3 = gtk_label_new (_("3rd Level")); - gtk_widget_show(label_quote_level3); - gtk_box_pack_start (GTK_BOX(hbox), label_quote_level3, - FALSE, FALSE, 0); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label_quote_level3); - - COLOR_LABEL_PACK_END(hbox, COL_QUOTE_LEVEL3, _("Text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label[COL_QUOTE_LEVEL3]); - - COLOR_BUTTON_PACK_END(hbox, COL_QUOTE_LEVEL3, - C_("Tooltip", "Pick color for 3rd level text")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, - color_buttons.color[COL_QUOTE_LEVEL3]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0); - - PACK_CHECK_BUTTON (hbox, checkbtn_enable_bgcolors, - _("Enable coloration of text background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, checkbtn_enable_bgcolors); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_QUOTE_LEVEL1_BG, - C_("Tooltip and Dialog title", - "Pick color for 1st level text background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, - color_buttons.color[COL_QUOTE_LEVEL1_BG]); - - COLOR_LABEL_PACK_START(hbox, COL_QUOTE_LEVEL1_BG, _("Background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, label[COL_QUOTE_LEVEL1_BG]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_QUOTE_LEVEL2_BG, - C_("Tooltip and Dialog title", - "Pick color for 2nd level text background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, - color_buttons.color[COL_QUOTE_LEVEL2_BG]); - - COLOR_LABEL_PACK_START(hbox, COL_QUOTE_LEVEL2_BG, _("Background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, label[COL_QUOTE_LEVEL2_BG]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, hbox); - gtk_box_pack_start (GTK_BOX (vbox_quotebg), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_QUOTE_LEVEL3_BG, - C_("Tooltip and Dialog title", - "Pick color for 3rd level text background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, - color_buttons.color[COL_QUOTE_LEVEL3_BG]); - - COLOR_LABEL_PACK_START(hbox, COL_QUOTE_LEVEL3_BG, _("Background")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_bgcolors, label[COL_QUOTE_LEVEL3_BG]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_URI, - C_("Tooltip and Dialog title", - "Pick color for links")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, - color_buttons.color[COL_URI]); - - COLOR_LABEL_PACK_START(hbox, COL_URI, _("URI link")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label[COL_URI]); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_SIGNATURE, - C_("Tooltip and Dialog title", - "Pick color for signatures")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, - color_buttons.color[COL_SIGNATURE]); - - COLOR_LABEL_PACK_START(hbox, COL_SIGNATURE, _("Signatures")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, label[COL_SIGNATURE]); - - vbox4 = gtkut_get_options_frame(vbox2, &frame_diff, - /* TRANSLATORS: A patch is a text file listing the differences between 2 or more different */ - /* versions of the same text file */ - _("Patch messages and attachments")); - SET_TOGGLE_SENSITIVITY(checkbtn_enable_colors, frame_diff); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_DIFF_ADDED, - C_("Tooltip and Dialog title", - "Pick color for inserted lines")); - - COLOR_LABEL_PACK_START(hbox, COL_DIFF_ADDED, _("Inserted lines")); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_DIFF_DELETED, - C_("Tooltip and Dialog title", - "Pick color for removed lines")); - - COLOR_LABEL_PACK_START(hbox, COL_DIFF_DELETED, - _("Removed lines")); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox4), hbox, FALSE, FALSE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_DIFF_HUNK, - /* TRANSLATORS: A hunk is a section of the patch indicating how the files differ */ - C_("Tooltip and Dialog title", - "Pick color for hunk lines")); - - COLOR_LABEL_PACK_START(hbox, COL_DIFF_HUNK, - /* TRANSLATORS: A hunk is a section of the patch indicating how the files differ */ - _("Hunk lines")); - - vbox2 = gtkut_get_options_frame(vbox1, &frame_folder, _("Folder list")); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, TRUE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_TGT_FOLDER, - C_("Tooltip and Dialog title", - "Pick color for Target folder")); - COLOR_LABEL_PACK_START(hbox, COL_TGT_FOLDER, _("Target folder")); - gtk_widget_set_tooltip_text(GTK_WIDGET(label[COL_TGT_FOLDER]), - C_("Tooltip", "Target folder is used when the option " - "'Execute immediately when moving or " - "deleting messages' is turned off")); - - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); - - COLOR_BUTTON_PACK_START(hbox, COL_NEW, - C_("Tooltip and Dialog title", - "Pick color for folders containing new messages")); - - COLOR_LABEL_PACK_START(hbox, COL_NEW, - _("Folder containing new messages")); - - /* custom colors */ - vbox_custom_colors = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING_NARROW); - gtk_widget_show (vbox_custom_colors); - gtk_container_set_border_width (GTK_CONTAINER (vbox_custom_colors), VBOX_BORDER); - gtk_notebook_prepend_page(GTK_NOTEBOOK(notebook), vbox_custom_colors, - gtk_label_new(_("Color labels"))); - - hbox_custom_colors = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show(hbox_custom_colors); - gtk_box_pack_start(GTK_BOX (vbox_custom_colors), hbox_custom_colors, - FALSE, TRUE, 0); - - vbox_custom_colors1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING_NARROW); - gtk_widget_show (vbox_custom_colors1); - gtk_box_pack_start (GTK_BOX (hbox_custom_colors), vbox_custom_colors1, FALSE, FALSE, 0); - - vbox_custom_colors2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING_NARROW); - gtk_widget_show (vbox_custom_colors2); - gtk_box_pack_start (GTK_BOX (hbox_custom_colors), vbox_custom_colors2, FALSE, FALSE, 0); - - for (c = 0; c < (COLORLABELS>>1)+(COLORLABELS&1); c++) { - /* TRANSLATORS: 'color %d' refers to the filtering/processing - rule name and should not be translated */ - tooltip_btn_text = g_strdup_printf(C_("Tooltip", "Pick color for 'color %d'"), c+1); - - /* TRANSLATORS: 'color %d' refers to the filtering/processing - rule name and should not be translated */ - tooltip_entry_text = g_strdup_printf(_("Set label for 'color %d'"), c+1); - - hbox_custom_color[c] = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show(hbox_custom_color[c]); - gtk_box_pack_start(GTK_BOX (vbox_custom_colors1), hbox_custom_color[c], - FALSE, TRUE, 0); - - color_buttons.custom_color[c] = gtk_color_button_new_with_rgba( - &prefs_common.custom_colorlabel[c].color); - title = g_strdup_printf(C_("Dialog title", "Pick color for 'color %d'"), c+1); - gtk_color_button_set_title(GTK_COLOR_BUTTON(color_buttons.custom_color[c]), - title); - g_free(title); - gtk_widget_show(color_buttons.custom_color[c]); - gtk_box_pack_start(GTK_BOX (hbox_custom_color[c]), color_buttons.custom_color[c], - FALSE, FALSE, 0); - - CLAWS_SET_TIP(color_buttons.custom_color[c], - tooltip_btn_text); - g_free(tooltip_btn_text); - - entry_custom_colorlabel[c] = gtk_entry_new(); - gtk_widget_show (entry_custom_colorlabel[c]); - gtk_box_pack_start(GTK_BOX (hbox_custom_color[c]), entry_custom_colorlabel[c], - FALSE, FALSE, 0); - CLAWS_SET_TIP(entry_custom_colorlabel[c], - tooltip_entry_text); - g_free(tooltip_entry_text); - } - - for (c = (COLORLABELS>>1)+(COLORLABELS&1); c < COLORLABELS; c++) { - /* TRANSLATORS: 'color %d' refers to the filtering/processing - rule name and should not be translated */ - tooltip_btn_text = g_strdup_printf(C_("Tooltip", "Pick color for 'color %d'"), c+1); - - /* TRANSLATORS: 'color %d' refers to the filtering/processing - rule name and should not be translated */ - tooltip_entry_text = g_strdup_printf(_("Set label for 'color %d'"), c+1); - - hbox_custom_color[c] = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show(hbox_custom_color[c]); - gtk_box_pack_start(GTK_BOX (vbox_custom_colors2), hbox_custom_color[c], - FALSE, TRUE, 0); - - color_buttons.custom_color[c] = gtk_color_button_new_with_rgba( - &prefs_common.custom_colorlabel[c].color); - title = g_strdup_printf(C_("Dialog title", "Pick color for 'color %d'"), c+1); - gtk_color_button_set_title(GTK_COLOR_BUTTON(color_buttons.custom_color[c]), - title); - g_free(title); - gtk_widget_show(color_buttons.custom_color[c]); - gtk_box_pack_start(GTK_BOX (hbox_custom_color[c]), color_buttons.custom_color[c], - FALSE, FALSE, 0); - CLAWS_SET_TIP(color_buttons.custom_color[c], - tooltip_btn_text); - g_free(tooltip_btn_text); - - entry_custom_colorlabel[c] = gtk_entry_new(); - gtk_widget_show (entry_custom_colorlabel[c]); - gtk_box_pack_start(GTK_BOX (hbox_custom_color[c]), entry_custom_colorlabel[c], - FALSE, FALSE, 0); - CLAWS_SET_TIP(entry_custom_colorlabel[c], - tooltip_entry_text); - - g_free(tooltip_entry_text); - } - - hbox_reset_custom_colors = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VBOX_BORDER); - gtk_widget_show (hbox_reset_custom_colors); - gtk_box_pack_start(GTK_BOX (vbox_custom_colors), hbox_reset_custom_colors, - FALSE, FALSE, 0); - - btn_reset_custom_colors = gtk_button_new_with_label(_(" Use default ")); - gtk_widget_show(btn_reset_custom_colors); - gtk_box_pack_start(GTK_BOX(hbox_reset_custom_colors), btn_reset_custom_colors, - FALSE, FALSE, 0); - - g_signal_connect(G_OBJECT(btn_reset_custom_colors), "clicked", - G_CALLBACK(prefs_msg_colors_reset_custom_colors), prefs_msg_colors); - - for (c = 0; c < COLORLABELS; c++) { - gtk_entry_set_text(GTK_ENTRY (entry_custom_colorlabel[c]), - gettext(SAFE_STRING (prefs_common.custom_colorlabel[c].label))); - } - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_enable_colors), - prefs_common.enable_color); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_enable_bgcolors), - prefs_common.enable_bgcolor); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_recycle_colors), - prefs_common.recycle_quote_colors); - - prefs_msg_colors->checkbtn_enable_colors = checkbtn_enable_colors; - prefs_msg_colors->checkbtn_enable_bgcolors = checkbtn_enable_bgcolors; - prefs_msg_colors->checkbtn_recycle_colors = checkbtn_recycle_colors; - - for (c = 0; c < COLORLABELS; c++) { - prefs_msg_colors->entry_custom_colorlabel[c] = entry_custom_colorlabel[c]; - } - gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0); - - prefs_msg_colors->page.widget = notebook; -} - -#undef COLOR_BUTTON_PACK_START -#undef COLOR_BUTTON_PACK_END -#undef COLOR_LABEL_PACK_START -#undef COLOR_LABEL_PACK_END - -#define COLOR_OTHER_SAVE(colorid) \ - gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(color_buttons.color[colorid]), \ - &prefs_common.color[colorid]) - -static void prefs_msg_colors_save(PrefsPage *_page) -{ - MsgColorsPage *page = (MsgColorsPage *) _page; - gint c; - - prefs_common.enable_color = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_enable_colors)); - prefs_common.enable_bgcolor = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_enable_bgcolors)); - prefs_common.recycle_quote_colors = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_recycle_colors)); - - /* custom colors */ - for (c = 0; c < COLORLABELS; c++) { - g_free(prefs_common.custom_colorlabel[c].label); - prefs_common.custom_colorlabel[c].label = - gtk_editable_get_chars(GTK_EDITABLE(page->entry_custom_colorlabel[c]), 0, -1); - gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(color_buttons.custom_color[c]), - &prefs_common.custom_colorlabel[c].color); - } - colorlabel_update_colortable_from_prefs(); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL1); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL2); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL3); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL1_BG); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL2_BG); - COLOR_OTHER_SAVE(COL_QUOTE_LEVEL3_BG); - COLOR_OTHER_SAVE(COL_URI); - COLOR_OTHER_SAVE(COL_SIGNATURE); - COLOR_OTHER_SAVE(COL_DIFF_ADDED); - COLOR_OTHER_SAVE(COL_DIFF_DELETED); - COLOR_OTHER_SAVE(COL_DIFF_HUNK); - COLOR_OTHER_SAVE(COL_TGT_FOLDER); - COLOR_OTHER_SAVE(COL_NEW); - - main_window_reflect_prefs_all(); - main_window_reflect_prefs_custom_colors(mainwindow_get_mainwindow()); -} -#undef COLOR_OTHER_SAVE - -static void prefs_msg_colors_reset_custom_colors(GtkWidget *widget, gpointer data) -{ - MsgColorsPage *page = (MsgColorsPage *) data; - GdkRGBA rgba; - gint c; - - for (c = 0; c < COLORLABELS; c++) { - rgba = colorlabel_get_default_color(c); - prefs_common.custom_colorlabel[c].color = rgba; - gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(color_buttons.custom_color[c]), &rgba); - gtk_entry_set_text(GTK_ENTRY(page->entry_custom_colorlabel[c]), - gettext(SAFE_STRING (colorlabel_get_color_default_text(c)))); - } -} - -static void prefs_msg_colors_destroy_widget(PrefsPage *_page) -{ -} - -MsgColorsPage *prefs_msg_colors; - -void prefs_msg_colors_init(void) -{ - MsgColorsPage *page; - static gchar *path[3]; - - path[0] = _("Display"); - path[1] = _("Colors"); - path[2] = NULL; - - page = g_new0(MsgColorsPage, 1); - page->page.path = path; - page->page.create_widget = prefs_msg_colors_create_widget; - page->page.destroy_widget = prefs_msg_colors_destroy_widget; - page->page.save_page = prefs_msg_colors_save; - page->page.weight = 165.0; - prefs_gtk_register_page((PrefsPage *) page); - prefs_msg_colors = page; -} - -void prefs_msg_colors_done(void) -{ - prefs_gtk_unregister_page((PrefsPage *) prefs_msg_colors); - g_free(prefs_msg_colors); -} - diff --git a/src/prefs_msg_colors.h b/src/prefs_msg_colors.h @@ -1,44 +0,0 @@ -/* - * Claws Mail -- a GTK based, lightweight, and fast e-mail client - * Copyright (C) 2004-2012 Hiroyuki Yamamoto and the Claws Mail team - * - * 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 - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#ifndef PREFS_MSG_COLORS_H -#define PREFS_MSG_COLORS_H - -#include "colorlabel.h" - -typedef struct _ColorlabelPrefs ColorlabelPrefs; -typedef struct _ColorlabelPrefsWidgets ColorlabelPrefsWidgets; - -struct _ColorlabelPrefs -{ - GdkRGBA color; - gchar *label; - -}; - -struct _ColorlabelPrefsWidgets -{ - GtkWidget* foo; - GtkWidget* bar; -}; - -void prefs_msg_colors_init (void); -void prefs_msg_colors_done (void); - -#endif /* PREFS_MSG_COLORS_H */ diff --git a/src/prefs_summaries.c b/src/prefs_summaries.c @@ -74,7 +74,6 @@ typedef struct _SummariesPage GtkWidget *checkbtn_immedexec; GtkWidget *checkbtn_ask_mark_all_read; GtkWidget *checkbtn_run_processingrules_mark_all_read; - GtkWidget *checkbtn_ask_override_colorlabel; GtkWidget *optmenu_sort_key; GtkWidget *optmenu_sort_type; GtkWidget *optmenu_summaryfromshow; @@ -390,7 +389,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, GtkWidget *checkbtn_immedexec; GtkWidget *checkbtn_ask_mark_all_read; GtkWidget *checkbtn_run_processingrules_mark_all_read; - GtkWidget *checkbtn_ask_override_colorlabel; GtkWidget *label, *label_fill; GtkListStore *menu; GtkTreeIter iter; @@ -664,9 +662,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, PACK_CHECK_BUTTON (vbox1, checkbtn_ask_mark_all_read, _("Confirm when marking all messages as read or unread")); - PACK_CHECK_BUTTON - (vbox1, checkbtn_ask_override_colorlabel, - _("Confirm when changing color labels")); PACK_CHECK_BUTTON (vbox1, checkbtn_show_tooltips, @@ -703,7 +698,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, COMBOBOX_ADD(menu, _("From"), SORT_BY_FROM); COMBOBOX_ADD(menu, _("To"), SORT_BY_TO); COMBOBOX_ADD(menu, _("Subject"), SORT_BY_SUBJECT); - COMBOBOX_ADD(menu, _("Color label"), SORT_BY_LABEL); COMBOBOX_ADD(menu, _("Tag"), SORT_BY_TAGS); COMBOBOX_ADD(menu, _("Mark"), SORT_BY_MARK); COMBOBOX_ADD(menu, _("Status"), SORT_BY_STATUS); @@ -761,7 +755,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, prefs_summaries->checkbtn_immedexec = checkbtn_immedexec; prefs_summaries->checkbtn_ask_mark_all_read = checkbtn_ask_mark_all_read; prefs_summaries->checkbtn_run_processingrules_mark_all_read = checkbtn_run_processingrules_mark_all_read; - prefs_summaries->checkbtn_ask_override_colorlabel = checkbtn_ask_override_colorlabel; prefs_summaries->optmenu_sort_key = optmenu_sort_key; prefs_summaries->optmenu_sort_type = optmenu_sort_type; prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog; @@ -826,8 +819,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, prefs_common.ask_mark_all_read); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_run_processingrules_mark_all_read), prefs_common.run_processingrules_before_mark_all); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_ask_override_colorlabel), - prefs_common.ask_override_colorlabel); combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_key), prefs_common.default_sort_key); @@ -906,8 +897,6 @@ static void prefs_summaries_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_ask_mark_all_read)); prefs_common.run_processingrules_before_mark_all = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_run_processingrules_mark_all_read)); - prefs_common.ask_override_colorlabel = gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(page->checkbtn_ask_override_colorlabel)); prefs_common.mark_as_read_delay = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(page->spinbtn_mark_as_read_delay)); prefs_common.summary_col_lock = gtk_toggle_button_get_active( diff --git a/src/ssl_manager.c b/src/ssl_manager.c @@ -332,7 +332,6 @@ static void ssl_manager_load_certs (void) const gchar *d; GError *error = NULL; gchar *path; - int row = 0; GtkListStore *store; store = GTK_LIST_STORE(gtk_tree_view_get_model @@ -375,7 +374,6 @@ static void ssl_manager_load_certs (void) g_free(port); if (fp) g_free(fp); - row++; } g_dir_close(dir); g_free(path); diff --git a/src/summaryview.c b/src/summaryview.c @@ -56,7 +56,6 @@ #include "inputdialog.h" #include "statusbar.h" #include "folder.h" -#include "colorlabel.h" #include "inc.h" #include "imap.h" #include "addressbook.h" @@ -225,14 +224,6 @@ void summary_simplify_subject(SummaryView *summaryview, gchar * rexp, static void summary_filter_func (MsgInfo *msginfo, PrefsAccount *ac_prefs); -static void summary_colorlabel_menu_item_activate_cb - (GtkWidget *widget, - gpointer data); -static void summary_colorlabel_menu_item_activate_item_cb - (GtkMenuItem *label_menu_item, - gpointer data); -static void summary_colorlabel_menu_create(SummaryView *summaryview, - gboolean refresh); static void summary_tags_menu_item_activate_cb (GtkWidget *widget, gpointer data); @@ -395,9 +386,6 @@ static void summary_find_answers (SummaryView *summaryview, static gboolean summary_update_msg (gpointer source, gpointer data); static gboolean summary_update_folder_item_hook(gpointer source, gpointer data); static gboolean summary_update_folder_hook(gpointer source, gpointer data); -static void summary_set_colorlabel_color (GtkCMCTree *ctree, - GtkCMCTreeNode *node, - guint labelcolor); static void summary_thread_build(SummaryView *summaryview); GtkTargetEntry summary_drag_types[3] = @@ -726,7 +714,7 @@ SummaryView *summary_create(MainWindow *mainwin) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Lock", "Message/Marks/Lock", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Unlock", "Message/Marks/Unlock", GTK_UI_MANAGER_MENUITEM) - /* submenus - colorlabel and tags are dynamic */ + /* submenus - tags are dynamic */ /* submenus - createfilterrule */ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/CreateFilterRule", "Automatically", "Tools/CreateFilterRule/Automatically", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/CreateFilterRule", "ByFrom", "Tools/CreateFilterRule/ByFrom", GTK_UI_MANAGER_MENUITEM) @@ -974,7 +962,6 @@ void summary_init(SummaryView *summaryview) summaryview->simplify_subject_preg = NULL; summary_clear_list(summaryview); summary_set_column_titles(summaryview); - summary_colorlabel_menu_create(summaryview, FALSE); summary_tags_menu_create(summaryview, FALSE); main_create_mailing_list_menu (summaryview->mainwin, NULL); summary_set_menu_sensitive(summaryview); @@ -2851,7 +2838,6 @@ void summary_reflect_tags_changes(SummaryView *summaryview) gboolean froze = FALSE; gboolean redisplay = FALSE; - /* re-create colorlabel submenu */ menu = GTK_MENU_SHELL(summaryview->tags_menu); cm_return_if_fail(menu != NULL); @@ -3965,9 +3951,6 @@ static void summary_set_row_marks(SummaryView *summaryview, GtkCMCTreeNode *row) } gtk_cmctree_node_set_row_style(ctree, row, style); - - if (MSG_GET_COLORLABEL(flags)) - summary_set_colorlabel_color(ctree, row, MSG_GET_COLORLABEL_VALUE(flags)); } static void summary_mark_row(SummaryView *summaryview, GtkCMCTreeNode *row) @@ -5863,146 +5846,6 @@ void summary_filter_open(SummaryView *summaryview, PrefsFilterType type, summary_msginfo_filter_open(item, msginfo, type, processing_rule); } -/* color label */ - -#define N_COLOR_LABELS colorlabel_get_color_count() - -static void summary_colorlabel_menu_item_activate_cb(GtkWidget *widget, - gpointer data) -{ - guint color = GPOINTER_TO_UINT(data); - SummaryView *summaryview; - - summaryview = g_object_get_data(G_OBJECT(widget), "summaryview"); - cm_return_if_fail(summaryview != NULL); - - /* "dont_toggle" state set? */ - if (g_object_get_data(G_OBJECT(summaryview->colorlabel_menu), - "dont_toggle")) - return; - - summary_set_colorlabel(summaryview, color, NULL); -} - -/* summary_set_colorlabel_color() - labelcolor parameter is the color *flag* - * for the message; not the color index */ -void summary_set_colorlabel_color(GtkCMCTree *ctree, GtkCMCTreeNode *node, - guint labelcolor) -{ - GdkColor color; - GdkRGBA rgba; - GtkStyle *style, *prev_style, *ctree_style; - MsgInfo *msginfo; - gint color_index; - - msginfo = gtk_cmctree_node_get_row_data(ctree, node); - cm_return_if_fail(msginfo); - - color_index = labelcolor == 0 ? -1 : (gint)labelcolor - 1; - ctree_style = gtk_widget_get_style(GTK_WIDGET(ctree)); - prev_style = gtk_cmctree_node_get_row_style(ctree, node); - - if (color_index < 0 || color_index >= N_COLOR_LABELS) { - if (!prev_style) return; - style = gtk_style_copy(prev_style); - color = ctree_style->text[GTK_STATE_NORMAL]; - style->text[GTK_STATE_NORMAL] = color; - color = ctree_style->text[GTK_STATE_SELECTED]; - style->text[GTK_STATE_SELECTED] = color; - } else { - if (prev_style) - style = gtk_style_copy(prev_style); - else - style = gtk_style_copy(ctree_style); - rgba = colorlabel_get_color(color_index); - GTKUT_GDKRGBA_TO_GDKCOLOR(rgba, color); - style->text[GTK_STATE_NORMAL] = color; - /* get the average of label color and selected fg color - for visibility */ - style->text[GTK_STATE_SELECTED].red = (color.red + 3*ctree_style->text[GTK_STATE_SELECTED].red ) / 4; - style->text[GTK_STATE_SELECTED].green = (color.green + 3*ctree_style->text[GTK_STATE_SELECTED].green) / 4; - style->text[GTK_STATE_SELECTED].blue = (color.blue + 3*ctree_style->text[GTK_STATE_SELECTED].blue ) / 4; - } - - gtk_cmctree_node_set_row_style(ctree, node, style); - g_object_unref(style); -} - -static void summary_set_row_colorlabel(SummaryView *summaryview, GtkCMCTreeNode *row, guint labelcolor) -{ - GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree); - MsgInfo *msginfo; - - msginfo = gtk_cmctree_node_get_row_data(ctree, row); - cm_return_if_fail(msginfo); - - summary_msginfo_change_flags(msginfo, MSG_COLORLABEL_TO_FLAGS(labelcolor), 0, - MSG_CLABEL_FLAG_MASK, 0); - summary_set_row_marks(summaryview, row); -} - -void summary_set_colorlabel(SummaryView *summaryview, guint labelcolor, - GtkWidget *widget) -{ - GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree); - GList *cur; - gboolean froze = FALSE; - - if (prefs_common.ask_override_colorlabel) { - GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree); - gboolean ask = FALSE; - AlertValue val; - guint color; - gboolean already_this_color_everywhere = TRUE; - - /* if clearing color labels (applying 'none', 0): - - ask if at least one message has a non-0 color label set - if applying a non-0 color label: - - ask if at least one of the selected messages has a non-0 color label different - from the one we want to apply. - - don't ask if all messages have the same color label as the one we're applying - */ - for (cur = GTK_CMCLIST(ctree)->selection; - !ask && cur != NULL && cur->data != NULL; - cur = cur->next) { - MsgInfo *msginfo = gtk_cmctree_node_get_row_data(ctree, GTK_CMCTREE_NODE(cur->data)); - if (msginfo) { - color = MSG_GET_COLORLABEL_VALUE(msginfo->flags); - if (labelcolor == 0) { - /* clearing color labels */ - ask = (color != 0); - } else { - already_this_color_everywhere &= (color == labelcolor); - ask = ((color != 0) && (color != labelcolor)) && !already_this_color_everywhere; - } - } - } - - if (ask) { - gchar *msg; - - if (labelcolor == 0) - msg = _("Do you really want to reset the color label of all selected messages?"); - else - msg = _("Do you really want to apply this color label to all selected messages?"); - val = alertpanel_full(labelcolor == 0? _("Reset color label"): _("Set color label"), msg, - NULL, _("_No"), NULL, _("_Yes"), NULL, NULL, ALERTFOCUS_FIRST, - TRUE, NULL, ALERT_QUESTION); - - if ((val & ~G_ALERTDISABLE) != G_ALERTALTERNATE) - return; - else if (val & G_ALERTDISABLE) - prefs_common.ask_override_colorlabel = FALSE; - } - } - - START_LONG_OPERATION(summaryview, FALSE); - for (cur = GTK_CMCLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next) - summary_set_row_colorlabel(summaryview, - GTK_CMCTREE_NODE(cur->data), labelcolor); - END_LONG_OPERATION(summaryview); -} - static gboolean summary_set_row_tag(SummaryView *summaryview, GtkCMCTreeNode *row, gboolean refresh, gboolean set, gint id) { GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree); @@ -6072,134 +5915,6 @@ static void summary_tags_menu_item_activate_cb(GtkWidget *widget, summary_set_tag(summaryview, id, NULL); } -static void summary_colorlabel_menu_item_activate_item_cb(GtkMenuItem *menu_item, - gpointer data) -{ - SummaryView *summaryview; - GtkMenuShell *menu; - GtkCheckMenuItem **items; - gint n; - GList *children, *cur, *sel; - - summaryview = (SummaryView *)data; - cm_return_if_fail(summaryview != NULL); - - sel = GTK_CMCLIST(summaryview->ctree)->selection; - if (!sel) return; - - menu = GTK_MENU_SHELL(summaryview->colorlabel_menu); - - cm_return_if_fail(menu != NULL); - - Xalloca(items, (N_COLOR_LABELS + 1) * sizeof(GtkWidget *), return); - - /* NOTE: don't return prematurely because we set the "dont_toggle" - * state for check menu items */ - g_object_set_data(G_OBJECT(menu), "dont_toggle", - GINT_TO_POINTER(1)); - - /* clear items. get item pointers. */ - children = gtk_container_get_children(GTK_CONTAINER(menu)); - for (n = 0, cur = children; cur != NULL && cur->data != NULL; cur = cur->next) { - if (GTK_IS_CHECK_MENU_ITEM(cur->data)) { - gtk_check_menu_item_set_active - (GTK_CHECK_MENU_ITEM(cur->data), FALSE); - gtk_check_menu_item_set_draw_as_radio(GTK_CHECK_MENU_ITEM(cur->data), - TRUE); - items[n] = GTK_CHECK_MENU_ITEM(cur->data); - n++; - } - } - - g_list_free(children); - - if (n == (N_COLOR_LABELS + 1)) { - /* iterate all messages and set the state of the appropriate - * items */ - for (; sel != NULL; sel = sel->next) { - MsgInfo *msginfo; - gint clabel; - - msginfo = gtk_cmctree_node_get_row_data - (GTK_CMCTREE(summaryview->ctree), - GTK_CMCTREE_NODE(sel->data)); - if (msginfo) { - clabel = MSG_GET_COLORLABEL_VALUE(msginfo->flags); - if (!gtk_check_menu_item_get_active(items[clabel])) - gtk_check_menu_item_set_active - (items[clabel], TRUE); - } - } - } else - g_warning("invalid number of color elements (%d)", n); - - /* reset "dont_toggle" state */ - g_object_set_data(G_OBJECT(menu), "dont_toggle", - GINT_TO_POINTER(0)); -} - -static void summary_colorlabel_menu_create(SummaryView *summaryview, gboolean refresh) -{ - GtkWidget *label_menuitem; - GtkWidget *menu; - GtkWidget *item; - gint i; - gchar *accel_path = NULL; - - label_menuitem = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, "/Menus/SummaryViewPopup/ColorLabel"); - g_signal_connect(G_OBJECT(label_menuitem), "activate", - G_CALLBACK(summary_colorlabel_menu_item_activate_item_cb), - summaryview); - gtk_widget_show(label_menuitem); - - menu = gtk_menu_new(); - - gtk_menu_set_accel_group (GTK_MENU (menu), - gtk_ui_manager_get_accel_group(mainwindow_get_mainwindow()->ui_manager)); - - /* create sub items. for the menu item activation callback we pass the - * index of label_colors[] as data parameter. for the None color we - * pass an invalid (high) value. also we attach a data pointer so we - * can always get back the SummaryView pointer. */ - - item = gtk_check_menu_item_new_with_label(_("None")); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_signal_connect(G_OBJECT(item), "activate", - G_CALLBACK(summary_colorlabel_menu_item_activate_cb), - GUINT_TO_POINTER(0)); - g_object_set_data(G_OBJECT(item), "summaryview", summaryview); - gtk_widget_show(item); - - accel_path = g_strdup_printf("<ClawsColorLabels>/None"); - gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path); - g_free(accel_path); - gtk_accel_map_add_entry("<ClawsColorLabels>/None", GDK_KEY_0, GDK_CONTROL_MASK); - - /* create pixmap/label menu items */ - for (i = 0; i < N_COLOR_LABELS; i++) { - item = colorlabel_create_check_color_menu_item( - i, refresh, SUMMARY_COLORMENU); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_signal_connect(G_OBJECT(item), "activate", - G_CALLBACK(summary_colorlabel_menu_item_activate_cb), - GUINT_TO_POINTER(i + 1)); - g_object_set_data(G_OBJECT(item), "summaryview", - summaryview); - gtk_widget_show(item); - accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i+1); - gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path); - if (i < 9) - gtk_accel_map_add_entry(accel_path, GDK_KEY_1+i, GDK_CONTROL_MASK); - g_free(accel_path); - g_signal_connect (gtk_ui_manager_get_accel_group(mainwindow_get_mainwindow()->ui_manager), - "accel-changed", G_CALLBACK (mainwin_accel_changed_cb), item); - } - - gtk_widget_show(menu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(label_menuitem), menu); - summaryview->colorlabel_menu = menu; -} - static void summary_tags_menu_item_activate_item_cb(GtkMenuItem *menu_item, gpointer data) { @@ -8115,28 +7830,6 @@ void summary_reflect_prefs_pixmap_theme(SummaryView *summaryview) summary_set_column_titles(summaryview); } -void summary_reflect_prefs_custom_colors(SummaryView *summaryview) -{ - GtkMenuShell *menu; - GList *children, *cur; - - /* re-create colorlabel submenu */ - menu = GTK_MENU_SHELL(summaryview->colorlabel_menu); - cm_return_if_fail(menu != NULL); - - /* clear items. get item pointers. */ - children = gtk_container_get_children(GTK_CONTAINER(menu)); - for (cur = children; cur != NULL && cur->data != NULL; cur = cur->next) { - g_signal_handlers_disconnect_matched - (gtk_ui_manager_get_accel_group(summaryview->mainwin->ui_manager), - G_SIGNAL_MATCH_DATA|G_SIGNAL_MATCH_FUNC, - 0, 0, NULL, mainwin_accel_changed_cb, cur->data); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(cur->data), NULL); - } - g_list_free(children); - summary_colorlabel_menu_create(summaryview, TRUE); -} - /* * Harvest addresses for selected messages in summary view. */ diff --git a/src/summaryview.h b/src/summaryview.h @@ -101,7 +101,6 @@ struct _SummaryView GtkWidget *quick_search_pixmap; GtkWidget *popupmenu; GtkWidget *headerpopupmenu; - GtkWidget *colorlabel_menu; GtkWidget *tags_menu; GtkWidget *window; @@ -299,9 +298,6 @@ void summary_select_thread (SummaryView *summaryview, gboolean delete_thread, gboolean trash_thread); -void summary_set_colorlabel (SummaryView *summaryview, - guint labelcolor, - GtkWidget *widget); void summary_set_tag (SummaryView *summaryview, gint tag_id, GtkWidget *widget);