diff console/libgnt/gnttree.h @ 13964:0a0d2a1fd2bc

[gaim-migrate @ 16520] Add multi-column support for GntTree. Use it for email-notifications. Restore colors before exiting. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 19 Jul 2006 07:12:59 +0000
parents 841a5ffbfee4
children df8183b7fa2c
line wrap: on
line diff
--- a/console/libgnt/gnttree.h	Tue Jul 18 07:18:05 2006 +0000
+++ b/console/libgnt/gnttree.h	Wed Jul 19 07:12:59 2006 +0000
@@ -23,20 +23,28 @@
 typedef struct _GnTreeClass		GntTreeClass;
 
 typedef struct _GnTreeRow		GntTreeRow;
+typedef struct _GnTreeCol		GntTreeCol;
 
 struct _GnTree
 {
 	GntWidget parent;
 
-	GntTreeRow *current;	/* current selection */
+	GntTreeRow *current;    /* current selection */
 
-	GntTreeRow *top;		/* The topmost visible item */
-	GntTreeRow *bottom;		/* The bottommost visible item */
+	GntTreeRow *top;        /* The topmost visible item */
+	GntTreeRow *bottom;     /* The bottommost visible item */
+	
+	GntTreeRow *root;       /* The root of all evil */
 	
-	GntTreeRow *root; /* The root of all evil */
-	
-	GList *list;	/* List of GntTreeRow s */
-	GHashTable *hash;	/* XXX: We may need this for quickly referencing the rows */
+	GList *list;            /* List of GntTreeRow s */
+	GHashTable *hash;       /* XXX: We may need this for quickly referencing the rows */
+
+	int ncol;               /* No. of columns */
+	struct _GntTreeColInfo
+	{
+		int width;
+		int *name;
+	} *columns;             /* Would a GList be better? */
 };
 
 struct _GnTreeClass
@@ -55,7 +63,9 @@
 
 GType gnt_tree_get_gtype(void);
 
-GntWidget *gnt_tree_new();
+GntWidget *gnt_tree_new();      /* A tree with just one column */
+
+GntWidget *gnt_tree_new_with_columns(int columns);
 
 void gnt_tree_set_visible_rows(GntTree *tree, int rows);
 
@@ -63,20 +73,20 @@
 
 void gnt_tree_scroll(GntTree *tree, int count);
 
-GntTreeRow *gnt_tree_add_row_after(GntTree *tree, void *key, const char *text, void *parent, void *bigbro);
+GntTreeRow *gnt_tree_add_row_after(GntTree *tree, void *key, GntTreeRow *row, void *parent, void *bigbro);
 
 gpointer gnt_tree_get_selection_data(GntTree *tree);
 
-const char *gnt_tree_get_selection_text(GntTree *tree);
+char *gnt_tree_get_selection_text(GntTree *tree);
 
 void gnt_tree_remove(GntTree *tree, gpointer key);
 
 /* Returns the visible line number of the selected row */
 int gnt_tree_get_selection_visible_line(GntTree *tree);
 
-void gnt_tree_change_text(GntTree *tree, gpointer key, const char *text);
+void gnt_tree_change_text(GntTree *tree, gpointer key, int colno, const char *text);
 
-GntTreeRow *gnt_tree_add_choice(GntTree *tree, void *key, const char *text, void *parent, void *bigbro);
+GntTreeRow *gnt_tree_add_choice(GntTree *tree, void *key, GntTreeRow *row, void *parent, void *bigbro);
 
 void gnt_tree_set_choice(GntTree *tree, void *key, gboolean set);
 
@@ -86,6 +96,10 @@
 
 void gnt_tree_set_selected(GntTree *tree , void *key);
 
+GntTreeRow *gnt_tree_create_row(GntTree *tree, ...);
+
+void gnt_tree_set_col_width(GntTree *tree, int col, int width);
+
 G_END_DECLS
 
 #endif /* GNT_TREE_H */