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 | 
