/* i-collection-view.c generated by valac 0.37.1.4-3591e, the Vala compiler
 * generated from i-collection-view.vala, do not modify */

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>


#define BOXES_TYPE_ICOLLECTION_VIEW (boxes_icollection_view_get_type ())
#define BOXES_ICOLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICOLLECTION_VIEW, BoxesICollectionView))
#define BOXES_IS_ICOLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICOLLECTION_VIEW))
#define BOXES_ICOLLECTION_VIEW_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_ICOLLECTION_VIEW, BoxesICollectionViewIface))

typedef struct _BoxesICollectionView BoxesICollectionView;
typedef struct _BoxesICollectionViewIface BoxesICollectionViewIface;

#define BOXES_TYPE_COLLECTION_ITEM (boxes_collection_item_get_type ())
#define BOXES_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItem))
#define BOXES_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))
#define BOXES_IS_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_IS_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))

typedef struct _BoxesCollectionItem BoxesCollectionItem;
typedef struct _BoxesCollectionItemClass BoxesCollectionItemClass;

#define BOXES_TYPE_SELECTION_CRITERIA (boxes_selection_criteria_get_type ())

#define BOXES_TYPE_COLLECTION_FILTER (boxes_collection_filter_get_type ())
#define BOXES_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilter))
#define BOXES_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))
#define BOXES_IS_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_IS_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_COLLECTION_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))

typedef struct _BoxesCollectionFilter BoxesCollectionFilter;
typedef struct _BoxesCollectionFilterClass BoxesCollectionFilterClass;

typedef enum  {
	BOXES_SELECTION_CRITERIA_ALL,
	BOXES_SELECTION_CRITERIA_NONE,
	BOXES_SELECTION_CRITERIA_RUNNING
} BoxesSelectionCriteria;

struct _BoxesICollectionViewIface {
	GTypeInterface parent_iface;
	void (*add_item) (BoxesICollectionView* self, BoxesCollectionItem* item);
	void (*remove_item) (BoxesICollectionView* self, BoxesCollectionItem* item);
	GList* (*get_selected_items) (BoxesICollectionView* self);
	void (*activate_first_item) (BoxesICollectionView* self);
	void (*select_by_criteria) (BoxesICollectionView* self, BoxesSelectionCriteria criteria);
	BoxesCollectionFilter* (*get_filter) (BoxesICollectionView* self);
	void (*set_filter) (BoxesICollectionView* self, BoxesCollectionFilter* value);
};



GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_selection_criteria_get_type (void) G_GNUC_CONST;
GType boxes_collection_filter_get_type (void) G_GNUC_CONST;
GType boxes_icollection_view_get_type (void) G_GNUC_CONST;
void boxes_icollection_view_add_item (BoxesICollectionView* self, BoxesCollectionItem* item);
void boxes_icollection_view_remove_item (BoxesICollectionView* self, BoxesCollectionItem* item);
GList* boxes_icollection_view_get_selected_items (BoxesICollectionView* self);
void boxes_icollection_view_activate_first_item (BoxesICollectionView* self);
void boxes_icollection_view_select_by_criteria (BoxesICollectionView* self, BoxesSelectionCriteria criteria);
BoxesCollectionFilter* boxes_icollection_view_get_filter (BoxesICollectionView* self);
void boxes_icollection_view_set_filter (BoxesICollectionView* self, BoxesCollectionFilter* value);


void boxes_icollection_view_add_item (BoxesICollectionView* self, BoxesCollectionItem* item) {
#line 6 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_if_fail (self != NULL);
#line 6 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->add_item (self, item);
#line 79 "i-collection-view.c"
}


void boxes_icollection_view_remove_item (BoxesICollectionView* self, BoxesCollectionItem* item) {
#line 7 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_if_fail (self != NULL);
#line 7 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->remove_item (self, item);
#line 88 "i-collection-view.c"
}


GList* boxes_icollection_view_get_selected_items (BoxesICollectionView* self) {
#line 8 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 8 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	return BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->get_selected_items (self);
#line 97 "i-collection-view.c"
}


void boxes_icollection_view_activate_first_item (BoxesICollectionView* self) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_if_fail (self != NULL);
#line 9 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->activate_first_item (self);
#line 106 "i-collection-view.c"
}


void boxes_icollection_view_select_by_criteria (BoxesICollectionView* self, BoxesSelectionCriteria criteria) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_if_fail (self != NULL);
#line 10 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->select_by_criteria (self, criteria);
#line 115 "i-collection-view.c"
}


BoxesCollectionFilter* boxes_icollection_view_get_filter (BoxesICollectionView* self) {
#line 4 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 4 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	return BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->get_filter (self);
#line 124 "i-collection-view.c"
}


void boxes_icollection_view_set_filter (BoxesICollectionView* self, BoxesCollectionFilter* value) {
#line 4 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	g_return_if_fail (self != NULL);
#line 4 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	BOXES_ICOLLECTION_VIEW_GET_INTERFACE (self)->set_filter (self, value);
#line 133 "i-collection-view.c"
}


static void boxes_icollection_view_base_init (BoxesICollectionViewIface * iface) {
#line 3 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	static gboolean initialized = FALSE;
#line 3 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
	if (!initialized) {
#line 3 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
		initialized = TRUE;
#line 3 "/home/fborges/checkout/gnome-boxes/src/i-collection-view.vala"
		g_object_interface_install_property (iface, g_param_spec_object ("filter", "filter", "filter", BOXES_TYPE_COLLECTION_FILTER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 146 "i-collection-view.c"
	}
}


GType boxes_icollection_view_get_type (void) {
	static volatile gsize boxes_icollection_view_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_icollection_view_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesICollectionViewIface), (GBaseInitFunc) boxes_icollection_view_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
		GType boxes_icollection_view_type_id;
		boxes_icollection_view_type_id = g_type_register_static (G_TYPE_INTERFACE, "BoxesICollectionView", &g_define_type_info, 0);
		g_type_interface_add_prerequisite (boxes_icollection_view_type_id, gtk_widget_get_type ());
		g_once_init_leave (&boxes_icollection_view_type_id__volatile, boxes_icollection_view_type_id);
	}
	return boxes_icollection_view_type_id__volatile;
}



