From 4e9cdd282beb1c6dcbcca148745f5665b561c403 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Tue, 22 Dec 2009 19:26:54 +0100 Subject: Initial commit. --- walls_model.h | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 walls_model.h (limited to 'walls_model.h') diff --git a/walls_model.h b/walls_model.h new file mode 100644 index 0000000..a5cc779 --- /dev/null +++ b/walls_model.h @@ -0,0 +1,63 @@ +#ifndef _WALLS_MODEL_H_ +#define _WALLS_MODEL_H_ + +#include +#include + +#include "db.h" + +#define MODEL_TYPE_WALLS (walls_model_get_type()) +#define WALLS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), MODEL_TYPE_WALLS, WallsModel)) +#define WALLS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), MODEL_TYPE_WALLS, WallsModelClass)) +#define MODEL_IS_WALLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), MODEL_TYPE_WALLS)) +#define MODEL_IS_WALLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), MODEL_TYPE_WALLS)) +#define WALLS_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), MODEL_TYPE_WALLS, WallsModelClass)) + +enum { + WALLS_MODEL_TYPE_DIR = 0, + WALLS_MODEL_TYPE_WALL, +}; + +enum { + WALLS_MODEL_COL_NAME = 0, + WALLS_MODEL_COL_ID, + WALLS_MODEL_COL_SIZE, + WALLS_MODEL_COL_WIDTH, + WALLS_MODEL_COL_HEIGHT, + WALLS_MODEL_N_COLUMNS, +}; + +typedef struct _WallsModelRecord WallsModelRecord; +typedef struct _WallsModel WallsModel; +typedef struct _WallsModelClass WallsModelClass; + +struct _WallsModelRecord { + guint type; + union { + struct directory_t dir; + struct wallpaper_t wall; + }; + WallsModelRecord *parent; + GArray *children; + guint pos; +}; + +struct _WallsModel { + GObject parent; + + guint num_rows; + GArray *rows; + gint n_columns; + GType column_types[WALLS_MODEL_N_COLUMNS]; + gint stamp; +}; + +struct _WallsModelClass { + GObjectClass parent_class; +}; + +GType walls_model_get_type(); +WallsModel *walls_model_new(); +void walls_model_append_record(WallsModel*, void*); + +#endif -- cgit v1.2.3