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

/*
* Copyright 2017-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 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 <gtk/gtk.h>
#include <glib.h>
#include "keyboard.h"
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <granite-7.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

#define KEYBOARD_SHORTCUTS_TYPE_PAGE (keyboard_shortcuts_page_get_type ())
#define KEYBOARD_SHORTCUTS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_SHORTCUTS_TYPE_PAGE, KeyboardShortcutsPage))
#define KEYBOARD_SHORTCUTS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_SHORTCUTS_TYPE_PAGE, KeyboardShortcutsPageClass))
#define KEYBOARD_SHORTCUTS_IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_SHORTCUTS_TYPE_PAGE))
#define KEYBOARD_SHORTCUTS_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_SHORTCUTS_TYPE_PAGE))
#define KEYBOARD_SHORTCUTS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_SHORTCUTS_TYPE_PAGE, KeyboardShortcutsPageClass))

typedef struct _KeyboardShortcutsPage KeyboardShortcutsPage;
typedef struct _KeyboardShortcutsPageClass KeyboardShortcutsPageClass;
typedef struct _KeyboardShortcutsPagePrivate KeyboardShortcutsPagePrivate;

#define KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW (keyboard_shortcuts_page_switcher_row_get_type ())
#define KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRow))
#define KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRowClass))
#define KEYBOARD_SHORTCUTS_PAGE_IS_SWITCHER_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW))
#define KEYBOARD_SHORTCUTS_PAGE_IS_SWITCHER_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW))
#define KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRowClass))

typedef struct _KeyboardShortcutsPageSwitcherRow KeyboardShortcutsPageSwitcherRow;
typedef struct _KeyboardShortcutsPageSwitcherRowClass KeyboardShortcutsPageSwitcherRowClass;
enum  {
	KEYBOARD_SHORTCUTS_PAGE_0_PROPERTY,
	KEYBOARD_SHORTCUTS_PAGE_NUM_PROPERTIES
};
static GParamSpec* keyboard_shortcuts_page_properties[KEYBOARD_SHORTCUTS_PAGE_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _KeyboardShortcutsPageSwitcherRowPrivate KeyboardShortcutsPageSwitcherRowPrivate;

#define KEYBOARD_SHORTCUTS_TYPE_GROUP (keyboard_shortcuts_group_get_type ())
typedef struct _KeyboardShortcutsGroup KeyboardShortcutsGroup;
enum  {
	KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_0_PROPERTY,
	KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY,
	KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_NUM_PROPERTIES
};
static GParamSpec* keyboard_shortcuts_page_switcher_row_properties[KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_NUM_PROPERTIES];
typedef struct _Block25Data Block25Data;

#define KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST (keyboard_shortcuts_shortcuts_list_get_type ())
#define KEYBOARD_SHORTCUTS_SHORTCUTS_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST, KeyboardShortcutsShortcutsList))
#define KEYBOARD_SHORTCUTS_SHORTCUTS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST, KeyboardShortcutsShortcutsListClass))
#define KEYBOARD_SHORTCUTS_IS_SHORTCUTS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST))
#define KEYBOARD_SHORTCUTS_IS_SHORTCUTS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST))
#define KEYBOARD_SHORTCUTS_SHORTCUTS_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUTS_LIST, KeyboardShortcutsShortcutsListClass))

typedef struct _KeyboardShortcutsShortcutsList KeyboardShortcutsShortcutsList;
typedef struct _KeyboardShortcutsShortcutsListClass KeyboardShortcutsShortcutsListClass;
typedef struct _KeyboardShortcutsShortcutsListPrivate KeyboardShortcutsShortcutsListPrivate;

#define KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX (keyboard_shortcuts_shortcut_list_box_get_type ())
#define KEYBOARD_SHORTCUTS_SHORTCUT_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX, KeyboardShortcutsShortcutListBox))
#define KEYBOARD_SHORTCUTS_SHORTCUT_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX, KeyboardShortcutsShortcutListBoxClass))
#define KEYBOARD_SHORTCUTS_IS_SHORTCUT_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX))
#define KEYBOARD_SHORTCUTS_IS_SHORTCUT_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX))
#define KEYBOARD_SHORTCUTS_SHORTCUT_LIST_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_SHORTCUTS_TYPE_SHORTCUT_LIST_BOX, KeyboardShortcutsShortcutListBoxClass))

typedef struct _KeyboardShortcutsShortcutListBox KeyboardShortcutsShortcutListBox;
typedef struct _KeyboardShortcutsShortcutListBoxClass KeyboardShortcutsShortcutListBoxClass;

#define KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX (keyboard_shortcuts_custom_shortcut_list_box_get_type ())
#define KEYBOARD_SHORTCUTS_CUSTOM_SHORTCUT_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX, KeyboardShortcutsCustomShortcutListBox))
#define KEYBOARD_SHORTCUTS_CUSTOM_SHORTCUT_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX, KeyboardShortcutsCustomShortcutListBoxClass))
#define KEYBOARD_SHORTCUTS_IS_CUSTOM_SHORTCUT_LIST_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX))
#define KEYBOARD_SHORTCUTS_IS_CUSTOM_SHORTCUT_LIST_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX))
#define KEYBOARD_SHORTCUTS_CUSTOM_SHORTCUT_LIST_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBOARD_SHORTCUTS_TYPE_CUSTOM_SHORTCUT_LIST_BOX, KeyboardShortcutsCustomShortcutListBoxClass))

typedef struct _KeyboardShortcutsCustomShortcutListBox KeyboardShortcutsCustomShortcutListBox;
typedef struct _KeyboardShortcutsCustomShortcutListBoxClass KeyboardShortcutsCustomShortcutListBoxClass;

struct _KeyboardShortcutsPage {
	GtkBox parent_instance;
	KeyboardShortcutsPagePrivate * priv;
};

struct _KeyboardShortcutsPageClass {
	GtkBoxClass parent_class;
};

struct _KeyboardShortcutsPagePrivate {
	GtkListBox* section_switcher;
	KeyboardShortcutsPageSwitcherRow* custom_shortcuts_row;
};

struct _KeyboardShortcutsPageSwitcherRow {
	GtkListBoxRow parent_instance;
	KeyboardShortcutsPageSwitcherRowPrivate * priv;
};

struct _KeyboardShortcutsPageSwitcherRowClass {
	GtkListBoxRowClass parent_class;
};

struct _KeyboardShortcutsGroup {
	gchar* icon_name;
	gchar* label;
	GListStore* list;
};

struct _KeyboardShortcutsPageSwitcherRowPrivate {
	KeyboardShortcutsGroup _group;
};

struct _Block25Data {
	int _ref_count_;
	KeyboardShortcutsPage* self;
	GtkStack* stack;
};

struct _KeyboardShortcutsShortcutsList {
	GObject parent_instance;
	KeyboardShortcutsShortcutsListPrivate * priv;
	KeyboardShortcutsGroup* groups;
	gint groups_length1;
	gint _groups_size_;
	KeyboardShortcutsGroup windows_group;
	KeyboardShortcutsGroup workspaces_group;
	KeyboardShortcutsGroup screenshot_group;
	KeyboardShortcutsGroup launchers_group;
	KeyboardShortcutsGroup media_group;
	KeyboardShortcutsGroup a11y_group;
	KeyboardShortcutsGroup system_group;
	KeyboardShortcutsGroup keyboard_layouts_group;
	KeyboardShortcutsGroup custom_group;
};

struct _KeyboardShortcutsShortcutsListClass {
	GObjectClass parent_class;
};

VALA_EXTERN GtkWidget** keyboard_shortcuts_shortcut_views;
VALA_EXTERN gint keyboard_shortcuts_shortcut_views_length1;
GtkWidget** keyboard_shortcuts_shortcut_views = NULL;
gint keyboard_shortcuts_shortcut_views_length1 = 0;
static gint _keyboard_shortcuts_shortcut_views_size_ = 0;
static gint KeyboardShortcutsPage_private_offset;
static gpointer keyboard_shortcuts_page_parent_class = NULL;
static gint KeyboardShortcutsPageSwitcherRow_private_offset;
static gpointer keyboard_shortcuts_page_switcher_row_parent_class = NULL;

VALA_EXTERN GType keyboard_shortcuts_page_get_type (void) G_GNUC_CONST ;
static GType keyboard_shortcuts_page_switcher_row_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
VALA_EXTERN void keyboard_shortcuts_page_open_custom_shortcuts (KeyboardShortcutsPage* self);
VALA_EXTERN KeyboardShortcutsPage* keyboard_shortcuts_page_new (void);
VALA_EXTERN KeyboardShortcutsPage* keyboard_shortcuts_page_construct (GType object_type);
VALA_EXTERN GType keyboard_shortcuts_group_get_type (void) G_GNUC_CONST ;
VALA_EXTERN KeyboardShortcutsGroup* keyboard_shortcuts_group_dup (const KeyboardShortcutsGroup* self);
VALA_EXTERN void keyboard_shortcuts_group_free (KeyboardShortcutsGroup* self);
VALA_EXTERN void keyboard_shortcuts_group_copy (const KeyboardShortcutsGroup* self,
                                    KeyboardShortcutsGroup* dest);
VALA_EXTERN void keyboard_shortcuts_group_destroy (KeyboardShortcutsGroup* self);
static KeyboardShortcutsPageSwitcherRow* keyboard_shortcuts_page_switcher_row_new (KeyboardShortcutsGroup* group);
static KeyboardShortcutsPageSwitcherRow* keyboard_shortcuts_page_switcher_row_construct (GType object_type,
                                                                                  KeyboardShortcutsGroup* group);
static void keyboard_shortcuts_page_switcher_row_get_group (KeyboardShortcutsPageSwitcherRow* self,
                                                     KeyboardShortcutsGroup * result);
static void keyboard_shortcuts_page_switcher_row_set_group (KeyboardShortcutsPageSwitcherRow* self,
                                                     KeyboardShortcutsGroup * value);
static gboolean _keyboard_shortcuts_group_equal (const KeyboardShortcutsGroup * s1,
                                          const KeyboardShortcutsGroup * s2);
static GObject * keyboard_shortcuts_page_switcher_row_constructor (GType type,
                                                            guint n_construct_properties,
                                                            GObjectConstructParam * construct_properties);
static void keyboard_shortcuts_page_switcher_row_finalize (GObject * obj);
static GType keyboard_shortcuts_page_switcher_row_get_type_once (void);
static void _vala_keyboard_shortcuts_page_switcher_row_get_property (GObject * object,
                                                              guint property_id,
                                                              GValue * value,
                                                              GParamSpec * pspec);
static void _vala_keyboard_shortcuts_page_switcher_row_set_property (GObject * object,
                                                              guint property_id,
                                                              const GValue * value,
                                                              GParamSpec * pspec);
static GObject * keyboard_shortcuts_page_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
static Block25Data* block25_data_ref (Block25Data* _data25_);
static void block25_data_unref (void * _userdata_);
VALA_EXTERN GType keyboard_shortcuts_shortcuts_list_get_type (void) G_GNUC_CONST ;
VALA_EXTERN KeyboardShortcutsShortcutsList* keyboard_shortcuts_shortcuts_list_get_default (void);
VALA_EXTERN KeyboardShortcutsShortcutListBox* keyboard_shortcuts_shortcut_list_box_new (KeyboardShortcutsSectionID group);
VALA_EXTERN KeyboardShortcutsShortcutListBox* keyboard_shortcuts_shortcut_list_box_construct (GType object_type,
                                                                                  KeyboardShortcutsSectionID group);
VALA_EXTERN GType keyboard_shortcuts_shortcut_list_box_get_type (void) G_GNUC_CONST ;
static void _vala_array_add18 (GtkWidget** * array,
                        gint* length,
                        gint* size,
                        GtkWidget* value);
VALA_EXTERN KeyboardShortcutsCustomShortcutListBox* keyboard_shortcuts_custom_shortcut_list_box_new (void);
VALA_EXTERN KeyboardShortcutsCustomShortcutListBox* keyboard_shortcuts_custom_shortcut_list_box_construct (GType object_type);
VALA_EXTERN GType keyboard_shortcuts_custom_shortcut_list_box_get_type (void) G_GNUC_CONST ;
static void _vala_array_add19 (GtkWidget** * array,
                        gint* length,
                        gint* size,
                        GtkWidget* value);
static void _keyboard_shortcuts_page___lambda77_ (Block25Data* _data25_,
                                           GtkListBoxRow* row);
static void __keyboard_shortcuts_page___lambda77__gtk_list_box_row_selected (GtkListBox* _sender,
                                                                      GtkListBoxRow* row,
                                                                      gpointer self);
static void _keyboard_shortcuts_page___lambda78_ (KeyboardShortcutsPage* self);
static void __keyboard_shortcuts_page___lambda78__gtk_widget_realize (GtkWidget* _sender,
                                                               gpointer self);
static void keyboard_shortcuts_page_finalize (GObject * obj);
static GType keyboard_shortcuts_page_get_type_once (void);

gchar*
keyboard_shortcuts_section_id_to_string (KeyboardShortcutsSectionID self)
{
	gchar* result;
	switch (self) {
		case KEYBOARD_SHORTCUTS_SECTION_ID_WINDOWS:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("Windows"));
			result = _tmp0_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_WORKSPACES:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("Workspaces"));
			result = _tmp1_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_SCREENSHOTS:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("Screenshots"));
			result = _tmp2_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_APPS:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup (_ ("Applications"));
			result = _tmp3_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_MEDIA:
		{
			gchar* _tmp4_;
			_tmp4_ = g_strdup (_ ("Media"));
			result = _tmp4_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_A11Y:
		{
			gchar* _tmp5_;
			_tmp5_ = g_strdup (_ ("Accessibility"));
			result = _tmp5_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_SYSTEM:
		{
			gchar* _tmp6_;
			_tmp6_ = g_strdup (_ ("System"));
			result = _tmp6_;
			return result;
		}
		case KEYBOARD_SHORTCUTS_SECTION_ID_CUSTOM:
		{
			gchar* _tmp7_;
			_tmp7_ = g_strdup (_ ("Custom"));
			result = _tmp7_;
			return result;
		}
		default:
		{
			gchar* _tmp8_;
			_tmp8_ = g_strdup ("");
			result = _tmp8_;
			return result;
		}
	}
}

static GType
keyboard_shortcuts_section_id_get_type_once (void)
{
	static const GEnumValue values[] = {{KEYBOARD_SHORTCUTS_SECTION_ID_WINDOWS, "KEYBOARD_SHORTCUTS_SECTION_ID_WINDOWS", "windows"}, {KEYBOARD_SHORTCUTS_SECTION_ID_WORKSPACES, "KEYBOARD_SHORTCUTS_SECTION_ID_WORKSPACES", "workspaces"}, {KEYBOARD_SHORTCUTS_SECTION_ID_SCREENSHOTS, "KEYBOARD_SHORTCUTS_SECTION_ID_SCREENSHOTS", "screenshots"}, {KEYBOARD_SHORTCUTS_SECTION_ID_APPS, "KEYBOARD_SHORTCUTS_SECTION_ID_APPS", "apps"}, {KEYBOARD_SHORTCUTS_SECTION_ID_MEDIA, "KEYBOARD_SHORTCUTS_SECTION_ID_MEDIA", "media"}, {KEYBOARD_SHORTCUTS_SECTION_ID_A11Y, "KEYBOARD_SHORTCUTS_SECTION_ID_A11Y", "a11y"}, {KEYBOARD_SHORTCUTS_SECTION_ID_SYSTEM, "KEYBOARD_SHORTCUTS_SECTION_ID_SYSTEM", "system"}, {KEYBOARD_SHORTCUTS_SECTION_ID_KEYBOARD_LAYOUTS, "KEYBOARD_SHORTCUTS_SECTION_ID_KEYBOARD_LAYOUTS", "keyboard-layouts"}, {KEYBOARD_SHORTCUTS_SECTION_ID_CUSTOM, "KEYBOARD_SHORTCUTS_SECTION_ID_CUSTOM", "custom"}, {KEYBOARD_SHORTCUTS_SECTION_ID_COUNT, "KEYBOARD_SHORTCUTS_SECTION_ID_COUNT", "count"}, {0, NULL, NULL}};
	GType keyboard_shortcuts_section_id_type_id;
	keyboard_shortcuts_section_id_type_id = g_enum_register_static ("KeyboardShortcutsSectionID", values);
	return keyboard_shortcuts_section_id_type_id;
}

GType
keyboard_shortcuts_section_id_get_type (void)
{
	static volatile gsize keyboard_shortcuts_section_id_type_id__once = 0;
	if (g_once_init_enter (&keyboard_shortcuts_section_id_type_id__once)) {
		GType keyboard_shortcuts_section_id_type_id;
		keyboard_shortcuts_section_id_type_id = keyboard_shortcuts_section_id_get_type_once ();
		g_once_init_leave (&keyboard_shortcuts_section_id_type_id__once, keyboard_shortcuts_section_id_type_id);
	}
	return keyboard_shortcuts_section_id_type_id__once;
}

static inline gpointer
keyboard_shortcuts_page_get_instance_private (KeyboardShortcutsPage* self)
{
	return G_STRUCT_MEMBER_P (self, KeyboardShortcutsPage_private_offset);
}

void
keyboard_shortcuts_page_open_custom_shortcuts (KeyboardShortcutsPage* self)
{
	GtkListBox* _tmp0_;
	KeyboardShortcutsPageSwitcherRow* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->section_switcher;
	_tmp1_ = self->priv->custom_shortcuts_row;
	gtk_list_box_select_row (_tmp0_, (GtkListBoxRow*) _tmp1_);
}

KeyboardShortcutsPage*
keyboard_shortcuts_page_construct (GType object_type)
{
	KeyboardShortcutsPage * self = NULL;
	self = (KeyboardShortcutsPage*) g_object_new (object_type, NULL);
	return self;
}

KeyboardShortcutsPage*
keyboard_shortcuts_page_new (void)
{
	return keyboard_shortcuts_page_construct (KEYBOARD_SHORTCUTS_TYPE_PAGE);
}

static inline gpointer
keyboard_shortcuts_page_switcher_row_get_instance_private (KeyboardShortcutsPageSwitcherRow* self)
{
	return G_STRUCT_MEMBER_P (self, KeyboardShortcutsPageSwitcherRow_private_offset);
}

static KeyboardShortcutsPageSwitcherRow*
keyboard_shortcuts_page_switcher_row_construct (GType object_type,
                                                KeyboardShortcutsGroup* group)
{
	KeyboardShortcutsPageSwitcherRow * self = NULL;
	KeyboardShortcutsGroup _tmp0_;
	g_return_val_if_fail (group != NULL, NULL);
	_tmp0_ = *group;
	self = (KeyboardShortcutsPageSwitcherRow*) g_object_new (object_type, "group", &_tmp0_, NULL);
	return self;
}

static KeyboardShortcutsPageSwitcherRow*
keyboard_shortcuts_page_switcher_row_new (KeyboardShortcutsGroup* group)
{
	return keyboard_shortcuts_page_switcher_row_construct (KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, group);
}

static void
keyboard_shortcuts_page_switcher_row_get_group (KeyboardShortcutsPageSwitcherRow* self,
                                                KeyboardShortcutsGroup * result)
{
	KeyboardShortcutsGroup _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_group;
	*result = _tmp0_;
	return;
}

static gboolean
_keyboard_shortcuts_group_equal (const KeyboardShortcutsGroup * s1,
                                 const KeyboardShortcutsGroup * s2)
{
	if (s1 == s2) {
		return TRUE;
	}
	if (s1 == NULL) {
		return FALSE;
	}
	if (s2 == NULL) {
		return FALSE;
	}
	if (g_strcmp0 (s1->icon_name, s2->icon_name)) {
		return FALSE;
	}
	if (g_strcmp0 (s1->label, s2->label)) {
		return FALSE;
	}
	if (s1->list != s2->list) {
		return FALSE;
	}
	return TRUE;
}

static void
keyboard_shortcuts_page_switcher_row_set_group (KeyboardShortcutsPageSwitcherRow* self,
                                                KeyboardShortcutsGroup * value)
{
	KeyboardShortcutsGroup old_value;
	g_return_if_fail (self != NULL);
	keyboard_shortcuts_page_switcher_row_get_group (self, &old_value);
	if (_keyboard_shortcuts_group_equal (value, &old_value) != TRUE) {
		KeyboardShortcutsGroup _tmp0_;
		KeyboardShortcutsGroup _tmp1_;
		KeyboardShortcutsGroup _tmp2_ = {0};
		_tmp0_ = *value;
		_tmp1_ = _tmp0_;
		keyboard_shortcuts_group_copy (&_tmp1_, &_tmp2_);
		keyboard_shortcuts_group_destroy (&self->priv->_group);
		self->priv->_group = _tmp2_;
		g_object_notify_by_pspec ((GObject *) self, keyboard_shortcuts_page_switcher_row_properties[KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY]);
	}
}

static GObject *
keyboard_shortcuts_page_switcher_row_constructor (GType type,
                                                  guint n_construct_properties,
                                                  GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	KeyboardShortcutsPageSwitcherRow * self;
	GtkImage* icon = NULL;
	KeyboardShortcutsGroup _tmp0_;
	const gchar* _tmp1_;
	GtkImage* _tmp2_ = NULL;
	GtkLabel* label = NULL;
	KeyboardShortcutsGroup _tmp3_;
	const gchar* _tmp4_;
	GtkLabel* _tmp5_ = NULL;
	GtkBox* box = NULL;
	GtkBox* _tmp6_;
	GtkBox* _tmp7_;
	GtkImage* _tmp8_;
	GtkBox* _tmp9_;
	GtkLabel* _tmp10_;
	GtkBox* _tmp11_;
	parent_class = G_OBJECT_CLASS (keyboard_shortcuts_page_switcher_row_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRow);
	_tmp0_ = self->priv->_group;
	_tmp1_ = _tmp0_.icon_name;
	_tmp2_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp1_);
	gtk_image_set_icon_size (_tmp2_, GTK_ICON_SIZE_LARGE);
	g_object_ref_sink (_tmp2_);
	icon = _tmp2_;
	_tmp3_ = self->priv->_group;
	_tmp4_ = _tmp3_.label;
	_tmp5_ = (GtkLabel*) gtk_label_new (_tmp4_);
	gtk_label_set_xalign (_tmp5_, (gfloat) 0);
	g_object_ref_sink (_tmp5_);
	label = _tmp5_;
	_tmp6_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
	g_object_ref_sink (_tmp6_);
	box = _tmp6_;
	_tmp7_ = box;
	_tmp8_ = icon;
	gtk_box_append (_tmp7_, (GtkWidget*) _tmp8_);
	_tmp9_ = box;
	_tmp10_ = label;
	gtk_box_append (_tmp9_, (GtkWidget*) _tmp10_);
	_tmp11_ = box;
	gtk_list_box_row_set_child ((GtkListBoxRow*) self, (GtkWidget*) _tmp11_);
	_g_object_unref0 (box);
	_g_object_unref0 (label);
	_g_object_unref0 (icon);
	return obj;
}

static void
keyboard_shortcuts_page_switcher_row_class_init (KeyboardShortcutsPageSwitcherRowClass * klass,
                                                 gpointer klass_data)
{
	keyboard_shortcuts_page_switcher_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyboardShortcutsPageSwitcherRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_keyboard_shortcuts_page_switcher_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_keyboard_shortcuts_page_switcher_row_set_property;
	G_OBJECT_CLASS (klass)->constructor = keyboard_shortcuts_page_switcher_row_constructor;
	G_OBJECT_CLASS (klass)->finalize = keyboard_shortcuts_page_switcher_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY, keyboard_shortcuts_page_switcher_row_properties[KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY] = g_param_spec_boxed ("group", "group", "group", KEYBOARD_SHORTCUTS_TYPE_GROUP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
keyboard_shortcuts_page_switcher_row_instance_init (KeyboardShortcutsPageSwitcherRow * self,
                                                    gpointer klass)
{
	self->priv = keyboard_shortcuts_page_switcher_row_get_instance_private (self);
}

static void
keyboard_shortcuts_page_switcher_row_finalize (GObject * obj)
{
	KeyboardShortcutsPageSwitcherRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRow);
	keyboard_shortcuts_group_destroy (&self->priv->_group);
	G_OBJECT_CLASS (keyboard_shortcuts_page_switcher_row_parent_class)->finalize (obj);
}

static GType
keyboard_shortcuts_page_switcher_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyboardShortcutsPageSwitcherRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keyboard_shortcuts_page_switcher_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyboardShortcutsPageSwitcherRow), 0, (GInstanceInitFunc) keyboard_shortcuts_page_switcher_row_instance_init, NULL };
	GType keyboard_shortcuts_page_switcher_row_type_id;
	keyboard_shortcuts_page_switcher_row_type_id = g_type_register_static (gtk_list_box_row_get_type (), "KeyboardShortcutsPageSwitcherRow", &g_define_type_info, 0);
	KeyboardShortcutsPageSwitcherRow_private_offset = g_type_add_instance_private (keyboard_shortcuts_page_switcher_row_type_id, sizeof (KeyboardShortcutsPageSwitcherRowPrivate));
	return keyboard_shortcuts_page_switcher_row_type_id;
}

static GType
keyboard_shortcuts_page_switcher_row_get_type (void)
{
	static volatile gsize keyboard_shortcuts_page_switcher_row_type_id__once = 0;
	if (g_once_init_enter (&keyboard_shortcuts_page_switcher_row_type_id__once)) {
		GType keyboard_shortcuts_page_switcher_row_type_id;
		keyboard_shortcuts_page_switcher_row_type_id = keyboard_shortcuts_page_switcher_row_get_type_once ();
		g_once_init_leave (&keyboard_shortcuts_page_switcher_row_type_id__once, keyboard_shortcuts_page_switcher_row_type_id);
	}
	return keyboard_shortcuts_page_switcher_row_type_id__once;
}

static void
_vala_keyboard_shortcuts_page_switcher_row_get_property (GObject * object,
                                                         guint property_id,
                                                         GValue * value,
                                                         GParamSpec * pspec)
{
	KeyboardShortcutsPageSwitcherRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRow);
	switch (property_id) {
		case KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY:
		{
			KeyboardShortcutsGroup boxed;
			keyboard_shortcuts_page_switcher_row_get_group (self, &boxed);
			g_value_set_boxed (value, &boxed);
		}
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_keyboard_shortcuts_page_switcher_row_set_property (GObject * object,
                                                         guint property_id,
                                                         const GValue * value,
                                                         GParamSpec * pspec)
{
	KeyboardShortcutsPageSwitcherRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KEYBOARD_SHORTCUTS_PAGE_TYPE_SWITCHER_ROW, KeyboardShortcutsPageSwitcherRow);
	switch (property_id) {
		case KEYBOARD_SHORTCUTS_PAGE_SWITCHER_ROW_GROUP_PROPERTY:
		keyboard_shortcuts_page_switcher_row_set_group (self, g_value_get_boxed (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static Block25Data*
block25_data_ref (Block25Data* _data25_)
{
	g_atomic_int_inc (&_data25_->_ref_count_);
	return _data25_;
}

static void
block25_data_unref (void * _userdata_)
{
	Block25Data* _data25_;
	_data25_ = (Block25Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data25_->_ref_count_)) {
		KeyboardShortcutsPage* self;
		self = _data25_->self;
		_g_object_unref0 (_data25_->stack);
		_g_object_unref0 (self);
		g_slice_free (Block25Data, _data25_);
	}
}

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

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

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

static void
_keyboard_shortcuts_page___lambda77_ (Block25Data* _data25_,
                                      GtkListBoxRow* row)
{
	KeyboardShortcutsPage* self;
	gint index = 0;
	GtkStack* _tmp0_;
	GtkWidget** _tmp1_;
	gint _tmp1__length1;
	GtkWidget* _tmp2_;
	self = _data25_->self;
	index = gtk_list_box_row_get_index (row);
	_tmp0_ = _data25_->stack;
	_tmp1_ = keyboard_shortcuts_shortcut_views;
	_tmp1__length1 = keyboard_shortcuts_shortcut_views_length1;
	_tmp2_ = _tmp1_[index];
	gtk_stack_set_visible_child (_tmp0_, _tmp2_);
}

static void
__keyboard_shortcuts_page___lambda77__gtk_list_box_row_selected (GtkListBox* _sender,
                                                                 GtkListBoxRow* row,
                                                                 gpointer self)
{
	_keyboard_shortcuts_page___lambda77_ (self, row);
}

static void
_keyboard_shortcuts_page___lambda78_ (KeyboardShortcutsPage* self)
{
	GtkListBox* _tmp0_;
	GtkListBox* _tmp1_;
	GtkListBoxRow* _tmp2_;
	_tmp0_ = self->priv->section_switcher;
	_tmp1_ = self->priv->section_switcher;
	_tmp2_ = gtk_list_box_get_row_at_index (_tmp1_, 0);
	gtk_list_box_select_row (_tmp0_, _tmp2_);
}

static void
__keyboard_shortcuts_page___lambda78__gtk_widget_realize (GtkWidget* _sender,
                                                          gpointer self)
{
	_keyboard_shortcuts_page___lambda78_ ((KeyboardShortcutsPage*) self);
}

static GObject *
keyboard_shortcuts_page_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	KeyboardShortcutsPage * self;
	Block25Data* _data25_;
	KeyboardShortcutsShortcutsList* list = NULL;
	KeyboardShortcutsShortcutsList* _tmp0_;
	GtkListBox* _tmp1_;
	GtkListBox* _tmp2_;
	GtkListBox* _tmp3_;
	KeyboardShortcutsShortcutsList* _tmp4_;
	KeyboardShortcutsGroup _tmp5_;
	KeyboardShortcutsPageSwitcherRow* _tmp6_;
	KeyboardShortcutsPageSwitcherRow* _tmp7_;
	GtkListBox* _tmp8_;
	KeyboardShortcutsShortcutsList* _tmp9_;
	KeyboardShortcutsGroup _tmp10_;
	KeyboardShortcutsPageSwitcherRow* _tmp11_;
	KeyboardShortcutsPageSwitcherRow* _tmp12_;
	GtkListBox* _tmp13_;
	KeyboardShortcutsShortcutsList* _tmp14_;
	KeyboardShortcutsGroup _tmp15_;
	KeyboardShortcutsPageSwitcherRow* _tmp16_;
	KeyboardShortcutsPageSwitcherRow* _tmp17_;
	GtkListBox* _tmp18_;
	KeyboardShortcutsShortcutsList* _tmp19_;
	KeyboardShortcutsGroup _tmp20_;
	KeyboardShortcutsPageSwitcherRow* _tmp21_;
	KeyboardShortcutsPageSwitcherRow* _tmp22_;
	GtkListBox* _tmp23_;
	KeyboardShortcutsShortcutsList* _tmp24_;
	KeyboardShortcutsGroup _tmp25_;
	KeyboardShortcutsPageSwitcherRow* _tmp26_;
	KeyboardShortcutsPageSwitcherRow* _tmp27_;
	GtkListBox* _tmp28_;
	KeyboardShortcutsShortcutsList* _tmp29_;
	KeyboardShortcutsGroup _tmp30_;
	KeyboardShortcutsPageSwitcherRow* _tmp31_;
	KeyboardShortcutsPageSwitcherRow* _tmp32_;
	GtkListBox* _tmp33_;
	KeyboardShortcutsShortcutsList* _tmp34_;
	KeyboardShortcutsGroup _tmp35_;
	KeyboardShortcutsPageSwitcherRow* _tmp36_;
	KeyboardShortcutsPageSwitcherRow* _tmp37_;
	GtkListBox* _tmp38_;
	KeyboardShortcutsShortcutsList* _tmp39_;
	KeyboardShortcutsGroup _tmp40_;
	KeyboardShortcutsPageSwitcherRow* _tmp41_;
	KeyboardShortcutsPageSwitcherRow* _tmp42_;
	KeyboardShortcutsShortcutsList* _tmp43_;
	KeyboardShortcutsGroup _tmp44_;
	KeyboardShortcutsPageSwitcherRow* _tmp45_;
	GtkListBox* _tmp46_;
	KeyboardShortcutsPageSwitcherRow* _tmp47_;
	GtkScrolledWindow* switcher_scrolled = NULL;
	GtkListBox* _tmp48_;
	GtkWidget* _tmp49_;
	GtkScrolledWindow* _tmp50_ = NULL;
	GtkFrame* switcher_frame = NULL;
	GtkScrolledWindow* _tmp51_;
	GtkWidget* _tmp52_;
	GtkFrame* _tmp53_ = NULL;
	GtkStack* _tmp54_ = NULL;
	GtkScrolledWindow* stack_scrolled = NULL;
	GtkStack* _tmp55_;
	GtkWidget* _tmp56_;
	GtkScrolledWindow* _tmp57_ = NULL;
	GtkFrame* frame = NULL;
	GtkScrolledWindow* _tmp58_;
	GtkWidget* _tmp59_;
	GtkFrame* _tmp60_ = NULL;
	GtkFrame* _tmp61_;
	GtkFrame* _tmp62_;
	KeyboardShortcutsCustomShortcutListBox* _tmp66_;
	GtkWidget** _tmp67_;
	gint _tmp67__length1;
	GtkListBox* _tmp70_;
	parent_class = G_OBJECT_CLASS (keyboard_shortcuts_page_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_SHORTCUTS_TYPE_PAGE, KeyboardShortcutsPage);
	_data25_ = g_slice_new0 (Block25Data);
	_data25_->_ref_count_ = 1;
	_data25_->self = g_object_ref (self);
	_tmp0_ = keyboard_shortcuts_shortcuts_list_get_default ();
	list = _tmp0_;
	_tmp1_ = (GtkListBox*) gtk_list_box_new ();
	g_object_ref_sink (_tmp1_);
	_g_object_unref0 (self->priv->section_switcher);
	self->priv->section_switcher = _tmp1_;
	_tmp2_ = self->priv->section_switcher;
	gtk_widget_add_css_class ((GtkWidget*) _tmp2_, GRANITE_STYLE_CLASS_RICH_LIST);
	_tmp3_ = self->priv->section_switcher;
	_tmp4_ = list;
	_tmp5_ = _tmp4_->windows_group;
	_tmp6_ = keyboard_shortcuts_page_switcher_row_new (&_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	gtk_list_box_append (_tmp3_, (GtkWidget*) _tmp7_);
	_g_object_unref0 (_tmp7_);
	_tmp8_ = self->priv->section_switcher;
	_tmp9_ = list;
	_tmp10_ = _tmp9_->workspaces_group;
	_tmp11_ = keyboard_shortcuts_page_switcher_row_new (&_tmp10_);
	g_object_ref_sink (_tmp11_);
	_tmp12_ = _tmp11_;
	gtk_list_box_append (_tmp8_, (GtkWidget*) _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp13_ = self->priv->section_switcher;
	_tmp14_ = list;
	_tmp15_ = _tmp14_->screenshot_group;
	_tmp16_ = keyboard_shortcuts_page_switcher_row_new (&_tmp15_);
	g_object_ref_sink (_tmp16_);
	_tmp17_ = _tmp16_;
	gtk_list_box_append (_tmp13_, (GtkWidget*) _tmp17_);
	_g_object_unref0 (_tmp17_);
	_tmp18_ = self->priv->section_switcher;
	_tmp19_ = list;
	_tmp20_ = _tmp19_->launchers_group;
	_tmp21_ = keyboard_shortcuts_page_switcher_row_new (&_tmp20_);
	g_object_ref_sink (_tmp21_);
	_tmp22_ = _tmp21_;
	gtk_list_box_append (_tmp18_, (GtkWidget*) _tmp22_);
	_g_object_unref0 (_tmp22_);
	_tmp23_ = self->priv->section_switcher;
	_tmp24_ = list;
	_tmp25_ = _tmp24_->media_group;
	_tmp26_ = keyboard_shortcuts_page_switcher_row_new (&_tmp25_);
	g_object_ref_sink (_tmp26_);
	_tmp27_ = _tmp26_;
	gtk_list_box_append (_tmp23_, (GtkWidget*) _tmp27_);
	_g_object_unref0 (_tmp27_);
	_tmp28_ = self->priv->section_switcher;
	_tmp29_ = list;
	_tmp30_ = _tmp29_->a11y_group;
	_tmp31_ = keyboard_shortcuts_page_switcher_row_new (&_tmp30_);
	g_object_ref_sink (_tmp31_);
	_tmp32_ = _tmp31_;
	gtk_list_box_append (_tmp28_, (GtkWidget*) _tmp32_);
	_g_object_unref0 (_tmp32_);
	_tmp33_ = self->priv->section_switcher;
	_tmp34_ = list;
	_tmp35_ = _tmp34_->system_group;
	_tmp36_ = keyboard_shortcuts_page_switcher_row_new (&_tmp35_);
	g_object_ref_sink (_tmp36_);
	_tmp37_ = _tmp36_;
	gtk_list_box_append (_tmp33_, (GtkWidget*) _tmp37_);
	_g_object_unref0 (_tmp37_);
	_tmp38_ = self->priv->section_switcher;
	_tmp39_ = list;
	_tmp40_ = _tmp39_->keyboard_layouts_group;
	_tmp41_ = keyboard_shortcuts_page_switcher_row_new (&_tmp40_);
	g_object_ref_sink (_tmp41_);
	_tmp42_ = _tmp41_;
	gtk_list_box_append (_tmp38_, (GtkWidget*) _tmp42_);
	_g_object_unref0 (_tmp42_);
	_tmp43_ = list;
	_tmp44_ = _tmp43_->custom_group;
	_tmp45_ = keyboard_shortcuts_page_switcher_row_new (&_tmp44_);
	g_object_ref_sink (_tmp45_);
	_g_object_unref0 (self->priv->custom_shortcuts_row);
	self->priv->custom_shortcuts_row = _tmp45_;
	_tmp46_ = self->priv->section_switcher;
	_tmp47_ = self->priv->custom_shortcuts_row;
	gtk_list_box_append (_tmp46_, (GtkWidget*) _tmp47_);
	_tmp48_ = self->priv->section_switcher;
	_tmp49_ = _g_object_ref0 ((GtkWidget*) _tmp48_);
	_tmp50_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_scrolled_window_set_child (_tmp50_, _tmp49_);
	_g_object_unref0 (_tmp49_);
	g_object_set (_tmp50_, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
	g_object_ref_sink (_tmp50_);
	switcher_scrolled = _tmp50_;
	_tmp51_ = switcher_scrolled;
	_tmp52_ = _g_object_ref0 ((GtkWidget*) _tmp51_);
	_tmp53_ = (GtkFrame*) gtk_frame_new (NULL);
	gtk_frame_set_child (_tmp53_, _tmp52_);
	_g_object_unref0 (_tmp52_);
	g_object_ref_sink (_tmp53_);
	switcher_frame = _tmp53_;
	_tmp54_ = (GtkStack*) gtk_stack_new ();
	gtk_stack_set_vhomogeneous (_tmp54_, FALSE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp54_, TRUE);
	g_object_ref_sink (_tmp54_);
	_data25_->stack = _tmp54_;
	_tmp55_ = _data25_->stack;
	_tmp56_ = _g_object_ref0 ((GtkWidget*) _tmp55_);
	_tmp57_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_scrolled_window_set_child (_tmp57_, _tmp56_);
	_g_object_unref0 (_tmp56_);
	g_object_ref_sink (_tmp57_);
	stack_scrolled = _tmp57_;
	_tmp58_ = stack_scrolled;
	_tmp59_ = _g_object_ref0 ((GtkWidget*) _tmp58_);
	_tmp60_ = (GtkFrame*) gtk_frame_new (NULL);
	gtk_frame_set_child (_tmp60_, _tmp59_);
	_g_object_unref0 (_tmp59_);
	g_object_ref_sink (_tmp60_);
	frame = _tmp60_;
	gtk_box_set_spacing ((GtkBox*) self, 12);
	gtk_widget_set_margin_start ((GtkWidget*) self, 12);
	gtk_widget_set_margin_end ((GtkWidget*) self, 12);
	gtk_widget_set_margin_bottom ((GtkWidget*) self, 12);
	gtk_widget_set_margin_top ((GtkWidget*) self, 12);
	_tmp61_ = switcher_frame;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp61_);
	_tmp62_ = frame;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp62_);
	{
		gint id = 0;
		id = 0;
		{
			gboolean _tmp63_ = FALSE;
			_tmp63_ = TRUE;
			while (TRUE) {
				KeyboardShortcutsShortcutListBox* _tmp65_;
				if (!_tmp63_) {
					gint _tmp64_;
					_tmp64_ = id;
					id = _tmp64_ + 1;
				}
				_tmp63_ = FALSE;
				if (!(id < ((gint) KEYBOARD_SHORTCUTS_SECTION_ID_CUSTOM))) {
					break;
				}
				_tmp65_ = keyboard_shortcuts_shortcut_list_box_new ((KeyboardShortcutsSectionID) id);
				g_object_ref_sink (_tmp65_);
				_vala_array_add18 (&keyboard_shortcuts_shortcut_views, &keyboard_shortcuts_shortcut_views_length1, &_keyboard_shortcuts_shortcut_views_size_, (GtkWidget*) _tmp65_);
			}
		}
	}
	_tmp66_ = keyboard_shortcuts_custom_shortcut_list_box_new ();
	g_object_ref_sink (_tmp66_);
	_vala_array_add19 (&keyboard_shortcuts_shortcut_views, &keyboard_shortcuts_shortcut_views_length1, &_keyboard_shortcuts_shortcut_views_size_, (GtkWidget*) _tmp66_);
	_tmp67_ = keyboard_shortcuts_shortcut_views;
	_tmp67__length1 = keyboard_shortcuts_shortcut_views_length1;
	{
		GtkWidget** view_collection = NULL;
		gint view_collection_length1 = 0;
		gint _view_collection_size_ = 0;
		gint view_it = 0;
		view_collection = _tmp67_;
		view_collection_length1 = _tmp67__length1;
		for (view_it = 0; view_it < view_collection_length1; view_it = view_it + 1) {
			GtkWidget* view = NULL;
			view = view_collection[view_it];
			{
				GtkStack* _tmp68_;
				GtkWidget* _tmp69_;
				_tmp68_ = _data25_->stack;
				_tmp69_ = view;
				gtk_stack_add_child (_tmp68_, _tmp69_);
			}
		}
	}
	_tmp70_ = self->priv->section_switcher;
	g_signal_connect_data (_tmp70_, "row-selected", (GCallback) __keyboard_shortcuts_page___lambda77__gtk_list_box_row_selected, block25_data_ref (_data25_), (GClosureNotify) block25_data_unref, 0);
	g_signal_connect_object ((GtkWidget*) self, "realize", (GCallback) __keyboard_shortcuts_page___lambda78__gtk_widget_realize, self, 0);
	_g_object_unref0 (frame);
	_g_object_unref0 (stack_scrolled);
	_g_object_unref0 (switcher_frame);
	_g_object_unref0 (switcher_scrolled);
	block25_data_unref (_data25_);
	_data25_ = NULL;
	return obj;
}

static void
keyboard_shortcuts_page_class_init (KeyboardShortcutsPageClass * klass,
                                    gpointer klass_data)
{
	keyboard_shortcuts_page_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyboardShortcutsPage_private_offset);
	G_OBJECT_CLASS (klass)->constructor = keyboard_shortcuts_page_constructor;
	G_OBJECT_CLASS (klass)->finalize = keyboard_shortcuts_page_finalize;
}

static void
keyboard_shortcuts_page_instance_init (KeyboardShortcutsPage * self,
                                       gpointer klass)
{
	self->priv = keyboard_shortcuts_page_get_instance_private (self);
}

static void
keyboard_shortcuts_page_finalize (GObject * obj)
{
	KeyboardShortcutsPage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBOARD_SHORTCUTS_TYPE_PAGE, KeyboardShortcutsPage);
	_g_object_unref0 (self->priv->section_switcher);
	_g_object_unref0 (self->priv->custom_shortcuts_row);
	G_OBJECT_CLASS (keyboard_shortcuts_page_parent_class)->finalize (obj);
}

static GType
keyboard_shortcuts_page_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyboardShortcutsPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keyboard_shortcuts_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyboardShortcutsPage), 0, (GInstanceInitFunc) keyboard_shortcuts_page_instance_init, NULL };
	GType keyboard_shortcuts_page_type_id;
	keyboard_shortcuts_page_type_id = g_type_register_static (gtk_box_get_type (), "KeyboardShortcutsPage", &g_define_type_info, 0);
	KeyboardShortcutsPage_private_offset = g_type_add_instance_private (keyboard_shortcuts_page_type_id, sizeof (KeyboardShortcutsPagePrivate));
	return keyboard_shortcuts_page_type_id;
}

GType
keyboard_shortcuts_page_get_type (void)
{
	static volatile gsize keyboard_shortcuts_page_type_id__once = 0;
	if (g_once_init_enter (&keyboard_shortcuts_page_type_id__once)) {
		GType keyboard_shortcuts_page_type_id;
		keyboard_shortcuts_page_type_id = keyboard_shortcuts_page_get_type_once ();
		g_once_init_leave (&keyboard_shortcuts_page_type_id__once, keyboard_shortcuts_page_type_id);
	}
	return keyboard_shortcuts_page_type_id__once;
}

