summaryrefslogtreecommitdiff
path: root/browse_model.h
diff options
context:
space:
mode:
Diffstat (limited to 'browse_model.h')
-rw-r--r--browse_model.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/browse_model.h b/browse_model.h
new file mode 100644
index 0000000..1070d74
--- /dev/null
+++ b/browse_model.h
@@ -0,0 +1,50 @@
+#ifndef _BROWSE_MODEL_H_
+#define _BROWSE_MODEL_H_
+
+#include <gtk/gtk.h>
+#include <glib.h>
+
+#include "db.h"
+
+#define MODEL_TYPE_BROWSE (browse_model_get_type())
+#define BROWSE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), MODEL_TYPE_BROWSE, BrowseModel))
+#define BROWSE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), MODEL_TYPE_BROWSE, BrowseModelClass))
+#define MODEL_IS_BROWSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), MODEL_TYPE_BROWSE))
+#define MODEL_IS_BROWSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), MODEL_TYPE_BROWSE))
+#define BROWSE_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), MODEL_TYPE_BROWSE, BrowseModelClass))
+
+enum {
+ BROWSE_MODEL_COL_NAME = 0,
+ BROWSE_MODEL_N_COLUMNS,
+};
+
+typedef struct _BrowseModelRecord BrowseModelRecord;
+typedef struct _BrowseModel BrowseModel;
+typedef struct _BrowseModelClass BrowseModelClass;
+
+struct _BrowseModelRecord {
+ struct directory_t dir;
+ BrowseModelRecord *parent;
+ GArray *children;
+ guint pos;
+};
+
+struct _BrowseModel {
+ GObject parent;
+
+ guint num_rows;
+ GArray *rows;
+ gint n_columns;
+ GType column_types[BROWSE_MODEL_N_COLUMNS];
+ gint stamp;
+};
+
+struct _BrowseModelClass {
+ GObjectClass parent_class;
+};
+
+GType browse_model_get_type();
+BrowseModel *browse_model_new();
+void browse_model_get_dir_record(GtkTreeModel*, GtkTreeIter*, struct directory_t**);
+
+#endif