/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
/*
 * Chroma widget set
 * (C) 2005 M. Derezynski <internalerror@gmail.com> 
 *
 */

#ifndef CHROMA_LIST_SELECTION_H
#define CHROMA_LIST_SELECTION_H

/*
 * Potentially, include other headers on which this header depends.
 */

#include <gtk/gtk.h>
#include <gtk/gtkwidget.h>

#define CHROMA_TYPE_LIST_SELECTION		  (chroma_list_selection_iface_get_type ())
#define CHROMA_LIST_SELECTION(obj)		  (G_TYPE_CHECK_INSTANCE_CAST ((obj), CHROMA_TYPE_LIST_SELECTION, ChromaListSelectionInterface))
#define CHROMA_IS_LIST_SELECTION(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CHROMA_TYPE_LIST_SELECTION))
#define CHROMA_LIST_SELECTION_GET_IFACE(obj)	  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CHROMA_TYPE_LIST_SELECTION, ChromaListSelectionInterface))

typedef struct _ChromaListSelection ChromaListSelection;
typedef struct _ChromaListSelectionInterface ChromaListSelectionInterface;

struct _ChromaListSelectionInterface {

	GTypeInterface parent_class;

	GList*	  (*get_selected_paths)	  (ChromaListSelectionInterface *self);
	gboolean  (*iter_get_selected)	  (ChromaListSelectionInterface *self, GtkTreeIter *iter);
	void      (*iter_set_selected)	  (ChromaListSelectionInterface *self, GtkTreeIter *iter, gboolean selected);
};

/* used by CHROMA_TYPE_LIST_SELECTION */
GType
chroma_list_selection_get_type (void);

GList*
chroma_list_selection_get_selected_paths (ChromaListSelectionInterface *clsif);

gboolean
chroma_list_selection_iter_get_selected (ChromaListSelectionInterface *clsif, GtkTreeIter *iter);

void
chroma_list_selection_iter_set_selected (ChromaListSelectionInterface *clsif, GtkTreeIter *iter, gboolean selected);

#endif /* CHROMA_LIST_SELECTION_H */



