From 200485246bdfda2c77689408dcd407d106639e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Tue, 30 May 2023 10:36:11 +0200 Subject: Process some GFileMonitor events So far, it's rather crude. --- fiv-io-model.h | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) (limited to 'fiv-io-model.h') diff --git a/fiv-io-model.h b/fiv-io-model.h index 2fb9ad7..c785130 100644 --- a/fiv-io-model.h +++ b/fiv-io-model.h @@ -20,15 +20,39 @@ #include #include +// Avoid glib-mkenums. typedef enum _FivIoModelSort { - FIV_IO_MODEL_SORT_NAME, - FIV_IO_MODEL_SORT_MTIME, - FIV_IO_MODEL_SORT_COUNT, - - FIV_IO_MODEL_SORT_MIN = 0, - FIV_IO_MODEL_SORT_MAX = FIV_IO_MODEL_SORT_COUNT - 1 +#define FIV_IO_MODEL_SORTS(XX) \ + XX(NAME) \ + XX(MTIME) +#define XX(name) FIV_IO_MODEL_SORT_ ## name, + FIV_IO_MODEL_SORTS(XX) +#undef XX + FIV_IO_MODEL_SORT_COUNT } FivIoModelSort; +GType fiv_io_model_sort_get_type(void) G_GNUC_CONST; +#define FIV_TYPE_IO_MODEL_SORT (fiv_io_model_sort_get_type()) + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +typedef struct { + const char *uri; ///< GIO URI + const char *target_uri; ///< GIO URI for any target + const char *display_name; ///< Label for the file + const char *collate_key; ///< Collate key for the filename + guint64 filesize; ///< Filesize in bytes + gint64 mtime_msec; ///< Modification time in milliseconds +} FivIoModelEntry; + +GType fiv_io_model_entry_get_type(void) G_GNUC_CONST; +#define FIV_TYPE_IO_MODEL_ENTRY (fiv_io_model_entry_get_type()) + +FivIoModelEntry *fiv_io_model_entry_ref(FivIoModelEntry *self); +void fiv_io_model_entry_unref(FivIoModelEntry *self); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + #define FIV_TYPE_IO_MODEL (fiv_io_model_get_type()) G_DECLARE_FINAL_TYPE(FivIoModel, fiv_io_model, FIV, IO_MODEL, GObject) @@ -44,18 +68,5 @@ GFile *fiv_io_model_get_previous_directory(FivIoModel *self); /// Returns the next VFS directory in order, or NULL. GFile *fiv_io_model_get_next_directory(FivIoModel *self); -// These objects are reference-counted using GRcBox. -typedef struct { - const char *uri; ///< GIO URI - const char *target_uri; ///< GIO URI for any target - const char *display_name; ///< Label for the file - const char *collate_key; ///< Collate key for the filename - guint64 filesize; ///< Filesize in bytes - gint64 mtime_msec; ///< Modification time in milliseconds -} FivIoModelEntry; - -#define fiv_io_model_entry_ref(e) g_rc_box_acquire(e) -#define fiv_io_model_entry_unref(e) g_rc_box_release(e) - FivIoModelEntry *const *fiv_io_model_get_files(FivIoModel *self, gsize *len); FivIoModelEntry *const *fiv_io_model_get_subdirs(FivIoModel *self, gsize *len); -- cgit v1.2.3