more fixes for Go To actions not obeying 'always_show_msg' option
[claws.git] / src / folderview.h
index af75e17c535783fd16abf870ac81c757629301ce..68bb2e8c3f8662d3548eb074def60cac0d4e62f7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-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
 #ifndef __FOLDERVIEW_H__
 #define __FOLDERVIEW_H__
 
-typedef struct _FolderView     FolderView;
 typedef struct _FolderViewPopup        FolderViewPopup;
 typedef struct _FolderColumnState      FolderColumnState;
 
 #include <glib.h>
-#include <gtk/gtkwidget.h>
-#include <gtk/gtkctree.h>
+#include <gtk/gtk.h>
+#include "gtk/gtksctree.h"
 
 #include "mainwindow.h"
-#include "summaryview.h"
+#include "viewtypes.h"
 #include "folder.h"
 
 typedef enum
@@ -55,8 +54,8 @@ struct _FolderView
 
        GHashTable *popups;
 
-       GtkCTreeNode *selected;
-       GtkCTreeNode *opened;
+       GtkCMCTreeNode *selected;
+       GtkCMCTreeNode *opened;
 
        gboolean open_folder;
 
@@ -71,18 +70,21 @@ struct _FolderView
        
        /* DND states */
        GSList *nodes_to_recollapse;
-       guint   drag_timer;             /* timer id */
+       guint   drag_timer_id;          /* timer id */
        FolderItem *drag_item;          /* dragged item */
-       GtkCTreeNode *drag_node;        /* drag node */
+       GtkCMCTreeNode *drag_node;      /* drag node */
        
        GtkTargetList *target_list; /* DnD */
        FolderColumnState col_state[N_FOLDER_COLS];
        gint col_pos[N_FOLDER_COLS];
-       gint deferred_refresh_id;
        Folder *scanning_folder;
        GtkUIManager *ui_manager;
        GtkActionGroup *popup_common_action_group;
        GtkActionGroup *popup_specific_action_group;
+       gint scroll_value;
+       guint deferred_refresh_id;
+       guint scroll_timeout_id;
+       guint postpone_select_id;
 };
 
 struct _FolderViewPopup
@@ -111,16 +113,14 @@ void folderview_set_all                   (void);
 void folderview_select                 (FolderView     *folderview,
                                         FolderItem     *item);
 void folderview_unselect               (FolderView     *folderview);
-void folderview_select_next_unread     (FolderView     *folderview, 
-                                        gboolean        force_open);
-void folderview_select_next_new                (FolderView     *folderview);
-void folderview_select_next_marked     (FolderView     *folderview);
+void folderview_select_next_with_flag  (FolderView     *folderview,
+                                        MsgPermFlags    flag);
 
 FolderItem *folderview_get_selected_item(FolderView    *folderview);
+FolderItem *folderview_get_opened_item(FolderView      *folderview);
 
 void folderview_rescan_tree            (Folder         *folder,
                                         gboolean        rebuild);
-void folderview_fast_rescan_tree       (Folder         *folder);
 gint folderview_check_new              (Folder         *folder);
 void folderview_check_new_all          (void);
 
@@ -133,7 +133,7 @@ void folderview_move_folder         (FolderView     *folderview,
 
 void folderview_set_target_folder_color (gint          color_op);
 
-void folderview_reflect_prefs_pixmap_theme     (FolderView *folderview);
+void folderview_reinit_fonts           (FolderView *folderview);
 
 void folderview_reflect_prefs          (void);
 void folderview_register_popup         (FolderViewPopup        *fpopup);
@@ -145,6 +145,13 @@ void folderview_finish_dnd         (const gchar            *data,
                                         GdkDragContext         *drag_context,
                                         guint                   time, 
                                         FolderItem             *item);
-void folderview_close_opened           (FolderView             *folderview);
+void folderview_close_opened           (FolderView             *folderview,
+                                        gboolean                dirty);
+void folderview_remove_item(FolderView *folderview,
+                           FolderItem *item);
+
+void folderview_freeze(FolderView *folderview);
+void folderview_thaw(FolderView *folderview);
+void folderview_grab_focus(FolderView *folderview);
 
 #endif /* __FOLDERVIEW_H__ */