diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-04-25 17:28:49 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-04-25 17:28:49 +0200 |
commit | 0d4b1caee4135b6e0dcd2aa3bd6ce2387c1c3773 (patch) | |
tree | 5fc5c7dbed604437b34f21d90e8aaac5139c08e4 /tag_model.h | |
parent | e52bbb2a3d17cc12cab75deba113d3075b62337e (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.h | 58 |
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 |