/* icon-view.c generated by valac 0.38.4, the Vala compiler
 * generated from icon-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>
#include <libcommon.h>
#include <gio/gio.h>
#include <gdk/gdk.h>
#include <glib/gi18n-lib.h>
#include <stdlib.h>
#include <string.h>


#define BOXES_TYPE_SELECTION_CRITERIA (boxes_selection_criteria_get_type ())

#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_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;

#define BOXES_TYPE_UI (boxes_ui_get_type ())
#define BOXES_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UI, BoxesUI))
#define BOXES_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UI))
#define BOXES_UI_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_UI, BoxesUIIface))

typedef struct _BoxesUI BoxesUI;
typedef struct _BoxesUIIface BoxesUIIface;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())

#define BOXES_TYPE_ICON_VIEW (boxes_icon_view_get_type ())
#define BOXES_ICON_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICON_VIEW, BoxesIconView))
#define BOXES_ICON_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_ICON_VIEW, BoxesIconViewClass))
#define BOXES_IS_ICON_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICON_VIEW))
#define BOXES_IS_ICON_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_ICON_VIEW))
#define BOXES_ICON_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_ICON_VIEW, BoxesIconViewClass))

typedef struct _BoxesIconView BoxesIconView;
typedef struct _BoxesIconViewClass BoxesIconViewClass;
typedef struct _BoxesIconViewPrivate BoxesIconViewPrivate;

#define BOXES_TYPE_APP_WINDOW (boxes_app_window_get_type ())
#define BOXES_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP_WINDOW, BoxesAppWindow))
#define BOXES_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP_WINDOW, BoxesAppWindowClass))
#define BOXES_IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP_WINDOW))
#define BOXES_IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP_WINDOW))
#define BOXES_APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP_WINDOW, BoxesAppWindowClass))

typedef struct _BoxesAppWindow BoxesAppWindow;
typedef struct _BoxesAppWindowClass BoxesAppWindowClass;

#define BOXES_TYPE_ACTIONS_POPOVER (boxes_actions_popover_get_type ())
#define BOXES_ACTIONS_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopover))
#define BOXES_ACTIONS_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopoverClass))
#define BOXES_IS_ACTIONS_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ACTIONS_POPOVER))
#define BOXES_IS_ACTIONS_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_ACTIONS_POPOVER))
#define BOXES_ACTIONS_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopoverClass))

typedef struct _BoxesActionsPopover BoxesActionsPopover;
typedef struct _BoxesActionsPopoverClass BoxesActionsPopoverClass;

#define BOXES_TYPE_CATEGORY (boxes_category_get_type ())
#define BOXES_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_CATEGORY, BoxesCategory))
#define BOXES_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_CATEGORY, BoxesCategoryClass))
#define BOXES_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_CATEGORY))
#define BOXES_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_CATEGORY))
#define BOXES_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_CATEGORY, BoxesCategoryClass))

typedef struct _BoxesCategory BoxesCategory;
typedef struct _BoxesCategoryClass BoxesCategoryClass;
enum  {
	BOXES_ICON_VIEW_0_PROPERTY,
	BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY,
	BOXES_ICON_VIEW_UI_STATE_PROPERTY,
	BOXES_ICON_VIEW_FILTER_PROPERTY,
	BOXES_ICON_VIEW_CATEGORY_PROPERTY,
	BOXES_ICON_VIEW_NUM_PROPERTIES
};
static GParamSpec* boxes_icon_view_properties[BOXES_ICON_VIEW_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block28Data Block28Data;

#define BOXES_TYPE_MACHINE (boxes_machine_get_type ())
#define BOXES_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MACHINE, BoxesMachine))
#define BOXES_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MACHINE, BoxesMachineClass))
#define BOXES_IS_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MACHINE))
#define BOXES_IS_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MACHINE))
#define BOXES_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MACHINE, BoxesMachineClass))

typedef struct _BoxesMachine BoxesMachine;
typedef struct _BoxesMachineClass BoxesMachineClass;

#define BOXES_TYPE_APP (boxes_app_get_type ())
#define BOXES_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP, BoxesApp))
#define BOXES_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP, BoxesAppClass))
#define BOXES_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP))
#define BOXES_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP))
#define BOXES_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP, BoxesAppClass))

typedef struct _BoxesApp BoxesApp;
typedef struct _BoxesAppClass BoxesAppClass;
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
typedef struct _Block29Data Block29Data;
typedef struct _BoxesAppPrivate BoxesAppPrivate;

#define BOXES_TYPE_COLLECTION (boxes_collection_get_type ())
#define BOXES_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION, BoxesCollection))
#define BOXES_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION, BoxesCollectionClass))
#define BOXES_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION))
#define BOXES_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION))
#define BOXES_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION, BoxesCollectionClass))

typedef struct _BoxesCollection BoxesCollection;
typedef struct _BoxesCollectionClass BoxesCollectionClass;
typedef struct _BoxesCollectionPrivate BoxesCollectionPrivate;
typedef struct _Block30Data Block30Data;

#define BOXES_TYPE_ICON_VIEW_CHILD (boxes_icon_view_child_get_type ())
#define BOXES_ICON_VIEW_CHILD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICON_VIEW_CHILD, BoxesIconViewChild))
#define BOXES_ICON_VIEW_CHILD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_ICON_VIEW_CHILD, BoxesIconViewChildClass))
#define BOXES_IS_ICON_VIEW_CHILD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICON_VIEW_CHILD))
#define BOXES_IS_ICON_VIEW_CHILD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_ICON_VIEW_CHILD))
#define BOXES_ICON_VIEW_CHILD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_ICON_VIEW_CHILD, BoxesIconViewChildClass))

typedef struct _BoxesIconViewChild BoxesIconViewChild;
typedef struct _BoxesIconViewChildClass BoxesIconViewChildClass;

#define BOXES_TYPE_LIBVIRT_MACHINE (boxes_libvirt_machine_get_type ())
#define BOXES_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachine))
#define BOXES_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))
#define BOXES_IS_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_IS_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_LIBVIRT_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))

typedef struct _BoxesLibvirtMachine BoxesLibvirtMachine;
typedef struct _BoxesLibvirtMachineClass BoxesLibvirtMachineClass;
typedef struct _Block31Data Block31Data;
typedef struct _BoxesIconViewChildPrivate BoxesIconViewChildPrivate;

#define BOXES_CATEGORY_TYPE_KIND (boxes_category_kind_get_type ())

typedef enum  {
	BOXES_SELECTION_CRITERIA_ALL,
	BOXES_SELECTION_CRITERIA_NONE,
	BOXES_SELECTION_CRITERIA_RUNNING
} BoxesSelectionCriteria;

struct _BoxesICollectionViewIface {
	GTypeInterface parent_iface;
	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);
};

typedef enum  {
	BOXES_UI_STATE_NONE,
	BOXES_UI_STATE_COLLECTION,
	BOXES_UI_STATE_CREDS,
	BOXES_UI_STATE_DISPLAY,
	BOXES_UI_STATE_WIZARD,
	BOXES_UI_STATE_PROPERTIES
} BoxesUIState;

struct _BoxesUIIface {
	GTypeInterface parent_iface;
	BoxesUIState (*get_previous_ui_state) (BoxesUI* self);
	void (*set_previous_ui_state) (BoxesUI* self, BoxesUIState value);
	BoxesUIState (*get_ui_state) (BoxesUI* self);
	void (*set_ui_state) (BoxesUI* self, BoxesUIState value);
};

struct _BoxesIconView {
	GtkScrolledWindow parent_instance;
	BoxesIconViewPrivate * priv;
};

struct _BoxesIconViewClass {
	GtkScrolledWindowClass parent_class;
};

struct _BoxesIconViewPrivate {
	BoxesUIState _previous_ui_state;
	BoxesUIState _ui_state;
	BoxesCollectionFilter* _filter;
	GtkFlowBox* flowbox;
	BoxesAppWindow* window;
	BoxesActionsPopover* context_popover;
	BoxesCategory* _category;
};

struct _Block28Data {
	int _ref_count_;
	BoxesIconView* self;
	BoxesAppWindow* window;
};

struct _Block29Data {
	int _ref_count_;
	BoxesIconView* self;
	GtkFlowBoxChild* first_child;
};

struct _BoxesApp {
	GtkApplication parent_instance;
	BoxesAppPrivate * priv;
	BoxesCollection* collection;
	BoxesAsyncLauncher* async_launcher;
};

struct _BoxesAppClass {
	GtkApplicationClass parent_class;
};

struct _BoxesCollection {
	GObject parent_instance;
	BoxesCollectionPrivate * priv;
	GListStore* items;
};

struct _BoxesCollectionClass {
	GObjectClass parent_class;
};

struct _Block30Data {
	int _ref_count_;
	BoxesIconView* self;
	GtkFlowBoxChild* child;
};

struct _Block31Data {
	int _ref_count_;
	BoxesIconView* self;
	GFunc func;
	gpointer func_target;
};

struct _BoxesIconViewChild {
	GtkBox parent_instance;
	BoxesIconViewChildPrivate * priv;
	gboolean _selection_mode;
	gboolean _selected;
	GtkImage* thumbnail;
};

struct _BoxesIconViewChildClass {
	GtkBoxClass parent_class;
};

typedef enum  {
	BOXES_CATEGORY_KIND_USER,
	BOXES_CATEGORY_KIND_NEW,
	BOXES_CATEGORY_KIND_FAVORITES,
	BOXES_CATEGORY_KIND_PRIVATE,
	BOXES_CATEGORY_KIND_SHARED
} BoxesCategoryKind;


static gpointer boxes_icon_view_parent_class = NULL;
extern BoxesApp* boxes_app_app;
static BoxesICollectionViewIface * boxes_icon_view_boxes_icollection_view_parent_iface = NULL;
static BoxesUIIface * boxes_icon_view_boxes_ui_parent_iface = NULL;

GType boxes_selection_criteria_get_type (void) G_GNUC_CONST;
GType boxes_collection_item_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;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_icon_view_get_type (void) G_GNUC_CONST;
GType boxes_app_window_get_type (void) G_GNUC_CONST;
GType boxes_actions_popover_get_type (void) G_GNUC_CONST;
GType boxes_category_get_type (void) G_GNUC_CONST;
#define BOXES_ICON_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_ICON_VIEW, BoxesIconViewPrivate))
void boxes_icon_view_setup_ui (BoxesIconView* self, BoxesAppWindow* window);
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
static void __lambda196_ (Block28Data* _data28_);
gboolean boxes_app_window_get_selection_mode (BoxesAppWindow* self);
static void boxes_icon_view_update_selection_mode (BoxesIconView* self);
static void ___lambda196__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
BoxesActionsPopover* boxes_actions_popover_new (BoxesAppWindow* window);
BoxesActionsPopover* boxes_actions_popover_construct (GType object_type, BoxesAppWindow* window);
static void boxes_icon_view_real_select_by_criteria (BoxesICollectionView* base, BoxesSelectionCriteria criteria);
void boxes_app_window_set_selection_mode (BoxesAppWindow* self, gboolean value);
static void boxes_icon_view_foreach_child (BoxesIconView* self, GFunc func, void* func_target);
static void ___lambda226_ (BoxesIconView* self, GtkFlowBoxChild* box_child);
static void boxes_icon_view_select_child (BoxesIconView* self, GtkFlowBoxChild* child);
static void ____lambda226__gfunc (gconstpointer data, gpointer self);
static void ___lambda227_ (BoxesIconView* self, GtkFlowBoxChild* box_child);
static void boxes_icon_view_unselect_child (BoxesIconView* self, GtkFlowBoxChild* child);
static void ____lambda227__gfunc (gconstpointer data, gpointer self);
static void ___lambda228_ (BoxesIconView* self, GtkFlowBoxChild* box_child);
static BoxesCollectionItem* boxes_icon_view_get_item_for_child (BoxesIconView* self, GtkFlowBoxChild* child);
GType boxes_machine_get_type (void) G_GNUC_CONST;
gboolean boxes_machine_get_is_running (BoxesMachine* self);
static void ____lambda228__gfunc (gconstpointer data, gpointer self);
GType boxes_app_get_type (void) G_GNUC_CONST;
static GList* boxes_icon_view_real_get_selected_items (BoxesICollectionView* base);
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
static void boxes_icon_view_real_activate_first_item (BoxesICollectionView* base);
static Block29Data* block29_data_ref (Block29Data* _data29_);
static void block29_data_unref (void * _userdata_);
static void __lambda229_ (Block29Data* _data29_, GtkFlowBoxChild* box_child);
static void ___lambda229__gfunc (gconstpointer data, gpointer self);
static void boxes_icon_view_setup_flowbox (BoxesIconView* self);
GType boxes_collection_get_type (void) G_GNUC_CONST;
static GtkWidget* __lambda230_ (BoxesIconView* self, GObject* item);
static Block30Data* block30_data_ref (Block30Data* _data30_);
static void block30_data_unref (void * _userdata_);
GType boxes_icon_view_child_get_type (void) G_GNUC_CONST;
BoxesIconViewChild* boxes_icon_view_child_new (BoxesCollectionItem* item);
BoxesIconViewChild* boxes_icon_view_child_construct (GType object_type, BoxesCollectionItem* item);
static void __lambda231_ (Block30Data* _data30_);
static void boxes_icon_view_propagate_view_child_selection (BoxesIconView* self, GtkFlowBoxChild* child);
static void ___lambda231__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static GtkWidget* ___lambda230__gtk_flow_box_create_widget_func (GObject* item, gpointer self);
static gboolean boxes_icon_view_on_button_press_event (BoxesIconView* self, GdkEventButton* event);
static gboolean _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean boxes_icon_view_on_key_press_event (BoxesIconView* self, GdkEventKey* event);
static gboolean _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
static gboolean boxes_icon_view_model_filter (BoxesIconView* self, GtkFlowBoxChild* child);
static gboolean _boxes_icon_view_model_filter_gtk_flow_box_filter_func (GtkFlowBoxChild* child, gpointer self);
static void __lambda232_ (BoxesIconView* self, GtkFlowBoxChild* child);
GType boxes_libvirt_machine_get_type (void) G_GNUC_CONST;
gboolean boxes_libvirt_machine_get_importing (BoxesLibvirtMachine* self);
void boxes_app_window_select_item (BoxesAppWindow* self, BoxesCollectionItem* item);
static void ___lambda232__gtk_flow_box_child_activated (GtkFlowBox* _sender, GtkFlowBoxChild* child, gpointer self);
BoxesCollectionItem* boxes_icon_view_child_get_item (BoxesIconViewChild* self);
static Block31Data* block31_data_ref (Block31Data* _data31_);
static void block31_data_unref (void * _userdata_);
static void __lambda197_ (Block31Data* _data31_, GtkWidget* child);
static void ___lambda197__gtk_callback (GtkWidget* widget, gpointer self);
BoxesCollectionFilter* boxes_icollection_view_get_filter (BoxesICollectionView* self);
gboolean boxes_collection_filter_filter (BoxesCollectionFilter* self, BoxesCollectionItem* item);
static void boxes_icon_view_ui_state_changed (BoxesIconView* self);
BoxesUIState boxes_ui_get_ui_state (BoxesUI* self);
static gboolean boxes_icon_view_launch_context_popover_for_child (BoxesIconView* self, GtkFlowBoxChild* child);
void boxes_actions_popover_update_for_item (BoxesActionsPopover* self, BoxesCollectionItem* item);
static void __lambda198_ (BoxesIconView* self, GtkFlowBoxChild* child);
gboolean boxes_icon_view_child_get_selection_mode (BoxesIconViewChild* self);
void boxes_icon_view_child_set_selection_mode (BoxesIconViewChild* self, gboolean value);
static void ___lambda198__gfunc (gconstpointer data, gpointer self);
gboolean boxes_icon_view_child_get_selected (BoxesIconViewChild* self);
void boxes_icon_view_child_set_selected (BoxesIconViewChild* self, gboolean value);
BoxesIconView* boxes_icon_view_new (void);
BoxesIconView* boxes_icon_view_construct (GType object_type);
BoxesCategory* boxes_icon_view_get_category (BoxesIconView* self);
void boxes_icon_view_set_category (BoxesIconView* self, BoxesCategory* value);
static GObject * boxes_icon_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
GType boxes_category_kind_get_type (void) G_GNUC_CONST;
BoxesCategory* boxes_category_new (const gchar* name, BoxesCategoryKind kind);
BoxesCategory* boxes_category_construct (GType object_type, const gchar* name, BoxesCategoryKind kind);
BoxesCollectionFilter* boxes_collection_filter_new (void);
BoxesCollectionFilter* boxes_collection_filter_construct (GType object_type);
void boxes_icollection_view_set_filter (BoxesICollectionView* self, BoxesCollectionFilter* value);
static void _boxes_icon_view___lambda233_ (BoxesIconView* self);
static void __boxes_icon_view___lambda233__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _boxes_icon_view___lambda234_ (BoxesIconView* self);
static void __boxes_icon_view___lambda234__boxes_collection_filter_filter_func_changed (BoxesCollectionFilter* _sender, gpointer self);
static void _boxes_icon_view_ui_state_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void boxes_icon_view_finalize (GObject * obj);
BoxesUIState boxes_ui_get_previous_ui_state (BoxesUI* self);
static void _vala_boxes_icon_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
void boxes_ui_set_previous_ui_state (BoxesUI* self, BoxesUIState value);
void boxes_ui_set_ui_state (BoxesUI* self, BoxesUIState value);
static void _vala_boxes_icon_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


GType boxes_selection_criteria_get_type (void) {
	static volatile gsize boxes_selection_criteria_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_selection_criteria_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_SELECTION_CRITERIA_ALL, "BOXES_SELECTION_CRITERIA_ALL", "all"}, {BOXES_SELECTION_CRITERIA_NONE, "BOXES_SELECTION_CRITERIA_NONE", "none"}, {BOXES_SELECTION_CRITERIA_RUNNING, "BOXES_SELECTION_CRITERIA_RUNNING", "running"}, {0, NULL, NULL}};
		GType boxes_selection_criteria_type_id;
		boxes_selection_criteria_type_id = g_enum_register_static ("BoxesSelectionCriteria", values);
		g_once_init_leave (&boxes_selection_criteria_type_id__volatile, boxes_selection_criteria_type_id);
	}
	return boxes_selection_criteria_type_id__volatile;
}


static gpointer _g_object_ref0 (gpointer self) {
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return self ? g_object_ref (self) : NULL;
#line 415 "icon-view.c"
}


static Block28Data* block28_data_ref (Block28Data* _data28_) {
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data28_->_ref_count_);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data28_;
#line 424 "icon-view.c"
}


static void block28_data_unref (void * _userdata_) {
	Block28Data* _data28_;
	_data28_ = (Block28Data*) _userdata_;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data28_->_ref_count_)) {
#line 433 "icon-view.c"
		BoxesIconView* self;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data28_->self;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data28_->window);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block28Data, _data28_);
#line 443 "icon-view.c"
	}
}


static void __lambda196_ (Block28Data* _data28_) {
	BoxesIconView* self;
	GtkSelectionMode _tmp0_ = 0;
	BoxesAppWindow* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	GtkFlowBox* _tmp4_;
#line 50 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data28_->self;
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _data28_->window;
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_app_window_get_selection_mode (_tmp1_);
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _tmp2_;
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_) {
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = GTK_SELECTION_MULTIPLE;
#line 467 "icon-view.c"
	} else {
#line 52 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = GTK_SELECTION_NONE;
#line 471 "icon-view.c"
	}
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = self->priv->flowbox;
#line 51 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_set_selection_mode (_tmp4_, _tmp0_);
#line 53 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_update_selection_mode (self);
#line 479 "icon-view.c"
}


static void ___lambda196__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 50 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda196_ (self);
#line 486 "icon-view.c"
}


void boxes_icon_view_setup_ui (BoxesIconView* self, BoxesAppWindow* window) {
	Block28Data* _data28_;
	BoxesAppWindow* _tmp0_;
	BoxesAppWindow* _tmp1_;
	BoxesAppWindow* _tmp2_;
	BoxesAppWindow* _tmp3_;
	BoxesAppWindow* _tmp4_;
	BoxesAppWindow* _tmp5_;
	BoxesActionsPopover* _tmp6_;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (window != NULL);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_ = g_slice_new0 (Block28Data);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->_ref_count_ = 1;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->self = g_object_ref (self);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = window;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_data28_->window);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->window = _tmp1_;
#line 48 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _data28_->window;
#line 48 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 48 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->window);
#line 48 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->window = _tmp3_;
#line 50 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _data28_->window;
#line 50 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_data ((GObject*) _tmp4_, "notify::selection-mode", (GCallback) ___lambda196__g_object_notify, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _data28_->window;
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_actions_popover_new (_tmp5_);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_ref_sink (_tmp6_);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->context_popover);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->context_popover = _tmp6_;
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block28_data_unref (_data28_);
#line 47 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_ = NULL;
#line 543 "icon-view.c"
}


static void ___lambda226_ (BoxesIconView* self, GtkFlowBoxChild* box_child) {
	GtkFlowBoxChild* _tmp0_;
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (box_child != NULL);
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = box_child;
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_select_child (self, _tmp0_);
#line 555 "icon-view.c"
}


static void ____lambda226__gfunc (gconstpointer data, gpointer self) {
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	___lambda226_ ((BoxesIconView*) self, (GtkFlowBoxChild*) data);
#line 562 "icon-view.c"
}


static void ___lambda227_ (BoxesIconView* self, GtkFlowBoxChild* box_child) {
	GtkFlowBoxChild* _tmp0_;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (box_child != NULL);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = box_child;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_unselect_child (self, _tmp0_);
#line 574 "icon-view.c"
}


static void ____lambda227__gfunc (gconstpointer data, gpointer self) {
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	___lambda227_ ((BoxesIconView*) self, (GtkFlowBoxChild*) data);
#line 581 "icon-view.c"
}


static void ___lambda228_ (BoxesIconView* self, GtkFlowBoxChild* box_child) {
	BoxesCollectionItem* item = NULL;
	GtkFlowBoxChild* _tmp0_;
	BoxesCollectionItem* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	BoxesCollectionItem* _tmp4_;
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (box_child != NULL);
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = box_child;
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_icon_view_get_item_for_child (self, _tmp0_);
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp1_;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = item;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp4_ != NULL) {
#line 604 "icon-view.c"
		BoxesCollectionItem* _tmp5_;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = item;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, BOXES_TYPE_MACHINE);
#line 610 "icon-view.c"
	} else {
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp3_ = FALSE;
#line 614 "icon-view.c"
	}
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_) {
#line 618 "icon-view.c"
		BoxesCollectionItem* _tmp6_;
		gboolean _tmp7_;
		gboolean _tmp8_;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = item;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp7_ = boxes_machine_get_is_running (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp6_) : NULL);
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp8_ = _tmp7_;
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = _tmp8_;
#line 630 "icon-view.c"
	} else {
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = FALSE;
#line 634 "icon-view.c"
	}
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_) {
#line 638 "icon-view.c"
		GtkFlowBoxChild* _tmp9_;
#line 76 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp9_ = box_child;
#line 76 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_select_child (self, _tmp9_);
#line 644 "icon-view.c"
	} else {
		GtkFlowBoxChild* _tmp10_;
#line 78 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp10_ = box_child;
#line 78 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_unselect_child (self, _tmp10_);
#line 651 "icon-view.c"
	}
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 655 "icon-view.c"
}


static void ____lambda228__gfunc (gconstpointer data, gpointer self) {
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	___lambda228_ ((BoxesIconView*) self, (GtkFlowBoxChild*) data);
#line 662 "icon-view.c"
}


static void boxes_icon_view_real_select_by_criteria (BoxesICollectionView* base, BoxesSelectionCriteria criteria) {
	BoxesIconView * self;
	BoxesAppWindow* _tmp0_;
	BoxesSelectionCriteria _tmp1_;
	BoxesApp* _tmp2_;
#line 59 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 60 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->window;
#line 60 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_app_window_set_selection_mode (_tmp0_, TRUE);
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = criteria;
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (_tmp1_) {
#line 681 "icon-view.c"
		default:
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_ALL:
#line 685 "icon-view.c"
		{
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			boxes_icon_view_foreach_child (self, ____lambda226__gfunc, self);
#line 67 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 691 "icon-view.c"
		}
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_NONE:
#line 695 "icon-view.c"
		{
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			boxes_icon_view_foreach_child (self, ____lambda227__gfunc, self);
#line 71 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 701 "icon-view.c"
		}
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_RUNNING:
#line 705 "icon-view.c"
		{
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			boxes_icon_view_foreach_child (self, ____lambda228__gfunc, self);
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 711 "icon-view.c"
		}
	}
#line 84 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_app_app;
#line 84 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp2_, "selected-items");
#line 718 "icon-view.c"
}


static void _g_object_unref0_ (gpointer var) {
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 725 "icon-view.c"
}


static inline void _g_list_free__g_object_unref0_ (GList* self) {
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_list_free_full (self, (GDestroyNotify) _g_object_unref0_);
#line 732 "icon-view.c"
}


static GList* boxes_icon_view_real_get_selected_items (BoxesICollectionView* base) {
	BoxesIconView * self;
	GList* result = NULL;
	GList* selected = NULL;
	GtkFlowBox* _tmp0_;
	GList* _tmp1_;
	GList* _tmp6_;
#line 87 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 88 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	selected = NULL;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->flowbox;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_flow_box_get_selected_children (_tmp0_);
#line 751 "icon-view.c"
	{
		GList* box_child_collection = NULL;
		GList* box_child_it = NULL;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		box_child_collection = _tmp1_;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		for (box_child_it = box_child_collection; box_child_it != NULL; box_child_it = box_child_it->next) {
#line 759 "icon-view.c"
			GtkFlowBoxChild* box_child = NULL;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			box_child = (GtkFlowBoxChild*) box_child_it->data;
#line 763 "icon-view.c"
			{
				BoxesCollectionItem* item = NULL;
				GtkFlowBoxChild* _tmp2_;
				BoxesCollectionItem* _tmp3_;
				BoxesCollectionItem* _tmp4_;
				BoxesCollectionItem* _tmp5_;
#line 91 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp2_ = box_child;
#line 91 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp3_ = boxes_icon_view_get_item_for_child (self, _tmp2_);
#line 91 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				item = _tmp3_;
#line 92 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp4_ = item;
#line 92 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp5_ = _g_object_ref0 (_tmp4_);
#line 92 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				selected = g_list_append (selected, _tmp5_);
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_g_object_unref0 (item);
#line 784 "icon-view.c"
			}
		}
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_list_free0 (box_child_collection);
#line 789 "icon-view.c"
	}
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = selected;
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	selected = NULL;
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp6_;
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__g_list_free__g_object_unref0_0 (selected);
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 801 "icon-view.c"
}


static Block29Data* block29_data_ref (Block29Data* _data29_) {
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data29_->_ref_count_);
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data29_;
#line 810 "icon-view.c"
}


static void block29_data_unref (void * _userdata_) {
	Block29Data* _data29_;
	_data29_ = (Block29Data*) _userdata_;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data29_->_ref_count_)) {
#line 819 "icon-view.c"
		BoxesIconView* self;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data29_->self;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data29_->first_child);
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block29Data, _data29_);
#line 829 "icon-view.c"
	}
}


static void __lambda229_ (Block29Data* _data29_, GtkFlowBoxChild* box_child) {
	BoxesIconView* self;
	GtkFlowBoxChild* _tmp0_;
#line 100 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 100 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (box_child != NULL);
#line 101 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->first_child;
#line 101 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp0_ == NULL) {
#line 845 "icon-view.c"
		GtkFlowBoxChild* _tmp1_;
		GtkFlowBoxChild* _tmp2_;
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp1_ = box_child;
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = _g_object_ref0 (_tmp1_);
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data29_->first_child);
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data29_->first_child = _tmp2_;
#line 856 "icon-view.c"
	}
}


static void ___lambda229__gfunc (gconstpointer data, gpointer self) {
#line 100 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda229_ (self, (GtkFlowBoxChild*) data);
#line 864 "icon-view.c"
}


static void boxes_icon_view_real_activate_first_item (BoxesICollectionView* base) {
	BoxesIconView * self;
	Block29Data* _data29_;
	GtkFlowBoxChild* _tmp0_;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_ = g_slice_new0 (Block29Data);
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->_ref_count_ = 1;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->self = g_object_ref (self);
#line 99 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->first_child = NULL;
#line 100 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_foreach_child (self, ___lambda229__gfunc, _data29_);
#line 105 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->first_child;
#line 105 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp0_ == NULL) {
#line 888 "icon-view.c"
		GtkFlowBox* _tmp1_;
		GtkFlowBoxChild* _tmp2_;
#line 106 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp1_ = self->priv->flowbox;
#line 106 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = _data29_->first_child;
#line 106 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_signal_emit_by_name (_tmp1_, "child-activated", _tmp2_);
#line 897 "icon-view.c"
	}
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block29_data_unref (_data29_);
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_ = NULL;
#line 903 "icon-view.c"
}


static Block30Data* block30_data_ref (Block30Data* _data30_) {
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data30_->_ref_count_);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data30_;
#line 912 "icon-view.c"
}


static void block30_data_unref (void * _userdata_) {
	Block30Data* _data30_;
	_data30_ = (Block30Data*) _userdata_;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data30_->_ref_count_)) {
#line 921 "icon-view.c"
		BoxesIconView* self;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data30_->self;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data30_->child);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block30Data, _data30_);
#line 931 "icon-view.c"
	}
}


static void __lambda231_ (Block30Data* _data30_) {
	BoxesIconView* self;
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data30_->self;
#line 117 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_propagate_view_child_selection (self, _data30_->child);
#line 942 "icon-view.c"
}


static void ___lambda231__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda231_ (self);
#line 949 "icon-view.c"
}


static GtkWidget* __lambda230_ (BoxesIconView* self, GObject* item) {
	GtkWidget* result = NULL;
	Block30Data* _data30_;
	GtkFlowBoxChild* _tmp0_;
	BoxesIconViewChild* box = NULL;
	GObject* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	GtkWidget* _tmp3_;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (item != NULL, NULL);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data30_ = g_slice_new0 (Block30Data);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data30_->_ref_count_ = 1;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data30_->self = g_object_ref (self);
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = (GtkFlowBoxChild*) gtk_flow_box_child_new ();
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_ref_sink (_tmp0_);
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data30_->child = _tmp0_;
#line 112 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_set_halign ((GtkWidget*) _data30_->child, GTK_ALIGN_START);
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = item;
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_icon_view_child_new (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_COLLECTION_ITEM) ? ((BoxesCollectionItem*) _tmp1_) : NULL);
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_ref_sink (_tmp2_);
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	box = _tmp2_;
#line 114 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_container_add ((GtkContainer*) _data30_->child, (GtkWidget*) box);
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_data ((GObject*) box, "notify::selected", (GCallback) ___lambda231__g_object_notify, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
#line 120 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_set_visible ((GtkWidget*) box, TRUE);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_set_visible ((GtkWidget*) _data30_->child, TRUE);
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _g_object_ref0 ((GtkWidget*) _data30_->child);
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp3_;
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (box);
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block30_data_unref (_data30_);
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data30_ = NULL;
#line 123 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1005 "icon-view.c"
}


static GtkWidget* ___lambda230__gtk_flow_box_create_widget_func (GObject* item, gpointer self) {
	GtkWidget* result;
	result = __lambda230_ ((BoxesIconView*) self, item);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1014 "icon-view.c"
}


static gboolean _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = boxes_icon_view_on_button_press_event ((BoxesIconView*) self, event);
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1023 "icon-view.c"
}


static gboolean _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
	gboolean result;
	result = boxes_icon_view_on_key_press_event ((BoxesIconView*) self, event);
#line 127 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1032 "icon-view.c"
}


static gboolean _boxes_icon_view_model_filter_gtk_flow_box_filter_func (GtkFlowBoxChild* child, gpointer self) {
	gboolean result;
	result = boxes_icon_view_model_filter ((BoxesIconView*) self, child);
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1041 "icon-view.c"
}


static void __lambda232_ (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesAppWindow* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	BoxesCollectionItem* item = NULL;
	GtkFlowBoxChild* _tmp3_;
	BoxesCollectionItem* _tmp4_;
	gboolean _tmp5_ = FALSE;
	BoxesCollectionItem* _tmp6_;
	BoxesAppWindow* _tmp10_;
	BoxesCollectionItem* _tmp11_;
#line 131 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->window;
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_app_window_get_selection_mode (_tmp0_);
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_;
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_) {
#line 133 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1068 "icon-view.c"
	}
#line 135 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = child;
#line 135 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icon_view_get_item_for_child (self, _tmp3_);
#line 135 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp4_;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = item;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, BOXES_TYPE_LIBVIRT_MACHINE)) {
#line 1080 "icon-view.c"
		BoxesCollectionItem* _tmp7_;
		gboolean _tmp8_;
		gboolean _tmp9_;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp7_ = item;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp8_ = boxes_libvirt_machine_get_importing (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, BOXES_TYPE_LIBVIRT_MACHINE) ? ((BoxesLibvirtMachine*) _tmp7_) : NULL);
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp9_ = _tmp8_;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = _tmp9_;
#line 1092 "icon-view.c"
	} else {
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = FALSE;
#line 1096 "icon-view.c"
	}
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp5_) {
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1104 "icon-view.c"
	}
#line 139 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = self->priv->window;
#line 139 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = item;
#line 139 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_app_window_select_item (_tmp10_, _tmp11_);
#line 131 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 1114 "icon-view.c"
}


static void ___lambda232__gtk_flow_box_child_activated (GtkFlowBox* _sender, GtkFlowBoxChild* child, gpointer self) {
#line 131 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda232_ ((BoxesIconView*) self, child);
#line 1121 "icon-view.c"
}


static void boxes_icon_view_setup_flowbox (BoxesIconView* self) {
	GtkFlowBox* _tmp0_;
	BoxesApp* _tmp1_;
	BoxesCollection* _tmp2_;
	GListStore* _tmp3_;
	GtkFlowBox* _tmp4_;
	GtkFlowBox* _tmp5_;
	GtkFlowBox* _tmp6_;
	GtkFlowBox* _tmp7_;
#line 109 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->flowbox;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_app_app;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_->collection;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _tmp2_->items;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_bind_model (_tmp0_, (GListModel*) _tmp3_, ___lambda230__gtk_flow_box_create_widget_func, g_object_ref (self), g_object_unref);
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = self->priv->flowbox;
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkWidget*) _tmp4_, "button-release-event", (GCallback) _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event, self, 0);
#line 127 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = self->priv->flowbox;
#line 127 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkWidget*) _tmp5_, "key-press-event", (GCallback) _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event, self, 0);
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = self->priv->flowbox;
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_set_filter_func (_tmp6_, _boxes_icon_view_model_filter_gtk_flow_box_filter_func, g_object_ref (self), g_object_unref);
#line 131 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = self->priv->flowbox;
#line 131 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object (_tmp7_, "child-activated", (GCallback) ___lambda232__gtk_flow_box_child_activated, self, 0);
#line 142 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_update_selection_mode (self);
#line 1164 "icon-view.c"
}


static BoxesCollectionItem* boxes_icon_view_get_item_for_child (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesCollectionItem* result = NULL;
	BoxesIconViewChild* view = NULL;
	GtkFlowBoxChild* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	BoxesIconViewChild* _tmp3_;
	BoxesIconViewChild* _tmp4_;
	BoxesCollectionItem* _tmp5_;
	BoxesCollectionItem* _tmp6_;
	BoxesCollectionItem* _tmp7_;
#line 145 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 145 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (child != NULL, NULL);
#line 146 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 146 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
#line 146 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp1_) : NULL);
#line 146 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view = _tmp2_;
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = view;
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_ == NULL) {
#line 148 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = NULL;
#line 148 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (view);
#line 148 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1201 "icon-view.c"
	}
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = view;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = boxes_icon_view_child_get_item (_tmp4_);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _tmp5_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp7_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1217 "icon-view.c"
}


static Block31Data* block31_data_ref (Block31Data* _data31_) {
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data31_->_ref_count_);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data31_;
#line 1226 "icon-view.c"
}


static void block31_data_unref (void * _userdata_) {
	Block31Data* _data31_;
	_data31_ = (Block31Data*) _userdata_;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data31_->_ref_count_)) {
#line 1235 "icon-view.c"
		BoxesIconView* self;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data31_->self;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block31Data, _data31_);
#line 1243 "icon-view.c"
	}
}


static void __lambda197_ (Block31Data* _data31_, GtkWidget* child) {
	BoxesIconView* self;
	GtkFlowBoxChild* view_child = NULL;
	GtkWidget* _tmp0_;
	GtkFlowBoxChild* _tmp1_;
	GtkFlowBoxChild* _tmp2_;
	GFunc _tmp3_;
	void* _tmp3__target;
	GtkFlowBoxChild* _tmp4_;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data31_->self;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 155 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 155 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_flow_box_child_get_type ()) ? ((GtkFlowBoxChild*) _tmp0_) : NULL);
#line 155 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view_child = _tmp1_;
#line 156 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = view_child;
#line 156 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ == NULL) {
#line 157 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (view_child);
#line 157 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1275 "icon-view.c"
	}
#line 159 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _data31_->func;
#line 159 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3__target = _data31_->func_target;
#line 159 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = view_child;
#line 159 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ (_tmp4_, _tmp3__target);
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view_child);
#line 1287 "icon-view.c"
}


static void ___lambda197__gtk_callback (GtkWidget* widget, gpointer self) {
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda197_ (self, widget);
#line 1294 "icon-view.c"
}


static void boxes_icon_view_foreach_child (BoxesIconView* self, GFunc func, void* func_target) {
	Block31Data* _data31_;
	GFunc _tmp0_;
	void* _tmp0__target;
	GtkFlowBox* _tmp1_;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_ = g_slice_new0 (Block31Data);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->_ref_count_ = 1;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->self = g_object_ref (self);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = func;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0__target = func_target;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->func = _tmp0_;
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->func_target = _tmp0__target;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = self->priv->flowbox;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_container_forall ((GtkContainer*) _tmp1_, ___lambda197__gtk_callback, _data31_);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block31_data_unref (_data31_);
#line 153 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_ = NULL;
#line 1327 "icon-view.c"
}


static gboolean boxes_icon_view_model_filter (BoxesIconView* self, GtkFlowBoxChild* child) {
	gboolean result = FALSE;
	GtkFlowBoxChild* _tmp0_;
	BoxesCollectionItem* item = NULL;
	GtkFlowBoxChild* _tmp1_;
	BoxesCollectionItem* _tmp2_;
	BoxesCollectionItem* _tmp3_;
	BoxesCollectionFilter* _tmp4_;
	BoxesCollectionFilter* _tmp5_;
	BoxesCollectionItem* _tmp6_;
	gboolean _tmp7_;
#line 163 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 163 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (child != NULL, FALSE);
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp0_ == NULL) {
#line 165 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 165 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1354 "icon-view.c"
	}
#line 167 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = child;
#line 167 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_icon_view_get_item_for_child (self, _tmp1_);
#line 167 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp2_;
#line 168 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = item;
#line 168 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_ == NULL) {
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1372 "icon-view.c"
	}
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = item;
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = boxes_collection_filter_filter (_tmp5_, G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, BOXES_TYPE_COLLECTION_ITEM) ? ((BoxesCollectionItem*) _tmp6_) : NULL);
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp7_;
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1388 "icon-view.c"
}


static void boxes_icon_view_ui_state_changed (BoxesIconView* self) {
	BoxesUIState _tmp0_;
	BoxesUIState _tmp1_;
#line 174 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 175 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_ui_get_ui_state ((BoxesUI*) self);
#line 175 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_;
#line 175 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp1_ == BOXES_UI_STATE_COLLECTION) {
#line 1403 "icon-view.c"
		GtkFlowBox* _tmp2_;
#line 176 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = self->priv->flowbox;
#line 176 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gtk_flow_box_unselect_all (_tmp2_);
#line 1409 "icon-view.c"
	}
}


static gboolean boxes_icon_view_on_button_press_event (BoxesIconView* self, GdkEventButton* event) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	GdkEventButton* _tmp1_;
	GdkEventType _tmp2_;
	GtkFlowBoxChild* child = NULL;
	GtkFlowBox* _tmp5_;
	GdkEventButton* _tmp6_;
	gdouble _tmp7_;
	GdkEventButton* _tmp8_;
	gdouble _tmp9_;
	GtkFlowBoxChild* _tmp10_;
	GtkFlowBoxChild* _tmp11_;
	GtkFlowBoxChild* _tmp12_;
	gboolean _tmp13_;
#line 179 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 179 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = event;
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_->type;
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ != GDK_BUTTON_RELEASE) {
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = TRUE;
#line 1441 "icon-view.c"
	} else {
		GdkEventButton* _tmp3_;
		guint _tmp4_;
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp3_ = event;
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = _tmp3_->button;
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = _tmp4_ != ((guint) 3);
#line 1451 "icon-view.c"
	}
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp0_) {
#line 181 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 181 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1459 "icon-view.c"
	}
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = self->priv->flowbox;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = event;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_->x;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = event;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _tmp8_->y;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = gtk_flow_box_get_child_at_pos (_tmp5_, (gint) _tmp7_, (gint) _tmp9_);
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = _g_object_ref0 (_tmp10_);
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	child = _tmp11_;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp12_ = child;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = boxes_icon_view_launch_context_popover_for_child (self, _tmp12_);
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp13_;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (child);
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1487 "icon-view.c"
}


static gboolean boxes_icon_view_on_key_press_event (BoxesIconView* self, GdkEventKey* event) {
	gboolean result = FALSE;
	GdkEventKey* _tmp0_;
	guint _tmp1_;
	GtkFlowBoxChild* child = NULL;
	GtkFlowBox* _tmp2_;
	GList* _tmp3_;
	GList* _tmp4_;
	gconstpointer _tmp5_;
	GtkFlowBoxChild* _tmp6_;
	GtkFlowBoxChild* _tmp7_;
	GtkFlowBoxChild* _tmp8_;
	GtkFlowBoxChild* _tmp9_;
	gboolean _tmp10_;
#line 188 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 188 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 189 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = event;
#line 189 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_->keyval;
#line 189 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp1_ != ((guint) GDK_KEY_Menu)) {
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1519 "icon-view.c"
	}
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = self->priv->flowbox;
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = gtk_flow_box_get_selected_children (_tmp2_);
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _tmp3_;
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = g_list_nth_data (_tmp4_, (guint) 0);
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _g_object_ref0 ((GtkFlowBoxChild*) _tmp5_);
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_;
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_list_free0 (_tmp4_);
#line 192 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	child = _tmp7_;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = child;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp8_ == NULL) {
#line 194 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 194 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (child);
#line 194 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1547 "icon-view.c"
	}
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = child;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = boxes_icon_view_launch_context_popover_for_child (self, _tmp9_);
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp10_;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (child);
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1559 "icon-view.c"
}


static gboolean boxes_icon_view_launch_context_popover_for_child (BoxesIconView* self, GtkFlowBoxChild* child) {
	gboolean result = FALSE;
	BoxesCollectionItem* item = NULL;
	GtkFlowBoxChild* _tmp0_;
	BoxesCollectionItem* _tmp1_;
	BoxesCollectionItem* _tmp2_;
	GtkImage* thumbnail = NULL;
	GtkFlowBoxChild* _tmp3_;
	GtkWidget* _tmp4_;
	GtkImage* _tmp5_;
	GtkImage* _tmp6_;
	BoxesActionsPopover* _tmp7_;
	BoxesCollectionItem* _tmp8_;
	BoxesActionsPopover* _tmp9_;
	GtkImage* _tmp10_;
	BoxesActionsPopover* _tmp11_;
#line 199 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 199 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (child != NULL, FALSE);
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_icon_view_get_item_for_child (self, _tmp0_);
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp1_;
#line 201 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = item;
#line 201 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ == NULL) {
#line 202 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 202 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 202 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1599 "icon-view.c"
	}
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = child;
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = gtk_bin_get_child ((GtkBin*) _tmp3_);
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp4_) : NULL)->thumbnail;
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	thumbnail = _tmp6_;
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = self->priv->context_popover;
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = item;
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_actions_popover_update_for_item (_tmp7_, _tmp8_);
#line 207 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = self->priv->context_popover;
#line 207 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = thumbnail;
#line 207 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_popover_set_relative_to ((GtkPopover*) _tmp9_, (GtkWidget*) _tmp10_);
#line 208 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = self->priv->context_popover;
#line 208 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_show ((GtkWidget*) _tmp11_);
#line 210 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = TRUE;
#line 210 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (thumbnail);
#line 210 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 210 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1635 "icon-view.c"
}


static void __lambda198_ (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesIconViewChild* view_child = NULL;
	GtkFlowBoxChild* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	BoxesIconViewChild* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	BoxesAppWindow* _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	GtkFlowBoxChild* _tmp13_;
#line 214 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp1_) : NULL);
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view_child = _tmp2_;
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = view_child;
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icon_view_child_get_selection_mode (_tmp3_);
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = self->priv->window;
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = boxes_app_window_get_selection_mode (_tmp6_);
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = _tmp7_;
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp5_ != _tmp8_) {
#line 1675 "icon-view.c"
		BoxesIconViewChild* _tmp9_;
		BoxesAppWindow* _tmp10_;
		gboolean _tmp11_;
		gboolean _tmp12_;
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp9_ = view_child;
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp10_ = self->priv->window;
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp11_ = boxes_app_window_get_selection_mode (_tmp10_);
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp12_ = _tmp11_;
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_child_set_selection_mode (_tmp9_, _tmp12_);
#line 1690 "icon-view.c"
	}
#line 220 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = child;
#line 220 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_unselect_child (self, _tmp13_);
#line 214 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view_child);
#line 1698 "icon-view.c"
}


static void ___lambda198__gfunc (gconstpointer data, gpointer self) {
#line 214 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda198_ ((BoxesIconView*) self, (GtkFlowBoxChild*) data);
#line 1705 "icon-view.c"
}


static void boxes_icon_view_update_selection_mode (BoxesIconView* self) {
#line 213 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 214 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_foreach_child (self, ___lambda198__gfunc, self);
#line 1714 "icon-view.c"
}


static void boxes_icon_view_propagate_view_child_selection (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesIconViewChild* view_child = NULL;
	GtkFlowBoxChild* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	BoxesIconViewChild* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp1_) : NULL);
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view_child = _tmp2_;
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = view_child;
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icon_view_child_get_selected (_tmp3_);
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp5_) {
#line 1746 "icon-view.c"
		GtkFlowBoxChild* _tmp6_;
#line 228 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = child;
#line 228 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_select_child (self, _tmp6_);
#line 1752 "icon-view.c"
	} else {
		GtkFlowBoxChild* _tmp7_;
#line 230 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp7_ = child;
#line 230 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_unselect_child (self, _tmp7_);
#line 1759 "icon-view.c"
	}
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view_child);
#line 1763 "icon-view.c"
}


static void boxes_icon_view_select_child (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesIconViewChild* view_child = NULL;
	GtkFlowBoxChild* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	GtkFlowBox* _tmp3_;
	GtkFlowBoxChild* _tmp4_;
	BoxesIconViewChild* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	BoxesApp* _tmp9_;
#line 233 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 233 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp1_) : NULL);
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view_child = _tmp2_;
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = self->priv->flowbox;
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = child;
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_select_child (_tmp3_, _tmp4_);
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = view_child;
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_icon_view_child_get_selected (_tmp5_);
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_;
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (!_tmp7_) {
#line 1804 "icon-view.c"
		BoxesIconViewChild* _tmp8_;
#line 238 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp8_ = view_child;
#line 238 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_child_set_selected (_tmp8_, TRUE);
#line 1810 "icon-view.c"
	}
#line 240 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = boxes_app_app;
#line 240 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp9_, "selected-items");
#line 233 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view_child);
#line 1818 "icon-view.c"
}


static void boxes_icon_view_unselect_child (BoxesIconView* self, GtkFlowBoxChild* child) {
	BoxesIconViewChild* view_child = NULL;
	GtkFlowBoxChild* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesIconViewChild* _tmp2_;
	GtkFlowBox* _tmp3_;
	GtkFlowBoxChild* _tmp4_;
	BoxesIconViewChild* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	BoxesApp* _tmp9_;
#line 243 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 243 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (child != NULL);
#line 244 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = child;
#line 244 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
#line 244 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, BOXES_TYPE_ICON_VIEW_CHILD) ? ((BoxesIconViewChild*) _tmp1_) : NULL);
#line 244 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	view_child = _tmp2_;
#line 246 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = self->priv->flowbox;
#line 246 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = child;
#line 246 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_unselect_child (_tmp3_, _tmp4_);
#line 247 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = view_child;
#line 247 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_icon_view_child_get_selected (_tmp5_);
#line 247 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_;
#line 247 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp7_) {
#line 1859 "icon-view.c"
		BoxesIconViewChild* _tmp8_;
#line 248 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp8_ = view_child;
#line 248 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_child_set_selected (_tmp8_, FALSE);
#line 1865 "icon-view.c"
	}
#line 250 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = boxes_app_app;
#line 250 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp9_, "selected-items");
#line 243 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (view_child);
#line 1873 "icon-view.c"
}


BoxesIconView* boxes_icon_view_construct (GType object_type) {
	BoxesIconView * self = NULL;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) g_object_new (object_type, NULL);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return self;
#line 1883 "icon-view.c"
}


BoxesIconView* boxes_icon_view_new (void) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return boxes_icon_view_construct (BOXES_TYPE_ICON_VIEW);
#line 1890 "icon-view.c"
}


static BoxesUIState boxes_icon_view_real_get_previous_ui_state (BoxesUI* base) {
	BoxesUIState result;
	BoxesIconView* self;
	BoxesUIState _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_previous_ui_state;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1906 "icon-view.c"
}


static void boxes_icon_view_real_set_previous_ui_state (BoxesUI* base, BoxesUIState value) {
	BoxesIconView* self;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_previous_ui_state (base) != value) {
#line 1916 "icon-view.c"
		BoxesUIState _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_previous_ui_state = _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY]);
#line 1924 "icon-view.c"
	}
}


static BoxesUIState boxes_icon_view_real_get_ui_state (BoxesUI* base) {
	BoxesUIState result;
	BoxesIconView* self;
	BoxesUIState _tmp0_;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_ui_state;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1941 "icon-view.c"
}


static void boxes_icon_view_real_set_ui_state (BoxesUI* base, BoxesUIState value) {
	BoxesIconView* self;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_ui_state (base) != value) {
#line 1951 "icon-view.c"
		BoxesUIState _tmp0_;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_ui_state = _tmp0_;
#line 12 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_UI_STATE_PROPERTY]);
#line 1959 "icon-view.c"
	}
}


static BoxesCollectionFilter* boxes_icon_view_real_get_filter (BoxesICollectionView* base) {
	BoxesCollectionFilter* result;
	BoxesIconView* self;
	BoxesCollectionFilter* _tmp0_;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_filter;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1976 "icon-view.c"
}


static void boxes_icon_view_real_set_filter (BoxesICollectionView* base, BoxesCollectionFilter* value) {
	BoxesIconView* self;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_filter (base) != value) {
#line 1986 "icon-view.c"
		BoxesCollectionFilter* _tmp0_;
		BoxesCollectionFilter* _tmp1_;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp1_ = _g_object_ref0 (_tmp0_);
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self->priv->_filter);
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_filter = _tmp1_;
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_FILTER_PROPERTY]);
#line 1999 "icon-view.c"
	}
}


BoxesCategory* boxes_icon_view_get_category (BoxesIconView* self) {
	BoxesCategory* result;
	BoxesCategory* _tmp0_;
#line 24 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 24 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_category;
#line 24 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 24 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2015 "icon-view.c"
}


void boxes_icon_view_set_category (BoxesIconView* self, BoxesCategory* value) {
	BoxesCategory* _tmp0_;
	BoxesCategory* _tmp1_;
#line 25 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 26 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = value;
#line 26 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 26 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_category);
#line 26 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->_category = _tmp1_;
#line 25 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_CATEGORY_PROPERTY]);
#line 2034 "icon-view.c"
}


static void _boxes_icon_view___lambda233_ (BoxesIconView* self) {
	GtkFlowBox* _tmp0_;
#line 38 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->flowbox;
#line 38 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_invalidate_filter (_tmp0_);
#line 2044 "icon-view.c"
}


static void __boxes_icon_view___lambda233__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 37 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_boxes_icon_view___lambda233_ ((BoxesIconView*) self);
#line 2051 "icon-view.c"
}


static void _boxes_icon_view___lambda234_ (BoxesIconView* self) {
	GtkFlowBox* _tmp0_;
#line 41 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->flowbox;
#line 41 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_flow_box_invalidate_filter (_tmp0_);
#line 2061 "icon-view.c"
}


static void __boxes_icon_view___lambda234__boxes_collection_filter_filter_func_changed (BoxesCollectionFilter* _sender, gpointer self) {
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_boxes_icon_view___lambda234_ ((BoxesIconView*) self);
#line 2068 "icon-view.c"
}


static void _boxes_icon_view_ui_state_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 44 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_ui_state_changed ((BoxesIconView*) self);
#line 2075 "icon-view.c"
}


static GObject * boxes_icon_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	BoxesIconView * self;
	BoxesCategory* _tmp0_;
	BoxesCategory* _tmp1_;
	BoxesCollectionFilter* _tmp2_;
	BoxesCollectionFilter* _tmp3_;
	BoxesCollectionFilter* _tmp4_;
	BoxesCollectionFilter* _tmp5_;
	BoxesCollectionFilter* _tmp6_;
	BoxesCollectionFilter* _tmp7_;
#line 31 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	parent_class = G_OBJECT_CLASS (boxes_icon_view_parent_class);
#line 31 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 31 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 32 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_category_new (_ ("New and Recent"), BOXES_CATEGORY_KIND_NEW);
#line 32 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_;
#line 32 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_set_category (self, _tmp1_);
#line 32 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_tmp1_);
#line 34 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_setup_flowbox (self);
#line 36 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_collection_filter_new ();
#line 36 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _tmp2_;
#line 36 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icollection_view_set_filter ((BoxesICollectionView*) self, _tmp3_);
#line 36 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_tmp3_);
#line 37 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 37 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 37 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GObject*) _tmp5_, "notify::text", (GCallback) __boxes_icon_view___lambda233__g_object_notify, self, 0);
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object (_tmp7_, "filter-func-changed", (GCallback) __boxes_icon_view___lambda234__boxes_collection_filter_filter_func_changed, self, 0);
#line 44 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GObject*) self, "notify::ui-state", (GCallback) _boxes_icon_view_ui_state_changed_g_object_notify, self, 0);
#line 31 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return obj;
#line 2131 "icon-view.c"
}


static void boxes_icon_view_class_init (BoxesIconViewClass * klass) {
	gint BoxesIconView_private_offset;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_parent_class = g_type_class_peek_parent (klass);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_type_class_add_private (klass, sizeof (BoxesIconViewPrivate));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_icon_view_get_property;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_icon_view_set_property;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->constructor = boxes_icon_view_constructor;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->finalize = boxes_icon_view_finalize;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY, boxes_icon_view_properties[BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY] = g_param_spec_enum ("previous-ui-state", "previous-ui-state", "previous-ui-state", BOXES_TYPE_UI_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_UI_STATE_PROPERTY, boxes_icon_view_properties[BOXES_ICON_VIEW_UI_STATE_PROPERTY] = g_param_spec_enum ("ui-state", "ui-state", "ui-state", BOXES_TYPE_UI_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_FILTER_PROPERTY, boxes_icon_view_properties[BOXES_ICON_VIEW_FILTER_PROPERTY] = 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 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_CATEGORY_PROPERTY, boxes_icon_view_properties[BOXES_ICON_VIEW_CATEGORY_PROPERTY] = g_param_spec_object ("category", "category", "category", BOXES_TYPE_CATEGORY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	BoxesIconView_private_offset = g_type_class_get_instance_private_offset (klass);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/Boxes/ui/icon-view.ui");
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "flowbox", FALSE, BoxesIconView_private_offset + G_STRUCT_OFFSET (BoxesIconViewPrivate, flowbox));
#line 2163 "icon-view.c"
}


static void boxes_icon_view_boxes_icollection_view_interface_init (BoxesICollectionViewIface * iface) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_boxes_icollection_view_parent_iface = g_type_interface_peek_parent (iface);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->select_by_criteria = (void (*) (BoxesICollectionView *, BoxesSelectionCriteria)) boxes_icon_view_real_select_by_criteria;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_selected_items = (GList* (*) (BoxesICollectionView *)) boxes_icon_view_real_get_selected_items;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->activate_first_item = (void (*) (BoxesICollectionView *)) boxes_icon_view_real_activate_first_item;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_filter = boxes_icon_view_real_get_filter;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_filter = boxes_icon_view_real_set_filter;
#line 2180 "icon-view.c"
}


static void boxes_icon_view_boxes_ui_interface_init (BoxesUIIface * iface) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_boxes_ui_parent_iface = g_type_interface_peek_parent (iface);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_previous_ui_state = boxes_icon_view_real_get_previous_ui_state;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_previous_ui_state = boxes_icon_view_real_set_previous_ui_state;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_ui_state = boxes_icon_view_real_get_ui_state;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_ui_state = boxes_icon_view_real_set_ui_state;
#line 2195 "icon-view.c"
}


static void boxes_icon_view_instance_init (BoxesIconView * self) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv = BOXES_ICON_VIEW_GET_PRIVATE (self);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_init_template (GTK_WIDGET (self));
#line 2204 "icon-view.c"
}


static void boxes_icon_view_finalize (GObject * obj) {
	BoxesIconView * self;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 14 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_filter);
#line 17 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->flowbox);
#line 19 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->window);
#line 20 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->context_popover);
#line 22 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_category);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (boxes_icon_view_parent_class)->finalize (obj);
#line 2224 "icon-view.c"
}


GType boxes_icon_view_get_type (void) {
	static volatile gsize boxes_icon_view_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_icon_view_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesIconViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_icon_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesIconView), 0, (GInstanceInitFunc) boxes_icon_view_instance_init, NULL };
		static const GInterfaceInfo boxes_icollection_view_info = { (GInterfaceInitFunc) boxes_icon_view_boxes_icollection_view_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		static const GInterfaceInfo boxes_ui_info = { (GInterfaceInitFunc) boxes_icon_view_boxes_ui_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType boxes_icon_view_type_id;
		boxes_icon_view_type_id = g_type_register_static (gtk_scrolled_window_get_type (), "BoxesIconView", &g_define_type_info, 0);
		g_type_add_interface_static (boxes_icon_view_type_id, BOXES_TYPE_ICOLLECTION_VIEW, &boxes_icollection_view_info);
		g_type_add_interface_static (boxes_icon_view_type_id, BOXES_TYPE_UI, &boxes_ui_info);
		g_once_init_leave (&boxes_icon_view_type_id__volatile, boxes_icon_view_type_id);
	}
	return boxes_icon_view_type_id__volatile;
}


static void _vala_boxes_icon_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesIconView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (property_id) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_enum (value, boxes_ui_get_previous_ui_state ((BoxesUI*) self));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_UI_STATE_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_enum (value, boxes_ui_get_ui_state ((BoxesUI*) self));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_FILTER_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_object (value, boxes_icollection_view_get_filter ((BoxesICollectionView*) self));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_CATEGORY_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_object (value, boxes_icon_view_get_category (self));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 2273 "icon-view.c"
		default:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 2279 "icon-view.c"
	}
}


static void _vala_boxes_icon_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesIconView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (property_id) {
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_PREVIOUS_UI_STATE_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_ui_set_previous_ui_state ((BoxesUI*) self, g_value_get_enum (value));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_UI_STATE_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_ui_set_ui_state ((BoxesUI*) self, g_value_get_enum (value));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_FILTER_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icollection_view_set_filter ((BoxesICollectionView*) self, g_value_get_object (value));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_CATEGORY_PROPERTY:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_set_category (self, g_value_get_object (value));
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 2313 "icon-view.c"
		default:
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 2319 "icon-view.c"
	}
}



