1/* GTK - The GIMP Toolkit
2 * gtkfilesystemmodel.h: GtkTreeModel wrapping a GtkFileSystem
3 * Copyright (C) 2003, Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef __GTK_FILE_SYSTEM_MODEL_H__
20#define __GTK_FILE_SYSTEM_MODEL_H__
21
22#include <gio/gio.h>
23#include <gtk/gtkfilefilter.h>
24#include <gtk/gtktreemodel.h>
25
26G_BEGIN_DECLS
27
28#define GTK_TYPE_FILE_SYSTEM_MODEL (_gtk_file_system_model_get_type ())
29#define GTK_FILE_SYSTEM_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_SYSTEM_MODEL, GtkFileSystemModel))
30#define GTK_IS_FILE_SYSTEM_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FILE_SYSTEM_MODEL))
31
32typedef struct _GtkFileSystemModel GtkFileSystemModel;
33
34GType _gtk_file_system_model_get_type (void) G_GNUC_CONST;
35
36typedef gboolean (*GtkFileSystemModelGetValue) (GtkFileSystemModel *model,
37 GFile *file,
38 GFileInfo *info,
39 int column,
40 GValue *value,
41 gpointer user_data);
42
43GtkFileSystemModel *_gtk_file_system_model_new (GtkFileSystemModelGetValue get_func,
44 gpointer get_data,
45 guint n_columns,
46 ...);
47GtkFileSystemModel *_gtk_file_system_model_new_for_directory(GFile * dir,
48 const char * attributes,
49 GtkFileSystemModelGetValue get_func,
50 gpointer get_data,
51 guint n_columns,
52 ...);
53GFile * _gtk_file_system_model_get_directory (GtkFileSystemModel *model);
54GCancellable * _gtk_file_system_model_get_cancellable (GtkFileSystemModel *model);
55gboolean _gtk_file_system_model_iter_is_visible (GtkFileSystemModel *model,
56 GtkTreeIter *iter);
57gboolean _gtk_file_system_model_iter_is_filtered_out (GtkFileSystemModel *model,
58 GtkTreeIter *iter);
59GFileInfo * _gtk_file_system_model_get_info (GtkFileSystemModel *model,
60 GtkTreeIter *iter);
61gboolean _gtk_file_system_model_get_iter_for_file(GtkFileSystemModel *model,
62 GtkTreeIter *iter,
63 GFile *file);
64GFile * _gtk_file_system_model_get_file (GtkFileSystemModel *model,
65 GtkTreeIter *iter);
66const GValue * _gtk_file_system_model_get_value (GtkFileSystemModel *model,
67 GtkTreeIter * iter,
68 int column);
69
70void _gtk_file_system_model_add_and_query_file (GtkFileSystemModel *model,
71 GFile *file,
72 const char *attributes);
73void _gtk_file_system_model_add_and_query_files (GtkFileSystemModel *model,
74 GList *files,
75 const char *attributes);
76void _gtk_file_system_model_update_file (GtkFileSystemModel *model,
77 GFile *file,
78 GFileInfo *info);
79void _gtk_file_system_model_update_files (GtkFileSystemModel *model,
80 GList *files,
81 GList *infos);
82
83void _gtk_file_system_model_set_show_hidden (GtkFileSystemModel *model,
84 gboolean show_hidden);
85void _gtk_file_system_model_set_show_folders (GtkFileSystemModel *model,
86 gboolean show_folders);
87void _gtk_file_system_model_set_show_files (GtkFileSystemModel *model,
88 gboolean show_files);
89void _gtk_file_system_model_set_filter_folders (GtkFileSystemModel *model,
90 gboolean show_folders);
91void _gtk_file_system_model_clear_cache (GtkFileSystemModel *model,
92 int column);
93
94void _gtk_file_system_model_set_filter (GtkFileSystemModel *model,
95 GtkFileFilter *filter);
96
97G_END_DECLS
98
99#endif /* __GTK_FILE_SYSTEM_MODEL_H__ */
100

source code of gtk/gtk/gtkfilesystemmodel.h