diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2009-12-22 19:26:54 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2009-12-22 19:26:54 +0100 |
commit | 4e9cdd282beb1c6dcbcca148745f5665b561c403 (patch) | |
tree | a6ff0bd1d8db019b73f61bfa2c7d3271c1116ed9 /walls_model.h |
Initial commit.
Diffstat (limited to 'walls_model.h')
-rw-r--r-- | walls_model.h | 63 |
1 files changed, 63 insertions, 0 deletions
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 <gtk/gtk.h> +#include <glib.h> + +#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 |