]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkfilesystemmodel.h
Implement new GtkFileSystemModel
[~andy/gtk] / gtk / gtkfilesystemmodel.h
index 750fa3366343105fe09da00a41fc612108e1e7ae..a6cc44b18938cdcfe8f271ef6bf76fba817aff2c 100644 (file)
@@ -34,27 +34,51 @@ typedef struct _GtkFileSystemModel      GtkFileSystemModel;
 
 GType _gtk_file_system_model_get_type (void) G_GNUC_CONST;
 
-typedef enum {
-  GTK_FILE_SYSTEM_MODEL_INFO,
-  GTK_FILE_SYSTEM_MODEL_DISPLAY_NAME,
-  GTK_FILE_SYSTEM_MODEL_N_COLUMNS
-} GtkFileSystemModelColumns;
+typedef gboolean (*GtkFileSystemModelGetValue)   (GtkFileSystemModel *model,
+                                                  GFile              *file,
+                                                  GFileInfo          *info,
+                                                  int                 column,
+                                                  GValue             *value,
+                                                  gpointer            user_data);
 
-GtkFileSystemModel *_gtk_file_system_model_new              (GtkFileSystem      *file_system,
-                                                            GFile              *root_file,
-                                                            gint                max_depth,
-                                                            const gchar        *attributes,
-                                                            GError            **error);
+GtkFileSystemModel *_gtk_file_system_model_new              (GFile *             dir,
+                                                             const gchar *       attributes,
+                                                             GtkFileSystemModelGetValue get_func,
+                                                             gpointer            get_data,
+                                                             guint               n_columns,
+                                                             ...);
+GCancellable *      _gtk_file_system_model_get_cancellable  (GtkFileSystemModel *model);
 GFileInfo *         _gtk_file_system_model_get_info         (GtkFileSystemModel *model,
                                                             GtkTreeIter        *iter);
+gboolean            _gtk_file_system_model_get_iter_for_file(GtkFileSystemModel *model,
+                                                            GtkTreeIter        *iter,
+                                                            GFile              *file);
 GFile *             _gtk_file_system_model_get_file         (GtkFileSystemModel *model,
                                                             GtkTreeIter        *iter);
+const GValue *      _gtk_file_system_model_get_value        (GtkFileSystemModel *model,
+                                                             GtkTreeIter *       iter,
+                                                             int                 column);
+
+void                _gtk_file_system_model_add_file         (GtkFileSystemModel *model,
+                                                             GFile              *file,
+                                                             GFileInfo          *info);
+void                _gtk_file_system_model_remove_file      (GtkFileSystemModel *model,
+                                                             GFile              *file);
+void                _gtk_file_system_model_update_file      (GtkFileSystemModel *model,
+                                                             GFile              *file,
+                                                             GFileInfo          *info,
+                                                             gboolean            requires_resort);
+
 void                _gtk_file_system_model_set_show_hidden  (GtkFileSystemModel *model,
                                                             gboolean            show_hidden);
 void                _gtk_file_system_model_set_show_folders (GtkFileSystemModel *model,
                                                             gboolean            show_folders);
 void                _gtk_file_system_model_set_show_files   (GtkFileSystemModel *model,
                                                             gboolean            show_files);
+void                _gtk_file_system_model_freeze_updates   (GtkFileSystemModel *model);
+void                _gtk_file_system_model_thaw_updates     (GtkFileSystemModel *model);
+void                _gtk_file_system_model_clear_cache      (GtkFileSystemModel *model,
+                                                             int                 column);
 
 typedef gboolean (*GtkFileSystemModelFilter) (GtkFileSystemModel *model,
                                              GFile              *file,
@@ -65,16 +89,6 @@ void     _gtk_file_system_model_set_filter (GtkFileSystemModel      *model,
                                            GtkFileSystemModelFilter filter,
                                            gpointer                 user_data);
 
-typedef void (*GtkFileSystemModelPathFunc) (GtkFileSystemModel *model,
-                                           GtkTreePath        *path,
-                                           GtkTreeIter        *iter,
-                                           gpointer            user_data);
-
-void     _gtk_file_system_model_path_do (GtkFileSystemModel        *model,
-                                        GFile                     *file,
-                                        GtkFileSystemModelPathFunc func,
-                                        gpointer                   user_data);
-
 void _gtk_file_system_model_add_editable    (GtkFileSystemModel *model,
                                             GtkTreeIter        *iter);
 void _gtk_file_system_model_remove_editable (GtkFileSystemModel *model);