#include "champlain-perl.h"


MODULE = Champlain::SelectionLayer  PACKAGE = Champlain::SelectionLayer  PREFIX = champlain_selection_layer_


ChamplainLayer*
champlain_selection_layer_new (class)
	C_ARGS: /* No args */


ChamplainBaseMarker*
champlain_selection_layer_get_selected (ChamplainSelectionLayer *layer)


void
champlain_selection_layer_get_selected_markers (ChamplainSelectionLayer *layer)
	PREINIT:
		const GList *item = NULL;
	
	PPCODE:
		item = champlain_selection_layer_get_selected_markers(layer);
		if (!item) {
			XSRETURN_EMPTY;
		}

		for (; item != NULL; item = item->next) {
			ChamplainBaseMarker *marker = CHAMPLAIN_BASE_MARKER(item->data);
			XPUSHs(sv_2mortal(newSVChamplainBaseMarker(marker)));
		}
		
		/* The doc says that the list shouldn't be freed! */


guint
champlain_selection_layer_count_selected_markers (ChamplainSelectionLayer *layer)


void
champlain_selection_layer_select (ChamplainSelectionLayer *layer, ChamplainBaseMarker *marker)


void
champlain_selection_layer_unselect (ChamplainSelectionLayer *layer, ChamplainBaseMarker *marker)


gboolean
champlain_selection_layer_marker_is_selected (ChamplainSelectionLayer *layer, ChamplainBaseMarker *marker)


void
champlain_selection_layer_select_all (ChamplainSelectionLayer *layer)


void
champlain_selection_layer_unselect_all (ChamplainSelectionLayer *layer)


void
champlain_selection_layer_set_selection_mode (ChamplainSelectionLayer *layer, ChamplainSelectionMode mode);


ChamplainSelectionMode
champlain_selection_layer_get_selection_mode (ChamplainSelectionLayer *layer);