summaryrefslogtreecommitdiff
path: root/tag_model.h
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-04-25 17:28:49 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2010-04-25 17:28:49 +0200
commit0d4b1caee4135b6e0dcd2aa3bd6ce2387c1c3773 (patch)
tree5fc5c7dbed604437b34f21d90e8aaac5139c08e4 /tag_model.h
parente52bbb2a3d17cc12cab75deba113d3075b62337e (diff)
Added a tree model to display tags in tree structures.
Adding children to tags is not yet implemented.
Diffstat (limited to 'tag_model.h')
-rw-r--r--tag_model.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/tag_model.h b/tag_model.h
new file mode 100644
index 0000000..43e59a1
--- /dev/null
+++ b/tag_model.h
@@ -0,0 +1,58 @@
+#ifndef _TAG_MODEL_H_
+#define _TAG_MODEL_H_
+
+#include <gtk/gtk.h>
+#include <glib.h>
+
+#include "db.h"
+
+#define MODEL_TYPE_TAG (tag_model_get_type())
+#define TAG_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), MODEL_TYPE_TAG, TagModel))
+#define TAG_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), MODEL_TYPE_TAG, TagModelClass))
+#define MODEL_IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), MODEL_TYPE_TAG))
+#define MODEL_IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), MODEL_TYPE_TAG))
+#define TAG_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), MODEL_TYPE_TAG, TagModelClass))
+
+enum {
+ TAG_MODEL_COL_CHECKED = 0,
+ TAG_MODEL_COL_INCONSISTENT,
+ TAG_MODEL_COL_NAME,
+ TAG_MODEL_N_COLUMNS,
+};
+
+typedef struct _TagModelRecord TagModelRecord;
+typedef struct _TagModel TagModel;
+typedef struct _TagModelClass TagModelClass;
+
+struct _TagModelRecord {
+ struct tag_t tag;
+ gboolean checked;
+ gboolean inconsistent;
+ TagModelRecord *parent;
+ GArray *children;
+ guint pos;
+};
+
+struct _TagModel {
+ GObject parent;
+
+ guint num_rows;
+ GArray *rows;
+ gint n_columns;
+ GType column_types[TAG_MODEL_N_COLUMNS];
+ gint stamp;
+};
+
+struct _TagModelClass {
+ GObjectClass parent_class;
+};
+
+GType tag_model_get_type();
+TagModel *tag_model_new();
+void tag_model_get_tag_record(GtkTreeModel*, GtkTreeIter*, struct tag_t**);
+gboolean tag_model_get_checked(GtkTreeModel*, GtkTreeIter*);
+void tag_model_set_checked(GtkTreeModel*, GtkTreeIter*, gboolean);
+gboolean tag_model_get_inconsistent(GtkTreeModel*, GtkTreeIter*);
+void tag_model_set_inconsistent(GtkTreeModel*, GtkTreeIter*, gboolean);
+
+#endif