root/trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h

Revision 3825 (checked in by jdapena, 1 week ago)

* libtinymailui-gtk/tny-gtk-folder-store-tree-model.[ch]:

Added support for settings construction flags. Also added a flag
"show path" for the tree model, that makes it store the full path
name.

Line 
1 #ifndef TNY_GTK_FOLDER_STORE_TREE_MODEL_H
2 #define TNY_GTK_FOLDER_STORE_TREE_MODEL_H
3
4 /* libtinymailui-gtk - The Tiny Mail UI library for Gtk+
5  * Copyright (C) 2006-2007 Philip Van Hoof <pvanhoof@gnome.org>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with self library; if not, write to the
19  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  */
22
23 #include <glib.h>
24 #include <gtk/gtk.h>
25 #include <tny-folder-store.h>
26 #include <tny-folder-store-query.h>
27 #include <tny-list.h>
28
29 G_BEGIN_DECLS
30
31 #define TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL             (tny_gtk_folder_store_tree_model_get_type ())
32 #define TNY_GTK_FOLDER_STORE_TREE_MODEL(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL, TnyGtkFolderStoreTreeModel))
33 #define TNY_GTK_FOLDER_STORE_TREE_MODEL_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL, TnyGtkFolderStoreTreeModelClass))
34 #define TNY_IS_GTK_FOLDER_STORE_TREE_MODEL(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL))
35 #define TNY_IS_GTK_FOLDER_STORE_TREE_MODEL_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL))
36 #define TNY_GTK_FOLDER_STORE_TREE_MODEL_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL, TnyGtkFolderStoreTreeModelClass))
37
38 /* Implements GtkTreeModel and TnyList */
39
40 typedef struct _TnyGtkFolderStoreTreeModel TnyGtkFolderStoreTreeModel;
41 typedef struct _TnyGtkFolderStoreTreeModelClass TnyGtkFolderStoreTreeModelClass;
42
43 #define TNY_TYPE_GTK_FOLDER_STORE_TREE_MODEL_COLUMN (tny_gtk_folder_store_tree_model_column_get_type())
44
45 enum _TnyGtkFolderStoreTreeModelColumn
46 {
47         TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN,
48         TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN,
49         TNY_GTK_FOLDER_STORE_TREE_MODEL_ALL_COLUMN,
50         TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN,
51         TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,
52         TNY_GTK_FOLDER_STORE_TREE_MODEL_N_COLUMNS
53 };
54
55 typedef enum _TnyGtkFolderStoreTreeModelColumn TnyGtkFolderStoreTreeModelColumn;
56
57 enum _TnyGtkFolderStoreTreeModelFlags
58 {
59         TNY_GTK_FOLDER_STORE_TREE_MODEL_FLAG_SHOW_PATH = 1<<0,
60 };
61
62 typedef enum _TnyGtkFolderStoreTreeModelFlags TnyGtkFolderStoreTreeModelFlags;
63
64 struct _TnyGtkFolderStoreTreeModel
65 {
66         GtkTreeStore parent;
67         GList *first, *store_obs, *fol_obs;
68         GMutex *iterator_lock;
69         TnyFolderStoreQuery *query;
70         gboolean first_needs_unref;
71         GPtrArray *signals;
72
73         TnyGtkFolderStoreTreeModelFlags flags;
74 };
75
76 struct _TnyGtkFolderStoreTreeModelClass
77 {
78         GtkTreeStoreClass parent_class;
79 };
80
81 GType tny_gtk_folder_store_tree_model_get_type (void);
82 GType tny_gtk_folder_store_tree_model_column_get_type (void);
83 GtkTreeModel* tny_gtk_folder_store_tree_model_new (TnyFolderStoreQuery *query);
84 GtkTreeModel* tny_gtk_folder_store_tree_model_new_with_flags (TnyFolderStoreQuery *query,
85                                                               TnyGtkFolderStoreTreeModelFlags flags);
86 void tny_gtk_folder_store_tree_model_prepend (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name);
87 void tny_gtk_folder_store_tree_model_append (TnyGtkFolderStoreTreeModel *self, TnyFolderStore* item, const gchar *root_name);
88
89 G_END_DECLS
90
91 #endif
Note: See TracBrowser for help on using the browser.