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

/*
* Copyright 2017-2020 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 2 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, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*/

#include "keyboard.h"
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <glib-object.h>
#include <granite-7.h>
#include <float.h>
#include <math.h>
#include <adwaita.h>
#include <pango/pango.h>

#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_INPUT_LANGUAGE N_ ("Input Language")
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_LIST N_ ("Layout List")
#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

enum  {
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_0_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_NUM_PROPERTIES
};
static GParamSpec* keyboard_layout_page_add_layout_dialog_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM (keyboard_layout_page_add_layout_dialog_list_store_item_get_type ())
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItemClass))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItemClass))

typedef struct _KeyboardLayoutPageAddLayoutDialogListStoreItem KeyboardLayoutPageAddLayoutDialogListStoreItem;
typedef struct _KeyboardLayoutPageAddLayoutDialogListStoreItemClass KeyboardLayoutPageAddLayoutDialogListStoreItemClass;
typedef struct _Block13Data Block13Data;
typedef struct _KeyboardLayoutPageAddLayoutDialogListStoreItemPrivate KeyboardLayoutPageAddLayoutDialogListStoreItemPrivate;
enum  {
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_0_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NUM_PROPERTIES
};
static GParamSpec* keyboard_layout_page_add_layout_dialog_list_store_item_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NUM_PROPERTIES];

#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW (keyboard_layout_page_add_layout_dialog_layout_row_get_type ())
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRow))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRowClass))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LAYOUT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LAYOUT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW))
#define KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRowClass))

typedef struct _KeyboardLayoutPageAddLayoutDialogLayoutRow KeyboardLayoutPageAddLayoutDialogLayoutRow;
typedef struct _KeyboardLayoutPageAddLayoutDialogLayoutRowClass KeyboardLayoutPageAddLayoutDialogLayoutRowClass;
typedef struct _KeyboardLayoutPageAddLayoutDialogLayoutRowPrivate KeyboardLayoutPageAddLayoutDialogLayoutRowPrivate;
enum  {
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_0_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_NUM_PROPERTIES
};
static GParamSpec* keyboard_layout_page_add_layout_dialog_layout_row_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_NUM_PROPERTIES];
typedef struct _Block14Data Block14Data;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
enum  {
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ADDED_SIGNAL,
	KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_NUM_SIGNALS
};
static guint keyboard_layout_page_add_layout_dialog_signals[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_NUM_SIGNALS] = {0};

struct _KeyboardLayoutPageAddLayoutDialogPrivate {
	GtkListBox* input_language_list_box;
	GtkListBox* layout_list_box;
	GListStore* language_list;
	GListStore* layout_list;
	KeyboardXkbLayoutHandler* handler;
	gchar* layout_id;
};

struct _Block13Data {
	int _ref_count_;
	KeyboardLayoutPageAddLayoutDialog* self;
	GListStore* store;
};

struct _KeyboardLayoutPageAddLayoutDialogListStoreItem {
	GObject parent_instance;
	KeyboardLayoutPageAddLayoutDialogListStoreItemPrivate * priv;
};

struct _KeyboardLayoutPageAddLayoutDialogListStoreItemClass {
	GObjectClass parent_class;
};

struct _KeyboardLayoutPageAddLayoutDialogListStoreItemPrivate {
	gchar* _id;
	gchar* _name;
};

struct _KeyboardLayoutPageAddLayoutDialogLayoutRow {
	GtkListBoxRow parent_instance;
	KeyboardLayoutPageAddLayoutDialogLayoutRowPrivate * priv;
};

struct _KeyboardLayoutPageAddLayoutDialogLayoutRowClass {
	GtkListBoxRowClass parent_class;
};

struct _KeyboardLayoutPageAddLayoutDialogLayoutRowPrivate {
	gchar* _rname;
};

struct _Block14Data {
	int _ref_count_;
	KeyboardLayoutPageAddLayoutDialog* self;
	GtkSearchEntry* search_entry;
	GtkBox* input_language_box;
	GtkButton* back_button;
	GtkLabel* layout_list_title;
	GtkScrolledWindow* layout_scrolled;
	GtkButton* keyboard_map_button;
	GtkRevealer* keyboard_map_revealer;
	GtkRevealer* header_revealer;
	AdwLeaflet* deck;
	GtkWidget* button_add;
};

static gint KeyboardLayoutPageAddLayoutDialog_private_offset;
static gpointer keyboard_layout_page_add_layout_dialog_parent_class = NULL;
static gint KeyboardLayoutPageAddLayoutDialogListStoreItem_private_offset;
static gpointer keyboard_layout_page_add_layout_dialog_list_store_item_parent_class = NULL;
static gint KeyboardLayoutPageAddLayoutDialogLayoutRow_private_offset;
static gpointer keyboard_layout_page_add_layout_dialog_layout_row_parent_class = NULL;

static GType keyboard_layout_page_add_layout_dialog_list_store_item_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static KeyboardLayoutPageAddLayoutDialogListStoreItem* keyboard_layout_page_add_layout_dialog_get_selected_lang (KeyboardLayoutPageAddLayoutDialog* self);
static KeyboardLayoutPageAddLayoutDialogListStoreItem* keyboard_layout_page_add_layout_dialog_get_selected_layout (KeyboardLayoutPageAddLayoutDialog* self);
static void keyboard_layout_page_add_layout_dialog_update_list_store (KeyboardLayoutPageAddLayoutDialog* self,
                                                               GListStore* store,
                                                               GHashTable* values);
static Block13Data* block13_data_ref (Block13Data* _data13_);
static void block13_data_unref (void * _userdata_);
static void __lambda38_ (Block13Data* _data13_,
                  const gchar* key,
                  const gchar* val);
static KeyboardLayoutPageAddLayoutDialogListStoreItem* keyboard_layout_page_add_layout_dialog_list_store_item_new (const gchar* id,
                                                                                                            const gchar* name);
static KeyboardLayoutPageAddLayoutDialogListStoreItem* keyboard_layout_page_add_layout_dialog_list_store_item_construct (GType object_type,
                                                                                                                  const gchar* id,
                                                                                                                  const gchar* name);
static void ___lambda38__gh_func (gconstpointer key,
                           gconstpointer value,
                           gpointer self);
static gint __lambda39_ (KeyboardLayoutPageAddLayoutDialog* self,
                  GObject* a,
                  GObject* b);
static const gchar* keyboard_layout_page_add_layout_dialog_list_store_item_get_name (KeyboardLayoutPageAddLayoutDialogListStoreItem* self);
static gint ___lambda39__gcompare_data_func (gconstpointer a,
                                      gconstpointer b,
                                      gpointer self);
static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data);
static const gchar* keyboard_layout_page_add_layout_dialog_list_store_item_get_id (KeyboardLayoutPageAddLayoutDialogListStoreItem* self);
static void keyboard_layout_page_add_layout_dialog_list_store_item_set_id (KeyboardLayoutPageAddLayoutDialogListStoreItem* self,
                                                                    const gchar* value);
static void keyboard_layout_page_add_layout_dialog_list_store_item_set_name (KeyboardLayoutPageAddLayoutDialogListStoreItem* self,
                                                                      const gchar* value);
static void keyboard_layout_page_add_layout_dialog_list_store_item_finalize (GObject * obj);
static GType keyboard_layout_page_add_layout_dialog_list_store_item_get_type_once (void);
static void _vala_keyboard_layout_page_add_layout_dialog_list_store_item_get_property (GObject * object,
                                                                                guint property_id,
                                                                                GValue * value,
                                                                                GParamSpec * pspec);
static void _vala_keyboard_layout_page_add_layout_dialog_list_store_item_set_property (GObject * object,
                                                                                guint property_id,
                                                                                const GValue * value,
                                                                                GParamSpec * pspec);
static GType keyboard_layout_page_add_layout_dialog_layout_row_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static KeyboardLayoutPageAddLayoutDialogLayoutRow* keyboard_layout_page_add_layout_dialog_layout_row_new (const gchar* name);
static KeyboardLayoutPageAddLayoutDialogLayoutRow* keyboard_layout_page_add_layout_dialog_layout_row_construct (GType object_type,
                                                                                                         const gchar* name);
static const gchar* keyboard_layout_page_add_layout_dialog_layout_row_get_rname (KeyboardLayoutPageAddLayoutDialogLayoutRow* self);
static void keyboard_layout_page_add_layout_dialog_layout_row_set_rname (KeyboardLayoutPageAddLayoutDialogLayoutRow* self,
                                                                  const gchar* value);
static GObject * keyboard_layout_page_add_layout_dialog_layout_row_constructor (GType type,
                                                                         guint n_construct_properties,
                                                                         GObjectConstructParam * construct_properties);
static void keyboard_layout_page_add_layout_dialog_layout_row_finalize (GObject * obj);
static GType keyboard_layout_page_add_layout_dialog_layout_row_get_type_once (void);
static void _vala_keyboard_layout_page_add_layout_dialog_layout_row_get_property (GObject * object,
                                                                           guint property_id,
                                                                           GValue * value,
                                                                           GParamSpec * pspec);
static void _vala_keyboard_layout_page_add_layout_dialog_layout_row_set_property (GObject * object,
                                                                           guint property_id,
                                                                           const GValue * value,
                                                                           GParamSpec * pspec);
static GObject * keyboard_layout_page_add_layout_dialog_constructor (GType type,
                                                              guint n_construct_properties,
                                                              GObjectConstructParam * construct_properties);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
static GtkWidget* _keyboard_layout_page_add_layout_dialog___lambda40_ (KeyboardLayoutPageAddLayoutDialog* self,
                                                                GObject* item);
static GtkWidget* __keyboard_layout_page_add_layout_dialog___lambda40__gtk_list_box_create_widget_func (GObject* item,
                                                                                                 gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda41_ (Block14Data* _data14_);
static void __keyboard_layout_page_add_layout_dialog___lambda41__g_object_notify (GObject* _sender,
                                                                           GParamSpec* pspec,
                                                                           gpointer self);
static gboolean _keyboard_layout_page_add_layout_dialog___lambda42_ (Block14Data* _data14_,
                                                              GtkListBoxRow* list_box_row);
static gboolean __keyboard_layout_page_add_layout_dialog___lambda42__gtk_list_box_filter_func (GtkListBoxRow* row,
                                                                                        gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda43_ (KeyboardLayoutPageAddLayoutDialog* self);
static void __keyboard_layout_page_add_layout_dialog___lambda43__gtk_search_entry_search_changed (GtkSearchEntry* _sender,
                                                                                           gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda44_ (KeyboardLayoutPageAddLayoutDialog* self,
                                                          gint response_id);
static void __keyboard_layout_page_add_layout_dialog___lambda44__gtk_dialog_response (GtkDialog* _sender,
                                                                               gint response_id,
                                                                               gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda45_ (Block14Data* _data14_);
static void __keyboard_layout_page_add_layout_dialog___lambda45__gtk_button_clicked (GtkButton* _sender,
                                                                              gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda46_ (Block14Data* _data14_);
static void __keyboard_layout_page_add_layout_dialog___lambda46__gtk_list_box_row_activated (GtkListBox* _sender,
                                                                                      GtkListBoxRow* row,
                                                                                      gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda47_ (KeyboardLayoutPageAddLayoutDialog* self);
static void __keyboard_layout_page_add_layout_dialog___lambda47__gtk_button_clicked (GtkButton* _sender,
                                                                              gpointer self);
static void _keyboard_layout_page_add_layout_dialog___lambda48_ (Block14Data* _data14_,
                                                          GtkListBoxRow* row);
static void __keyboard_layout_page_add_layout_dialog___lambda48__gtk_list_box_row_selected (GtkListBox* _sender,
                                                                                     GtkListBoxRow* row,
                                                                                     gpointer self);
static void keyboard_layout_page_add_layout_dialog_finalize (GObject * obj);
static GType keyboard_layout_page_add_layout_dialog_get_type_once (void);

static inline gpointer
keyboard_layout_page_add_layout_dialog_get_instance_private (KeyboardLayoutPageAddLayoutDialog* self)
{
	return G_STRUCT_MEMBER_P (self, KeyboardLayoutPageAddLayoutDialog_private_offset);
}

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

static KeyboardLayoutPageAddLayoutDialogListStoreItem*
keyboard_layout_page_add_layout_dialog_get_selected_lang (KeyboardLayoutPageAddLayoutDialog* self)
{
	GtkListBoxRow* selected_lang_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GListStore* _tmp3_;
	GObject* _tmp4_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp5_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->input_language_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	selected_lang_row = _tmp2_;
	_tmp3_ = self->priv->language_list;
	_tmp4_ = g_list_model_get_item ((GListModel*) _tmp3_, (guint) gtk_list_box_row_get_index (selected_lang_row));
	_tmp5_ = KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM (_tmp4_) ? ((KeyboardLayoutPageAddLayoutDialogListStoreItem*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (_tmp4_);
	}
	result = _tmp5_;
	_g_object_unref0 (selected_lang_row);
	return result;
}

static KeyboardLayoutPageAddLayoutDialogListStoreItem*
keyboard_layout_page_add_layout_dialog_get_selected_layout (KeyboardLayoutPageAddLayoutDialog* self)
{
	GtkListBoxRow* selected_layout_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GListStore* _tmp3_;
	GObject* _tmp4_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp5_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->layout_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	selected_layout_row = _tmp2_;
	_tmp3_ = self->priv->layout_list;
	_tmp4_ = g_list_model_get_item ((GListModel*) _tmp3_, (guint) gtk_list_box_row_get_index (selected_layout_row));
	_tmp5_ = KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM (_tmp4_) ? ((KeyboardLayoutPageAddLayoutDialogListStoreItem*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (_tmp4_);
	}
	result = _tmp5_;
	_g_object_unref0 (selected_layout_row);
	return result;
}

static Block13Data*
block13_data_ref (Block13Data* _data13_)
{
	g_atomic_int_inc (&_data13_->_ref_count_);
	return _data13_;
}

static void
block13_data_unref (void * _userdata_)
{
	Block13Data* _data13_;
	_data13_ = (Block13Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
		KeyboardLayoutPageAddLayoutDialog* self;
		self = _data13_->self;
		_g_object_unref0 (_data13_->store);
		_g_object_unref0 (self);
		g_slice_free (Block13Data, _data13_);
	}
}

static void
__lambda38_ (Block13Data* _data13_,
             const gchar* key,
             const gchar* val)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp0_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp1_;
	self = _data13_->self;
	g_return_if_fail (key != NULL);
	g_return_if_fail (val != NULL);
	_tmp0_ = keyboard_layout_page_add_layout_dialog_list_store_item_new (key, val);
	_tmp1_ = _tmp0_;
	g_list_store_append (_data13_->store, (GObject*) _tmp1_);
	_g_object_unref0 (_tmp1_);
}

static void
___lambda38__gh_func (gconstpointer key,
                      gconstpointer value,
                      gpointer self)
{
	__lambda38_ (self, (const gchar*) key, (const gchar*) value);
}

static gint
__lambda39_ (KeyboardLayoutPageAddLayoutDialog* self,
             GObject* a,
             GObject* b)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gint result;
	g_return_val_if_fail (a != NULL, -1);
	g_return_val_if_fail (b != NULL, -1);
	_tmp0_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (G_TYPE_CHECK_INSTANCE_CAST (a, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem));
	_tmp1_ = _tmp0_;
	if (g_strcmp0 (_tmp1_, _ ("Default")) == 0) {
		result = -1;
		return result;
	}
	_tmp2_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (G_TYPE_CHECK_INSTANCE_CAST (b, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem));
	_tmp3_ = _tmp2_;
	if (g_strcmp0 (_tmp3_, _ ("Default")) == 0) {
		result = 1;
		return result;
	}
	_tmp4_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (G_TYPE_CHECK_INSTANCE_CAST (a, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem));
	_tmp5_ = _tmp4_;
	_tmp6_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (G_TYPE_CHECK_INSTANCE_CAST (b, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem));
	_tmp7_ = _tmp6_;
	result = g_utf8_collate (_tmp5_, _tmp7_);
	return result;
}

static gint
___lambda39__gcompare_data_func (gconstpointer a,
                                 gconstpointer b,
                                 gpointer self)
{
	gint result;
	result = __lambda39_ ((KeyboardLayoutPageAddLayoutDialog*) self, (GObject*) a, (GObject*) b);
	return result;
}

static void
keyboard_layout_page_add_layout_dialog_update_list_store (KeyboardLayoutPageAddLayoutDialog* self,
                                                          GListStore* store,
                                                          GHashTable* values)
{
	Block13Data* _data13_;
	GListStore* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (store != NULL);
	g_return_if_fail (values != NULL);
	_data13_ = g_slice_new0 (Block13Data);
	_data13_->_ref_count_ = 1;
	_data13_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (store);
	_g_object_unref0 (_data13_->store);
	_data13_->store = _tmp0_;
	g_list_store_remove_all (_data13_->store);
	g_hash_table_foreach (values, ___lambda38__gh_func, _data13_);
	g_list_store_sort (_data13_->store, ___lambda39__gcompare_data_func, self);
	block13_data_unref (_data13_);
	_data13_ = NULL;
}

KeyboardLayoutPageAddLayoutDialog*
keyboard_layout_page_add_layout_dialog_construct (GType object_type)
{
	KeyboardLayoutPageAddLayoutDialog * self = NULL;
	self = (KeyboardLayoutPageAddLayoutDialog*) granite_dialog_construct (object_type);
	return self;
}

KeyboardLayoutPageAddLayoutDialog*
keyboard_layout_page_add_layout_dialog_new (void)
{
	return keyboard_layout_page_add_layout_dialog_construct (KEYBOARD_LAYOUT_PAGE_TYPE_ADD_LAYOUT_DIALOG);
}

static void
g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure,
                                             GValue * return_value,
                                             guint n_param_values,
                                             const GValue * param_values,
                                             gpointer invocation_hint,
                                             gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, const char* arg_1, const char* arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_STRING callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), data2);
}

static inline gpointer
keyboard_layout_page_add_layout_dialog_list_store_item_get_instance_private (KeyboardLayoutPageAddLayoutDialogListStoreItem* self)
{
	return G_STRUCT_MEMBER_P (self, KeyboardLayoutPageAddLayoutDialogListStoreItem_private_offset);
}

static KeyboardLayoutPageAddLayoutDialogListStoreItem*
keyboard_layout_page_add_layout_dialog_list_store_item_construct (GType object_type,
                                                                  const gchar* id,
                                                                  const gchar* name)
{
	KeyboardLayoutPageAddLayoutDialogListStoreItem * self = NULL;
	g_return_val_if_fail (id != NULL, NULL);
	g_return_val_if_fail (name != NULL, NULL);
	self = (KeyboardLayoutPageAddLayoutDialogListStoreItem*) g_object_new (object_type, "id", id, "name", name, NULL);
	return self;
}

static KeyboardLayoutPageAddLayoutDialogListStoreItem*
keyboard_layout_page_add_layout_dialog_list_store_item_new (const gchar* id,
                                                            const gchar* name)
{
	return keyboard_layout_page_add_layout_dialog_list_store_item_construct (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, id, name);
}

static const gchar*
keyboard_layout_page_add_layout_dialog_list_store_item_get_id (KeyboardLayoutPageAddLayoutDialogListStoreItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_id;
	result = _tmp0_;
	return result;
}

static void
keyboard_layout_page_add_layout_dialog_list_store_item_set_id (KeyboardLayoutPageAddLayoutDialogListStoreItem* self,
                                                               const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id);
		self->priv->_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, keyboard_layout_page_add_layout_dialog_list_store_item_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY]);
	}
}

static const gchar*
keyboard_layout_page_add_layout_dialog_list_store_item_get_name (KeyboardLayoutPageAddLayoutDialogListStoreItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

static void
keyboard_layout_page_add_layout_dialog_list_store_item_set_name (KeyboardLayoutPageAddLayoutDialogListStoreItem* self,
                                                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, keyboard_layout_page_add_layout_dialog_list_store_item_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY]);
	}
}

static void
keyboard_layout_page_add_layout_dialog_list_store_item_class_init (KeyboardLayoutPageAddLayoutDialogListStoreItemClass * klass,
                                                                   gpointer klass_data)
{
	keyboard_layout_page_add_layout_dialog_list_store_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyboardLayoutPageAddLayoutDialogListStoreItem_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_keyboard_layout_page_add_layout_dialog_list_store_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_keyboard_layout_page_add_layout_dialog_list_store_item_set_property;
	G_OBJECT_CLASS (klass)->finalize = keyboard_layout_page_add_layout_dialog_list_store_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY, keyboard_layout_page_add_layout_dialog_list_store_item_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY, keyboard_layout_page_add_layout_dialog_list_store_item_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
keyboard_layout_page_add_layout_dialog_list_store_item_instance_init (KeyboardLayoutPageAddLayoutDialogListStoreItem * self,
                                                                      gpointer klass)
{
	self->priv = keyboard_layout_page_add_layout_dialog_list_store_item_get_instance_private (self);
}

static void
keyboard_layout_page_add_layout_dialog_list_store_item_finalize (GObject * obj)
{
	KeyboardLayoutPageAddLayoutDialogListStoreItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_name);
	G_OBJECT_CLASS (keyboard_layout_page_add_layout_dialog_list_store_item_parent_class)->finalize (obj);
}

static GType
keyboard_layout_page_add_layout_dialog_list_store_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyboardLayoutPageAddLayoutDialogListStoreItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keyboard_layout_page_add_layout_dialog_list_store_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyboardLayoutPageAddLayoutDialogListStoreItem), 0, (GInstanceInitFunc) keyboard_layout_page_add_layout_dialog_list_store_item_instance_init, NULL };
	GType keyboard_layout_page_add_layout_dialog_list_store_item_type_id;
	keyboard_layout_page_add_layout_dialog_list_store_item_type_id = g_type_register_static (G_TYPE_OBJECT, "KeyboardLayoutPageAddLayoutDialogListStoreItem", &g_define_type_info, 0);
	KeyboardLayoutPageAddLayoutDialogListStoreItem_private_offset = g_type_add_instance_private (keyboard_layout_page_add_layout_dialog_list_store_item_type_id, sizeof (KeyboardLayoutPageAddLayoutDialogListStoreItemPrivate));
	return keyboard_layout_page_add_layout_dialog_list_store_item_type_id;
}

static GType
keyboard_layout_page_add_layout_dialog_list_store_item_get_type (void)
{
	static volatile gsize keyboard_layout_page_add_layout_dialog_list_store_item_type_id__once = 0;
	if (g_once_init_enter (&keyboard_layout_page_add_layout_dialog_list_store_item_type_id__once)) {
		GType keyboard_layout_page_add_layout_dialog_list_store_item_type_id;
		keyboard_layout_page_add_layout_dialog_list_store_item_type_id = keyboard_layout_page_add_layout_dialog_list_store_item_get_type_once ();
		g_once_init_leave (&keyboard_layout_page_add_layout_dialog_list_store_item_type_id__once, keyboard_layout_page_add_layout_dialog_list_store_item_type_id);
	}
	return keyboard_layout_page_add_layout_dialog_list_store_item_type_id__once;
}

static void
_vala_keyboard_layout_page_add_layout_dialog_list_store_item_get_property (GObject * object,
                                                                           guint property_id,
                                                                           GValue * value,
                                                                           GParamSpec * pspec)
{
	KeyboardLayoutPageAddLayoutDialogListStoreItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem);
	switch (property_id) {
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY:
		g_value_set_string (value, keyboard_layout_page_add_layout_dialog_list_store_item_get_id (self));
		break;
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY:
		g_value_set_string (value, keyboard_layout_page_add_layout_dialog_list_store_item_get_name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_keyboard_layout_page_add_layout_dialog_list_store_item_set_property (GObject * object,
                                                                           guint property_id,
                                                                           const GValue * value,
                                                                           GParamSpec * pspec)
{
	KeyboardLayoutPageAddLayoutDialogListStoreItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem);
	switch (property_id) {
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_ID_PROPERTY:
		keyboard_layout_page_add_layout_dialog_list_store_item_set_id (self, g_value_get_string (value));
		break;
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LIST_STORE_ITEM_NAME_PROPERTY:
		keyboard_layout_page_add_layout_dialog_list_store_item_set_name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
keyboard_layout_page_add_layout_dialog_layout_row_get_instance_private (KeyboardLayoutPageAddLayoutDialogLayoutRow* self)
{
	return G_STRUCT_MEMBER_P (self, KeyboardLayoutPageAddLayoutDialogLayoutRow_private_offset);
}

static KeyboardLayoutPageAddLayoutDialogLayoutRow*
keyboard_layout_page_add_layout_dialog_layout_row_construct (GType object_type,
                                                             const gchar* name)
{
	KeyboardLayoutPageAddLayoutDialogLayoutRow * self = NULL;
	g_return_val_if_fail (name != NULL, NULL);
	self = (KeyboardLayoutPageAddLayoutDialogLayoutRow*) g_object_new (object_type, "rname", name, NULL);
	return self;
}

static KeyboardLayoutPageAddLayoutDialogLayoutRow*
keyboard_layout_page_add_layout_dialog_layout_row_new (const gchar* name)
{
	return keyboard_layout_page_add_layout_dialog_layout_row_construct (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, name);
}

static const gchar*
keyboard_layout_page_add_layout_dialog_layout_row_get_rname (KeyboardLayoutPageAddLayoutDialogLayoutRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_rname;
	result = _tmp0_;
	return result;
}

static void
keyboard_layout_page_add_layout_dialog_layout_row_set_rname (KeyboardLayoutPageAddLayoutDialogLayoutRow* self,
                                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = keyboard_layout_page_add_layout_dialog_layout_row_get_rname (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_rname);
		self->priv->_rname = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, keyboard_layout_page_add_layout_dialog_layout_row_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY]);
	}
}

static GObject *
keyboard_layout_page_add_layout_dialog_layout_row_constructor (GType type,
                                                               guint n_construct_properties,
                                                               GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	KeyboardLayoutPageAddLayoutDialogLayoutRow * self;
	GtkLabel* label = NULL;
	const gchar* _tmp0_;
	GtkLabel* _tmp1_ = NULL;
	GtkLabel* _tmp2_;
	parent_class = G_OBJECT_CLASS (keyboard_layout_page_add_layout_dialog_layout_row_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRow);
	_tmp0_ = self->priv->_rname;
	_tmp1_ = (GtkLabel*) gtk_label_new (_tmp0_);
	gtk_widget_set_margin_top ((GtkWidget*) _tmp1_, 6);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp1_, 12);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp1_, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp1_, 12);
	gtk_label_set_xalign (_tmp1_, (gfloat) 0);
	g_object_ref_sink (_tmp1_);
	label = _tmp1_;
	_tmp2_ = label;
	gtk_list_box_row_set_child ((GtkListBoxRow*) self, (GtkWidget*) _tmp2_);
	_g_object_unref0 (label);
	return obj;
}

static void
keyboard_layout_page_add_layout_dialog_layout_row_class_init (KeyboardLayoutPageAddLayoutDialogLayoutRowClass * klass,
                                                              gpointer klass_data)
{
	keyboard_layout_page_add_layout_dialog_layout_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyboardLayoutPageAddLayoutDialogLayoutRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_keyboard_layout_page_add_layout_dialog_layout_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_keyboard_layout_page_add_layout_dialog_layout_row_set_property;
	G_OBJECT_CLASS (klass)->constructor = keyboard_layout_page_add_layout_dialog_layout_row_constructor;
	G_OBJECT_CLASS (klass)->finalize = keyboard_layout_page_add_layout_dialog_layout_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY, keyboard_layout_page_add_layout_dialog_layout_row_properties[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY] = g_param_spec_string ("rname", "rname", "rname", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
keyboard_layout_page_add_layout_dialog_layout_row_instance_init (KeyboardLayoutPageAddLayoutDialogLayoutRow * self,
                                                                 gpointer klass)
{
	self->priv = keyboard_layout_page_add_layout_dialog_layout_row_get_instance_private (self);
}

static void
keyboard_layout_page_add_layout_dialog_layout_row_finalize (GObject * obj)
{
	KeyboardLayoutPageAddLayoutDialogLayoutRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRow);
	_g_free0 (self->priv->_rname);
	G_OBJECT_CLASS (keyboard_layout_page_add_layout_dialog_layout_row_parent_class)->finalize (obj);
}

static GType
keyboard_layout_page_add_layout_dialog_layout_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyboardLayoutPageAddLayoutDialogLayoutRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keyboard_layout_page_add_layout_dialog_layout_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyboardLayoutPageAddLayoutDialogLayoutRow), 0, (GInstanceInitFunc) keyboard_layout_page_add_layout_dialog_layout_row_instance_init, NULL };
	GType keyboard_layout_page_add_layout_dialog_layout_row_type_id;
	keyboard_layout_page_add_layout_dialog_layout_row_type_id = g_type_register_static (gtk_list_box_row_get_type (), "KeyboardLayoutPageAddLayoutDialogLayoutRow", &g_define_type_info, 0);
	KeyboardLayoutPageAddLayoutDialogLayoutRow_private_offset = g_type_add_instance_private (keyboard_layout_page_add_layout_dialog_layout_row_type_id, sizeof (KeyboardLayoutPageAddLayoutDialogLayoutRowPrivate));
	return keyboard_layout_page_add_layout_dialog_layout_row_type_id;
}

static GType
keyboard_layout_page_add_layout_dialog_layout_row_get_type (void)
{
	static volatile gsize keyboard_layout_page_add_layout_dialog_layout_row_type_id__once = 0;
	if (g_once_init_enter (&keyboard_layout_page_add_layout_dialog_layout_row_type_id__once)) {
		GType keyboard_layout_page_add_layout_dialog_layout_row_type_id;
		keyboard_layout_page_add_layout_dialog_layout_row_type_id = keyboard_layout_page_add_layout_dialog_layout_row_get_type_once ();
		g_once_init_leave (&keyboard_layout_page_add_layout_dialog_layout_row_type_id__once, keyboard_layout_page_add_layout_dialog_layout_row_type_id);
	}
	return keyboard_layout_page_add_layout_dialog_layout_row_type_id__once;
}

static void
_vala_keyboard_layout_page_add_layout_dialog_layout_row_get_property (GObject * object,
                                                                      guint property_id,
                                                                      GValue * value,
                                                                      GParamSpec * pspec)
{
	KeyboardLayoutPageAddLayoutDialogLayoutRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRow);
	switch (property_id) {
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY:
		g_value_set_string (value, keyboard_layout_page_add_layout_dialog_layout_row_get_rname (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_keyboard_layout_page_add_layout_dialog_layout_row_set_property (GObject * object,
                                                                      guint property_id,
                                                                      const GValue * value,
                                                                      GParamSpec * pspec)
{
	KeyboardLayoutPageAddLayoutDialogLayoutRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LAYOUT_ROW, KeyboardLayoutPageAddLayoutDialogLayoutRow);
	switch (property_id) {
		case KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ROW_RNAME_PROPERTY:
		keyboard_layout_page_add_layout_dialog_layout_row_set_rname (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static Block14Data*
block14_data_ref (Block14Data* _data14_)
{
	g_atomic_int_inc (&_data14_->_ref_count_);
	return _data14_;
}

static void
block14_data_unref (void * _userdata_)
{
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		KeyboardLayoutPageAddLayoutDialog* self;
		self = _data14_->self;
		_g_object_unref0 (_data14_->button_add);
		_g_object_unref0 (_data14_->deck);
		_g_object_unref0 (_data14_->header_revealer);
		_g_object_unref0 (_data14_->keyboard_map_revealer);
		_g_object_unref0 (_data14_->keyboard_map_button);
		_g_object_unref0 (_data14_->layout_scrolled);
		_g_object_unref0 (_data14_->layout_list_title);
		_g_object_unref0 (_data14_->back_button);
		_g_object_unref0 (_data14_->input_language_box);
		_g_object_unref0 (_data14_->search_entry);
		_g_object_unref0 (self);
		g_slice_free (Block14Data, _data14_);
	}
}

static GtkWidget*
_keyboard_layout_page_add_layout_dialog___lambda40_ (KeyboardLayoutPageAddLayoutDialog* self,
                                                     GObject* item)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	KeyboardLayoutPageAddLayoutDialogLayoutRow* _tmp2_;
	GtkWidget* result;
	g_return_val_if_fail (item != NULL, NULL);
	_tmp0_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (G_TYPE_CHECK_INSTANCE_CAST (item, KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM, KeyboardLayoutPageAddLayoutDialogListStoreItem));
	_tmp1_ = _tmp0_;
	_tmp2_ = keyboard_layout_page_add_layout_dialog_layout_row_new (_tmp1_);
	g_object_ref_sink (_tmp2_);
	result = (GtkWidget*) _tmp2_;
	return result;
}

static GtkWidget*
__keyboard_layout_page_add_layout_dialog___lambda40__gtk_list_box_create_widget_func (GObject* item,
                                                                                      gpointer self)
{
	GtkWidget* result;
	result = _keyboard_layout_page_add_layout_dialog___lambda40_ ((KeyboardLayoutPageAddLayoutDialog*) self, item);
	return result;
}

static void
_keyboard_layout_page_add_layout_dialog___lambda41_ (Block14Data* _data14_)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	AdwLeaflet* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	GtkBox* _tmp3_;
	self = _data14_->self;
	_tmp0_ = _data14_->deck;
	_tmp1_ = adw_leaflet_get_visible_child (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = _data14_->input_language_box;
	if (_tmp2_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget)) {
		GtkRevealer* _tmp4_;
		GtkListBox* _tmp5_;
		_tmp4_ = _data14_->header_revealer;
		gtk_revealer_set_reveal_child (_tmp4_, FALSE);
		_tmp5_ = self->priv->layout_list_box;
		gtk_list_box_unselect_all (_tmp5_);
	} else {
		AdwLeaflet* _tmp6_;
		GtkWidget* _tmp7_;
		GtkWidget* _tmp8_;
		GtkScrolledWindow* _tmp9_;
		_tmp6_ = _data14_->deck;
		_tmp7_ = adw_leaflet_get_visible_child (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp9_ = _data14_->layout_scrolled;
		if (_tmp8_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget)) {
			GtkRevealer* _tmp10_;
			GtkRevealer* _tmp11_;
			GtkButton* _tmp12_;
			GtkLabel* _tmp13_;
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp14_;
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp15_;
			const gchar* _tmp16_;
			const gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			_tmp10_ = _data14_->header_revealer;
			gtk_revealer_set_reveal_child (_tmp10_, TRUE);
			_tmp11_ = _data14_->keyboard_map_revealer;
			gtk_revealer_set_reveal_child (_tmp11_, TRUE);
			_tmp12_ = _data14_->back_button;
			gtk_button_set_label (_tmp12_, _ (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_INPUT_LANGUAGE));
			_tmp13_ = _data14_->layout_list_title;
			_tmp14_ = keyboard_layout_page_add_layout_dialog_get_selected_lang (self);
			_tmp15_ = _tmp14_;
			_tmp16_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (_tmp15_);
			_tmp17_ = _tmp16_;
			_tmp18_ = g_strdup_printf ("<b>%s</b>", _tmp17_);
			_tmp19_ = _tmp18_;
			gtk_label_set_label (_tmp13_, _tmp19_);
			_g_free0 (_tmp19_);
			_g_object_unref0 (_tmp15_);
		}
	}
}

static void
__keyboard_layout_page_add_layout_dialog___lambda41__g_object_notify (GObject* _sender,
                                                                      GParamSpec* pspec,
                                                                      gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda41_ (self);
}

static gboolean
string_contains (const gchar* self,
                 const gchar* needle)
{
	gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
	result = _tmp0_ != NULL;
	return result;
}

static gboolean
_keyboard_layout_page_add_layout_dialog___lambda42_ (Block14Data* _data14_,
                                                     GtkListBoxRow* list_box_row)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* item = NULL;
	GListStore* _tmp0_;
	GObject* _tmp1_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp2_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	GtkSearchEntry* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gboolean _tmp13_;
	gboolean result;
	self = _data14_->self;
	g_return_val_if_fail (list_box_row != NULL, FALSE);
	_tmp0_ = self->priv->language_list;
	_tmp1_ = g_list_model_get_item ((GListModel*) _tmp0_, (guint) gtk_list_box_row_get_index (list_box_row));
	_tmp2_ = KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM (_tmp1_) ? ((KeyboardLayoutPageAddLayoutDialogListStoreItem*) _tmp1_) : NULL;
	if (_tmp2_ == NULL) {
		_g_object_unref0 (_tmp1_);
	}
	item = _tmp2_;
	_tmp3_ = item;
	_tmp4_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_utf8_strdown (_tmp5_, (gssize) -1);
	_tmp7_ = _tmp6_;
	_tmp8_ = _data14_->search_entry;
	_tmp9_ = gtk_editable_get_text ((GtkEditable*) _tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_utf8_strdown (_tmp10_, (gssize) -1);
	_tmp12_ = _tmp11_;
	_tmp13_ = string_contains (_tmp7_, _tmp12_);
	_g_free0 (_tmp12_);
	_g_free0 (_tmp7_);
	result = _tmp13_;
	_g_object_unref0 (item);
	return result;
}

static gboolean
__keyboard_layout_page_add_layout_dialog___lambda42__gtk_list_box_filter_func (GtkListBoxRow* row,
                                                                               gpointer self)
{
	gboolean result;
	result = _keyboard_layout_page_add_layout_dialog___lambda42_ (self, row);
	return result;
}

static void
_keyboard_layout_page_add_layout_dialog___lambda43_ (KeyboardLayoutPageAddLayoutDialog* self)
{
	GtkListBox* _tmp0_;
	_tmp0_ = self->priv->input_language_list_box;
	gtk_list_box_invalidate_filter (_tmp0_);
}

static void
__keyboard_layout_page_add_layout_dialog___lambda43__gtk_search_entry_search_changed (GtkSearchEntry* _sender,
                                                                                      gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda43_ ((KeyboardLayoutPageAddLayoutDialog*) self);
}

static void
_keyboard_layout_page_add_layout_dialog___lambda44_ (KeyboardLayoutPageAddLayoutDialog* self,
                                                     gint response_id)
{
	if (response_id == ((gint) GTK_RESPONSE_HELP)) {
		return;
	} else {
		if (response_id == ((gint) GTK_RESPONSE_ACCEPT)) {
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp0_;
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp1_;
			const gchar* _tmp2_;
			const gchar* _tmp3_;
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp4_;
			KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp5_;
			const gchar* _tmp6_;
			const gchar* _tmp7_;
			_tmp0_ = keyboard_layout_page_add_layout_dialog_get_selected_lang (self);
			_tmp1_ = _tmp0_;
			_tmp2_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp1_);
			_tmp3_ = _tmp2_;
			_tmp4_ = keyboard_layout_page_add_layout_dialog_get_selected_layout (self);
			_tmp5_ = _tmp4_;
			_tmp6_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp5_);
			_tmp7_ = _tmp6_;
			g_signal_emit (self, keyboard_layout_page_add_layout_dialog_signals[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ADDED_SIGNAL], 0, _tmp3_, _tmp7_);
			_g_object_unref0 (_tmp5_);
			_g_object_unref0 (_tmp1_);
		}
	}
	gtk_window_destroy ((GtkWindow*) self);
}

static void
__keyboard_layout_page_add_layout_dialog___lambda44__gtk_dialog_response (GtkDialog* _sender,
                                                                          gint response_id,
                                                                          gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda44_ ((KeyboardLayoutPageAddLayoutDialog*) self, response_id);
}

static void
_keyboard_layout_page_add_layout_dialog___lambda45_ (Block14Data* _data14_)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	AdwLeaflet* _tmp0_;
	self = _data14_->self;
	_tmp0_ = _data14_->deck;
	adw_leaflet_navigate (_tmp0_, ADW_NAVIGATION_DIRECTION_BACK);
}

static void
__keyboard_layout_page_add_layout_dialog___lambda45__gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda45_ (self);
}

static void
_keyboard_layout_page_add_layout_dialog___lambda46_ (Block14Data* _data14_)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* selected_lang = NULL;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp0_;
	GListStore* _tmp1_;
	KeyboardXkbLayoutHandler* _tmp2_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	GHashTable* _tmp6_;
	GHashTable* _tmp7_;
	GtkListBox* _tmp8_;
	GtkListBox* _tmp9_;
	GtkListBoxRow* _tmp10_;
	GtkListBox* _tmp11_;
	GtkListBoxRow* _tmp12_;
	AdwLeaflet* _tmp15_;
	GtkScrolledWindow* _tmp16_;
	self = _data14_->self;
	_tmp0_ = keyboard_layout_page_add_layout_dialog_get_selected_lang (self);
	selected_lang = _tmp0_;
	_tmp1_ = self->priv->layout_list;
	_tmp2_ = self->priv->handler;
	_tmp3_ = selected_lang;
	_tmp4_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = keyboard_xkb_layout_handler_get_variants_for_language (_tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	keyboard_layout_page_add_layout_dialog_update_list_store (self, _tmp1_, _tmp7_);
	_g_hash_table_unref0 (_tmp7_);
	_tmp8_ = self->priv->layout_list_box;
	_tmp9_ = self->priv->layout_list_box;
	_tmp10_ = gtk_list_box_get_row_at_index (_tmp9_, 0);
	gtk_list_box_select_row (_tmp8_, _tmp10_);
	_tmp11_ = self->priv->layout_list_box;
	_tmp12_ = gtk_list_box_get_row_at_index (_tmp11_, 0);
	if (_tmp12_ != NULL) {
		GtkListBox* _tmp13_;
		GtkListBoxRow* _tmp14_;
		_tmp13_ = self->priv->layout_list_box;
		_tmp14_ = gtk_list_box_get_row_at_index (_tmp13_, 0);
		gtk_widget_grab_focus ((GtkWidget*) _tmp14_);
	}
	_tmp15_ = _data14_->deck;
	_tmp16_ = _data14_->layout_scrolled;
	adw_leaflet_set_visible_child (_tmp15_, (GtkWidget*) _tmp16_);
	_g_object_unref0 (selected_lang);
}

static void
__keyboard_layout_page_add_layout_dialog___lambda46__gtk_list_box_row_activated (GtkListBox* _sender,
                                                                                 GtkListBoxRow* row,
                                                                                 gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda46_ (self);
}

static void
_keyboard_layout_page_add_layout_dialog___lambda47_ (KeyboardLayoutPageAddLayoutDialog* self)
{
	gchar* command = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GError* _inner_error0_ = NULL;
	_tmp0_ = self->priv->layout_id;
	_tmp1_ = g_strconcat ("gkbd-keyboard-display \"--layout=", _tmp0_, NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "\"", NULL);
	_tmp4_ = _tmp3_;
	_g_free0 (_tmp2_);
	command = _tmp4_;
	{
		GAppInfo* _tmp5_ = NULL;
		const gchar* _tmp6_;
		GAppInfo* _tmp7_;
		_tmp6_ = command;
		_tmp7_ = g_app_info_create_from_commandline (_tmp6_, NULL, G_APP_INFO_CREATE_NONE, &_inner_error0_);
		_tmp5_ = _tmp7_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		g_app_info_launch (_tmp5_, NULL, NULL, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_object_unref0 (_tmp5_);
			goto __catch0_g_error;
		}
		_g_object_unref0 (_tmp5_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp8_;
		const gchar* _tmp9_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp8_ = e;
		_tmp9_ = _tmp8_->message;
		g_warning ("AddLayoutDialog.vala:213: Error launching keyboard layout display: %s", _tmp9_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (command);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
	_g_free0 (command);
}

static void
__keyboard_layout_page_add_layout_dialog___lambda47__gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda47_ ((KeyboardLayoutPageAddLayoutDialog*) self);
}

static void
_keyboard_layout_page_add_layout_dialog___lambda48_ (Block14Data* _data14_,
                                                     GtkListBoxRow* row)
{
	KeyboardLayoutPageAddLayoutDialog* self;
	GtkButton* _tmp0_;
	GtkWidget* _tmp1_;
	self = _data14_->self;
	_tmp0_ = _data14_->keyboard_map_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, row != NULL);
	_tmp1_ = _data14_->button_add;
	gtk_widget_set_sensitive (_tmp1_, row != NULL);
	if (row != NULL) {
		KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp2_;
		KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp3_;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp6_;
		KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp7_;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp2_ = keyboard_layout_page_add_layout_dialog_get_selected_lang (self);
		_tmp3_ = _tmp2_;
		_tmp4_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp6_ = keyboard_layout_page_add_layout_dialog_get_selected_layout (self);
		_tmp7_ = _tmp6_;
		_tmp8_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = g_strdup_printf ("%s\t%s", _tmp5_, _tmp9_);
		_g_free0 (self->priv->layout_id);
		self->priv->layout_id = _tmp10_;
		_g_object_unref0 (_tmp7_);
		_g_object_unref0 (_tmp3_);
	}
}

static void
__keyboard_layout_page_add_layout_dialog___lambda48__gtk_list_box_row_selected (GtkListBox* _sender,
                                                                                GtkListBoxRow* row,
                                                                                gpointer self)
{
	_keyboard_layout_page_add_layout_dialog___lambda48_ (self, row);
}

static GObject *
keyboard_layout_page_add_layout_dialog_constructor (GType type,
                                                    guint n_construct_properties,
                                                    GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	KeyboardLayoutPageAddLayoutDialog * self;
	Block14Data* _data14_;
	gchar* _tmp0_;
	GtkSearchEntry* _tmp1_ = NULL;
	KeyboardXkbLayoutHandler* _tmp2_;
	GListStore* _tmp3_;
	GListStore* _tmp4_;
	GListStore* _tmp5_;
	KeyboardXkbLayoutHandler* _tmp6_;
	GHashTable* _tmp7_;
	GHashTable* _tmp8_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* first_lang = NULL;
	GListStore* _tmp9_;
	GObject* _tmp10_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp11_;
	GListStore* _tmp12_;
	KeyboardXkbLayoutHandler* _tmp13_;
	KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp14_;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	GHashTable* _tmp17_;
	GHashTable* _tmp18_;
	GtkListBox* _tmp19_;
	GtkScrolledWindow* input_language_scrolled = NULL;
	GtkListBox* _tmp32_;
	GtkWidget* _tmp33_;
	GtkScrolledWindow* _tmp34_ = NULL;
	GtkBox* _tmp35_;
	GtkBox* _tmp36_;
	GtkSearchEntry* _tmp37_;
	GtkBox* _tmp38_;
	GtkScrolledWindow* _tmp39_;
	GtkButton* _tmp40_ = NULL;
	GtkButton* _tmp41_;
	GtkLabel* _tmp42_ = NULL;
	GtkListBox* _tmp43_ = NULL;
	GtkListBox* _tmp44_;
	GListStore* _tmp45_;
	GtkListBox* _tmp46_;
	GtkWidget* _tmp47_;
	GtkScrolledWindow* _tmp48_ = NULL;
	GtkButton* _tmp49_ = NULL;
	GtkButton* _tmp50_;
	GtkWidget* _tmp51_;
	GtkRevealer* _tmp52_ = NULL;
	GtkCenterBox* header_box = NULL;
	GtkButton* _tmp53_;
	GtkWidget* _tmp54_;
	GtkLabel* _tmp55_;
	GtkWidget* _tmp56_;
	GtkRevealer* _tmp57_;
	GtkWidget* _tmp58_;
	GtkCenterBox* _tmp59_ = NULL;
	GtkGrid* header_grid = NULL;
	GtkGrid* _tmp60_;
	GtkGrid* _tmp61_;
	GtkCenterBox* _tmp62_;
	GtkGrid* _tmp63_;
	GtkSeparator* _tmp64_;
	GtkSeparator* _tmp65_;
	GtkGrid* _tmp66_;
	GtkWidget* _tmp67_;
	GtkRevealer* _tmp68_ = NULL;
	AdwLeaflet* _tmp69_ = NULL;
	AdwLeaflet* _tmp70_;
	GtkBox* _tmp71_;
	AdwLeaflet* _tmp72_;
	GtkScrolledWindow* _tmp73_;
	GtkBox* frame_box = NULL;
	GtkBox* _tmp74_;
	GtkBox* _tmp75_;
	GtkRevealer* _tmp76_;
	GtkBox* _tmp77_;
	AdwLeaflet* _tmp78_;
	GtkFrame* frame = NULL;
	GtkBox* _tmp79_;
	GtkWidget* _tmp80_;
	GtkFrame* _tmp81_ = NULL;
	GtkFrame* _tmp82_;
	GtkWidget* button_cancel = NULL;
	GtkWidget* _tmp83_;
	GtkWidget* _tmp84_;
	GtkWidget* _tmp85_;
	GtkWidget* _tmp86_;
	GtkWidget* _tmp87_;
	GtkWidget* _tmp88_;
	GtkBox* _tmp89_;
	GtkFrame* _tmp90_;
	GtkSearchEntry* _tmp91_;
	AdwLeaflet* _tmp92_;
	GtkListBox* _tmp93_;
	GtkSearchEntry* _tmp94_;
	GtkButton* _tmp95_;
	GtkListBox* _tmp96_;
	GtkButton* _tmp97_;
	GtkListBox* _tmp98_;
	parent_class = G_OBJECT_CLASS (keyboard_layout_page_add_layout_dialog_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_LAYOUT_PAGE_TYPE_ADD_LAYOUT_DIALOG, KeyboardLayoutPageAddLayoutDialog);
	_data14_ = g_slice_new0 (Block14Data);
	_data14_->_ref_count_ = 1;
	_data14_->self = g_object_ref (self);
	g_object_set ((GtkWindow*) self, "default-height", 450, NULL);
	g_object_set ((GtkWindow*) self, "default-width", 750, NULL);
	_tmp0_ = g_strdup (_ ("Search input language"));
	_tmp1_ = (GtkSearchEntry*) gtk_search_entry_new ();
	gtk_widget_set_margin_top ((GtkWidget*) _tmp1_, 12);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp1_, 12);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp1_, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp1_, 12);
	g_object_set (_tmp1_, "placeholder-text", _tmp0_, NULL);
	_g_free0 (_tmp0_);
	g_object_ref_sink (_tmp1_);
	_data14_->search_entry = _tmp1_;
	_tmp2_ = keyboard_xkb_layout_handler_get_instance ();
	_g_object_unref0 (self->priv->handler);
	self->priv->handler = _tmp2_;
	_tmp3_ = g_list_store_new (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM);
	_g_object_unref0 (self->priv->language_list);
	self->priv->language_list = _tmp3_;
	_tmp4_ = g_list_store_new (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_TYPE_LIST_STORE_ITEM);
	_g_object_unref0 (self->priv->layout_list);
	self->priv->layout_list = _tmp4_;
	_tmp5_ = self->priv->language_list;
	_tmp6_ = self->priv->handler;
	_tmp7_ = keyboard_xkb_layout_handler_get_languages (_tmp6_);
	_tmp8_ = _tmp7_;
	keyboard_layout_page_add_layout_dialog_update_list_store (self, _tmp5_, _tmp8_);
	_tmp9_ = self->priv->language_list;
	_tmp10_ = g_list_model_get_item ((GListModel*) _tmp9_, (guint) 0);
	_tmp11_ = KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM (_tmp10_) ? ((KeyboardLayoutPageAddLayoutDialogListStoreItem*) _tmp10_) : NULL;
	if (_tmp11_ == NULL) {
		_g_object_unref0 (_tmp10_);
	}
	first_lang = _tmp11_;
	_tmp12_ = self->priv->layout_list;
	_tmp13_ = self->priv->handler;
	_tmp14_ = first_lang;
	_tmp15_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_id (_tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = keyboard_xkb_layout_handler_get_variants_for_language (_tmp13_, _tmp16_);
	_tmp18_ = _tmp17_;
	keyboard_layout_page_add_layout_dialog_update_list_store (self, _tmp12_, _tmp18_);
	_g_hash_table_unref0 (_tmp18_);
	_tmp19_ = (GtkListBox*) gtk_list_box_new ();
	g_object_ref_sink (_tmp19_);
	_g_object_unref0 (self->priv->input_language_list_box);
	self->priv->input_language_list_box = _tmp19_;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp20_ = FALSE;
			_tmp20_ = TRUE;
			while (TRUE) {
				GListStore* _tmp22_;
				KeyboardLayoutPageAddLayoutDialogListStoreItem* item = NULL;
				GListStore* _tmp23_;
				GObject* _tmp24_;
				KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp25_;
				KeyboardLayoutPageAddLayoutDialogLayoutRow* row = NULL;
				KeyboardLayoutPageAddLayoutDialogListStoreItem* _tmp26_;
				const gchar* _tmp27_;
				const gchar* _tmp28_;
				KeyboardLayoutPageAddLayoutDialogLayoutRow* _tmp29_;
				GtkListBox* _tmp30_;
				KeyboardLayoutPageAddLayoutDialogLayoutRow* _tmp31_;
				if (!_tmp20_) {
					gint _tmp21_;
					_tmp21_ = i;
					i = _tmp21_ + 1;
				}
				_tmp20_ = FALSE;
				_tmp22_ = self->priv->language_list;
				if (!(((guint) i) < g_list_model_get_n_items ((GListModel*) _tmp22_))) {
					break;
				}
				_tmp23_ = self->priv->language_list;
				_tmp24_ = g_list_model_get_item ((GListModel*) _tmp23_, (guint) i);
				_tmp25_ = KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_IS_LIST_STORE_ITEM (_tmp24_) ? ((KeyboardLayoutPageAddLayoutDialogListStoreItem*) _tmp24_) : NULL;
				if (_tmp25_ == NULL) {
					_g_object_unref0 (_tmp24_);
				}
				item = _tmp25_;
				_tmp26_ = item;
				_tmp27_ = keyboard_layout_page_add_layout_dialog_list_store_item_get_name (_tmp26_);
				_tmp28_ = _tmp27_;
				_tmp29_ = keyboard_layout_page_add_layout_dialog_layout_row_new (_tmp28_);
				g_object_ref_sink (_tmp29_);
				row = _tmp29_;
				_tmp30_ = self->priv->input_language_list_box;
				_tmp31_ = row;
				gtk_list_box_append (_tmp30_, (GtkWidget*) _tmp31_);
				_g_object_unref0 (row);
				_g_object_unref0 (item);
			}
		}
	}
	_tmp32_ = self->priv->input_language_list_box;
	_tmp33_ = _g_object_ref0 ((GtkWidget*) _tmp32_);
	_tmp34_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_scrolled_window_set_child (_tmp34_, _tmp33_);
	_g_object_unref0 (_tmp33_);
	g_object_set (_tmp34_, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp34_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp34_, TRUE);
	g_object_ref_sink (_tmp34_);
	input_language_scrolled = _tmp34_;
	_tmp35_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp35_);
	_data14_->input_language_box = _tmp35_;
	_tmp36_ = _data14_->input_language_box;
	_tmp37_ = _data14_->search_entry;
	gtk_box_append (_tmp36_, (GtkWidget*) _tmp37_);
	_tmp38_ = _data14_->input_language_box;
	_tmp39_ = input_language_scrolled;
	gtk_box_append (_tmp38_, (GtkWidget*) _tmp39_);
	_tmp40_ = (GtkButton*) gtk_button_new_with_label (_ (KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_INPUT_LANGUAGE));
	gtk_widget_set_halign ((GtkWidget*) _tmp40_, GTK_ALIGN_START);
	gtk_widget_set_margin_top ((GtkWidget*) _tmp40_, 6);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp40_, 6);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp40_, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp40_, 6);
	g_object_ref_sink (_tmp40_);
	_data14_->back_button = _tmp40_;
	_tmp41_ = _data14_->back_button;
	gtk_widget_add_css_class ((GtkWidget*) _tmp41_, GRANITE_STYLE_CLASS_BACK_BUTTON);
	_tmp42_ = (GtkLabel*) gtk_label_new (NULL);
	gtk_label_set_ellipsize (_tmp42_, PANGO_ELLIPSIZE_END);
	gtk_label_set_use_markup (_tmp42_, TRUE);
	g_object_ref_sink (_tmp42_);
	_data14_->layout_list_title = _tmp42_;
	_tmp43_ = (GtkListBox*) gtk_list_box_new ();
	gtk_widget_set_margin_top ((GtkWidget*) _tmp43_, 3);
	g_object_ref_sink (_tmp43_);
	_g_object_unref0 (self->priv->layout_list_box);
	self->priv->layout_list_box = _tmp43_;
	_tmp44_ = self->priv->layout_list_box;
	_tmp45_ = self->priv->layout_list;
	gtk_list_box_bind_model (_tmp44_, (GListModel*) _tmp45_, __keyboard_layout_page_add_layout_dialog___lambda40__gtk_list_box_create_widget_func, g_object_ref (self), g_object_unref);
	_tmp46_ = self->priv->layout_list_box;
	_tmp47_ = _g_object_ref0 ((GtkWidget*) _tmp46_);
	_tmp48_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_scrolled_window_set_child (_tmp48_, _tmp47_);
	_g_object_unref0 (_tmp47_);
	g_object_set (_tmp48_, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp48_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp48_, TRUE);
	g_object_ref_sink (_tmp48_);
	_data14_->layout_scrolled = _tmp48_;
	_tmp49_ = (GtkButton*) gtk_button_new_with_label (_ ("Preview Layout"));
	gtk_widget_set_halign ((GtkWidget*) _tmp49_, GTK_ALIGN_END);
	gtk_widget_set_margin_top ((GtkWidget*) _tmp49_, 6);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp49_, 6);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp49_, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp49_, 6);
	g_object_ref_sink (_tmp49_);
	_data14_->keyboard_map_button = _tmp49_;
	_tmp50_ = _data14_->keyboard_map_button;
	_tmp51_ = _g_object_ref0 ((GtkWidget*) _tmp50_);
	_tmp52_ = (GtkRevealer*) gtk_revealer_new ();
	gtk_revealer_set_child (_tmp52_, _tmp51_);
	_g_object_unref0 (_tmp51_);
	gtk_revealer_set_transition_type (_tmp52_, GTK_REVEALER_TRANSITION_TYPE_CROSSFADE);
	g_object_ref_sink (_tmp52_);
	_data14_->keyboard_map_revealer = _tmp52_;
	_tmp53_ = _data14_->back_button;
	_tmp54_ = _g_object_ref0 ((GtkWidget*) _tmp53_);
	_tmp55_ = _data14_->layout_list_title;
	_tmp56_ = _g_object_ref0 ((GtkWidget*) _tmp55_);
	_tmp57_ = _data14_->keyboard_map_revealer;
	_tmp58_ = _g_object_ref0 ((GtkWidget*) _tmp57_);
	_tmp59_ = (GtkCenterBox*) gtk_center_box_new ();
	gtk_center_box_set_start_widget (_tmp59_, _tmp54_);
	_g_object_unref0 (_tmp54_);
	gtk_center_box_set_center_widget (_tmp59_, _tmp56_);
	_g_object_unref0 (_tmp56_);
	gtk_center_box_set_end_widget (_tmp59_, _tmp58_);
	_g_object_unref0 (_tmp58_);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp59_, TRUE);
	g_object_ref_sink (_tmp59_);
	header_box = _tmp59_;
	_tmp60_ = (GtkGrid*) gtk_grid_new ();
	g_object_ref_sink (_tmp60_);
	header_grid = _tmp60_;
	_tmp61_ = header_grid;
	_tmp62_ = header_box;
	gtk_grid_attach (_tmp61_, (GtkWidget*) _tmp62_, 0, 0, 1, 1);
	_tmp63_ = header_grid;
	_tmp64_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
	g_object_ref_sink (_tmp64_);
	_tmp65_ = _tmp64_;
	gtk_grid_attach (_tmp63_, (GtkWidget*) _tmp65_, 0, 1, 1, 1);
	_g_object_unref0 (_tmp65_);
	_tmp66_ = header_grid;
	_tmp67_ = _g_object_ref0 ((GtkWidget*) _tmp66_);
	_tmp68_ = (GtkRevealer*) gtk_revealer_new ();
	gtk_revealer_set_child (_tmp68_, _tmp67_);
	_g_object_unref0 (_tmp67_);
	g_object_ref_sink (_tmp68_);
	_data14_->header_revealer = _tmp68_;
	_tmp69_ = (AdwLeaflet*) adw_leaflet_new ();
	adw_leaflet_set_can_navigate_back (_tmp69_, TRUE);
	adw_leaflet_set_can_unfold (_tmp69_, FALSE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp69_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp69_, TRUE);
	g_object_ref_sink (_tmp69_);
	_data14_->deck = _tmp69_;
	_tmp70_ = _data14_->deck;
	_tmp71_ = _data14_->input_language_box;
	adw_leaflet_append (_tmp70_, (GtkWidget*) _tmp71_);
	_tmp72_ = _data14_->deck;
	_tmp73_ = _data14_->layout_scrolled;
	adw_leaflet_append (_tmp72_, (GtkWidget*) _tmp73_);
	_tmp74_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp74_);
	frame_box = _tmp74_;
	_tmp75_ = frame_box;
	_tmp76_ = _data14_->header_revealer;
	gtk_box_append (_tmp75_, (GtkWidget*) _tmp76_);
	_tmp77_ = frame_box;
	_tmp78_ = _data14_->deck;
	gtk_box_append (_tmp77_, (GtkWidget*) _tmp78_);
	_tmp79_ = frame_box;
	_tmp80_ = _g_object_ref0 ((GtkWidget*) _tmp79_);
	_tmp81_ = (GtkFrame*) gtk_frame_new (NULL);
	gtk_frame_set_child (_tmp81_, _tmp80_);
	_g_object_unref0 (_tmp80_);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp81_, 10);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp81_, 10);
	g_object_ref_sink (_tmp81_);
	frame = _tmp81_;
	_tmp82_ = frame;
	gtk_widget_add_css_class ((GtkWidget*) _tmp82_, GRANITE_STYLE_CLASS_VIEW);
	_tmp83_ = granite_dialog_add_button ((GraniteDialog*) self, _ ("Cancel"), (gint) GTK_RESPONSE_CANCEL);
	_tmp84_ = _g_object_ref0 (_tmp83_);
	button_cancel = _tmp84_;
	_tmp85_ = granite_dialog_add_button ((GraniteDialog*) self, _ ("Add Layout"), (gint) GTK_RESPONSE_ACCEPT);
	_tmp86_ = _g_object_ref0 (_tmp85_);
	_data14_->button_add = _tmp86_;
	_tmp87_ = _data14_->button_add;
	gtk_widget_set_sensitive (_tmp87_, FALSE);
	_tmp88_ = _data14_->button_add;
	gtk_widget_add_css_class (_tmp88_, GRANITE_STYLE_CLASS_SUGGESTED_ACTION);
	gtk_window_set_deletable ((GtkWindow*) self, FALSE);
	gtk_window_set_modal ((GtkWindow*) self, TRUE);
	_tmp89_ = gtk_dialog_get_content_area ((GtkDialog*) self);
	_tmp90_ = frame;
	gtk_box_append (_tmp89_, (GtkWidget*) _tmp90_);
	_tmp91_ = _data14_->search_entry;
	gtk_widget_grab_focus ((GtkWidget*) _tmp91_);
	_tmp92_ = _data14_->deck;
	g_signal_connect_data ((GObject*) _tmp92_, "notify::visible-child", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda41__g_object_notify, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_tmp93_ = self->priv->input_language_list_box;
	gtk_list_box_set_filter_func (_tmp93_, __keyboard_layout_page_add_layout_dialog___lambda42__gtk_list_box_filter_func, block14_data_ref (_data14_), block14_data_unref);
	_tmp94_ = _data14_->search_entry;
	g_signal_connect_object (_tmp94_, "search-changed", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda43__gtk_search_entry_search_changed, self, 0);
	g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda44__gtk_dialog_response, self, 0);
	_tmp95_ = _data14_->back_button;
	g_signal_connect_data (_tmp95_, "clicked", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda45__gtk_button_clicked, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_tmp96_ = self->priv->input_language_list_box;
	g_signal_connect_data (_tmp96_, "row-activated", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda46__gtk_list_box_row_activated, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_tmp97_ = _data14_->keyboard_map_button;
	g_signal_connect_object (_tmp97_, "clicked", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda47__gtk_button_clicked, self, 0);
	_tmp98_ = self->priv->layout_list_box;
	g_signal_connect_data (_tmp98_, "row-selected", (GCallback) __keyboard_layout_page_add_layout_dialog___lambda48__gtk_list_box_row_selected, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_g_object_unref0 (button_cancel);
	_g_object_unref0 (frame);
	_g_object_unref0 (frame_box);
	_g_object_unref0 (header_grid);
	_g_object_unref0 (header_box);
	_g_object_unref0 (input_language_scrolled);
	_g_object_unref0 (first_lang);
	block14_data_unref (_data14_);
	_data14_ = NULL;
	return obj;
}

static void
keyboard_layout_page_add_layout_dialog_class_init (KeyboardLayoutPageAddLayoutDialogClass * klass,
                                                   gpointer klass_data)
{
	keyboard_layout_page_add_layout_dialog_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyboardLayoutPageAddLayoutDialog_private_offset);
	G_OBJECT_CLASS (klass)->constructor = keyboard_layout_page_add_layout_dialog_constructor;
	G_OBJECT_CLASS (klass)->finalize = keyboard_layout_page_add_layout_dialog_finalize;
	keyboard_layout_page_add_layout_dialog_signals[KEYBOARD_LAYOUT_PAGE_ADD_LAYOUT_DIALOG_LAYOUT_ADDED_SIGNAL] = g_signal_new ("layout-added", KEYBOARD_LAYOUT_PAGE_TYPE_ADD_LAYOUT_DIALOG, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
}

static void
keyboard_layout_page_add_layout_dialog_instance_init (KeyboardLayoutPageAddLayoutDialog * self,
                                                      gpointer klass)
{
	self->priv = keyboard_layout_page_add_layout_dialog_get_instance_private (self);
}

static void
keyboard_layout_page_add_layout_dialog_finalize (GObject * obj)
{
	KeyboardLayoutPageAddLayoutDialog * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_LAYOUT_PAGE_TYPE_ADD_LAYOUT_DIALOG, KeyboardLayoutPageAddLayoutDialog);
	_g_object_unref0 (self->priv->input_language_list_box);
	_g_object_unref0 (self->priv->layout_list_box);
	_g_object_unref0 (self->priv->language_list);
	_g_object_unref0 (self->priv->layout_list);
	_g_object_unref0 (self->priv->handler);
	_g_free0 (self->priv->layout_id);
	G_OBJECT_CLASS (keyboard_layout_page_add_layout_dialog_parent_class)->finalize (obj);
}

static GType
keyboard_layout_page_add_layout_dialog_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyboardLayoutPageAddLayoutDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keyboard_layout_page_add_layout_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyboardLayoutPageAddLayoutDialog), 0, (GInstanceInitFunc) keyboard_layout_page_add_layout_dialog_instance_init, NULL };
	GType keyboard_layout_page_add_layout_dialog_type_id;
	keyboard_layout_page_add_layout_dialog_type_id = g_type_register_static (GRANITE_TYPE_DIALOG, "KeyboardLayoutPageAddLayoutDialog", &g_define_type_info, 0);
	KeyboardLayoutPageAddLayoutDialog_private_offset = g_type_add_instance_private (keyboard_layout_page_add_layout_dialog_type_id, sizeof (KeyboardLayoutPageAddLayoutDialogPrivate));
	return keyboard_layout_page_add_layout_dialog_type_id;
}

GType
keyboard_layout_page_add_layout_dialog_get_type (void)
{
	static volatile gsize keyboard_layout_page_add_layout_dialog_type_id__once = 0;
	if (g_once_init_enter (&keyboard_layout_page_add_layout_dialog_type_id__once)) {
		GType keyboard_layout_page_add_layout_dialog_type_id;
		keyboard_layout_page_add_layout_dialog_type_id = keyboard_layout_page_add_layout_dialog_get_type_once ();
		g_once_init_leave (&keyboard_layout_page_add_layout_dialog_type_id__once, keyboard_layout_page_add_layout_dialog_type_id);
	}
	return keyboard_layout_page_add_layout_dialog_type_id__once;
}

