1 /* Mail Summary tree widget for Sylpheed */
3 #ifndef __GTK_SCTREE_H__
4 #define __GTK_SCTREE_H__
7 #include <gtk/gtkclist.h>
8 #include <gtk/gtkctree.h>
10 /* This code is based on "gtkflist.{h,c}" from mc-4.5.42 .*/
12 #define TYPE_GTK_SCTREE (gtk_sctree_get_type ())
13 #define GTK_SCTREE(obj) (GTK_CHECK_CAST ((obj), TYPE_GTK_SCTREE, GtkSCTree))
14 #define GTK_SCTREE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_GTK_SCTREE, GtkSCTreeClass))
15 #define GTK_IS_SCTREE(obj) (GTK_CHECK_TYPE ((obj), TYPE_GTK_SCTREE))
16 #define GTK_IS_SCTREE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_GTK_SCTREE))
19 typedef struct _GtkSCTree GtkSCTree;
20 typedef struct _GtkSCTreeClass GtkSCTreeClass;
25 /* The anchor row for range selections */
26 GtkCTreeNode *anchor_row;
28 /* Mouse button and position saved on button press */
29 gint dnd_press_button;
30 gint dnd_press_x, dnd_press_y;
32 /* Delayed selection information */
33 gint dnd_select_pending;
34 guint dnd_select_pending_state;
35 gint dnd_select_pending_row;
39 /* (dis)allow fancy color stripes */
40 gboolean show_stripes;
42 gboolean always_expand_recursively;
43 gboolean force_additive_sel;
47 struct _GtkSCTreeClass {
48 GtkCTreeClass parent_class;
50 /* Signal: invoke the popup menu for rows */
51 void (* row_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);
53 /* Signal: invoke the popup menu for empty areas */
54 void (* empty_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);
56 /* Signal: open the file in the selected row */
57 void (* open_row) (GtkSCTree *sctree);
59 /* Signal: initiate a drag and drop operation */
60 void (* start_drag) (GtkSCTree *sctree, gint button, GdkEvent *event);
64 GType gtk_sctree_get_type (void);
66 GtkWidget *gtk_sctree_new_with_titles (gint columns,
69 void gtk_sctree_select (GtkSCTree *sctree,
71 void gtk_sctree_select_with_state (GtkSCTree *sctree,
74 void gtk_sctree_unselect_all (GtkSCTree *sctree);
76 void gtk_sctree_set_anchor_row (GtkSCTree *sctree,
79 void gtk_sctree_remove_node (GtkSCTree *sctree,
82 void gtk_sctree_set_stripes(GtkSCTree *sctree, gboolean show_stripes);
83 void gtk_sctree_set_recursive_expand(GtkSCTree *sctree, gboolean rec_exp);
85 /***********************************************************
86 * Tree sorting functions *
87 ***********************************************************/
89 void gtk_sctree_sort_node (GtkCTree *ctree, GtkCTreeNode *node);
91 void gtk_sctree_sort_recursive (GtkCTree *ctree, GtkCTreeNode *node);
93 GtkCTreeNode* gtk_sctree_insert_node (GtkCTree *ctree,
95 GtkCTreeNode *sibling,
98 GdkPixmap *pixmap_closed,
99 GdkBitmap *mask_closed,
100 GdkPixmap *pixmap_opened,
101 GdkBitmap *mask_opened,
104 void gtk_sctree_set_node_info (GtkCTree *ctree,
108 GdkPixmap *pixmap_closed,
109 GdkBitmap *mask_closed,
110 GdkPixmap *pixmap_opened,
111 GdkBitmap *mask_opened,
115 gtk_sctree_insert_gnode (GtkCTree *ctree,
116 GtkCTreeNode *parent,
117 GtkCTreeNode *sibling,
119 GtkCTreeGNodeFunc func,
122 void gtk_sctree_set_column_tooltip (GtkSCTree *sctree,
125 void gtk_sctree_set_use_markup (GtkSCTree *sctree,
129 gtk_sctree_is_hot_spot (GtkSCTree *ctree,
132 #endif /* __GTK_SCTREE_H__ */