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

/*-
 * Copyright (c) 2019 elementary, Inc. (https://elementary.io)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <adwaita.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <granite-7.h>
#include <gtk/gtk.h>
#include <unistd.h>
#include <gio/gio.h>
#include <float.h>
#include <math.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 ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW (onboarding_abstract_onboarding_view_get_type ())
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingView))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingViewClass))
#define ONBOARDING_IS_ABSTRACT_ONBOARDING_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW))
#define ONBOARDING_IS_ABSTRACT_ONBOARDING_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingViewClass))

typedef struct _OnboardingAbstractOnboardingView OnboardingAbstractOnboardingView;
typedef struct _OnboardingAbstractOnboardingViewClass OnboardingAbstractOnboardingViewClass;
typedef struct _OnboardingAbstractOnboardingViewPrivate OnboardingAbstractOnboardingViewPrivate;
enum  {
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_0_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_NUM_PROPERTIES
};
static GParamSpec* onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM (onboarding_abstract_onboarding_view_list_item_get_type ())
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItem))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItemClass))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IS_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IS_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM))
#define ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItemClass))

typedef struct _OnboardingAbstractOnboardingViewListItem OnboardingAbstractOnboardingViewListItem;
typedef struct _OnboardingAbstractOnboardingViewListItemClass OnboardingAbstractOnboardingViewListItemClass;
typedef struct _OnboardingAbstractOnboardingViewListItemPrivate OnboardingAbstractOnboardingViewListItemPrivate;
enum  {
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_0_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY,
	ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_NUM_PROPERTIES
};
static GParamSpec* onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_NUM_PROPERTIES];
typedef struct _Block1Data Block1Data;

#define ONBOARDING_TYPE_WELCOME_VIEW (onboarding_welcome_view_get_type ())
#define ONBOARDING_WELCOME_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ONBOARDING_TYPE_WELCOME_VIEW, OnboardingWelcomeView))
#define ONBOARDING_WELCOME_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ONBOARDING_TYPE_WELCOME_VIEW, OnboardingWelcomeViewClass))
#define ONBOARDING_IS_WELCOME_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ONBOARDING_TYPE_WELCOME_VIEW))
#define ONBOARDING_IS_WELCOME_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ONBOARDING_TYPE_WELCOME_VIEW))
#define ONBOARDING_WELCOME_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ONBOARDING_TYPE_WELCOME_VIEW, OnboardingWelcomeViewClass))

typedef struct _OnboardingWelcomeView OnboardingWelcomeView;
typedef struct _OnboardingWelcomeViewClass OnboardingWelcomeViewClass;

#define ONBOARDING_TYPE_FINISH_VIEW (onboarding_finish_view_get_type ())
#define ONBOARDING_FINISH_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ONBOARDING_TYPE_FINISH_VIEW, OnboardingFinishView))
#define ONBOARDING_FINISH_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ONBOARDING_TYPE_FINISH_VIEW, OnboardingFinishViewClass))
#define ONBOARDING_IS_FINISH_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ONBOARDING_TYPE_FINISH_VIEW))
#define ONBOARDING_IS_FINISH_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ONBOARDING_TYPE_FINISH_VIEW))
#define ONBOARDING_FINISH_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ONBOARDING_TYPE_FINISH_VIEW, OnboardingFinishViewClass))

typedef struct _OnboardingFinishView OnboardingFinishView;
typedef struct _OnboardingFinishViewClass OnboardingFinishViewClass;

struct _OnboardingAbstractOnboardingView {
	AdwNavigationPage parent_instance;
	OnboardingAbstractOnboardingViewPrivate * priv;
};

struct _OnboardingAbstractOnboardingViewClass {
	AdwNavigationPageClass parent_class;
};

struct _OnboardingAbstractOnboardingViewPrivate {
	gchar* _view_name;
	gchar* _description;
	gchar* _icon_name;
	gchar* _badge_name;
	GraniteBox* _custom_bin;
	GtkImage* _image;
};

struct _OnboardingAbstractOnboardingViewListItem {
	GraniteBox parent_instance;
	OnboardingAbstractOnboardingViewListItemPrivate * priv;
};

struct _OnboardingAbstractOnboardingViewListItemClass {
	GraniteBoxClass parent_class;
};

struct _OnboardingAbstractOnboardingViewListItemPrivate {
	gchar* _color;
	gchar* _icon_name;
	gchar* _label;
};

struct _Block1Data {
	int _ref_count_;
	OnboardingAbstractOnboardingView* self;
	GtkLevelBar* levelbar;
	GtkButton* next_button;
};

static gint OnboardingAbstractOnboardingView_private_offset;
static gpointer onboarding_abstract_onboarding_view_parent_class = NULL;
VALA_EXTERN GSettings* onboarding_main_window_settings;
static gint OnboardingAbstractOnboardingViewListItem_private_offset;
static gpointer onboarding_abstract_onboarding_view_list_item_parent_class = NULL;
VALA_EXTERN GListStore* onboarding_main_window_pages;

VALA_EXTERN GType onboarding_abstract_onboarding_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OnboardingAbstractOnboardingView, g_object_unref)
VALA_EXTERN void onboarding_abstract_onboarding_view_mark_viewed (OnboardingAbstractOnboardingView* self);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_get_view_name (OnboardingAbstractOnboardingView* self);
static gboolean _vala_string_array_contains (gchar* * stack,
                                      gssize stack_length,
                                      const gchar* needle);
static gchar** _vala_array_dup2 (gchar** self,
                          gssize length);
static void _vala_array_add1 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static gchar** _vala_array_dup3 (gchar** self,
                          gssize length);
VALA_EXTERN OnboardingAbstractOnboardingView* onboarding_abstract_onboarding_view_construct (GType object_type);
static void onboarding_abstract_onboarding_view_set_view_name (OnboardingAbstractOnboardingView* self,
                                                        const gchar* value);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_get_description (OnboardingAbstractOnboardingView* self);
VALA_EXTERN void onboarding_abstract_onboarding_view_set_description (OnboardingAbstractOnboardingView* self,
                                                          const gchar* value);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_get_icon_name (OnboardingAbstractOnboardingView* self);
static void onboarding_abstract_onboarding_view_set_icon_name (OnboardingAbstractOnboardingView* self,
                                                        const gchar* value);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_get_badge_name (OnboardingAbstractOnboardingView* self);
static void onboarding_abstract_onboarding_view_set_badge_name (OnboardingAbstractOnboardingView* self,
                                                         const gchar* value);
VALA_EXTERN GraniteBox* onboarding_abstract_onboarding_view_get_custom_bin (OnboardingAbstractOnboardingView* self);
static void onboarding_abstract_onboarding_view_set_custom_bin (OnboardingAbstractOnboardingView* self,
                                                         GraniteBox* value);
VALA_EXTERN GtkImage* onboarding_abstract_onboarding_view_get_image (OnboardingAbstractOnboardingView* self);
static void onboarding_abstract_onboarding_view_set_image (OnboardingAbstractOnboardingView* self,
                                                    GtkImage* value);
VALA_EXTERN GType onboarding_abstract_onboarding_view_list_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OnboardingAbstractOnboardingViewListItem, g_object_unref)
VALA_EXTERN OnboardingAbstractOnboardingViewListItem* onboarding_abstract_onboarding_view_list_item_new (const gchar* icon_name,
                                                                                             const gchar* label,
                                                                                             const gchar* color);
VALA_EXTERN OnboardingAbstractOnboardingViewListItem* onboarding_abstract_onboarding_view_list_item_construct (GType object_type,
                                                                                                   const gchar* icon_name,
                                                                                                   const gchar* label,
                                                                                                   const gchar* color);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_list_item_get_color (OnboardingAbstractOnboardingViewListItem* self);
static void onboarding_abstract_onboarding_view_list_item_set_color (OnboardingAbstractOnboardingViewListItem* self,
                                                              const gchar* value);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_list_item_get_icon_name (OnboardingAbstractOnboardingViewListItem* self);
static void onboarding_abstract_onboarding_view_list_item_set_icon_name (OnboardingAbstractOnboardingViewListItem* self,
                                                                  const gchar* value);
VALA_EXTERN const gchar* onboarding_abstract_onboarding_view_list_item_get_label (OnboardingAbstractOnboardingViewListItem* self);
static void onboarding_abstract_onboarding_view_list_item_set_label (OnboardingAbstractOnboardingViewListItem* self,
                                                              const gchar* value);
static GObject * onboarding_abstract_onboarding_view_list_item_constructor (GType type,
                                                                     guint n_construct_properties,
                                                                     GObjectConstructParam * construct_properties);
static void onboarding_abstract_onboarding_view_list_item_finalize (GObject * obj);
static GType onboarding_abstract_onboarding_view_list_item_get_type_once (void);
static void _vala_onboarding_abstract_onboarding_view_list_item_get_property (GObject * object,
                                                                       guint property_id,
                                                                       GValue * value,
                                                                       GParamSpec * pspec);
static void _vala_onboarding_abstract_onboarding_view_list_item_set_property (GObject * object,
                                                                       guint property_id,
                                                                       const GValue * value,
                                                                       GParamSpec * pspec);
static GObject * onboarding_abstract_onboarding_view_constructor (GType type,
                                                           guint n_construct_properties,
                                                           GObjectConstructParam * construct_properties);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
VALA_EXTERN GType onboarding_welcome_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OnboardingWelcomeView, g_object_unref)
VALA_EXTERN GType onboarding_finish_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OnboardingFinishView, g_object_unref)
static void _vala_GValue_array_free (GValue * array,
                              gssize array_length);
static void _onboarding_abstract_onboarding_view___lambda5_ (Block1Data* _data1_);
static void __onboarding_abstract_onboarding_view___lambda5__adw_navigation_page_showing (AdwNavigationPage* _sender,
                                                                                   gpointer self);
static void _onboarding_abstract_onboarding_view_mark_viewed_adw_navigation_page_shown (AdwNavigationPage* _sender,
                                                                                 gpointer self);
static void _onboarding_abstract_onboarding_view___lambda6_ (Block1Data* _data1_);
static void __onboarding_abstract_onboarding_view___lambda6__gtk_widget_realize (GtkWidget* _sender,
                                                                          gpointer self);
static void onboarding_abstract_onboarding_view_finalize (GObject * obj);
static GType onboarding_abstract_onboarding_view_get_type_once (void);
static void _vala_onboarding_abstract_onboarding_view_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
static void _vala_onboarding_abstract_onboarding_view_set_property (GObject * object,
                                                             guint property_id,
                                                             const GValue * value,
                                                             GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static inline gpointer
onboarding_abstract_onboarding_view_get_instance_private (OnboardingAbstractOnboardingView* self)
{
	return G_STRUCT_MEMBER_P (self, OnboardingAbstractOnboardingView_private_offset);
}

static gboolean
_vala_string_array_contains (gchar* * stack,
                             gssize stack_length,
                             const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

static gchar**
_vala_array_dup2 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static void
_vala_array_add1 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static gchar**
_vala_array_dup3 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

void
onboarding_abstract_onboarding_view_mark_viewed (OnboardingAbstractOnboardingView* self)
{
	gchar** viewed = NULL;
	GSettings* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint viewed_length1;
	gint _viewed_size_;
	const gchar* _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	g_return_if_fail (self != NULL);
	if (isatty (STDIN_FILENO)) {
		return;
	}
	_tmp0_ = onboarding_main_window_settings;
	_tmp2_ = _tmp1_ = g_settings_get_strv (_tmp0_, "viewed");
	viewed = _tmp2_;
	viewed_length1 = _vala_array_length (_tmp1_);
	_viewed_size_ = viewed_length1;
	_tmp3_ = self->priv->_view_name;
	_tmp4_ = viewed;
	_tmp4__length1 = viewed_length1;
	if (!_vala_string_array_contains (_tmp4_, _tmp4__length1, _tmp3_)) {
		gchar** viewed_copy = NULL;
		gchar** _tmp5_;
		gint _tmp5__length1;
		gchar** _tmp6_;
		gint _tmp6__length1;
		gint viewed_copy_length1;
		gint _viewed_copy_size_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		gchar** _tmp9_;
		gint _tmp9__length1;
		gchar** _tmp10_;
		gint _tmp10__length1;
		GSettings* _tmp11_;
		gchar** _tmp12_;
		gint _tmp12__length1;
		_tmp5_ = viewed;
		_tmp5__length1 = viewed_length1;
		_tmp6_ = (_tmp5_ != NULL) ? _vala_array_dup2 (_tmp5_, _tmp5__length1) : _tmp5_;
		_tmp6__length1 = _tmp5__length1;
		viewed_copy = _tmp6_;
		viewed_copy_length1 = _tmp6__length1;
		_viewed_copy_size_ = viewed_copy_length1;
		_tmp7_ = self->priv->_view_name;
		_tmp8_ = g_strdup (_tmp7_);
		_vala_array_add1 (&viewed_copy, &viewed_copy_length1, &_viewed_copy_size_, _tmp8_);
		_tmp9_ = viewed_copy;
		_tmp9__length1 = viewed_copy_length1;
		_tmp10_ = (_tmp9_ != NULL) ? _vala_array_dup3 (_tmp9_, _tmp9__length1) : _tmp9_;
		_tmp10__length1 = _tmp9__length1;
		viewed = (_vala_array_free (viewed, viewed_length1, (GDestroyNotify) g_free), NULL);
		viewed = _tmp10_;
		viewed_length1 = _tmp10__length1;
		_viewed_size_ = viewed_length1;
		_tmp11_ = onboarding_main_window_settings;
		_tmp12_ = viewed;
		_tmp12__length1 = viewed_length1;
		g_settings_set_strv (_tmp11_, "viewed", _tmp12_);
		viewed_copy = (_vala_array_free (viewed_copy, viewed_copy_length1, (GDestroyNotify) g_free), NULL);
	}
	viewed = (_vala_array_free (viewed, viewed_length1, (GDestroyNotify) g_free), NULL);
}

OnboardingAbstractOnboardingView*
onboarding_abstract_onboarding_view_construct (GType object_type)
{
	OnboardingAbstractOnboardingView * self = NULL;
	self = (OnboardingAbstractOnboardingView*) g_object_new (object_type, NULL);
	return self;
}

const gchar*
onboarding_abstract_onboarding_view_get_view_name (OnboardingAbstractOnboardingView* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_view_name;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_set_view_name (OnboardingAbstractOnboardingView* self,
                                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_view_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_view_name);
		self->priv->_view_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY]);
	}
}

const gchar*
onboarding_abstract_onboarding_view_get_description (OnboardingAbstractOnboardingView* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_description;
	result = _tmp0_;
	return result;
}

void
onboarding_abstract_onboarding_view_set_description (OnboardingAbstractOnboardingView* self,
                                                     const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_description (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_description);
		self->priv->_description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
onboarding_abstract_onboarding_view_get_icon_name (OnboardingAbstractOnboardingView* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_icon_name;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_set_icon_name (OnboardingAbstractOnboardingView* self,
                                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_icon_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_icon_name);
		self->priv->_icon_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY]);
	}
}

const gchar*
onboarding_abstract_onboarding_view_get_badge_name (OnboardingAbstractOnboardingView* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_badge_name;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_set_badge_name (OnboardingAbstractOnboardingView* self,
                                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_badge_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_badge_name);
		self->priv->_badge_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY]);
	}
}

GraniteBox*
onboarding_abstract_onboarding_view_get_custom_bin (OnboardingAbstractOnboardingView* self)
{
	GraniteBox* result;
	GraniteBox* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_custom_bin;
	result = _tmp0_;
	return result;
}

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

static void
onboarding_abstract_onboarding_view_set_custom_bin (OnboardingAbstractOnboardingView* self,
                                                    GraniteBox* value)
{
	GraniteBox* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_custom_bin (self);
	if (old_value != value) {
		GraniteBox* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_custom_bin);
		self->priv->_custom_bin = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY]);
	}
}

GtkImage*
onboarding_abstract_onboarding_view_get_image (OnboardingAbstractOnboardingView* self)
{
	GtkImage* result;
	GtkImage* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_image;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_set_image (OnboardingAbstractOnboardingView* self,
                                               GtkImage* value)
{
	GtkImage* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_get_image (self);
	if (old_value != value) {
		GtkImage* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_image);
		self->priv->_image = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY]);
	}
}

static inline gpointer
onboarding_abstract_onboarding_view_list_item_get_instance_private (OnboardingAbstractOnboardingViewListItem* self)
{
	return G_STRUCT_MEMBER_P (self, OnboardingAbstractOnboardingViewListItem_private_offset);
}

OnboardingAbstractOnboardingViewListItem*
onboarding_abstract_onboarding_view_list_item_construct (GType object_type,
                                                         const gchar* icon_name,
                                                         const gchar* label,
                                                         const gchar* color)
{
	OnboardingAbstractOnboardingViewListItem * self = NULL;
	g_return_val_if_fail (icon_name != NULL, NULL);
	g_return_val_if_fail (label != NULL, NULL);
	g_return_val_if_fail (color != NULL, NULL);
	self = (OnboardingAbstractOnboardingViewListItem*) g_object_new (object_type, "icon-name", icon_name, "label", label, "color", color, NULL);
	return self;
}

OnboardingAbstractOnboardingViewListItem*
onboarding_abstract_onboarding_view_list_item_new (const gchar* icon_name,
                                                   const gchar* label,
                                                   const gchar* color)
{
	return onboarding_abstract_onboarding_view_list_item_construct (ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, icon_name, label, color);
}

const gchar*
onboarding_abstract_onboarding_view_list_item_get_color (OnboardingAbstractOnboardingViewListItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_color;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_list_item_set_color (OnboardingAbstractOnboardingViewListItem* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_list_item_get_color (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_color);
		self->priv->_color = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY]);
	}
}

const gchar*
onboarding_abstract_onboarding_view_list_item_get_icon_name (OnboardingAbstractOnboardingViewListItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_icon_name;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_list_item_set_icon_name (OnboardingAbstractOnboardingViewListItem* self,
                                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_list_item_get_icon_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_icon_name);
		self->priv->_icon_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY]);
	}
}

const gchar*
onboarding_abstract_onboarding_view_list_item_get_label (OnboardingAbstractOnboardingViewListItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_label;
	result = _tmp0_;
	return result;
}

static void
onboarding_abstract_onboarding_view_list_item_set_label (OnboardingAbstractOnboardingViewListItem* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = onboarding_abstract_onboarding_view_list_item_get_label (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_label);
		self->priv->_label = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY]);
	}
}

static GObject *
onboarding_abstract_onboarding_view_list_item_constructor (GType type,
                                                           guint n_construct_properties,
                                                           GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	OnboardingAbstractOnboardingViewListItem * self;
	GtkImage* image = NULL;
	const gchar* _tmp0_;
	GtkImage* _tmp1_;
	GtkImage* _tmp2_;
	GtkImage* _tmp3_;
	const gchar* _tmp4_;
	GtkLabel* description_label = NULL;
	const gchar* _tmp5_;
	GtkLabel* _tmp6_ = NULL;
	GtkImage* _tmp7_;
	GtkLabel* _tmp8_;
	parent_class = G_OBJECT_CLASS (onboarding_abstract_onboarding_view_list_item_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItem);
	_tmp0_ = self->priv->_icon_name;
	_tmp1_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp0_);
	g_object_ref_sink (_tmp1_);
	image = _tmp1_;
	_tmp2_ = image;
	gtk_widget_add_css_class ((GtkWidget*) _tmp2_, GRANITE_CSS_CLASS_ACCENT);
	_tmp3_ = image;
	_tmp4_ = self->priv->_color;
	gtk_widget_add_css_class ((GtkWidget*) _tmp3_, _tmp4_);
	_tmp5_ = self->priv->_label;
	_tmp6_ = (GtkLabel*) gtk_label_new (_tmp5_);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp6_, TRUE);
	gtk_label_set_max_width_chars (_tmp6_, 40);
	gtk_label_set_wrap (_tmp6_, TRUE);
	gtk_label_set_xalign (_tmp6_, (gfloat) 0);
	g_object_ref_sink (_tmp6_);
	description_label = _tmp6_;
	granite_box_set_child_spacing ((GraniteBox*) self, GRANITE_BOX_SPACING_HALF);
	_tmp7_ = image;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp7_);
	_tmp8_ = description_label;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp8_);
	_g_object_unref0 (description_label);
	_g_object_unref0 (image);
	return obj;
}

static void
onboarding_abstract_onboarding_view_list_item_class_init (OnboardingAbstractOnboardingViewListItemClass * klass,
                                                          gpointer klass_data)
{
	onboarding_abstract_onboarding_view_list_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &OnboardingAbstractOnboardingViewListItem_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_onboarding_abstract_onboarding_view_list_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_onboarding_abstract_onboarding_view_list_item_set_property;
	G_OBJECT_CLASS (klass)->constructor = onboarding_abstract_onboarding_view_list_item_constructor;
	G_OBJECT_CLASS (klass)->finalize = onboarding_abstract_onboarding_view_list_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY] = g_param_spec_string ("color", "color", "color", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY] = g_param_spec_string ("icon-name", "icon-name", "icon-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY, onboarding_abstract_onboarding_view_list_item_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY] = g_param_spec_string ("label", "label", "label", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
onboarding_abstract_onboarding_view_list_item_instance_init (OnboardingAbstractOnboardingViewListItem * self,
                                                             gpointer klass)
{
	self->priv = onboarding_abstract_onboarding_view_list_item_get_instance_private (self);
}

static void
onboarding_abstract_onboarding_view_list_item_finalize (GObject * obj)
{
	OnboardingAbstractOnboardingViewListItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItem);
	_g_free0 (self->priv->_color);
	_g_free0 (self->priv->_icon_name);
	_g_free0 (self->priv->_label);
	G_OBJECT_CLASS (onboarding_abstract_onboarding_view_list_item_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
onboarding_abstract_onboarding_view_list_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (OnboardingAbstractOnboardingViewListItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) onboarding_abstract_onboarding_view_list_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OnboardingAbstractOnboardingViewListItem), 0, (GInstanceInitFunc) onboarding_abstract_onboarding_view_list_item_instance_init, NULL };
	GType onboarding_abstract_onboarding_view_list_item_type_id;
	onboarding_abstract_onboarding_view_list_item_type_id = g_type_register_static (GRANITE_TYPE_BOX, "OnboardingAbstractOnboardingViewListItem", &g_define_type_info, 0);
	OnboardingAbstractOnboardingViewListItem_private_offset = g_type_add_instance_private (onboarding_abstract_onboarding_view_list_item_type_id, sizeof (OnboardingAbstractOnboardingViewListItemPrivate));
	return onboarding_abstract_onboarding_view_list_item_type_id;
}

GType
onboarding_abstract_onboarding_view_list_item_get_type (void)
{
	static volatile gsize onboarding_abstract_onboarding_view_list_item_type_id__once = 0;
	if (g_once_init_enter (&onboarding_abstract_onboarding_view_list_item_type_id__once)) {
		GType onboarding_abstract_onboarding_view_list_item_type_id;
		onboarding_abstract_onboarding_view_list_item_type_id = onboarding_abstract_onboarding_view_list_item_get_type_once ();
		g_once_init_leave (&onboarding_abstract_onboarding_view_list_item_type_id__once, onboarding_abstract_onboarding_view_list_item_type_id);
	}
	return onboarding_abstract_onboarding_view_list_item_type_id__once;
}

static void
_vala_onboarding_abstract_onboarding_view_list_item_get_property (GObject * object,
                                                                  guint property_id,
                                                                  GValue * value,
                                                                  GParamSpec * pspec)
{
	OnboardingAbstractOnboardingViewListItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItem);
	switch (property_id) {
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_list_item_get_color (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_list_item_get_icon_name (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_list_item_get_label (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_onboarding_abstract_onboarding_view_list_item_set_property (GObject * object,
                                                                  guint property_id,
                                                                  const GValue * value,
                                                                  GParamSpec * pspec)
{
	OnboardingAbstractOnboardingViewListItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ONBOARDING_ABSTRACT_ONBOARDING_VIEW_TYPE_LIST_ITEM, OnboardingAbstractOnboardingViewListItem);
	switch (property_id) {
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_COLOR_PROPERTY:
		onboarding_abstract_onboarding_view_list_item_set_color (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_ICON_NAME_PROPERTY:
		onboarding_abstract_onboarding_view_list_item_set_icon_name (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_LIST_ITEM_LABEL_PROPERTY:
		onboarding_abstract_onboarding_view_list_item_set_label (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static Block1Data*
block1_data_ref (Block1Data* _data1_)
{
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}

static void
block1_data_unref (void * _userdata_)
{
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		OnboardingAbstractOnboardingView* self;
		self = _data1_->self;
		_g_object_unref0 (_data1_->next_button);
		_g_object_unref0 (_data1_->levelbar);
		_g_object_unref0 (self);
		g_slice_free (Block1Data, _data1_);
	}
}

static void
_vala_GValue_array_free (GValue * array,
                         gssize array_length)
{
	if (array != NULL) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			g_value_unset (&array[i]);
		}
	}
	g_free (array);
}

static void
_onboarding_abstract_onboarding_view___lambda5_ (Block1Data* _data1_)
{
	OnboardingAbstractOnboardingView* self;
	GtkButton* _tmp0_;
	self = _data1_->self;
	_tmp0_ = _data1_->next_button;
	gtk_widget_grab_focus ((GtkWidget*) _tmp0_);
}

static void
__onboarding_abstract_onboarding_view___lambda5__adw_navigation_page_showing (AdwNavigationPage* _sender,
                                                                              gpointer self)
{
	_onboarding_abstract_onboarding_view___lambda5_ (self);
}

static void
_onboarding_abstract_onboarding_view_mark_viewed_adw_navigation_page_shown (AdwNavigationPage* _sender,
                                                                            gpointer self)
{
	onboarding_abstract_onboarding_view_mark_viewed ((OnboardingAbstractOnboardingView*) self);
}

static void
_onboarding_abstract_onboarding_view___lambda6_ (Block1Data* _data1_)
{
	OnboardingAbstractOnboardingView* self;
	guint pos = 0U;
	GListStore* _tmp0_;
	guint _tmp1_ = 0U;
	GtkLevelBar* _tmp2_;
	GListStore* _tmp3_;
	GtkLevelBar* _tmp4_;
	GtkLevelBar* _tmp5_;
	GtkLevelBar* _tmp6_;
	gdouble _tmp7_;
	gdouble _tmp8_;
	GtkLevelBar* _tmp9_;
	GtkLevelBar* _tmp10_;
	gdouble _tmp11_;
	gdouble _tmp12_;
	self = _data1_->self;
	pos = (guint) -1;
	_tmp0_ = onboarding_main_window_pages;
	g_list_store_find (_tmp0_, (GObject*) self, &_tmp1_);
	pos = _tmp1_;
	_tmp2_ = _data1_->levelbar;
	_tmp3_ = onboarding_main_window_pages;
	gtk_level_bar_set_max_value (_tmp2_, (gdouble) g_list_model_get_n_items ((GListModel*) _tmp3_));
	_tmp4_ = _data1_->levelbar;
	gtk_level_bar_set_value (_tmp4_, (gdouble) (pos + 1));
	_tmp5_ = _data1_->levelbar;
	_tmp6_ = _data1_->levelbar;
	_tmp7_ = gtk_level_bar_get_max_value (_tmp6_);
	_tmp8_ = _tmp7_;
	gtk_level_bar_add_offset_value (_tmp5_, GTK_LEVEL_BAR_OFFSET_HIGH, _tmp8_ - 1);
	_tmp9_ = _data1_->levelbar;
	_tmp10_ = _data1_->levelbar;
	_tmp11_ = gtk_level_bar_get_max_value (_tmp10_);
	_tmp12_ = _tmp11_;
	gtk_level_bar_add_offset_value (_tmp9_, GTK_LEVEL_BAR_OFFSET_FULL, _tmp12_);
}

static void
__onboarding_abstract_onboarding_view___lambda6__gtk_widget_realize (GtkWidget* _sender,
                                                                     gpointer self)
{
	_onboarding_abstract_onboarding_view___lambda6_ (self);
}

static GObject *
onboarding_abstract_onboarding_view_constructor (GType type,
                                                 guint n_construct_properties,
                                                 GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	OnboardingAbstractOnboardingView * self;
	Block1Data* _data1_;
	const gchar* _tmp0_;
	GtkImage* _tmp1_ = NULL;
	GtkImage* _tmp2_;
	GtkImage* badge = NULL;
	const gchar* _tmp3_;
	GtkImage* _tmp4_ = NULL;
	GtkOverlay* overlay = NULL;
	GtkImage* _tmp5_;
	GtkWidget* _tmp6_;
	GtkOverlay* _tmp7_ = NULL;
	GtkOverlay* _tmp8_;
	GtkImage* _tmp9_;
	GtkLabel* title_label = NULL;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	GtkLabel* _tmp12_ = NULL;
	GtkLabel* _tmp13_;
	GtkLabel* description_label = NULL;
	const gchar* _tmp14_;
	GtkLabel* _tmp15_ = NULL;
	GtkLabel* _tmp16_;
	GtkBox* header_area = NULL;
	GtkBox* _tmp17_;
	GtkBox* _tmp18_;
	GtkOverlay* _tmp19_;
	GtkBox* _tmp20_;
	GtkLabel* _tmp21_;
	GtkBox* _tmp22_;
	GtkLabel* _tmp23_;
	GtkBox* _tmp24_;
	GraniteBox* _tmp25_ = NULL;
	GraniteBox* _tmp26_;
	GraniteBox* _tmp27_;
	GtkLevelBar* _tmp28_ = NULL;
	GtkButton* back_button = NULL;
	GtkButton* _tmp29_;
	gchar* _tmp30_;
	GtkButton* _tmp31_ = NULL;
	GtkButton* _tmp32_;
	GtkSizeGroup* buttons_group = NULL;
	GtkSizeGroup* _tmp33_;
	GtkSizeGroup* _tmp34_;
	GtkButton* _tmp35_;
	GtkSizeGroup* _tmp36_;
	GtkButton* _tmp37_;
	GtkCenterBox* action_area = NULL;
	GtkButton* _tmp38_;
	GtkWidget* _tmp39_;
	GtkLevelBar* _tmp40_;
	GtkWidget* _tmp41_;
	GtkButton* _tmp42_;
	GtkWidget* _tmp43_;
	GtkCenterBox* _tmp44_ = NULL;
	GtkCenterBox* _tmp45_;
	GraniteBox* box = NULL;
	GraniteBox* _tmp51_ = NULL;
	GraniteBox* _tmp52_;
	GtkBox* _tmp53_;
	GraniteBox* _tmp54_;
	GraniteBox* _tmp55_;
	GraniteBox* _tmp56_;
	GtkCenterBox* _tmp57_;
	GraniteBox* _tmp58_;
	GtkAccessibleProperty* _tmp59_;
	GtkAccessibleProperty* _tmp60_;
	gint _tmp60__length1;
	const gchar* _tmp61_;
	const gchar* _tmp62_;
	GValue _tmp63_ = {0};
	const gchar* _tmp64_;
	GValue _tmp65_ = {0};
	GValue* _tmp66_;
	GValue* _tmp67_;
	gint _tmp67__length1;
	GtkLabel* _tmp68_;
	GtkLabel* _tmp69_;
	parent_class = G_OBJECT_CLASS (onboarding_abstract_onboarding_view_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingView);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_data1_->self = g_object_ref (self);
	_tmp0_ = self->priv->_icon_name;
	_tmp1_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp0_);
	gtk_image_set_icon_size (_tmp1_, GTK_ICON_SIZE_LARGE);
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	onboarding_abstract_onboarding_view_set_image (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_badge_name;
	_tmp4_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp3_);
	gtk_widget_set_halign ((GtkWidget*) _tmp4_, GTK_ALIGN_END);
	gtk_widget_set_valign ((GtkWidget*) _tmp4_, GTK_ALIGN_END);
	gtk_image_set_icon_size (_tmp4_, GTK_ICON_SIZE_NORMAL);
	g_object_ref_sink (_tmp4_);
	badge = _tmp4_;
	_tmp5_ = self->priv->_image;
	_tmp6_ = _g_object_ref0 ((GtkWidget*) _tmp5_);
	_tmp7_ = (GtkOverlay*) gtk_overlay_new ();
	gtk_widget_set_halign ((GtkWidget*) _tmp7_, GTK_ALIGN_CENTER);
	gtk_overlay_set_child (_tmp7_, _tmp6_);
	_g_object_unref0 (_tmp6_);
	g_object_ref_sink (_tmp7_);
	overlay = _tmp7_;
	_tmp8_ = overlay;
	_tmp9_ = badge;
	gtk_overlay_add_overlay (_tmp8_, (GtkWidget*) _tmp9_);
	_tmp10_ = adw_navigation_page_get_title ((AdwNavigationPage*) self);
	_tmp11_ = _tmp10_;
	_tmp12_ = (GtkLabel*) gtk_label_new (_tmp11_);
	gtk_widget_set_halign ((GtkWidget*) _tmp12_, GTK_ALIGN_CENTER);
	gtk_label_set_justify (_tmp12_, GTK_JUSTIFY_CENTER);
	gtk_label_set_wrap (_tmp12_, TRUE);
	gtk_label_set_max_width_chars (_tmp12_, 50);
	gtk_label_set_use_markup (_tmp12_, TRUE);
	g_object_ref_sink (_tmp12_);
	title_label = _tmp12_;
	_tmp13_ = title_label;
	gtk_widget_add_css_class ((GtkWidget*) _tmp13_, GRANITE_STYLE_CLASS_H1_LABEL);
	_tmp14_ = self->priv->_description;
	_tmp15_ = (GtkLabel*) gtk_label_new (_tmp14_);
	gtk_widget_set_halign ((GtkWidget*) _tmp15_, GTK_ALIGN_CENTER);
	gtk_label_set_justify (_tmp15_, GTK_JUSTIFY_CENTER);
	gtk_label_set_wrap (_tmp15_, TRUE);
	gtk_label_set_max_width_chars (_tmp15_, 50);
	gtk_label_set_use_markup (_tmp15_, TRUE);
	g_object_ref_sink (_tmp15_);
	description_label = _tmp15_;
	_tmp16_ = description_label;
	gtk_widget_add_css_class ((GtkWidget*) _tmp16_, GRANITE_CSS_CLASS_DIM);
	_tmp17_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp17_);
	header_area = _tmp17_;
	_tmp18_ = header_area;
	_tmp19_ = overlay;
	gtk_box_append (_tmp18_, (GtkWidget*) _tmp19_);
	_tmp20_ = header_area;
	_tmp21_ = title_label;
	gtk_box_append (_tmp20_, (GtkWidget*) _tmp21_);
	_tmp22_ = header_area;
	_tmp23_ = description_label;
	gtk_box_append (_tmp22_, (GtkWidget*) _tmp23_);
	_tmp24_ = header_area;
	gtk_widget_add_css_class ((GtkWidget*) _tmp24_, "header-area");
	_tmp25_ = granite_box_new (GTK_ORIENTATION_VERTICAL, GRANITE_BOX_SPACING_SINGLE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp25_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp25_, TRUE);
	gtk_widget_set_halign ((GtkWidget*) _tmp25_, GTK_ALIGN_CENTER);
	gtk_widget_set_valign ((GtkWidget*) _tmp25_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp25_);
	_tmp26_ = _tmp25_;
	onboarding_abstract_onboarding_view_set_custom_bin (self, _tmp26_);
	_g_object_unref0 (_tmp26_);
	_tmp27_ = self->priv->_custom_bin;
	gtk_widget_add_css_class ((GtkWidget*) _tmp27_, "content-area");
	_tmp28_ = (GtkLevelBar*) gtk_level_bar_new ();
	gtk_level_bar_set_min_value (_tmp28_, (gdouble) 0);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp28_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp28_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp28_);
	_data1_->levelbar = _tmp28_;
	_tmp29_ = (GtkButton*) gtk_button_new ();
	g_object_ref_sink (_tmp29_);
	back_button = _tmp29_;
	_tmp30_ = g_strdup ("win.next");
	_tmp31_ = (GtkButton*) gtk_button_new_with_label (_ ("Next"));
	gtk_actionable_set_action_name ((GtkActionable*) _tmp31_, _tmp30_);
	_g_free0 (_tmp30_);
	g_object_ref_sink (_tmp31_);
	_data1_->next_button = _tmp31_;
	_tmp32_ = _data1_->next_button;
	gtk_widget_add_css_class ((GtkWidget*) _tmp32_, GRANITE_CSS_CLASS_SUGGESTED);
	_tmp33_ = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
	buttons_group = _tmp33_;
	_tmp34_ = buttons_group;
	_tmp35_ = back_button;
	gtk_size_group_add_widget (_tmp34_, (GtkWidget*) _tmp35_);
	_tmp36_ = buttons_group;
	_tmp37_ = _data1_->next_button;
	gtk_size_group_add_widget (_tmp36_, (GtkWidget*) _tmp37_);
	_tmp38_ = back_button;
	_tmp39_ = _g_object_ref0 ((GtkWidget*) _tmp38_);
	_tmp40_ = _data1_->levelbar;
	_tmp41_ = _g_object_ref0 ((GtkWidget*) _tmp40_);
	_tmp42_ = _data1_->next_button;
	_tmp43_ = _g_object_ref0 ((GtkWidget*) _tmp42_);
	_tmp44_ = (GtkCenterBox*) gtk_center_box_new ();
	gtk_center_box_set_start_widget (_tmp44_, _tmp39_);
	_g_object_unref0 (_tmp39_);
	gtk_center_box_set_center_widget (_tmp44_, _tmp41_);
	_g_object_unref0 (_tmp41_);
	gtk_center_box_set_end_widget (_tmp44_, _tmp43_);
	_g_object_unref0 (_tmp43_);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp44_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp44_, GTK_ALIGN_END);
	g_object_ref_sink (_tmp44_);
	action_area = _tmp44_;
	_tmp45_ = action_area;
	gtk_widget_add_css_class ((GtkWidget*) _tmp45_, "dialog-action-area");
	if (ONBOARDING_IS_WELCOME_VIEW (self)) {
		GtkButton* _tmp46_;
		GtkButton* _tmp47_;
		_tmp46_ = back_button;
		gtk_button_set_label (_tmp46_, _ ("Skip All"));
		_tmp47_ = back_button;
		gtk_actionable_set_action_name ((GtkActionable*) _tmp47_, "win.skip");
	} else {
		GtkButton* _tmp48_;
		GtkButton* _tmp49_;
		_tmp48_ = back_button;
		gtk_button_set_label (_tmp48_, _ ("Back"));
		_tmp49_ = back_button;
		gtk_actionable_set_action_name ((GtkActionable*) _tmp49_, "win.back");
	}
	if (ONBOARDING_IS_FINISH_VIEW (self)) {
		GtkButton* _tmp50_;
		_tmp50_ = _data1_->next_button;
		gtk_button_set_label (_tmp50_, _ ("Get Started"));
	}
	_tmp51_ = granite_box_new (GTK_ORIENTATION_VERTICAL, GRANITE_BOX_SPACING_DOUBLE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp51_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp51_, TRUE);
	g_object_ref_sink (_tmp51_);
	box = _tmp51_;
	_tmp52_ = box;
	_tmp53_ = header_area;
	gtk_box_append ((GtkBox*) _tmp52_, (GtkWidget*) _tmp53_);
	_tmp54_ = box;
	_tmp55_ = self->priv->_custom_bin;
	gtk_box_append ((GtkBox*) _tmp54_, (GtkWidget*) _tmp55_);
	_tmp56_ = box;
	_tmp57_ = action_area;
	gtk_box_append ((GtkBox*) _tmp56_, (GtkWidget*) _tmp57_);
	_tmp58_ = box;
	adw_navigation_page_set_child ((AdwNavigationPage*) self, (GtkWidget*) _tmp58_);
	_tmp59_ = g_new0 (GtkAccessibleProperty, 2);
	_tmp59_[0] = GTK_ACCESSIBLE_PROPERTY_LABEL;
	_tmp59_[1] = GTK_ACCESSIBLE_PROPERTY_DESCRIPTION;
	_tmp60_ = _tmp59_;
	_tmp60__length1 = 2;
	_tmp61_ = adw_navigation_page_get_title ((AdwNavigationPage*) self);
	_tmp62_ = _tmp61_;
	g_value_init (&_tmp63_, G_TYPE_STRING);
	g_value_set_string (&_tmp63_, _tmp62_);
	_tmp64_ = self->priv->_description;
	g_value_init (&_tmp65_, G_TYPE_STRING);
	g_value_set_string (&_tmp65_, _tmp64_);
	_tmp66_ = g_new0 (GValue, 2);
	_tmp66_[0] = _tmp63_;
	_tmp66_[1] = _tmp65_;
	_tmp67_ = _tmp66_;
	_tmp67__length1 = 2;
	gtk_accessible_update_property_value ((GtkAccessible*) self, (gint) 2, _tmp60_, _tmp67_);
	_tmp67_ = (_vala_GValue_array_free (_tmp67_, _tmp67__length1), NULL);
	_tmp60_ = (g_free (_tmp60_), NULL);
	_tmp68_ = description_label;
	g_object_bind_property_with_closures ((GObject*) self, "description", (GObject*) _tmp68_, "label", 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)));
	_tmp69_ = title_label;
	g_object_bind_property_with_closures ((GObject*) self, "title", (GObject*) _tmp69_, "label", 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)));
	g_signal_connect_data ((AdwNavigationPage*) self, "showing", (GCallback) __onboarding_abstract_onboarding_view___lambda5__adw_navigation_page_showing, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
	g_signal_connect_object ((AdwNavigationPage*) self, "shown", (GCallback) _onboarding_abstract_onboarding_view_mark_viewed_adw_navigation_page_shown, self, 0);
	g_signal_connect_data ((GtkWidget*) self, "realize", (GCallback) __onboarding_abstract_onboarding_view___lambda6__gtk_widget_realize, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
	_g_object_unref0 (box);
	_g_object_unref0 (action_area);
	_g_object_unref0 (buttons_group);
	_g_object_unref0 (back_button);
	_g_object_unref0 (header_area);
	_g_object_unref0 (description_label);
	_g_object_unref0 (title_label);
	_g_object_unref0 (overlay);
	_g_object_unref0 (badge);
	block1_data_unref (_data1_);
	_data1_ = NULL;
	return obj;
}

static void
onboarding_abstract_onboarding_view_class_init (OnboardingAbstractOnboardingViewClass * klass,
                                                gpointer klass_data)
{
	onboarding_abstract_onboarding_view_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &OnboardingAbstractOnboardingView_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_onboarding_abstract_onboarding_view_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_onboarding_abstract_onboarding_view_set_property;
	G_OBJECT_CLASS (klass)->constructor = onboarding_abstract_onboarding_view_constructor;
	G_OBJECT_CLASS (klass)->finalize = onboarding_abstract_onboarding_view_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY] = g_param_spec_string ("view-name", "view-name", "view-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY] = g_param_spec_string ("description", "description", "description", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY] = g_param_spec_string ("icon-name", "icon-name", "icon-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY] = g_param_spec_string ("badge-name", "badge-name", "badge-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY] = g_param_spec_object ("custom-bin", "custom-bin", "custom-bin", GRANITE_TYPE_BOX, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY, onboarding_abstract_onboarding_view_properties[ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY] = g_param_spec_object ("image", "image", "image", gtk_image_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
onboarding_abstract_onboarding_view_instance_init (OnboardingAbstractOnboardingView * self,
                                                   gpointer klass)
{
	self->priv = onboarding_abstract_onboarding_view_get_instance_private (self);
}

static void
onboarding_abstract_onboarding_view_finalize (GObject * obj)
{
	OnboardingAbstractOnboardingView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingView);
	_g_free0 (self->priv->_view_name);
	_g_free0 (self->priv->_description);
	_g_free0 (self->priv->_icon_name);
	_g_free0 (self->priv->_badge_name);
	_g_object_unref0 (self->priv->_custom_bin);
	_g_object_unref0 (self->priv->_image);
	G_OBJECT_CLASS (onboarding_abstract_onboarding_view_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
onboarding_abstract_onboarding_view_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (OnboardingAbstractOnboardingViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) onboarding_abstract_onboarding_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OnboardingAbstractOnboardingView), 0, (GInstanceInitFunc) onboarding_abstract_onboarding_view_instance_init, NULL };
	GType onboarding_abstract_onboarding_view_type_id;
	onboarding_abstract_onboarding_view_type_id = g_type_register_static (adw_navigation_page_get_type (), "OnboardingAbstractOnboardingView", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	OnboardingAbstractOnboardingView_private_offset = g_type_add_instance_private (onboarding_abstract_onboarding_view_type_id, sizeof (OnboardingAbstractOnboardingViewPrivate));
	return onboarding_abstract_onboarding_view_type_id;
}

GType
onboarding_abstract_onboarding_view_get_type (void)
{
	static volatile gsize onboarding_abstract_onboarding_view_type_id__once = 0;
	if (g_once_init_enter (&onboarding_abstract_onboarding_view_type_id__once)) {
		GType onboarding_abstract_onboarding_view_type_id;
		onboarding_abstract_onboarding_view_type_id = onboarding_abstract_onboarding_view_get_type_once ();
		g_once_init_leave (&onboarding_abstract_onboarding_view_type_id__once, onboarding_abstract_onboarding_view_type_id);
	}
	return onboarding_abstract_onboarding_view_type_id__once;
}

static void
_vala_onboarding_abstract_onboarding_view_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	OnboardingAbstractOnboardingView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingView);
	switch (property_id) {
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_get_view_name (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_get_description (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_get_icon_name (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY:
		g_value_set_string (value, onboarding_abstract_onboarding_view_get_badge_name (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY:
		g_value_set_object (value, onboarding_abstract_onboarding_view_get_custom_bin (self));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY:
		g_value_set_object (value, onboarding_abstract_onboarding_view_get_image (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_onboarding_abstract_onboarding_view_set_property (GObject * object,
                                                        guint property_id,
                                                        const GValue * value,
                                                        GParamSpec * pspec)
{
	OnboardingAbstractOnboardingView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ONBOARDING_TYPE_ABSTRACT_ONBOARDING_VIEW, OnboardingAbstractOnboardingView);
	switch (property_id) {
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_VIEW_NAME_PROPERTY:
		onboarding_abstract_onboarding_view_set_view_name (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_DESCRIPTION_PROPERTY:
		onboarding_abstract_onboarding_view_set_description (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_ICON_NAME_PROPERTY:
		onboarding_abstract_onboarding_view_set_icon_name (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_BADGE_NAME_PROPERTY:
		onboarding_abstract_onboarding_view_set_badge_name (self, g_value_get_string (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_CUSTOM_BIN_PROPERTY:
		onboarding_abstract_onboarding_view_set_custom_bin (self, g_value_get_object (value));
		break;
		case ONBOARDING_ABSTRACT_ONBOARDING_VIEW_IMAGE_PROPERTY:
		onboarding_abstract_onboarding_view_set_image (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

