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 26 G_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 32 typedef struct _GtkFileSystemModel GtkFileSystemModel; 33 34 GType _gtk_file_system_model_get_type (void) G_GNUC_CONST; 35 36 typedef gboolean (*GtkFileSystemModelGetValue) (GtkFileSystemModel *model, 37 GFile *file, 38 GFileInfo *info, 39 int column, 40 GValue *value, 41 gpointer user_data); 42 43 GtkFileSystemModel *_gtk_file_system_model_new (GtkFileSystemModelGetValue get_func, 44 gpointer get_data, 45 guint n_columns, 46 ...); 47 GtkFileSystemModel *_gtk_file_system_model_new_for_directory(GFile * dir, 48 const gchar * attributes, 49 GtkFileSystemModelGetValue get_func, 50 gpointer get_data, 51 guint n_columns, 52 ...); 53 GFile * _gtk_file_system_model_get_directory (GtkFileSystemModel *model); 54 GCancellable * _gtk_file_system_model_get_cancellable (GtkFileSystemModel *model); 55 gboolean _gtk_file_system_model_iter_is_visible (GtkFileSystemModel *model, 56 GtkTreeIter *iter); 57 gboolean _gtk_file_system_model_iter_is_filtered_out (GtkFileSystemModel *model, 58 GtkTreeIter *iter); 59 GFileInfo * _gtk_file_system_model_get_info (GtkFileSystemModel *model, 60 GtkTreeIter *iter); 61 gboolean _gtk_file_system_model_get_iter_for_file(GtkFileSystemModel *model, 62 GtkTreeIter *iter, 63 GFile *file); 64 GFile * _gtk_file_system_model_get_file (GtkFileSystemModel *model, 65 GtkTreeIter *iter); 66 const GValue * _gtk_file_system_model_get_value (GtkFileSystemModel *model, 67 GtkTreeIter * iter, 68 int column); 69 70 void _gtk_file_system_model_add_and_query_file (GtkFileSystemModel *model, 71 GFile *file, 72 const char *attributes); 73 void _gtk_file_system_model_add_and_query_files (GtkFileSystemModel *model, 74 GList *files, 75 const char *attributes); 76 void _gtk_file_system_model_update_file (GtkFileSystemModel *model, 77 GFile *file, 78 GFileInfo *info); 79 void _gtk_file_system_model_update_files (GtkFileSystemModel *model, 80 GList *files, 81 GList *infos); 82 83 void _gtk_file_system_model_set_show_hidden (GtkFileSystemModel *model, 84 gboolean show_hidden); 85 void _gtk_file_system_model_set_show_folders (GtkFileSystemModel *model, 86 gboolean show_folders); 87 void _gtk_file_system_model_set_show_files (GtkFileSystemModel *model, 88 gboolean show_files); 89 void _gtk_file_system_model_set_filter_folders (GtkFileSystemModel *model, 90 gboolean show_folders); 91 void _gtk_file_system_model_clear_cache (GtkFileSystemModel *model, 92 int column); 93 94 void _gtk_file_system_model_set_filter (GtkFileSystemModel *model, 95 GtkFileFilter *filter); 96 97 G_END_DECLS 98 99 #endif /* __GTK_FILE_SYSTEM_MODEL_H__ */ 100