/* ManifestWidget.c generated by valac 0.56.19, the Vala compiler
 * generated from ManifestWidget.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

#include <gtk/gtk.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <gee.h>
#include <glib.h>
#include "shotwell-plugin-dev-1.0.h"
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR (plugins_manifest_widget_mediator_get_type ())
#define PLUGINS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator))
#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))

typedef struct _PluginsManifestWidgetMediator PluginsManifestWidgetMediator;
typedef struct _PluginsManifestWidgetMediatorClass PluginsManifestWidgetMediatorClass;
typedef struct _PluginsManifestWidgetMediatorPrivate PluginsManifestWidgetMediatorPrivate;

#define PLUGINS_TYPE_MANIFEST_LIST_VIEW (plugins_manifest_list_view_get_type ())
#define PLUGINS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView))
#define PLUGINS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))
#define PLUGINS_IS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
#define PLUGINS_IS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
#define PLUGINS_MANIFEST_LIST_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))

typedef struct _PluginsManifestListView PluginsManifestListView;
typedef struct _PluginsManifestListViewClass PluginsManifestListViewClass;
enum  {
	PLUGINS_MANIFEST_WIDGET_MEDIATOR_0_PROPERTY,
	PLUGINS_MANIFEST_WIDGET_MEDIATOR_NUM_PROPERTIES
};
static GParamSpec* plugins_manifest_widget_mediator_properties[PLUGINS_MANIFEST_WIDGET_MEDIATOR_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define PLUGINS_TYPE_COLLECTION_MODEL (plugins_collection_model_get_type ())
#define PLUGINS_COLLECTION_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel))
#define PLUGINS_COLLECTION_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModelClass))
#define PLUGINS_IS_COLLECTION_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_COLLECTION_MODEL))
#define PLUGINS_IS_COLLECTION_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_COLLECTION_MODEL))
#define PLUGINS_COLLECTION_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModelClass))

typedef struct _PluginsCollectionModel PluginsCollectionModel;
typedef struct _PluginsCollectionModelClass PluginsCollectionModelClass;
typedef struct _PluginsCollectionModelPrivate PluginsCollectionModelPrivate;
enum  {
	PLUGINS_COLLECTION_MODEL_0_PROPERTY,
	PLUGINS_COLLECTION_MODEL_G_TYPE,
	PLUGINS_COLLECTION_MODEL_G_DUP_FUNC,
	PLUGINS_COLLECTION_MODEL_G_DESTROY_FUNC,
	PLUGINS_COLLECTION_MODEL_NUM_PROPERTIES
};
static GParamSpec* plugins_collection_model_properties[PLUGINS_COLLECTION_MODEL_NUM_PROPERTIES];

#define PLUGINS_TYPE_SELECTION (plugins_selection_get_type ())
#define PLUGINS_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_SELECTION, PluginsSelection))
#define PLUGINS_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_SELECTION, PluginsSelectionClass))
#define PLUGINS_IS_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_SELECTION))
#define PLUGINS_IS_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_SELECTION))
#define PLUGINS_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_SELECTION, PluginsSelectionClass))

typedef struct _PluginsSelection PluginsSelection;
typedef struct _PluginsSelectionClass PluginsSelectionClass;
typedef struct _PluginsSelectionPrivate PluginsSelectionPrivate;
enum  {
	PLUGINS_SELECTION_0_PROPERTY,
	PLUGINS_SELECTION_NUM_PROPERTIES
};
static GParamSpec* plugins_selection_properties[PLUGINS_SELECTION_NUM_PROPERTIES];
enum  {
	PLUGINS_SELECTION_CHANGED_SIGNAL,
	PLUGINS_SELECTION_NUM_SIGNALS
};
static guint plugins_selection_signals[PLUGINS_SELECTION_NUM_SIGNALS] = {0};

#define PLUGINS_TYPE_PLUGGABLE_ROW (plugins_pluggable_row_get_type ())
#define PLUGINS_PLUGGABLE_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRow))
#define PLUGINS_PLUGGABLE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRowClass))
#define PLUGINS_IS_PLUGGABLE_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_PLUGGABLE_ROW))
#define PLUGINS_IS_PLUGGABLE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_PLUGGABLE_ROW))
#define PLUGINS_PLUGGABLE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRowClass))

typedef struct _PluginsPluggableRow PluginsPluggableRow;
typedef struct _PluginsPluggableRowClass PluginsPluggableRowClass;
typedef struct _PluginsPluggableRowPrivate PluginsPluggableRowPrivate;
enum  {
	PLUGINS_PLUGGABLE_ROW_0_PROPERTY,
	PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY,
	PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY,
	PLUGINS_PLUGGABLE_ROW_NUM_PROPERTIES
};
static GParamSpec* plugins_pluggable_row_properties[PLUGINS_PLUGGABLE_ROW_NUM_PROPERTIES];
typedef struct _Block7Data Block7Data;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _PluginsManifestListViewPrivate PluginsManifestListViewPrivate;
enum  {
	PLUGINS_MANIFEST_LIST_VIEW_0_PROPERTY,
	PLUGINS_MANIFEST_LIST_VIEW_NUM_PROPERTIES
};
static GParamSpec* plugins_manifest_list_view_properties[PLUGINS_MANIFEST_LIST_VIEW_NUM_PROPERTIES];

#define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ())
#define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint))
#define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
#define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT))
#define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT))
#define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))

typedef struct _PluginsExtensionPoint PluginsExtensionPoint;
typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass;
#define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL)))
enum  {
	PLUGINS_MANIFEST_LIST_VIEW_ROW_SELECTED_SIGNAL,
	PLUGINS_MANIFEST_LIST_VIEW_NUM_SIGNALS
};
static guint plugins_manifest_list_view_signals[PLUGINS_MANIFEST_LIST_VIEW_NUM_SIGNALS] = {0};

struct _PluginsManifestWidgetMediator {
	GtkBox parent_instance;
	PluginsManifestWidgetMediatorPrivate * priv;
};

struct _PluginsManifestWidgetMediatorClass {
	GtkBoxClass parent_class;
};

struct _PluginsManifestWidgetMediatorPrivate {
	GtkScrolledWindow* list_bin;
	PluginsManifestListView* list;
};

struct _PluginsCollectionModel {
	GObject parent_instance;
	PluginsCollectionModelPrivate * priv;
};

struct _PluginsCollectionModelClass {
	GObjectClass parent_class;
};

struct _PluginsCollectionModelPrivate {
	GType g_type;
	GBoxedCopyFunc g_dup_func;
	GDestroyNotify g_destroy_func;
	GeeCollection* target;
	GeeList* as_list;
};

struct _PluginsSelection {
	GObject parent_instance;
	PluginsSelectionPrivate * priv;
};

struct _PluginsSelectionClass {
	GObjectClass parent_class;
};

struct _PluginsPluggableRow {
	GtkBox parent_instance;
	PluginsPluggableRowPrivate * priv;
};

struct _PluginsPluggableRowClass {
	GtkBoxClass parent_class;
};

struct _PluginsPluggableRowPrivate {
	SpitPluggable* _pluggable;
	gboolean _enabled;
};

struct _Block7Data {
	int _ref_count_;
	PluginsPluggableRow* self;
	GtkSwitch* plugin_enabled;
};

struct _PluginsManifestListView {
	GtkBox parent_instance;
	PluginsManifestListViewPrivate * priv;
};

struct _PluginsManifestListViewClass {
	GtkBoxClass parent_class;
};

static gint PluginsManifestWidgetMediator_private_offset;
static gpointer plugins_manifest_widget_mediator_parent_class = NULL;
static gint PluginsCollectionModel_private_offset;
static gpointer plugins_collection_model_parent_class = NULL;
static GListModelInterface * plugins_collection_model_g_list_model_parent_iface = NULL;
static gpointer plugins_selection_parent_class = NULL;
static gint PluginsPluggableRow_private_offset;
static gpointer plugins_pluggable_row_parent_class = NULL;
static gpointer plugins_manifest_list_view_parent_class = NULL;

VALA_EXTERN GType plugins_manifest_widget_mediator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsManifestWidgetMediator, g_object_unref)
VALA_EXTERN GType plugins_manifest_list_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsManifestListView, g_object_unref)
VALA_EXTERN PluginsManifestListView* plugins_manifest_list_view_new (void);
VALA_EXTERN PluginsManifestListView* plugins_manifest_list_view_construct (GType object_type);
VALA_EXTERN PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void);
VALA_EXTERN PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type);
static void plugins_manifest_widget_mediator_finalize (GObject * obj);
static GType plugins_manifest_widget_mediator_get_type_once (void);
VALA_EXTERN GType plugins_collection_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsCollectionModel, g_object_unref)
VALA_EXTERN PluginsCollectionModel* plugins_collection_model_new (GType g_type,
                                                      GBoxedCopyFunc g_dup_func,
                                                      GDestroyNotify g_destroy_func,
                                                      GeeCollection* target);
VALA_EXTERN PluginsCollectionModel* plugins_collection_model_construct (GType object_type,
                                                            GType g_type,
                                                            GBoxedCopyFunc g_dup_func,
                                                            GDestroyNotify g_destroy_func,
                                                            GeeCollection* target);
static GObject* plugins_collection_model_real_get_item (GListModel* base,
                                                 guint position);
static GType plugins_collection_model_real_get_item_type (GListModel* base);
static guint plugins_collection_model_real_get_n_items (GListModel* base);
static void plugins_collection_model_finalize (GObject * obj);
static GType plugins_collection_model_get_type_once (void);
static void _vala_plugins_collection_model_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_plugins_collection_model_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
VALA_EXTERN GType plugins_selection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsSelection, g_object_unref)
VALA_EXTERN PluginsSelection* plugins_selection_new (void);
VALA_EXTERN PluginsSelection* plugins_selection_construct (GType object_type);
static GType plugins_selection_get_type_once (void);
VALA_EXTERN GType plugins_pluggable_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsPluggableRow, g_object_unref)
VALA_EXTERN PluginsPluggableRow* plugins_pluggable_row_new (SpitPluggable* pluggable_,
                                                gboolean enable_);
VALA_EXTERN PluginsPluggableRow* plugins_pluggable_row_construct (GType object_type,
                                                      SpitPluggable* pluggable_,
                                                      gboolean enable_);
static void plugins_pluggable_row_real_constructed (GObject* base);
static Block7Data* block7_data_ref (Block7Data* _data7_);
static void block7_data_unref (void * _userdata_);
VALA_EXTERN SpitPluggable* plugins_pluggable_row_get_pluggable (PluginsPluggableRow* self);
VALA_EXTERN gboolean plugins_pluggable_row_get_enabled (PluginsPluggableRow* self);
static void __lambda31_ (Block7Data* _data7_);
VALA_EXTERN void plugins_set_pluggable_enabled (const gchar* id,
                                    gboolean enabled);
static void ___lambda31__g_object_notify (GObject* _sender,
                                   GParamSpec* pspec,
                                   gpointer self);
static void plugins_pluggable_row_set_pluggable (PluginsPluggableRow* self,
                                          SpitPluggable* value);
static void plugins_pluggable_row_set_enabled (PluginsPluggableRow* self,
                                        gboolean value);
static void plugins_pluggable_row_finalize (GObject * obj);
static GType plugins_pluggable_row_get_type_once (void);
static void _vala_plugins_pluggable_row_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_plugins_pluggable_row_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);
static void plugins_manifest_list_view_real_constructed (GObject* base);
VALA_EXTERN gpointer plugins_extension_point_ref (gpointer instance);
VALA_EXTERN void plugins_extension_point_unref (gpointer instance);
VALA_EXTERN GParamSpec* plugins_param_spec_extension_point (const gchar* name,
                                                const gchar* nick,
                                                const gchar* blurb,
                                                GType object_type,
                                                GParamFlags flags);
VALA_EXTERN void plugins_value_set_extension_point (GValue* value,
                                        gpointer v_object);
VALA_EXTERN void plugins_value_take_extension_point (GValue* value,
                                         gpointer v_object);
VALA_EXTERN gpointer plugins_value_get_extension_point (const GValue* value);
VALA_EXTERN GType plugins_extension_point_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PluginsExtensionPoint, plugins_extension_point_unref)
VALA_EXTERN GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func,
                                             gpointer compare_func_target,
                                             GDestroyNotify compare_func_target_destroy_notify);
VALA_EXTERN gint plugins_compare_extension_point_names (PluginsExtensionPoint* a,
                                            PluginsExtensionPoint* b);
static gint _plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a,
                                                                gconstpointer b,
                                                                gpointer self);
VALA_EXTERN const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self);
VALA_EXTERN GeeCollection* plugins_get_pluggables_for_type (GType type,
                                                GCompareDataFunc compare_func,
                                                gpointer compare_func_target,
                                                GDestroyNotify compare_func_target_destroy_notify,
                                                gboolean include_disabled);
VALA_EXTERN GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self);
VALA_EXTERN gint plugins_compare_pluggable_names (SpitPluggable* a,
                                      SpitPluggable* b);
static gint _plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a,
                                                          gconstpointer b,
                                                          gpointer self);
VALA_EXTERN gboolean plugins_get_pluggable_enabled (const gchar* id,
                                        gboolean* enabled);
static GType plugins_manifest_list_view_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
plugins_manifest_widget_mediator_get_instance_private (PluginsManifestWidgetMediator* self)
{
	return G_STRUCT_MEMBER_P (self, PluginsManifestWidgetMediator_private_offset);
}

PluginsManifestWidgetMediator*
plugins_manifest_widget_mediator_construct (GType object_type)
{
	PluginsManifestWidgetMediator * self = NULL;
	GtkScrolledWindow* _tmp0_;
	PluginsManifestListView* _tmp1_;
	self = (PluginsManifestWidgetMediator*) g_object_new (object_type, NULL);
	_tmp0_ = self->priv->list_bin;
	_tmp1_ = self->priv->list;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
	return self;
}

PluginsManifestWidgetMediator*
plugins_manifest_widget_mediator_new (void)
{
	return plugins_manifest_widget_mediator_construct (PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR);
}

static void
plugins_manifest_widget_mediator_class_init (PluginsManifestWidgetMediatorClass * klass,
                                             gpointer klass_data)
{
	plugins_manifest_widget_mediator_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &PluginsManifestWidgetMediator_private_offset);
	G_OBJECT_CLASS (klass)->finalize = plugins_manifest_widget_mediator_finalize;
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/Shotwell/ui/manifest_widget.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "list_bin", FALSE, PluginsManifestWidgetMediator_private_offset + G_STRUCT_OFFSET (PluginsManifestWidgetMediatorPrivate, list_bin));
}

static void
plugins_manifest_widget_mediator_instance_init (PluginsManifestWidgetMediator * self,
                                                gpointer klass)
{
	PluginsManifestListView* _tmp0_;
	self->priv = plugins_manifest_widget_mediator_get_instance_private (self);
	_tmp0_ = plugins_manifest_list_view_new ();
	g_object_ref_sink (_tmp0_);
	self->priv->list = _tmp0_;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
plugins_manifest_widget_mediator_finalize (GObject * obj)
{
	PluginsManifestWidgetMediator * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator);
	_g_object_unref0 (self->priv->list);
	G_OBJECT_CLASS (plugins_manifest_widget_mediator_parent_class)->finalize (obj);
}

static GType
plugins_manifest_widget_mediator_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestWidgetMediatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_widget_mediator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestWidgetMediator), 0, (GInstanceInitFunc) plugins_manifest_widget_mediator_instance_init, NULL };
	GType plugins_manifest_widget_mediator_type_id;
	plugins_manifest_widget_mediator_type_id = g_type_register_static (gtk_box_get_type (), "PluginsManifestWidgetMediator", &g_define_type_info, 0);
	PluginsManifestWidgetMediator_private_offset = g_type_add_instance_private (plugins_manifest_widget_mediator_type_id, sizeof (PluginsManifestWidgetMediatorPrivate));
	return plugins_manifest_widget_mediator_type_id;
}

GType
plugins_manifest_widget_mediator_get_type (void)
{
	static volatile gsize plugins_manifest_widget_mediator_type_id__once = 0;
	if (g_once_init_enter (&plugins_manifest_widget_mediator_type_id__once)) {
		GType plugins_manifest_widget_mediator_type_id;
		plugins_manifest_widget_mediator_type_id = plugins_manifest_widget_mediator_get_type_once ();
		g_once_init_leave (&plugins_manifest_widget_mediator_type_id__once, plugins_manifest_widget_mediator_type_id);
	}
	return plugins_manifest_widget_mediator_type_id__once;
}

static inline gpointer
plugins_collection_model_get_instance_private (PluginsCollectionModel* self)
{
	return G_STRUCT_MEMBER_P (self, PluginsCollectionModel_private_offset);
}

PluginsCollectionModel*
plugins_collection_model_construct (GType object_type,
                                    GType g_type,
                                    GBoxedCopyFunc g_dup_func,
                                    GDestroyNotify g_destroy_func,
                                    GeeCollection* target)
{
	PluginsCollectionModel * self = NULL;
	GeeCollection* _tmp0_;
	GeeCollection* _tmp1_;
	GeeCollection* _tmp2_;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (target, GEE_TYPE_COLLECTION), NULL);
	self = (PluginsCollectionModel*) g_object_new (object_type, "g-type", g_type, "g-dup-func", g_dup_func, "g-destroy-func", g_destroy_func, NULL);
	self->priv->g_type = g_type;
	self->priv->g_dup_func = g_dup_func;
	self->priv->g_destroy_func = g_destroy_func;
	_tmp0_ = gee_collection_get_read_only_view (target);
	_tmp1_ = _tmp0_;
	_g_object_unref0 (self->priv->target);
	self->priv->target = _tmp1_;
	_tmp2_ = self->priv->target;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, GEE_TYPE_LIST)) {
		GeeCollection* _tmp3_;
		_tmp3_ = self->priv->target;
		self->priv->as_list = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
	}
	return self;
}

PluginsCollectionModel*
plugins_collection_model_new (GType g_type,
                              GBoxedCopyFunc g_dup_func,
                              GDestroyNotify g_destroy_func,
                              GeeCollection* target)
{
	return plugins_collection_model_construct (PLUGINS_TYPE_COLLECTION_MODEL, g_type, g_dup_func, g_destroy_func, target);
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static GObject*
plugins_collection_model_real_get_item (GListModel* base,
                                        guint position)
{
	PluginsCollectionModel * self;
	GeeCollection* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	GeeList* _tmp3_;
	guint count = 0U;
	GObject* result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	_tmp0_ = self->priv->target;
	_tmp1_ = gee_collection_get_size (_tmp0_);
	_tmp2_ = _tmp1_;
	if (position >= ((guint) _tmp2_)) {
		result = NULL;
		return result;
	}
	_tmp3_ = self->priv->as_list;
	if (_tmp3_ != NULL) {
		GeeList* _tmp4_;
		gpointer _tmp5_;
		_tmp4_ = self->priv->as_list;
		_tmp5_ = gee_list_get (_tmp4_, (gint) position);
		result = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, G_TYPE_OBJECT, GObject);
		return result;
	}
	count = 0U;
	{
		GeeIterator* _g_it = NULL;
		GeeCollection* _tmp6_;
		GeeIterator* _tmp7_;
		_tmp6_ = self->priv->target;
		_tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
		_g_it = _tmp7_;
		while (TRUE) {
			GeeIterator* _tmp8_;
			gpointer g = NULL;
			GeeIterator* _tmp9_;
			gpointer _tmp10_;
			guint _tmp13_;
			_tmp8_ = _g_it;
			if (!gee_iterator_next (_tmp8_)) {
				break;
			}
			_tmp9_ = _g_it;
			_tmp10_ = gee_iterator_get (_tmp9_);
			g = _tmp10_;
			if (count == position) {
				gconstpointer _tmp11_;
				GObject* _tmp12_;
				_tmp11_ = g;
				_tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, G_TYPE_OBJECT, GObject));
				result = _tmp12_;
				((g == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (g = (self->priv->g_destroy_func (g), NULL));
				_g_object_unref0 (_g_it);
				return result;
			}
			_tmp13_ = count;
			count = _tmp13_ + 1;
			((g == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (g = (self->priv->g_destroy_func (g), NULL));
		}
		_g_object_unref0 (_g_it);
	}
	result = NULL;
	return result;
}

static GType
plugins_collection_model_real_get_item_type (GListModel* base)
{
	PluginsCollectionModel * self;
	GType result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	result = self->priv->g_type;
	return result;
}

static guint
plugins_collection_model_real_get_n_items (GListModel* base)
{
	PluginsCollectionModel * self;
	GeeCollection* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	guint result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	_tmp0_ = self->priv->target;
	_tmp1_ = gee_collection_get_size (_tmp0_);
	_tmp2_ = _tmp1_;
	result = (guint) _tmp2_;
	return result;
}

static void
plugins_collection_model_class_init (PluginsCollectionModelClass * klass,
                                     gpointer klass_data)
{
	plugins_collection_model_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &PluginsCollectionModel_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_plugins_collection_model_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_plugins_collection_model_set_property;
	G_OBJECT_CLASS (klass)->finalize = plugins_collection_model_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PLUGINS_COLLECTION_MODEL_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PLUGINS_COLLECTION_MODEL_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PLUGINS_COLLECTION_MODEL_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
}

static void
plugins_collection_model_g_list_model_interface_init (GListModelInterface * iface,
                                                      gpointer iface_data)
{
	plugins_collection_model_g_list_model_parent_iface = g_type_interface_peek_parent (iface);
	iface->get_item = (GObject* (*) (GListModel*, guint)) plugins_collection_model_real_get_item;
	iface->get_item_type = (GType (*) (GListModel*)) plugins_collection_model_real_get_item_type;
	iface->get_n_items = (guint (*) (GListModel*)) plugins_collection_model_real_get_n_items;
}

static void
plugins_collection_model_instance_init (PluginsCollectionModel * self,
                                        gpointer klass)
{
	self->priv = plugins_collection_model_get_instance_private (self);
	self->priv->as_list = NULL;
}

static void
plugins_collection_model_finalize (GObject * obj)
{
	PluginsCollectionModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	_g_object_unref0 (self->priv->target);
	G_OBJECT_CLASS (plugins_collection_model_parent_class)->finalize (obj);
}

static GType
plugins_collection_model_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PluginsCollectionModelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_collection_model_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsCollectionModel), 0, (GInstanceInitFunc) plugins_collection_model_instance_init, NULL };
	static const GInterfaceInfo g_list_model_info = { (GInterfaceInitFunc) plugins_collection_model_g_list_model_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType plugins_collection_model_type_id;
	plugins_collection_model_type_id = g_type_register_static (G_TYPE_OBJECT, "PluginsCollectionModel", &g_define_type_info, 0);
	g_type_add_interface_static (plugins_collection_model_type_id, g_list_model_get_type (), &g_list_model_info);
	PluginsCollectionModel_private_offset = g_type_add_instance_private (plugins_collection_model_type_id, sizeof (PluginsCollectionModelPrivate));
	return plugins_collection_model_type_id;
}

GType
plugins_collection_model_get_type (void)
{
	static volatile gsize plugins_collection_model_type_id__once = 0;
	if (g_once_init_enter (&plugins_collection_model_type_id__once)) {
		GType plugins_collection_model_type_id;
		plugins_collection_model_type_id = plugins_collection_model_get_type_once ();
		g_once_init_leave (&plugins_collection_model_type_id__once, plugins_collection_model_type_id);
	}
	return plugins_collection_model_type_id__once;
}

static void
_vala_plugins_collection_model_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	PluginsCollectionModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	switch (property_id) {
		case PLUGINS_COLLECTION_MODEL_G_TYPE:
		g_value_set_gtype (value, self->priv->g_type);
		break;
		case PLUGINS_COLLECTION_MODEL_G_DUP_FUNC:
		g_value_set_pointer (value, self->priv->g_dup_func);
		break;
		case PLUGINS_COLLECTION_MODEL_G_DESTROY_FUNC:
		g_value_set_pointer (value, self->priv->g_destroy_func);
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_plugins_collection_model_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	PluginsCollectionModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PLUGINS_TYPE_COLLECTION_MODEL, PluginsCollectionModel);
	switch (property_id) {
		case PLUGINS_COLLECTION_MODEL_G_TYPE:
		self->priv->g_type = g_value_get_gtype (value);
		break;
		case PLUGINS_COLLECTION_MODEL_G_DUP_FUNC:
		self->priv->g_dup_func = g_value_get_pointer (value);
		break;
		case PLUGINS_COLLECTION_MODEL_G_DESTROY_FUNC:
		self->priv->g_destroy_func = g_value_get_pointer (value);
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

PluginsSelection*
plugins_selection_construct (GType object_type)
{
	PluginsSelection * self = NULL;
	self = (PluginsSelection*) g_object_new (object_type, NULL);
	return self;
}

PluginsSelection*
plugins_selection_new (void)
{
	return plugins_selection_construct (PLUGINS_TYPE_SELECTION);
}

static void
plugins_selection_class_init (PluginsSelectionClass * klass,
                              gpointer klass_data)
{
	plugins_selection_parent_class = g_type_class_peek_parent (klass);
	plugins_selection_signals[PLUGINS_SELECTION_CHANGED_SIGNAL] = g_signal_new ("changed", PLUGINS_TYPE_SELECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
plugins_selection_instance_init (PluginsSelection * self,
                                 gpointer klass)
{
}

static GType
plugins_selection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PluginsSelectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_selection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsSelection), 0, (GInstanceInitFunc) plugins_selection_instance_init, NULL };
	GType plugins_selection_type_id;
	plugins_selection_type_id = g_type_register_static (G_TYPE_OBJECT, "PluginsSelection", &g_define_type_info, 0);
	return plugins_selection_type_id;
}

GType
plugins_selection_get_type (void)
{
	static volatile gsize plugins_selection_type_id__once = 0;
	if (g_once_init_enter (&plugins_selection_type_id__once)) {
		GType plugins_selection_type_id;
		plugins_selection_type_id = plugins_selection_get_type_once ();
		g_once_init_leave (&plugins_selection_type_id__once, plugins_selection_type_id);
	}
	return plugins_selection_type_id__once;
}

static inline gpointer
plugins_pluggable_row_get_instance_private (PluginsPluggableRow* self)
{
	return G_STRUCT_MEMBER_P (self, PluginsPluggableRow_private_offset);
}

PluginsPluggableRow*
plugins_pluggable_row_construct (GType object_type,
                                 SpitPluggable* pluggable_,
                                 gboolean enable_)
{
	PluginsPluggableRow * self = NULL;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (pluggable_, SPIT_TYPE_PLUGGABLE), NULL);
	self = (PluginsPluggableRow*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, "pluggable", pluggable_, "enabled", enable_, "margin-top", 6, "margin-bottom", 6, "margin-start", 6, "margin-end", 6, NULL);
	return self;
}

PluginsPluggableRow*
plugins_pluggable_row_new (SpitPluggable* pluggable_,
                           gboolean enable_)
{
	return plugins_pluggable_row_construct (PLUGINS_TYPE_PLUGGABLE_ROW, pluggable_, enable_);
}

static Block7Data*
block7_data_ref (Block7Data* _data7_)
{
	g_atomic_int_inc (&_data7_->_ref_count_);
	return _data7_;
}

static void
block7_data_unref (void * _userdata_)
{
	Block7Data* _data7_;
	_data7_ = (Block7Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
		PluginsPluggableRow* self;
		self = _data7_->self;
		_g_object_unref0 (_data7_->plugin_enabled);
		_g_object_unref0 (self);
		g_slice_free (Block7Data, _data7_);
	}
}

static void
__lambda31_ (Block7Data* _data7_)
{
	PluginsPluggableRow* self;
	gchar* id = NULL;
	SpitPluggable* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	GtkSwitch* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	self = _data7_->self;
	_tmp0_ = self->priv->_pluggable;
	_tmp1_ = spit_pluggable_get_id (_tmp0_);
	_tmp2_ = g_strdup (_tmp1_);
	id = _tmp2_;
	_tmp3_ = _data7_->plugin_enabled;
	_tmp4_ = gtk_switch_get_active (_tmp3_);
	_tmp5_ = _tmp4_;
	plugins_set_pluggable_enabled (id, _tmp5_);
	_g_free0 (id);
}

static void
___lambda31__g_object_notify (GObject* _sender,
                              GParamSpec* pspec,
                              gpointer self)
{
	__lambda31_ (self);
}

static void
plugins_pluggable_row_real_constructed (GObject* base)
{
	PluginsPluggableRow * self;
	Block7Data* _data7_;
	GtkBox* content = NULL;
	GtkBox* _tmp0_;
	GtkBox* _tmp1_;
	GtkRevealer* revealer = NULL;
	GtkRevealer* _tmp2_;
	GtkRevealer* _tmp3_;
	GtkRevealer* _tmp4_;
	SpitPluggableInfo* info = NULL;
	SpitPluggable* _tmp5_;
	SpitPluggableInfo* _tmp6_;
	GtkImage* image = NULL;
	SpitPluggableInfo* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	GtkImage* _tmp10_;
	GtkBox* _tmp11_;
	GtkImage* _tmp12_;
	GtkImage* _tmp13_;
	GtkLabel* label = NULL;
	SpitPluggable* _tmp14_;
	const gchar* _tmp15_;
	GtkLabel* _tmp16_;
	GtkLabel* _tmp17_;
	GtkBox* _tmp18_;
	GtkLabel* _tmp19_;
	GtkToggleButton* button = NULL;
	GtkToggleButton* _tmp20_;
	GtkToggleButton* _tmp21_;
	GtkStyleContext* _tmp22_;
	GtkBox* _tmp23_;
	GtkToggleButton* _tmp24_;
	GtkToggleButton* _tmp25_;
	GtkRevealer* _tmp26_;
	GtkImage* _tmp27_;
	GtkToggleButton* _tmp28_;
	GtkImage* _tmp29_;
	GtkSwitch* _tmp30_;
	GtkSwitch* _tmp31_;
	GtkSwitch* _tmp32_;
	GtkSwitch* _tmp33_;
	GtkSwitch* _tmp34_;
	gboolean _tmp35_;
	GtkBox* _tmp36_;
	GtkSwitch* _tmp37_;
	GtkSwitch* _tmp38_;
	SpitPluggable* _tmp39_;
	GtkGrid* grid = NULL;
	GtkGrid* _tmp40_;
	GtkStyleContext* _tmp41_;
	GtkRevealer* _tmp42_;
	SpitPluggableInfo* _tmp43_;
	const gchar* _tmp44_;
	const gchar* _tmp45_;
	GtkLabel* _tmp46_;
	GtkLabel* _tmp47_;
	GtkLabel* _tmp48_;
	GtkLabel* _tmp49_;
	GtkLabel* _tmp50_;
	GtkLabel* _tmp51_;
	GtkStyleContext* _tmp52_;
	GtkLabel* _tmp53_;
	GtkLabel* _tmp54_;
	GtkLabel* _tmp55_;
	SpitPluggableInfo* _tmp56_;
	const gchar* _tmp57_;
	const gchar* _tmp58_;
	GtkLabel* _tmp59_;
	GtkLabel* _tmp60_;
	GtkLabel* _tmp61_;
	GtkLabel* _tmp62_;
	GtkLabel* _tmp63_;
	GtkLabel* _tmp64_;
	GtkStyleContext* _tmp65_;
	GtkLabel* _tmp66_;
	GtkLabel* _tmp67_;
	GtkLabel* _tmp68_;
	SpitPluggableInfo* _tmp69_;
	const gchar* _tmp70_;
	const gchar* _tmp71_;
	GtkLabel* _tmp72_;
	GtkLabel* _tmp73_;
	GtkLabel* _tmp74_;
	GtkLabel* _tmp75_;
	GtkLabel* _tmp76_;
	GtkLabel* _tmp77_;
	GtkStyleContext* _tmp78_;
	GtkLabel* _tmp79_;
	GtkLabel* _tmp80_;
	GtkLabel* _tmp81_;
	GtkLinkButton* link = NULL;
	SpitPluggableInfo* _tmp82_;
	const gchar* _tmp83_;
	const gchar* _tmp84_;
	SpitPluggableInfo* _tmp85_;
	const gchar* _tmp86_;
	const gchar* _tmp87_;
	GtkLinkButton* _tmp88_;
	GtkLinkButton* _tmp89_;
	GtkLinkButton* _tmp90_;
	GtkStyleContext* _tmp91_;
	GtkLinkButton* _tmp92_;
	GtkStyleContext* _tmp93_;
	GtkLinkButton* _tmp94_;
	GtkLabel* _tmp95_;
	GtkLabel* _tmp96_;
	GtkStyleContext* _tmp97_;
	GtkLabel* _tmp98_;
	GtkLabel* _tmp99_;
	GtkLabel* _tmp100_;
	SpitPluggableInfo* _tmp101_;
	const gchar* _tmp102_;
	const gchar* _tmp103_;
	SpitPluggableInfo* _tmp104_;
	const gchar* _tmp105_;
	const gchar* _tmp106_;
	GtkLinkButton* _tmp107_;
	GtkLinkButton* _tmp108_;
	GtkLinkButton* _tmp109_;
	GtkStyleContext* _tmp110_;
	GtkLinkButton* _tmp111_;
	GtkStyleContext* _tmp112_;
	GtkLinkButton* _tmp113_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRow);
	_data7_ = g_slice_new0 (Block7Data);
	_data7_->_ref_count_ = 1;
	_data7_->self = g_object_ref (self);
	G_OBJECT_CLASS (plugins_pluggable_row_parent_class)->constructed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_box_get_type (), GtkBox), G_TYPE_OBJECT, GObject));
	_tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
	g_object_ref_sink (_tmp0_);
	content = _tmp0_;
	_tmp1_ = content;
	gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
	_tmp2_ = (GtkRevealer*) gtk_revealer_new ();
	g_object_ref_sink (_tmp2_);
	revealer = _tmp2_;
	_tmp3_ = revealer;
	gtk_widget_set_margin_top (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), 6);
	_tmp4_ = revealer;
	gtk_box_pack_end (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
	_tmp5_ = self->priv->_pluggable;
	_tmp6_ = spit_pluggable_get_info (_tmp5_);
	info = _tmp6_;
	_tmp7_ = info;
	_tmp8_ = spit_pluggable_info_get_icon_name (_tmp7_);
	_tmp9_ = _tmp8_;
	_tmp10_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp9_, (GtkIconSize) GTK_ICON_SIZE_BUTTON);
	g_object_ref_sink (_tmp10_);
	image = _tmp10_;
	_tmp11_ = content;
	_tmp12_ = image;
	gtk_box_pack_start (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
	_tmp13_ = image;
	gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), FALSE);
	_tmp14_ = self->priv->_pluggable;
	_tmp15_ = spit_pluggable_get_pluggable_name (_tmp14_);
	_tmp16_ = (GtkLabel*) gtk_label_new (_tmp15_);
	g_object_ref_sink (_tmp16_);
	label = _tmp16_;
	_tmp17_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp18_ = content;
	_tmp19_ = label;
	gtk_box_pack_start (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 6);
	_tmp20_ = (GtkToggleButton*) gtk_toggle_button_new ();
	g_object_ref_sink (_tmp20_);
	button = _tmp20_;
	_tmp21_ = button;
	_tmp22_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp22_, "flat");
	_tmp23_ = content;
	_tmp24_ = button;
	gtk_box_pack_end (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
	_tmp25_ = button;
	_tmp26_ = revealer;
	g_object_bind_property_with_closures (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, G_TYPE_OBJECT, GObject), "active", G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, G_TYPE_OBJECT, GObject), "reveal-child", G_BINDING_DEFAULT, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp27_ = (GtkImage*) gtk_image_new_from_icon_name ("go-down-symbolic", (GtkIconSize) GTK_ICON_SIZE_SMALL_TOOLBAR);
	g_object_ref_sink (_tmp27_);
	_g_object_unref0 (image);
	image = _tmp27_;
	_tmp28_ = button;
	_tmp29_ = image;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget));
	_tmp30_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp30_);
	_data7_->plugin_enabled = _tmp30_;
	_tmp31_ = _data7_->plugin_enabled;
	gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), FALSE);
	_tmp32_ = _data7_->plugin_enabled;
	gtk_widget_set_vexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget), FALSE);
	_tmp33_ = _data7_->plugin_enabled;
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
	_tmp34_ = _data7_->plugin_enabled;
	_tmp35_ = self->priv->_enabled;
	gtk_switch_set_active (_tmp34_, _tmp35_);
	_tmp36_ = content;
	_tmp37_ = _data7_->plugin_enabled;
	gtk_box_pack_end (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
	_tmp38_ = _data7_->plugin_enabled;
	g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, G_TYPE_OBJECT, GObject), "notify::active", (GCallback) ___lambda31__g_object_notify, block7_data_ref (_data7_), (GClosureNotify) block7_data_unref, 0);
	_tmp39_ = self->priv->_pluggable;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, SPIT_PUBLISHING_TYPE_SERVICE)) {
	}
	_tmp40_ = (GtkGrid*) gtk_grid_new ();
	g_object_ref_sink (_tmp40_);
	grid = _tmp40_;
	_tmp41_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (grid, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp41_, "content");
	gtk_grid_set_row_spacing (grid, (guint) 12);
	gtk_grid_set_column_spacing (grid, (guint) 6);
	_tmp42_ = revealer;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (grid, gtk_widget_get_type (), GtkWidget));
	_tmp43_ = info;
	_tmp44_ = spit_pluggable_info_get_copyright (_tmp43_);
	_tmp45_ = _tmp44_;
	_tmp46_ = (GtkLabel*) gtk_label_new (_tmp45_);
	g_object_ref_sink (_tmp46_);
	_g_object_unref0 (label);
	label = _tmp46_;
	_tmp47_ = label;
	gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget), TRUE);
	_tmp48_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp49_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), 0, 0, 2, 1);
	_tmp50_ = (GtkLabel*) gtk_label_new (_ ("Authors"));
	g_object_ref_sink (_tmp50_);
	_g_object_unref0 (label);
	label = _tmp50_;
	_tmp51_ = label;
	_tmp52_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp52_, "dim-label");
	_tmp53_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
	_tmp54_ = label;
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, gtk_widget_get_type (), GtkWidget), 12);
	_tmp55_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_widget_get_type (), GtkWidget), 0, 1, 1, 1);
	_tmp56_ = info;
	_tmp57_ = spit_pluggable_info_get_authors (_tmp56_);
	_tmp58_ = _tmp57_;
	_tmp59_ = (GtkLabel*) gtk_label_new (_tmp58_);
	g_object_ref_sink (_tmp59_);
	_g_object_unref0 (label);
	label = _tmp59_;
	_tmp60_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp61_ = label;
	gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_widget_get_type (), GtkWidget), TRUE);
	_tmp62_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, gtk_widget_get_type (), GtkWidget), 1, 1, 1, 1);
	_tmp63_ = (GtkLabel*) gtk_label_new (_ ("Version"));
	g_object_ref_sink (_tmp63_);
	_g_object_unref0 (label);
	label = _tmp63_;
	_tmp64_ = label;
	_tmp65_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp65_, "dim-label");
	_tmp66_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
	_tmp67_ = label;
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, gtk_widget_get_type (), GtkWidget), 12);
	_tmp68_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, gtk_widget_get_type (), GtkWidget), 0, 2, 1, 1);
	_tmp69_ = info;
	_tmp70_ = spit_pluggable_info_get_version (_tmp69_);
	_tmp71_ = _tmp70_;
	_tmp72_ = (GtkLabel*) gtk_label_new (_tmp71_);
	g_object_ref_sink (_tmp72_);
	_g_object_unref0 (label);
	label = _tmp72_;
	_tmp73_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp74_ = label;
	gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_widget_get_type (), GtkWidget), TRUE);
	_tmp75_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_widget_get_type (), GtkWidget), 1, 2, 1, 1);
	_tmp76_ = (GtkLabel*) gtk_label_new (_ ("License"));
	g_object_ref_sink (_tmp76_);
	_g_object_unref0 (label);
	label = _tmp76_;
	_tmp77_ = label;
	_tmp78_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp78_, "dim-label");
	_tmp79_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
	_tmp80_ = label;
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, gtk_widget_get_type (), GtkWidget), 12);
	_tmp81_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, gtk_widget_get_type (), GtkWidget), 0, 3, 1, 1);
	_tmp82_ = info;
	_tmp83_ = spit_pluggable_info_get_license_url (_tmp82_);
	_tmp84_ = _tmp83_;
	_tmp85_ = info;
	_tmp86_ = spit_pluggable_info_get_license_blurp (_tmp85_);
	_tmp87_ = _tmp86_;
	_tmp88_ = (GtkLinkButton*) gtk_link_button_new_with_label (_tmp84_, _tmp87_);
	g_object_ref_sink (_tmp88_);
	link = _tmp88_;
	_tmp89_ = link;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp89_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp90_ = link;
	_tmp91_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_remove_class (_tmp91_, "text-button");
	_tmp92_ = link;
	_tmp93_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp93_, "shotwell-plain-link");
	_tmp94_ = link;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp94_, gtk_widget_get_type (), GtkWidget), 1, 3, 1, 1);
	_tmp95_ = (GtkLabel*) gtk_label_new (_ ("Website"));
	g_object_ref_sink (_tmp95_);
	_g_object_unref0 (label);
	label = _tmp95_;
	_tmp96_ = label;
	_tmp97_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp96_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp97_, "dim-label");
	_tmp98_ = label;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp98_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
	_tmp99_ = label;
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, gtk_widget_get_type (), GtkWidget), 12);
	_tmp100_ = label;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, gtk_widget_get_type (), GtkWidget), 0, 4, 1, 1);
	_tmp101_ = info;
	_tmp102_ = spit_pluggable_info_get_website_url (_tmp101_);
	_tmp103_ = _tmp102_;
	_tmp104_ = info;
	_tmp105_ = spit_pluggable_info_get_website_name (_tmp104_);
	_tmp106_ = _tmp105_;
	_tmp107_ = (GtkLinkButton*) gtk_link_button_new_with_label (_tmp103_, _tmp106_);
	g_object_ref_sink (_tmp107_);
	_g_object_unref0 (link);
	link = _tmp107_;
	_tmp108_ = link;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp108_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
	_tmp109_ = link;
	_tmp110_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_remove_class (_tmp110_, "text-button");
	_tmp111_ = link;
	_tmp112_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp112_, "shotwell-plain-link");
	_tmp113_ = link;
	gtk_grid_attach (grid, G_TYPE_CHECK_INSTANCE_CAST (_tmp113_, gtk_widget_get_type (), GtkWidget), 1, 4, 1, 1);
	_g_object_unref0 (link);
	_g_object_unref0 (grid);
	_g_object_unref0 (button);
	_g_object_unref0 (label);
	_g_object_unref0 (image);
	_g_object_unref0 (info);
	_g_object_unref0 (revealer);
	_g_object_unref0 (content);
	block7_data_unref (_data7_);
	_data7_ = NULL;
}

SpitPluggable*
plugins_pluggable_row_get_pluggable (PluginsPluggableRow* self)
{
	SpitPluggable* result;
	SpitPluggable* _tmp0_;
	g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_ROW (self), NULL);
	_tmp0_ = self->priv->_pluggable;
	result = _tmp0_;
	return result;
}

static void
plugins_pluggable_row_set_pluggable (PluginsPluggableRow* self,
                                     SpitPluggable* value)
{
	SpitPluggable* old_value;
	g_return_if_fail (PLUGINS_IS_PLUGGABLE_ROW (self));
	old_value = plugins_pluggable_row_get_pluggable (self);
	if (old_value != value) {
		SpitPluggable* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_pluggable);
		self->priv->_pluggable = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, plugins_pluggable_row_properties[PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY]);
	}
}

gboolean
plugins_pluggable_row_get_enabled (PluginsPluggableRow* self)
{
	gboolean result;
	g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_ROW (self), FALSE);
	result = self->priv->_enabled;
	return result;
}

static void
plugins_pluggable_row_set_enabled (PluginsPluggableRow* self,
                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (PLUGINS_IS_PLUGGABLE_ROW (self));
	old_value = plugins_pluggable_row_get_enabled (self);
	if (old_value != value) {
		self->priv->_enabled = value;
		g_object_notify_by_pspec ((GObject *) self, plugins_pluggable_row_properties[PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY]);
	}
}

static void
plugins_pluggable_row_class_init (PluginsPluggableRowClass * klass,
                                  gpointer klass_data)
{
	plugins_pluggable_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &PluginsPluggableRow_private_offset);
	((GObjectClass *) klass)->constructed = (void (*) (GObject*)) plugins_pluggable_row_real_constructed;
	G_OBJECT_CLASS (klass)->get_property = _vala_plugins_pluggable_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_plugins_pluggable_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = plugins_pluggable_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY, plugins_pluggable_row_properties[PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY] = g_param_spec_object ("pluggable", "pluggable", "pluggable", SPIT_TYPE_PLUGGABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY, plugins_pluggable_row_properties[PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY] = g_param_spec_boolean ("enabled", "enabled", "enabled", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
plugins_pluggable_row_instance_init (PluginsPluggableRow * self,
                                     gpointer klass)
{
	self->priv = plugins_pluggable_row_get_instance_private (self);
}

static void
plugins_pluggable_row_finalize (GObject * obj)
{
	PluginsPluggableRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRow);
	_g_object_unref0 (self->priv->_pluggable);
	G_OBJECT_CLASS (plugins_pluggable_row_parent_class)->finalize (obj);
}

static GType
plugins_pluggable_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PluginsPluggableRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_pluggable_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsPluggableRow), 0, (GInstanceInitFunc) plugins_pluggable_row_instance_init, NULL };
	GType plugins_pluggable_row_type_id;
	plugins_pluggable_row_type_id = g_type_register_static (gtk_box_get_type (), "PluginsPluggableRow", &g_define_type_info, 0);
	PluginsPluggableRow_private_offset = g_type_add_instance_private (plugins_pluggable_row_type_id, sizeof (PluginsPluggableRowPrivate));
	return plugins_pluggable_row_type_id;
}

GType
plugins_pluggable_row_get_type (void)
{
	static volatile gsize plugins_pluggable_row_type_id__once = 0;
	if (g_once_init_enter (&plugins_pluggable_row_type_id__once)) {
		GType plugins_pluggable_row_type_id;
		plugins_pluggable_row_type_id = plugins_pluggable_row_get_type_once ();
		g_once_init_leave (&plugins_pluggable_row_type_id__once, plugins_pluggable_row_type_id);
	}
	return plugins_pluggable_row_type_id__once;
}

static void
_vala_plugins_pluggable_row_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	PluginsPluggableRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRow);
	switch (property_id) {
		case PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY:
		g_value_set_object (value, plugins_pluggable_row_get_pluggable (self));
		break;
		case PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY:
		g_value_set_boolean (value, plugins_pluggable_row_get_enabled (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_plugins_pluggable_row_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	PluginsPluggableRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PLUGINS_TYPE_PLUGGABLE_ROW, PluginsPluggableRow);
	switch (property_id) {
		case PLUGINS_PLUGGABLE_ROW_PLUGGABLE_PROPERTY:
		plugins_pluggable_row_set_pluggable (self, g_value_get_object (value));
		break;
		case PLUGINS_PLUGGABLE_ROW_ENABLED_PROPERTY:
		plugins_pluggable_row_set_enabled (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

PluginsManifestListView*
plugins_manifest_list_view_construct (GType object_type)
{
	PluginsManifestListView * self = NULL;
	self = (PluginsManifestListView*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, "spacing", 6, NULL);
	return self;
}

PluginsManifestListView*
plugins_manifest_list_view_new (void)
{
	return plugins_manifest_list_view_construct (PLUGINS_TYPE_MANIFEST_LIST_VIEW);
}

static gint
_plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a,
                                                           gconstpointer b,
                                                           gpointer self)
{
	gint result;
	result = plugins_compare_extension_point_names ((PluginsExtensionPoint*) a, (PluginsExtensionPoint*) b);
	return result;
}

static gint
_plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a,
                                                     gconstpointer b,
                                                     gpointer self)
{
	gint result;
	result = plugins_compare_pluggable_names ((SpitPluggable*) a, (SpitPluggable*) b);
	return result;
}

static void
plugins_manifest_list_view_real_constructed (GObject* base)
{
	PluginsManifestListView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView);
	G_OBJECT_CLASS (plugins_manifest_list_view_parent_class)->constructed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_box_get_type (), GtkBox), G_TYPE_OBJECT, GObject));
	{
		GeeIterator* _extension_point_it = NULL;
		GeeCollection* _tmp0_;
		GeeCollection* _tmp1_;
		GeeIterator* _tmp2_;
		GeeIterator* _tmp3_;
		_tmp0_ = plugins_get_extension_points (_plugins_compare_extension_point_names_gcompare_data_func, NULL, NULL);
		_tmp1_ = _tmp0_;
		_tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
		_tmp3_ = _tmp2_;
		_g_object_unref0 (_tmp1_);
		_extension_point_it = _tmp3_;
		while (TRUE) {
			GeeIterator* _tmp4_;
			PluginsExtensionPoint* extension_point = NULL;
			GeeIterator* _tmp5_;
			gpointer _tmp6_;
			GtkLabel* label = NULL;
			GtkLabel* _tmp7_;
			GtkLabel* _tmp8_;
			PluginsExtensionPoint* _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			GtkLabel* _tmp14_;
			GtkLabel* _tmp15_;
			GtkLabel* _tmp16_;
			GeeCollection* pluggables = NULL;
			PluginsExtensionPoint* _tmp17_;
			GType _tmp18_;
			GType _tmp19_;
			GeeCollection* _tmp20_;
			GtkListBox* box = NULL;
			GtkListBox* _tmp21_;
			GtkListBox* _tmp22_;
			GtkListBox* _tmp23_;
			GtkListBox* _tmp24_;
			GtkListBox* _tmp25_;
			gint added = 0;
			_tmp4_ = _extension_point_it;
			if (!gee_iterator_next (_tmp4_)) {
				break;
			}
			_tmp5_ = _extension_point_it;
			_tmp6_ = gee_iterator_get (_tmp5_);
			extension_point = (PluginsExtensionPoint*) _tmp6_;
			_tmp7_ = (GtkLabel*) gtk_label_new (NULL);
			g_object_ref_sink (_tmp7_);
			label = _tmp7_;
			_tmp8_ = label;
			_tmp9_ = extension_point;
			_tmp10_ = plugins_extension_point_get_name (_tmp9_);
			_tmp11_ = _tmp10_;
			_tmp12_ = g_strdup_printf ("<span weight=\"bold\">%s</span>", _tmp11_);
			_tmp13_ = _tmp12_;
			gtk_label_set_markup (_tmp8_, _tmp13_);
			_g_free0 (_tmp13_);
			_tmp14_ = label;
			gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
			_tmp15_ = label;
			gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE);
			_tmp16_ = label;
			gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
			_tmp17_ = extension_point;
			_tmp18_ = plugins_extension_point_get_pluggable_type (_tmp17_);
			_tmp19_ = _tmp18_;
			_tmp20_ = plugins_get_pluggables_for_type (_tmp19_, _plugins_compare_pluggable_names_gcompare_data_func, NULL, NULL, TRUE);
			pluggables = _tmp20_;
			_tmp21_ = (GtkListBox*) gtk_list_box_new ();
			g_object_ref_sink (_tmp21_);
			box = _tmp21_;
			_tmp22_ = box;
			gtk_list_box_set_selection_mode (_tmp22_, GTK_SELECTION_NONE);
			_tmp23_ = box;
			gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), TRUE);
			_tmp24_ = box;
			gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), 12);
			_tmp25_ = box;
			gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), 12);
			added = 0;
			{
				GeeIterator* _pluggable_it = NULL;
				GeeCollection* _tmp26_;
				GeeIterator* _tmp27_;
				_tmp26_ = pluggables;
				_tmp27_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ITERABLE, GeeIterable));
				_pluggable_it = _tmp27_;
				while (TRUE) {
					GeeIterator* _tmp28_;
					SpitPluggable* pluggable = NULL;
					GeeIterator* _tmp29_;
					gpointer _tmp30_;
					gboolean enabled = FALSE;
					SpitPluggable* _tmp31_;
					const gchar* _tmp32_;
					gboolean _tmp33_ = FALSE;
					gboolean _tmp34_;
					PluginsPluggableRow* pluggable_row = NULL;
					SpitPluggable* _tmp35_;
					PluginsPluggableRow* _tmp36_;
					gint _tmp37_;
					GtkListBox* _tmp38_;
					PluginsPluggableRow* _tmp39_;
					_tmp28_ = _pluggable_it;
					if (!gee_iterator_next (_tmp28_)) {
						break;
					}
					_tmp29_ = _pluggable_it;
					_tmp30_ = gee_iterator_get (_tmp29_);
					pluggable = (SpitPluggable*) _tmp30_;
					_tmp31_ = pluggable;
					_tmp32_ = spit_pluggable_get_id (_tmp31_);
					_tmp34_ = plugins_get_pluggable_enabled (_tmp32_, &_tmp33_);
					enabled = _tmp33_;
					if (!_tmp34_) {
						_g_object_unref0 (pluggable);
						continue;
					}
					_tmp35_ = pluggable;
					_tmp36_ = plugins_pluggable_row_new (_tmp35_, enabled);
					g_object_ref_sink (_tmp36_);
					pluggable_row = _tmp36_;
					_tmp37_ = added;
					added = _tmp37_ + 1;
					_tmp38_ = box;
					_tmp39_ = pluggable_row;
					gtk_list_box_insert (_tmp38_, G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget), -1);
					_g_object_unref0 (pluggable_row);
					_g_object_unref0 (pluggable);
				}
				_g_object_unref0 (_pluggable_it);
			}
			if (added > 0) {
				GtkListBox* _tmp40_;
				_tmp40_ = box;
				gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget));
			}
			_g_object_unref0 (box);
			_g_object_unref0 (pluggables);
			_g_object_unref0 (label);
			_plugins_extension_point_unref0 (extension_point);
		}
		_g_object_unref0 (_extension_point_it);
	}
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
}

static void
plugins_manifest_list_view_class_init (PluginsManifestListViewClass * klass,
                                       gpointer klass_data)
{
	plugins_manifest_list_view_parent_class = g_type_class_peek_parent (klass);
	((GObjectClass *) klass)->constructed = (void (*) (GObject*)) plugins_manifest_list_view_real_constructed;
	plugins_manifest_list_view_signals[PLUGINS_MANIFEST_LIST_VIEW_ROW_SELECTED_SIGNAL] = g_signal_new ("row-selected", PLUGINS_TYPE_MANIFEST_LIST_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SPIT_TYPE_PLUGGABLE);
}

static void
plugins_manifest_list_view_instance_init (PluginsManifestListView * self,
                                          gpointer klass)
{
}

static GType
plugins_manifest_list_view_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestListViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_list_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestListView), 0, (GInstanceInitFunc) plugins_manifest_list_view_instance_init, NULL };
	GType plugins_manifest_list_view_type_id;
	plugins_manifest_list_view_type_id = g_type_register_static (gtk_box_get_type (), "PluginsManifestListView", &g_define_type_info, 0);
	return plugins_manifest_list_view_type_id;
}

GType
plugins_manifest_list_view_get_type (void)
{
	static volatile gsize plugins_manifest_list_view_type_id__once = 0;
	if (g_once_init_enter (&plugins_manifest_list_view_type_id__once)) {
		GType plugins_manifest_list_view_type_id;
		plugins_manifest_list_view_type_id = plugins_manifest_list_view_get_type_once ();
		g_once_init_leave (&plugins_manifest_list_view_type_id__once, plugins_manifest_list_view_type_id);
	}
	return plugins_manifest_list_view_type_id__once;
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

