2006-01-15 [colin] 1.9.100cvs156
[claws.git] / src / folderview.c
index 0fb729e689c68aeaeee354863c7f356f9e854b4b..91132fe79b6100d20601f6de092008a6a28531f0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2004 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws 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
@@ -575,6 +575,7 @@ FolderView *folderview_create(void)
 void folderview_init(FolderView *folderview)
 {
        GtkWidget *ctree = folderview->ctree;
+       GdkColor gdk_color;
 
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_CLOSE, &inboxxpm, &inboxxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_CLOSE_HRM, &inboxhrmxpm, &inboxhrmxpmmask);
@@ -633,18 +634,20 @@ void folderview_init(FolderView *folderview)
                                        (normal_style->font_desc);
                        normal_style->font_desc = font_desc;
                }
+               gtkut_convert_int_to_gdk_color(prefs_common.color_new, &gdk_color);
                normal_color_style = gtk_style_copy(normal_style);
-               normal_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
+               normal_color_style->fg[GTK_STATE_NORMAL] = gdk_color;
 
                gtk_widget_set_style(ctree, normal_style);
        }
 
        if (!bold_style) {
+               gtkut_convert_int_to_gdk_color(prefs_common.color_new, &gdk_color);
                bold_style = gtk_style_copy(gtk_widget_get_style(ctree));
                pango_font_description_set_weight
                        (bold_style->font_desc, PANGO_WEIGHT_BOLD);
                bold_color_style = gtk_style_copy(bold_style);
-               bold_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
+               bold_color_style->fg[GTK_STATE_NORMAL] = gdk_color;
 
                bold_tgtfold_style = gtk_style_copy(bold_style);
                bold_tgtfold_style->fg[GTK_STATE_NORMAL] = folderview->color_op;
@@ -712,13 +715,13 @@ static void mark_all_read_cb(FolderView *folderview, guint action,
        if (prefs_common.ask_mark_all_read) {
                val = alertpanel_full(_("Mark all as read"),
                        _("Do you really want to mark all mails in this "
-                         "folder as read ?"), GTK_STOCK_YES, GTK_STOCK_NO, NULL,
-                         TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);
+                         "folder as read ?"), GTK_STOCK_NO, GTK_STOCK_YES, NULL,
+                         TRUE, NULL, ALERT_QUESTION, G_ALERTALTERNATE);
 
-               if (val == G_ALERTALTERNATE ||
-                   val == (G_ALERTALTERNATE|G_ALERTDISABLE))
+               if (val == G_ALERTDEFAULT ||
+                   val == (G_ALERTDEFAULT|G_ALERTDISABLE))
                        return;
-               else if (val == (G_ALERTDEFAULT|G_ALERTDISABLE)) 
+               else if (val == (G_ALERTALTERNATE|G_ALERTDISABLE))
                        prefs_common.ask_mark_all_read = FALSE;
        }
        
@@ -959,9 +962,9 @@ void folderview_rescan_tree(Folder *folder, gboolean rebuild)
            alertpanel_full(_("Rebuild folder tree"), 
                         _("Rebuilding the folder tree will remove "
                           "local caches. Do you want to continue?"),
-                        GTK_STOCK_YES, GTK_STOCK_NO, NULL, FALSE,
-                        NULL, ALERT_WARNING, G_ALERTALTERNATE
-               != G_ALERTDEFAULT) {
+                        GTK_STOCK_NO, GTK_STOCK_YES, NULL, FALSE,
+                        NULL, ALERT_WARNING, G_ALERTDEFAULT
+               != G_ALERTALTERNATE) {
                return;
        }
 
@@ -1431,22 +1434,29 @@ static void folderview_update_node(FolderView *folderview, GtkCTreeNode *node)
        gtk_ctree_node_set_foreground(ctree, node, NULL);
 
        if (use_bold) {
-               if (item->prefs->color > 0 && !use_color) {
-                       GdkColor gdk_color;
+               GdkColor gdk_color;
 
+               if (item->prefs->color > 0 && !use_color) {
                        gtkut_convert_int_to_gdk_color(item->prefs->color, &gdk_color);
                        color_style = gtk_style_copy(bold_style);
                        color_style->fg[GTK_STATE_NORMAL] = gdk_color;
                        style = color_style;
-               } else if (use_color)
+               } else if (use_color) {
+                       gtkut_convert_int_to_gdk_color(prefs_common.color_new, &gdk_color);
+                       bold_color_style = gtk_style_copy(bold_style);
+                       bold_color_style->fg[GTK_STATE_NORMAL] = gdk_color;
                        style = bold_color_style;
-               else
+               else
                        style = bold_style;
                if (item->op_count > 0) {
                        style = bold_tgtfold_style;
                }
        } else if (use_color) {
-               style = normal_color_style;
+               GdkColor gdk_color;
+
+               gtkut_convert_int_to_gdk_color(prefs_common.color_new, &gdk_color);
+               style = gtk_style_copy(normal_color_style);
+               style->fg[GTK_STATE_NORMAL] = gdk_color;
                gtk_ctree_node_set_foreground(ctree, node,
                                              &folderview->color_new);
        } else if (item->op_count > 0) {
@@ -1669,7 +1679,7 @@ static gboolean folderview_button_pressed(GtkWidget *ctree, GdkEventButton *even
 
        if (!event) return FALSE;
 
-       if (event->button == 1) {
+       if (event->button == 1 || event->button == 2) {
                folderview->open_folder = TRUE;
 
                if (event->type == GDK_2BUTTON_PRESS) {
@@ -2043,7 +2053,7 @@ static void folderview_empty_trash_cb(FolderView *folderview, guint action,
        if (prefs_common.ask_on_clean) {
                if (alertpanel(_("Empty trash"),
                               _("Delete all messages in trash?"),
-                              GTK_STOCK_YES, GTK_STOCK_NO, NULL) != G_ALERTDEFAULT)
+                              GTK_STOCK_CANCEL, _("+_Empty trash"), NULL) != G_ALERTALTERNATE)
                        return;
        }
        
@@ -2128,12 +2138,12 @@ void folderview_move_folder(FolderView *folderview, FolderItem *from_folder,
                                        "sub-folder of '%s' ?"), from_folder->name,
                                        to_folder->name);
                status = alertpanel_full(_("Move folder"), buf,
-                                        GTK_STOCK_YES, GTK_STOCK_NO, NULL, TRUE,
-                                        NULL, ALERT_QUESTION, G_ALERTALTERNATE);
+                                        GTK_STOCK_NO, GTK_STOCK_YES, NULL, TRUE,
+                                        NULL, ALERT_QUESTION, G_ALERTDEFAULT);
                g_free(buf);
 
-               if (status != G_ALERTDEFAULT
-                && status != (G_ALERTDEFAULT | G_ALERTDISABLE))
+               if (status != G_ALERTALTERNATE
+                && status != (G_ALERTALTERNATE | G_ALERTDISABLE))
                        return;
                if (status & G_ALERTDISABLE)
                        prefs_common.warn_dnd = FALSE;