#ifndef __RUGBY_SCORE_STORE_H__
#define __RUGBY_SCORE_STORE_H__

#include <gtk/gtk.h>

G_BEGIN_DECLS

enum
{
	RUGBY_SCORE_STORE_TRIES,
	RUGBY_SCORE_STORE_UTRIES,
	RUGBY_SCORE_STORE_PENS,
	RUGBY_SCORE_STORE_TOOLTIP,
	RUGBY_SCORE_STORE_COLUMNS
};

#define RUGBY_TYPE_SCORE_STORE            (rugby_score_store_get_type ())
#define RUGBY_SCORE_STORE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), RUGBY_TYPE_SCORE_STORE, RugbyScoreStore))
#define RUGBY_SCORE_SCORE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), RUGBY_TYPE_SCORE_STORE, RugbyScoreStoreClass))
#define RUGBY_IS_SCORE_STORE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RUGBY_TYPE_SCORE_STORE))
#define RUGBY_IS_SCORE_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RUGBY_TYPE_SCORE_STORE))
#define RUGBY_SCORE_STORE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), RUGBY_TYPE_SCORE_STORE, RugbyScoreStoreClass))

typedef struct _RugbyScoreStore        RugbyScoreStore;
typedef struct _RugbyScoreStoreClass   RugbyScoreStoreClass;
typedef struct _RugbyScoreStorePrivate RugbyScoreStorePrivate;

struct _RugbyScoreStore
{
	GtkListStore parent;

	/*< private >*/
	RugbyScoreStorePrivate *priv;
};

struct _RugbyScoreStoreClass
{
	GtkListStoreClass parent_class;

	void (* finished) (RugbyScoreStore *store,
	                   int              possibilities);
};

GType             rugby_score_store_get_type  (void) G_GNUC_CONST;
RugbyScoreStore * rugby_score_store_new       (void);
gint              rugby_score_store_get_score (RugbyScoreStore *store);
void              rugby_score_store_set_score (RugbyScoreStore *store,
                                               gint             score);

G_END_DECLS

#endif /* __RUGBY_SCORE_STORE_H__ */