1 #ifndef ASGTKDIRTREE_H_HEADER_INCLUDED
2 #define ASGTKDIRTREE_H_HEADER_INCLUDED
3 
4 
5 #define ASGTK_TYPE_DIR_TREE            (asgtk_dir_tree_get_type ())
6 #define ASGTK_DIR_TREE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASGTK_TYPE_DIR_TREE, ASGtkDirTree))
7 #define ASGTK_DIR_TREE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), ASGTK_TYPE_DIR_TREE, ASGtkDirTreeClass))
8 #define ASGTK_IS_DIR_TREE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASGTK_TYPE_DIR_TREE))
9 #define ASGTK_IS_DIR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASGTK_TYPE_DIR_TREE))
10 #define ASGTK_DIR_TREE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), ASGTK_TYPE_DIR_TREE, ASGtkDirTree))
11 
12 
13 struct ASImageListEntry;
14 struct ASImage;
15 struct _ASGtkDirTree;
16 
17 typedef void (*_ASGtkDirTree_sel_handler)(struct _ASGtkDirTree *dt, gpointer user_data);
18 
19 
20 typedef struct _ASGtkDirTree
21 {
22 	GtkScrolledWindow       parent_instance;
23 
24 	char *root ;
25 
26 	GtkTreeView     	*tree_view;
27 	GtkTreeModel    	*tree_model;
28 	GtkCellRenderer 	*cell;
29     GtkTreeViewColumn 	*column;
30 
31 
32 	char *curr_selection ;
33 	/* screw GTK signals - hate its guts */
34 	_ASGtkDirTree_sel_handler sel_change_handler;
35 	gpointer sel_change_user_data;
36 
37 }ASGtkDirTree;
38 
39 typedef struct _ASGtkDirTreeClass
40 {
41   GtkScrolledWindowClass  parent_class;
42 
43 }ASGtkDirTreeClass;
44 
45 
46 GType       asgtk_dir_tree_get_type  (void) G_GNUC_CONST;
47 
48 GtkWidget * asgtk_dir_tree_new       ();
49 
50 void  asgtk_dir_tree_set_root( ASGtkDirTree *dt, char *root, GtkTreeModel *saved_model );
51 void  asgtk_dir_tree_set_title( ASGtkDirTree *dt, const gchar *title );
52 void  asgtk_dir_tree_set_sel_handler( ASGtkDirTree *dt, _ASGtkDirTree_sel_handler sel_change_handler, gpointer user_data );
53 char *asgtk_dir_tree_get_selection( ASGtkDirTree *dt );
54 void  asgtk_dir_tree_refresh( ASGtkDirTree *dt );
55 GtkTreeModel *asgtk_dir_tree_get_model( ASGtkDirTree *dt );
56 GtkTreePath *asgtk_dir_tree_get_curr_path( ASGtkDirTree *dt );
57 void asgtk_dir_tree_restore_curr_path( ASGtkDirTree *dt, GtkTreePath *path );
58 
59 
60 
61 #endif  /*  ASGTKIMAGEDIR_H_HEADER_INCLUDED  */
62