* all:
[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
50         MODEST_TNY_HEADER_TREE_VIEW_COLUMN_NUM
51 };
52 typedef guint ModestTnyHeaderTreeViewColumn;
53
54 enum {
55         MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL,
56         MODEST_TNY_HEADER_TREE_VIEW_STYLE_COMPACT,
57         
58         MODEST_TNY_HEADER_TREE_VIEW_STYLE_NUM
59 };
60 typedef guint ModestTnyHeaderTreeViewStyle;
61
62
63
64 /**
65  * modest_tny_header_tree_view_get_type:
66  * 
67  * get the GType for ModestTnyHeaderTreeView
68  *  
69  * Returns: the GType
70  */
71 GType        modest_tny_header_tree_view_get_type    (void) G_GNUC_CONST;
72
73
74 /**
75  * modest_tny_header_tree_view_new:
76  * @folder: a TnyMsgFolderIface object
77  * @columns: a list of ModestTnyHeaderTreeViewColumn
78  * @style: a ModestTnyHeaderTreeViewColumn with the style of this listview
79  *  (   MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL or MODEST_TNY_HEADER_TREE_VIEW_STYLE_COMPACT)
80  * 
81  * create a new ModestTnyHeaderTreeView instance, based on a folder iface
82  *   
83  * Returns: a new GtkWidget (a GtkTreeView-subclass)
84  */
85 GtkWidget*   modest_tny_header_tree_view_new        (TnyMsgFolderIface *folder,
86                                                      GSList *columns,
87                                                      ModestTnyHeaderTreeViewStyle style);
88
89 /**
90  * modest_tny_header_tree_view_set_folder:
91  * @self: a ModestTnyHeaderTreeView instance
92  * @folder: a TnyMsgFolderIface object
93  * 
94  * set the folder for this ModestTnyHeaderTreeView
95  *  
96  * Returns: TRUE if it succeeded, FALSE otherwise
97  */
98 gboolean     modest_tny_header_tree_view_set_folder (ModestTnyHeaderTreeView *self,
99                                                       TnyMsgFolderIface *folder);
100
101
102 /**
103  * modest_tny_header_tree_view_set_columns:
104  * @self: a ModestTnyHeaderTreeView instance
105  * @columns: a list of ModestTnyHeaderTreeViewColumn
106  * 
107  * set the columns for this ModestTnyHeaderTreeView
108  *  
109  * Returns: TRUE if it succeeded, FALSE otherwise
110  */
111 gboolean     modest_tny_header_tree_view_set_columns (ModestTnyHeaderTreeView *self,
112                                                       GSList *columns);
113 /**
114  * modest_tny_header_tree_view_get_columns:
115  * @self: a ModestTnyHeaderTreeView instance
116  * @folder: a TnyMsgFolderIface object
117  * 
118  * get the columns for this ModestTnyHeaderTreeView
119  *  
120  * Returns: list of columms, or NULL in case of no columns or error
121  */
122 const GSList*   modest_tny_header_tree_view_get_columns (ModestTnyHeaderTreeView *self);
123         
124
125 /**
126  * modest_tny_header_tree_view_set_style:
127  * @self: a ModestTnyHeaderTreeView instance
128  * @style: the style for this tree view
129  * 
130  * set the folder for this ModestTnyHeaderTreeView
131  *  
132  * Returns: TRUE if it succeeded, FALSE otherwise
133  */
134 gboolean   modest_tny_header_tree_view_set_style (ModestTnyHeaderTreeView *self,
135                                                   ModestTnyHeaderTreeViewStyle style);
136
137 /**
138  * modest_tny_header_tree_view_set_folder:
139  * @self: a ModestTnyHeaderTreeView instance
140  * @folder: a TnyMsgFolderIface object
141  * 
142  * set the folder for this ModestTnyHeaderTreeView
143  *  
144  * Returns: TRUE if it succeeded, FALSE otherwise
145  */
146 ModestTnyHeaderTreeViewStyle   modest_tny_header_tree_view_get_style (ModestTnyHeaderTreeView *self);
147
148 G_END_DECLS
149
150
151
152
153
154 #endif /* __MODEST_TNY_HEADER_TREE_VIEW_H__ */
155