987ab8b543e236d2874cb53c9684e6fd2242d191
[modest] / src / modest-tny-header-tree-view.h
1 /* modest-tny-header-tree-view.h */
2 /* insert (c)/licensing information) */
3
4 #ifndef __MODEST_TNY_HEADER_TREE_VIEW_H__
5 #define __MODEST_TNY_HEADER_TREE_VIEW_H__
6
7 #include <gtk/gtk.h>
8 #include <tny-msg-folder-iface.h>
9 #include <tny-account-tree-model.h>
10 #include <tny-msg-iface.h>
11 #include <tny-msg-header-iface.h>
12 #include <tny-msg-header-list-model.h>
13
14 G_BEGIN_DECLS
15
16 /* convenience macros */
17 #define MODEST_TYPE_TNY_HEADER_TREE_VIEW             (modest_tny_header_tree_view_get_type())
18 #define MODEST_TNY_HEADER_TREE_VIEW(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_TNY_HEADER_TREE_VIEW,ModestTnyHeaderTreeView))
19 #define MODEST_TNY_HEADER_TREE_VIEW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_TNY_HEADER_TREE_VIEW,ModestTnyHeaderTreeViewClass))
20 #define MODEST_IS_TNY_HEADER_TREE_VIEW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_TNY_HEADER_TREE_VIEW))
21 #define MODEST_IS_TNY_HEADER_TREE_VIEW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_TNY_HEADER_TREE_VIEW))
22 #define MODEST_TNY_HEADER_TREE_VIEW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_TNY_HEADER_TREE_VIEW,ModestTnyHeaderTreeViewClass))
23
24 typedef struct _ModestTnyHeaderTreeView      ModestTnyHeaderTreeView;
25 typedef struct _ModestTnyHeaderTreeViewClass ModestTnyHeaderTreeViewClass;
26
27 struct _ModestTnyHeaderTreeView {
28          GtkTreeView parent;
29         /* insert public members, if any */
30 };
31
32 struct _ModestTnyHeaderTreeViewClass {
33         GtkTreeViewClass parent_class;
34
35         void (*message_selected) (ModestTnyHeaderTreeView* self,
36                                   TnyMsgIface *msg,
37                                   gpointer user_data);
38 };
39
40
41 enum {
42         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_FROM,
43         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_TO,
44         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_SUBJECT,
45         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_SENT_DATE,
46         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_RECEIVED_DATE,
47         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_MSGTYPE,
48         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_ATTACH,
49         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_COMPACT_HEADER,
50
51         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_NUM
52 };
53 typedef guint ModestTnyHeaderTreeViewColumn;
54
55 enum {
56         MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL,
57         MODEST_TNY_HEADER_TREE_VIEW_STYLE_COMPACT,
58         
59         MODEST_TNY_HEADER_TREE_VIEW_STYLE_NUM
60 };
61 typedef guint ModestTnyHeaderTreeViewStyle;
62
63
64
65 /**
66  * modest_tny_header_tree_view_get_type:
67  * 
68  * get the GType for ModestTnyHeaderTreeView
69  *  
70  * Returns: the GType
71  */
72 GType        modest_tny_header_tree_view_get_type    (void) G_GNUC_CONST;
73
74
75 /**
76  * modest_tny_header_tree_view_new:
77  * @folder: a TnyMsgFolderIface object
78  * @columns: a list of ModestTnyHeaderTreeViewColumn
79  * @style: a ModestTnyHeaderTreeViewColumn with the style of this listview
80  *  (   MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL or MODEST_TNY_HEADER_TREE_VIEW_STYLE_COMPACT)
81  * 
82  * create a new ModestTnyHeaderTreeView instance, based on a folder iface
83  *   
84  * Returns: a new GtkWidget (a GtkTreeView-subclass)
85  */
86 GtkWidget*   modest_tny_header_tree_view_new        (TnyMsgFolderIface *folder,
87                                                      GSList *columns,
88                                                      ModestTnyHeaderTreeViewStyle style);
89
90 /**
91  * modest_tny_header_tree_view_set_folder:
92  * @self: a ModestTnyHeaderTreeView instance
93  * @folder: a TnyMsgFolderIface object
94  * 
95  * set the folder for this ModestTnyHeaderTreeView
96  *  
97  * Returns: TRUE if it succeeded, FALSE otherwise
98  */
99 gboolean     modest_tny_header_tree_view_set_folder (ModestTnyHeaderTreeView *self,
100                                                       TnyMsgFolderIface *folder);
101
102
103 /**
104  * modest_tny_header_tree_view_set_columns:
105  * @self: a ModestTnyHeaderTreeView instance
106  * @columns: a list of ModestTnyHeaderTreeViewColumn
107  * 
108  * set the columns for this ModestTnyHeaderTreeView
109  *  
110  * Returns: TRUE if it succeeded, FALSE otherwise
111  */
112 gboolean     modest_tny_header_tree_view_set_columns (ModestTnyHeaderTreeView *self,
113                                                       GSList *columns);
114 /**
115  * modest_tny_header_tree_view_get_columns:
116  * @self: a ModestTnyHeaderTreeView instance
117  * @folder: a TnyMsgFolderIface object
118  * 
119  * get the columns for this ModestTnyHeaderTreeView
120  *  
121  * Returns: list of columms, or NULL in case of no columns or error
122  */
123 const GSList*   modest_tny_header_tree_view_get_columns (ModestTnyHeaderTreeView *self);
124         
125
126 /**
127  * modest_tny_header_tree_view_set_style:
128  * @self: a ModestTnyHeaderTreeView instance
129  * @style: the style for this tree view
130  * 
131  * set the folder for this ModestTnyHeaderTreeView
132  *  
133  * Returns: TRUE if it succeeded, FALSE otherwise
134  */
135 gboolean   modest_tny_header_tree_view_set_style (ModestTnyHeaderTreeView *self,
136                                                   ModestTnyHeaderTreeViewStyle style);
137
138 /**
139  * modest_tny_header_tree_view_set_folder:
140  * @self: a ModestTnyHeaderTreeView instance
141  * @folder: a TnyMsgFolderIface object
142  * 
143  * set the folder for this ModestTnyHeaderTreeView
144  *  
145  * Returns: TRUE if it succeeded, FALSE otherwise
146  */
147 ModestTnyHeaderTreeViewStyle   modest_tny_header_tree_view_get_style (ModestTnyHeaderTreeView *self);
148
149 G_END_DECLS
150
151
152
153
154
155 #endif /* __MODEST_TNY_HEADER_TREE_VIEW_H__ */
156