2005-01-21 [colin] 1.0.0cvs4
[claws.git] / src / folderview.h
index 52fdad94ab546f1844aec485233efaefeb23345d..ffe4a0599c480eca99826a3ce5ccfc0499385a8c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2001 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2004 Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #ifndef __FOLDERVIEW_H__
 #define __FOLDERVIEW_H__
 
+typedef struct _FolderView     FolderView;
+typedef struct _FolderViewPopup        FolderViewPopup;
+
 #include <glib.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkctree.h>
 
-#include "folder.h"
-
-typedef struct _FolderView     FolderView;
-
 #include "mainwindow.h"
 #include "summaryview.h"
+#include "folder.h"
 
 struct _FolderView
 {
        GtkWidget *scrolledwin;
        GtkWidget *ctree;
-       GtkWidget *mail_popup;
-       GtkWidget *imap_popup;
-       GtkWidget *news_popup;
-       GtkWidget *mbox_popup;
 
-       GtkItemFactory *mail_factory;
-       GtkItemFactory *imap_factory;
-       GtkItemFactory *news_factory;
-       GtkItemFactory *mbox_factory;
+       GHashTable *popups;
 
        GtkCTreeNode *selected;
        GtkCTreeNode *opened;
@@ -51,34 +44,70 @@ struct _FolderView
        gboolean open_folder;
 
        GdkColor color_new;
-       GdkColor color_normal;
+       GdkColor color_op;
 
        MainWindow   *mainwin;
        SummaryView  *summaryview;
+
+       gint folder_update_callback_id;
+       gint folder_item_update_callback_id;
+       
+       /* DND states */
+       GSList *nodes_to_recollapse;
+       guint   drag_timer;             /* timer id */
+       FolderItem *drag_item;          /* dragged item */
+       GtkCTreeNode *drag_node;        /* drag node */
+       
+       GtkTargetList *target_list; /* DnD */
+};
+
+struct _FolderViewPopup
+{
+       gchar            *klass;
+       gchar            *path;
+       GSList           *entries;
+       void            (*set_sensitivity)      (GtkItemFactory *menu, FolderItem *item);
 };
 
+void folderview_initialize             (void);
 FolderView *folderview_create          (void);
 void folderview_init                   (FolderView     *folderview);
+
 void folderview_set                    (FolderView     *folderview);
 void folderview_set_all                        (void);
+
 void folderview_select                 (FolderView     *folderview,
                                         FolderItem     *item);
 void folderview_unselect               (FolderView     *folderview);
 void folderview_select_next_unread     (FolderView     *folderview);
+
+FolderItem *folderview_get_selected_item(FolderView    *folderview);
+
 void folderview_update_msg_num         (FolderView     *folderview,
-                                        GtkCTreeNode   *row,
-                                        gint            new,
-                                        gint            unread,
-                                        gint            total);
-void folderview_update_tree            (Folder         *folder);
-void folderview_update_all             (void);
-
-void folderview_update_item            (FolderItem     *item,
+                                        GtkCTreeNode   *row);
+
+void folderview_append_item            (FolderItem     *item);
+
+void folderview_rescan_tree            (Folder         *folder);
+void folderview_rescan_all             (void);
+gint folderview_check_new              (Folder         *folder);
+void folderview_check_new_all          (void);
+
+void folderview_update_item_foreach    (GHashTable     *table,
                                         gboolean        update_summary);
-void folderview_update_item_foreach    (GHashTable     *table);
+void folderview_update_all_updated     (gboolean        update_summary);
+
+void folderview_move_folder            (FolderView     *folderview,
+                                        FolderItem     *from_folder,
+                                        FolderItem     *to_folder);
+
+void folderview_set_target_folder_color (gint          color_op);
+
+void folderview_reflect_prefs_pixmap_theme     (FolderView *folderview);
 
-void folderview_new_folder             (FolderView     *folderview);
-void folderview_rename_folder          (FolderView     *folderview);
-void folderview_delete_folder          (FolderView     *folderview);
+void folderview_register_popup         (FolderViewPopup        *fpopup);
+void folderview_unregister_popup       (FolderViewPopup        *fpopup);
+void folderview_update_search_icon     (FolderItem             *item,  
+                                        gboolean                matches);
 
 #endif /* __FOLDERVIEW_H__ */