static GdkFont *normalfont;
static GdkFont *boldfont;
+static GtkStyle *bold_style;
+static GtkStyle *bold_color_style;
+
static GdkPixmap *inboxxpm;
static GdkBitmap *inboxxpmmask;
static GdkPixmap *outboxxpm;
normalfont = gdk_fontset_load(NORMAL_FONT);
if (!boldfont)
boldfont = gdk_fontset_load(BOLD_FONT);
+
+ if (!bold_style) {
+ bold_style = gtk_style_copy(gtk_widget_get_style(ctree));
+ bold_style->font = boldfont;
+ bold_color_style = gtk_style_copy(bold_style);
+ bold_color_style->fg[GTK_STATE_NORMAL] = folderview->color_new;
+ }
}
void folderview_set(FolderView *folderview)
{
GtkCTree *ctree = GTK_CTREE(folderview->ctree);
GtkCTreeNode *node;
+ GtkCTreeNode *old_selected = folderview->selected;
if (!item) return;
node = gtk_ctree_find_by_row_data(ctree, NULL, item);
if (node) folderview_select_node(folderview, node);
+
+ if (old_selected != node)
+ folder_update_op_count();
}
static void folderview_select_node(FolderView *folderview, GtkCTreeNode *node)
else
gtk_widget_grab_focus(folderview->ctree);
- while ((node = gtkut_ctree_find_collapsed_parent(ctree, node))
- != NULL)
- gtk_ctree_expand(ctree, node);
+ gtkut_ctree_expand_parent_all(ctree, node);
}
void folderview_unselect(FolderView *folderview)
GList *list;
gchar *rootpath;
- if (folder->type == F_MH || folder->type == F_MBOX ||
- folder->type == F_MAILDIR)
+ if (FOLDER_IS_LOCAL(folder))
rootpath = LOCAL_FOLDER(folder)->rootpath;
else if (folder->type == F_IMAP && folder->account &&
folder->account->recv_server)
folder_write_list();
folderview_set_all();
+ gtk_widget_destroy(window);
+}
+void folderview_update_all_node(void)
+{
+ GList *list;
+ FolderItem *item;
+ FolderView *folderview;
+ GtkCTree *ctree;
+ GtkCTreeNode *node;
+ GtkWidget *window;
+
+ window = label_window_create(_("Updating all folders..."));
+
+ for (list = folderview_list; list != NULL; list = list->next) {
+ folderview = (FolderView *)list->data;
+ ctree = GTK_CTREE(folderview->ctree);
+
+ for (node = GTK_CTREE_NODE(GTK_CLIST(ctree)->row_list);
+ node != NULL; node = gtkut_ctree_node_next(ctree, node)) {
+ item = gtk_ctree_node_get_row_data(ctree, node);
+ if (!item || !FOLDER_IS_LOCAL(item->folder) ||
+ !item->path)
+ continue;
+ folderview_scan_tree_func(item->folder, item, NULL);
+ folder_item_scan(item);
+ folderview_update_node(folderview, node);
+ }
+ }
+
+ folder_write_list();
gtk_widget_destroy(window);
}
style->fg[GTK_STATE_NORMAL] = folderview->color_new;
style->fg[GTK_STATE_SELECTED] = folderview->color_new;
} else {
- style->fg[GTK_STATE_NORMAL] =
- ctree_style->fg[GTK_STATE_NORMAL];
- style->fg[GTK_STATE_SELECTED] =
- ctree_style->fg[GTK_STATE_SELECTED];
+ if (item->op_count > 0) {
+ if (boldfont)
+ style->font = boldfont;
+ style->fg[GTK_STATE_NORMAL] =
+ folderview->color_op;
+ style->fg[GTK_STATE_SELECTED] =
+ folderview->color_op;
+ } else {
+ style->fg[GTK_STATE_NORMAL] =
+ ctree_style->fg[GTK_STATE_NORMAL];
+ style->fg[GTK_STATE_SELECTED] =
+ ctree_style->fg[GTK_STATE_SELECTED];
+ }
}
gtk_ctree_node_set_row_style(ctree, node, style);
menu_set_insensitive_all(GTK_MENU_SHELL(folderview->news_popup));
menu_set_insensitive_all(GTK_MENU_SHELL(folderview->mbox_popup));
- if (folder->type == F_MH && item->parent == NULL) {
+ if (FOLDER_IS_LOCAL(folder) && item->parent == NULL) {
menu_set_sensitive(folderview->mail_factory,
"/Create new folder...", TRUE);
menu_set_sensitive(folderview->mail_factory,
"/Update folder tree", TRUE);
menu_set_sensitive(folderview->mail_factory,
"/Remove mailbox", TRUE);
- } else if (folder->type == F_MH && item->stype != F_NORMAL) {
+ } else if (FOLDER_IS_LOCAL(folder) && item->stype != F_NORMAL) {
menu_set_sensitive(folderview->mail_factory,
"/Create new folder...", TRUE);
menu_set_sensitive(folderview->mail_factory,
"/Scoring...", TRUE);
- } else if (folder->type == F_MH) {
+ } else if (FOLDER_IS_LOCAL(folder)) {
menu_set_sensitive(folderview->mail_factory,
"/Create new folder...", TRUE);
menu_set_sensitive(folderview->mail_factory,
"/Scoring...", TRUE);
}
- if (folder->type == F_MH)
+ if (FOLDER_IS_LOCAL(folder))
gtk_menu_popup(GTK_MENU(folderview->mail_popup), NULL, NULL,
NULL, NULL, event->button, event->time);
else if (folder->type == F_IMAP)
folderview->open_folder = FALSE;
can_select = TRUE;
-
}
static void folderview_tree_expanded(GtkCTree *ctree, GtkCTreeNode *node,
g_return_if_fail(item->folder != NULL);
prefs_folder_item_create(item);
-}
\ No newline at end of file
+}
+
+void folderview_set_target_folder_color(gint color_op) {
+ GList *list;
+ FolderView *folderview;
+
+ for (list = folderview_list; list != NULL; list = list->next) {
+ folderview = (FolderView *)list->data;
+ gtkut_convert_int_to_gdk_color(color_op, &folderview->color_op);
+ }
+}