diff options
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 |