aboutsummaryrefslogtreecommitdiff
path: root/src/gtksctree.h
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-01-12 11:22:08 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-01-12 11:22:08 +0000
commitb9ca7b1ef5cd1f96ae6e28ae78d12c1e3258c23f (patch)
tree1203adec5f70af1ddd49868528d8d3a5b9004329 /src/gtksctree.h
Initial import of Sylpheed (GTK2 version).
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/gtksctree.h')
-rw-r--r--src/gtksctree.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/gtksctree.h b/src/gtksctree.h
new file mode 100644
index 00000000..af836780
--- /dev/null
+++ b/src/gtksctree.h
@@ -0,0 +1,66 @@
+/* Mail Summary tree widget for Sylpheed */
+
+#ifndef __GTK_SCTREE_H__
+#define __GTK_SCTREE_H__
+
+#include <gtk/gtk.h>
+#include <gtk/gtkclist.h>
+#include <gtk/gtkctree.h>
+
+/* This code is based on "gtkflist.{h,c}" from mc-4.5.42 .*/
+
+#define TYPE_GTK_SCTREE (gtk_sctree_get_type ())
+#define GTK_SCTREE(obj) (GTK_CHECK_CAST ((obj), TYPE_GTK_SCTREE, GtkSCTree))
+#define GTK_SCTREE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_GTK_SCTREE, GtkSCTreeClass))
+#define GTK_IS_SCTREE(obj) (GTK_CHECK_TYPE ((obj), TYPE_GTK_SCTREE))
+#define GTK_IS_SCTREE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_GTK_SCTREE))
+
+
+typedef struct _GtkSCTree GtkSCTree;
+typedef struct _GtkSCTreeClass GtkSCTreeClass;
+
+struct _GtkSCTree {
+ GtkCTree ctree;
+
+ /* The anchor row for range selections */
+ GtkCTreeNode *anchor_row;
+
+ /* Mouse button and position saved on button press */
+ gint dnd_press_button;
+ gint dnd_press_x, dnd_press_y;
+
+ /* Delayed selection information */
+ gint dnd_select_pending;
+ guint dnd_select_pending_state;
+ gint dnd_select_pending_row;
+};
+
+struct _GtkSCTreeClass {
+ GtkCTreeClass parent_class;
+
+ /* Signal: invoke the popup menu for rows */
+ void (* row_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);
+
+ /* Signal: invoke the popup menu for empty areas */
+ void (* empty_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);
+
+ /* Signal: open the file in the selected row */
+ void (* open_row) (GtkSCTree *sctree);
+
+ /* Signal: initiate a drag and drop operation */
+ void (* start_drag) (GtkSCTree *sctree, gint button, GdkEvent *event);
+};
+
+
+GType gtk_sctree_get_type (void);
+GtkWidget *gtk_sctree_new_with_titles (gint columns,
+ gint tree_column,
+ gchar *titles[]);
+void gtk_sctree_select (GtkSCTree *sctree,
+ GtkCTreeNode *node);
+void gtk_sctree_unselect_all (GtkSCTree *sctree);
+
+void gtk_sctree_set_anchor_row (GtkSCTree *sctree,
+ GtkCTreeNode *node);
+
+#endif /* __GTK_SCTREE_H__ */